diff --git a/dist/alpine-timeago.js b/dist/alpine-timeago.js index 61c3877..1205397 100644 --- a/dist/alpine-timeago.js +++ b/dist/alpine-timeago.js @@ -1894,6 +1894,37 @@ return minutes >= 0 && minutes <= 59; } + /** + * @name isPast + * @category Common Helpers + * @summary Is the given date in the past? + * @pure false + * + * @description + * Is the given date in the past? + * + * > ⚠️ Please note that this function is not present in the FP submodule as + * > it uses `Date.now()` internally hence impure and can't be safely curried. + * + * ### v2.0.0 breaking changes: + * + * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). + * + * @param {Date|Number} date - the date to check + * @returns {Boolean} the date is in the past + * @throws {TypeError} 1 argument required + * + * @example + * // If today is 6 October 2014, is 2 July 2014 in the past? + * var result = isPast(new Date(2014, 6, 2)) + * //=> true + */ + + function isPast(dirtyDate) { + requiredArgs(1, arguments); + return toDate(dirtyDate).getTime() < Date.now(); + } + let locale = null; function TimeAgo(Alpine) { @@ -1940,9 +1971,7 @@ }); } - el.dispatchEvent(new Event("timeago:update", { - bubbles: false - })); + dispatch(date); } catch (e) { console.error(e); } @@ -1950,6 +1979,15 @@ let interval; + const dispatch = date => { + el.dispatchEvent(new CustomEvent("timeago:render", { + detail: { + isPast: isPast(date) + }, + bubbles: false + })); + }; + const setupInterval = date => { let intervalDuration = 30000; @@ -1990,6 +2028,7 @@ } render(date); + setupInterval(date); }); }); cleanup(() => clearInterval(interval)); diff --git a/dist/alpine-timeago.js.map b/dist/alpine-timeago.js.map index a7cd477..e5250d9 100644 --- a/dist/alpine-timeago.js.map +++ b/dist/alpine-timeago.js.map @@ -1 +1 @@ -{"version":3,"file":"alpine-timeago.js","sources":["../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/date-fns/esm/compareAsc/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/isLastDayOfMonth/index.js","../node_modules/date-fns/esm/differenceInMonths/index.js","../node_modules/date-fns/esm/differenceInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/roundingMethods/index.js","../node_modules/date-fns/esm/differenceInSeconds/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/_lib/cloneObject/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/formatDistance/index.js","../node_modules/date-fns/esm/formatDistanceToNow/index.js","../node_modules/date-fns/esm/formatDistanceStrict/index.js","../node_modules/date-fns/esm/formatDistanceToNowStrict/index.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/parseISO/index.js","../src/index.js","../builds/cdn.js"],"sourcesContent":["export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport endOfDay from \"../endOfDay/index.js\";\nimport endOfMonth from \"../endOfMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * var result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\n\nexport default function isLastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return endOfDay(date).getTime() === endOfMonth(date).getTime();\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarMonths from \"../differenceInCalendarMonths/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport isLastDayOfMonth from \"../isLastDayOfMonth/index.js\";\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates using trunc as a default rounding method.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\n\nexport default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));\n var result; // Check for the difference of less than month\n\n if (difference < 1) {\n result = 0;\n } else {\n if (dateLeft.getMonth() === 1 && dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n dateLeft.setDate(30);\n }\n\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference); // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign; // Check for cases of one full calendar month\n\n if (isLastDayOfMonth(toDate(dirtyDateLeft)) && difference === 1 && compareAsc(dirtyDateLeft, dateRight) === 1) {\n isLastMonthNotFull = false;\n }\n\n result = sign * (difference - Number(isLastMonthNotFull));\n } // Prevent negative zero\n\n\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dateLeft, dateRight) {\n requiredArgs(2, arguments);\n return toDate(dateLeft).getTime() - toDate(dateRight).getTime();\n}","var roundingMap = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function (value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n } // Math.trunc is not supported by IE\n\n};\nvar defaultRoundingMethod = 'trunc';\nexport function getRoundingMethod(method) {\n return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","import differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","import assign from \"../assign/index.js\";\nexport default function cloneObject(dirtyObject) {\n return assign({}, dirtyObject);\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import compareAsc from \"../compareAsc/index.js\";\nimport differenceInMonths from \"../differenceInMonths/index.js\";\nimport differenceInSeconds from \"../differenceInSeconds/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_TWO_MONTHS = 86400;\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWords ` to `formatDistance`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWords(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 11, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n *\n * // v2.0.0 onward\n *\n * formatDistance(\n * new Date(1986, 3, 4, 11, 32, 0),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * const result = formatDistance(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistance(dirtyDate, dirtyBaseDate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n requiredArgs(2, arguments);\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft);\n var offsetInSeconds = (getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft)) / 1000;\n var minutes = Math.round((seconds - offsetInSeconds) / 60);\n var months; // 0 up to 2 mins\n\n if (minutes < 2) {\n if (options.includeSeconds) {\n if (seconds < 5) {\n return locale.formatDistance('lessThanXSeconds', 5, localizeOptions);\n } else if (seconds < 10) {\n return locale.formatDistance('lessThanXSeconds', 10, localizeOptions);\n } else if (seconds < 20) {\n return locale.formatDistance('lessThanXSeconds', 20, localizeOptions);\n } else if (seconds < 40) {\n return locale.formatDistance('halfAMinute', null, localizeOptions);\n } else if (seconds < 60) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', minutes, localizeOptions);\n }\n } // 2 mins up to 0.75 hrs\n\n } else if (minutes < 45) {\n return locale.formatDistance('xMinutes', minutes, localizeOptions); // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance('aboutXHours', 1, localizeOptions); // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60);\n return locale.formatDistance('aboutXHours', hours, localizeOptions); // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return locale.formatDistance('xDays', 1, localizeOptions); // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('aboutXMonths', months, localizeOptions);\n }\n\n months = differenceInMonths(dateRight, dateLeft); // 2 months up to 12 months\n\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('xMonths', nearestMonth, localizeOptions); // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12;\n var years = Math.floor(months / 12); // N years up to 1 years 3 months\n\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance('aboutXYears', years, localizeOptions); // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance('overXYears', years, localizeOptions); // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance('almostXYears', years + 1, localizeOptions);\n }\n }\n}","import distanceInWords from \"../formatDistance/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name formatDistanceToNow\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now | Result |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWordsToNow ` to `formatDistanceToNow`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsToNow(new Date(2014, 6, 2), { addSuffix: true })\n * //=> 'in 6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceToNow(new Date(2014, 6, 2), { addSuffix: true })\n * //=> 'in 6 months'\n * ```\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result specifies if now is earlier or later than the passed date\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = formatDistanceToNow(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = formatDistanceToNow(\n * new Date(2015, 0, 1, 0, 0, 15),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = formatDistanceToNow(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = formatDistanceToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistanceToNow(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n return distanceInWords(dirtyDate, Date.now(), dirtyOptions);\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 1000 * 60;\nvar MINUTES_IN_DAY = 60 * 24;\nvar MINUTES_IN_MONTH = MINUTES_IN_DAY * 30;\nvar MINUTES_IN_YEAR = MINUTES_IN_DAY * 365;\n/**\n * @name formatDistanceStrict\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWordsStrict` to `formatDistanceStrict`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(2015, 0, 2),\n * new Date(2014, 6, 2)\n * ) //=> '6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(2014, 6, 2),\n * new Date(2015, 0, 2)\n * ) //=> '6 months'\n * ```\n *\n * - `partialMethod` option is renamed to `roundingMethod`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { partialMethod: 'ceil' }\n * ) //=> '2 minutes'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { roundingMethod: 'ceil' }\n * ) //=> '2 minutes'\n * ```\n *\n * - If `roundingMethod` is not specified, it now defaults to `round` instead of `floor`.\n *\n * - `unit` option now accepts one of the strings:\n * 'second', 'minute', 'hour', 'day', 'month' or 'year' instead of 's', 'm', 'h', 'd', 'M' or 'Y'\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { unit: 'm' }\n * )\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { unit: 'minute' }\n * )\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.roundingMethod` must be 'floor', 'ceil' or 'round'\n * @throws {RangeError} `options.unit` must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistanceStrict(new Date(2014, 6, 2), new Date(2015, 0, 2))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00?\n * const result = formatDistanceStrict(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0)\n * )\n * //=> '15 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistanceStrict(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> '1 year ago'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, in minutes?\n * const result = formatDistanceStrict(new Date(2016, 0, 1), new Date(2015, 0, 1), {\n * unit: 'minute'\n * })\n * //=> '525600 minutes'\n *\n * @example\n * // What is the distance from 1 January 2015\n * // to 28 January 2015, in months, rounded up?\n * const result = formatDistanceStrict(new Date(2015, 0, 28), new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistanceStrict(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceStrict(dirtyDate, dirtyBaseDate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n requiredArgs(2, arguments);\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain localize.formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var roundingMethod = options.roundingMethod == null ? 'round' : String(options.roundingMethod);\n var roundingMethodFn;\n\n if (roundingMethod === 'floor') {\n roundingMethodFn = Math.floor;\n } else if (roundingMethod === 'ceil') {\n roundingMethodFn = Math.ceil;\n } else if (roundingMethod === 'round') {\n roundingMethodFn = Math.round;\n } else {\n throw new RangeError(\"roundingMethod must be 'floor', 'ceil' or 'round'\");\n }\n\n var milliseconds = dateRight.getTime() - dateLeft.getTime();\n var minutes = milliseconds / MILLISECONDS_IN_MINUTE;\n var timezoneOffset = getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft); // Use DST-normalized difference in minutes for years, months and days;\n // use regular difference in minutes for hours, minutes and seconds.\n\n var dstNormalizedMinutes = (milliseconds - timezoneOffset) / MILLISECONDS_IN_MINUTE;\n var unit;\n\n if (options.unit == null) {\n if (minutes < 1) {\n unit = 'second';\n } else if (minutes < 60) {\n unit = 'minute';\n } else if (minutes < MINUTES_IN_DAY) {\n unit = 'hour';\n } else if (dstNormalizedMinutes < MINUTES_IN_MONTH) {\n unit = 'day';\n } else if (dstNormalizedMinutes < MINUTES_IN_YEAR) {\n unit = 'month';\n } else {\n unit = 'year';\n }\n } else {\n unit = String(options.unit);\n } // 0 up to 60 seconds\n\n\n if (unit === 'second') {\n var seconds = roundingMethodFn(milliseconds / 1000);\n return locale.formatDistance('xSeconds', seconds, localizeOptions); // 1 up to 60 mins\n } else if (unit === 'minute') {\n var roundedMinutes = roundingMethodFn(minutes);\n return locale.formatDistance('xMinutes', roundedMinutes, localizeOptions); // 1 up to 24 hours\n } else if (unit === 'hour') {\n var hours = roundingMethodFn(minutes / 60);\n return locale.formatDistance('xHours', hours, localizeOptions); // 1 up to 30 days\n } else if (unit === 'day') {\n var days = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 up to 12 months\n } else if (unit === 'month') {\n var months = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_MONTH);\n return months === 12 && options.unit !== 'month' ? locale.formatDistance('xYears', 1, localizeOptions) : locale.formatDistance('xMonths', months, localizeOptions); // 1 year up to max Date\n } else if (unit === 'year') {\n var years = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_YEAR);\n return locale.formatDistance('xYears', years, localizeOptions);\n }\n\n throw new RangeError(\"unit must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\");\n}","import formatDistanceStrict from \"../formatDistanceStrict/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name formatDistanceToNowStrict\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = formatDistanceToNowStrict(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = formatDistanceToNowStrict(\n * new Date(2015, 0, 1, 0, 0, 15)\n * )\n * //=> '20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = formatDistanceToNowStrict(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in 1 year'\n *\n * @example\n * // If today is 28 January 2015,\n * // what is the distance to 1 January 2015, in months, rounded up??\n * var result = formatDistanceToNowStrict(new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = formatDistanceToNowStrict(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceToNowStrict(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n return formatDistanceStrict(dirtyDate, Date.now(), dirtyOptions);\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The previous `parse` implementation was renamed to `parseISO`.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * parseISO('2016-01-01')\n * ```\n *\n * - `parseISO` now validates separate date and time values in ISO-8601 strings\n * and returns `Invalid Date` if the date is invalid.\n *\n * ```javascript\n * parseISO('2018-13-32')\n * //=> Invalid Date\n * ```\n *\n * - `parseISO` now doesn't fall back to `new Date` constructor\n * if it fails to parse a string argument. Instead, it returns `Invalid Date`.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? 2 : toInteger(options.additionalDigits);\n\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n\n var dateStrings = splitDateString(argument);\n var date;\n\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null; // either year or century is null, not both\n\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import formatDistanceToNow from \"date-fns/formatDistanceToNow\";\nimport formatDistanceToNowStrict from \"date-fns/formatDistanceToNowStrict\";\nimport parseISO from \"date-fns/parseISO\";\n\nlet locale = null;\n\nfunction TimeAgo(Alpine) {\n Alpine.directive(\n \"timeago\",\n (el, { expression, modifiers }, { evaluateLater, effect, cleanup }) => {\n let evaluateDate = evaluateLater(expression);\n\n const render = (date) => {\n if (typeof date === \"string\") {\n date = parseISO(date);\n }\n\n try {\n if (modifiers.includes(\"strict\")) {\n let unit = modifiers.includes(\"unit\")\n ? modifiers[\n modifiers.findIndex((modifier) => modifier === \"unit\") + 1\n ] || undefined\n : undefined;\n if (\n ![\"second\", \"minute\", \"hour\", \"day\", \"month\", \"year\"].includes(\n unit\n )\n ) {\n unit = undefined;\n }\n let roundingMethod = modifiers.includes(\"rounding\")\n ? modifiers[\n modifiers.findIndex((modifier) => modifier === \"rounding\") + 1\n ] || undefined\n : undefined;\n if (![\"floor\", \"ceil\", \"round\"].includes(roundingMethod)) {\n roundingMethod = undefined;\n }\n el.textContent = formatDistanceToNowStrict(date, {\n addSuffix: !modifiers.includes(\"pure\"),\n unit,\n roundingMethod,\n locale,\n });\n } else {\n el.textContent = formatDistanceToNow(date, {\n addSuffix: !modifiers.includes(\"pure\"),\n includeSeconds: modifiers.includes(\"seconds\"),\n locale,\n });\n }\n el.dispatchEvent(new Event(\"timeago:update\", { bubbles: false }));\n } catch (e) {\n console.error(e);\n }\n };\n\n let interval;\n\n const setupInterval = (date) => {\n let intervalDuration = 30000;\n if (modifiers.includes(\"seconds\")) {\n intervalDuration = 5000;\n }\n\n interval = setInterval(() => {\n render(date);\n }, intervalDuration);\n };\n\n const intersectionObserver = new IntersectionObserver((entries) => {\n const [entry] = entries;\n const {isIntersecting} = entry;\n if (isIntersecting) {\n evaluateDate((date) => {\n if (!interval) {\n setupInterval(date);\n render(date);\n }\n });\n } else {\n if (interval) {\n clearInterval(interval);\n interval = undefined;\n }\n }\n });\n\n intersectionObserver.observe(el);\n\n effect(() => {\n evaluateDate((date) => {\n if (interval) {\n clearInterval(interval);\n }\n\n render(date);\n });\n });\n\n cleanup(() => clearInterval(interval));\n }\n );\n\n Alpine.magic(\"timeago\", () => (expression, pure, seconds, strictOptions) => {\n if (pure == null) {\n pure = false;\n }\n if (seconds == null) {\n seconds = false;\n }\n if (strictOptions != null && (strictOptions[\"strict\"] || undefined)) {\n return formatDistanceToNowStrict(expression, {\n addSuffix: !pure,\n unit: strictOptions[\"unit\"] || undefined,\n roundingMethod: strictOptions[\"roundingMethod\"] || undefined,\n locale,\n });\n }\n return formatDistanceToNow(expression, {\n addSuffix: !pure,\n includeSeconds: seconds,\n locale,\n });\n });\n}\n\nTimeAgo.configure = (config) => {\n if (config.hasOwnProperty(\"locale\") && typeof config.locale === \"object\") {\n if (config.locale.hasOwnProperty(\"formatDistance\")) {\n locale = config.locale;\n }\n }\n\n return TimeAgo;\n};\n\nexport default TimeAgo;\n","import TimeAgo from '../src/index.js';\n\ndocument.addEventListener('alpine:init', () => {\n TimeAgo(window.Alpine);\n});\n"],"names":["formatDistance","locale","formatLong","formatRelative","localize","match","MINUTES_IN_DAY","MINUTES_IN_MONTH","distanceInWords","TimeAgo","Alpine","directive","el","expression","modifiers","evaluateLater","effect","cleanup","evaluateDate","render","date","parseISO","includes","unit","findIndex","modifier","undefined","roundingMethod","textContent","formatDistanceToNowStrict","addSuffix","formatDistanceToNow","includeSeconds","dispatchEvent","Event","bubbles","e","console","error","interval","setupInterval","intervalDuration","setInterval","intersectionObserver","IntersectionObserver","entries","entry","isIntersecting","clearInterval","observe","magic","pure","seconds","strictOptions","configure","config","hasOwnProperty","document","addEventListener","window"],"mappings":"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C,kBAAgB,GAAG,KAAK,CAAC;EAC7B,IAAI,qBAAqB,GAAG,KAAK,CAAC;EAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACe,SAAS,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE;EACjE,EAAE,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;EACvF,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC7B,EAAE,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC;AAC/C;EACA,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;EAC9B,IAAI,MAAM,IAAI,UAAU,CAAC,6CAA6C,CAAC,CAAC;EACxE,GAAG;AACH;EACA,EAAE,IAAI,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AACxD;EACA,EAAE,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;EACzB,IAAI,MAAM,IAAI,UAAU,CAAC,oBAAoB,CAAC,CAAC;EAC/C,GAAG;AACH;EACA,EAAE,IAAI,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC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CA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACe,SAAS,mBAAmB,CAAC,SAAS,EAAE,YAAY,EAAE;EACrE,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC7B,EAAE,OAAOC,cAAe,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;EAC9D;;ECzGA,IAAI,sBAAsB,GAAG,IAAI,GAAG,EAAE,CAAC;EACvC,IAAI,cAAc,GAAG,EAAE,GAAG,EAAE,CAAC;EAC7B,IAAI,gBAAgB,GAAG,cAAc,GAAG,EAAE,CAAC;EAC3C,IAAI,eAAe,GAAG,cAAc,GAAG,GAAG,CAAC;EAC3C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;E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C;EACnE,GAAG;AACH;EACA,EAAE,MAAM,IAAI,UAAU,CAAC,mEAAmE,CAAC,CAAC;EAC5F;;ECzPA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACe,SAAS,yBAAyB,CAAC,SAAS,EAAE,YAAY,EAAE;EAC3E,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC7B,EAAE,OAAO,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;EACnE;;EChFA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAYA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACO,IAAI,oBAAoB,GAAG,KAAK,CAAC;EACxC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACO,IAAI,kBAAkB,GAAG,OAAO;;ECtCxB,SAAS,SAAS,CAAC,WAAW,EAAE;EAC/C,EAAE,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,KAAK,EAAE;EAC7E,IAAI,OAAO,GAAG,CAAC;EACf,GAAG;AACH;EACA,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AACnC;EACA,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;EACrB,IAAI,OAAO,MAAM,CAAC;EAClB,GAAG;AACH;EACA,EAAE,OAAO,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,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"} \ No newline at end of file +{"version":3,"file":"alpine-timeago.js","sources":["../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/date-fns/esm/compareAsc/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/isLastDayOfMonth/index.js","../node_modules/date-fns/esm/differenceInMonths/index.js","../node_modules/date-fns/esm/differenceInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/roundingMethods/index.js","../node_modules/date-fns/esm/differenceInSeconds/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/_lib/cloneObject/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/formatDistance/index.js","../node_modules/date-fns/esm/formatDistanceToNow/index.js","../node_modules/date-fns/esm/formatDistanceStrict/index.js","../node_modules/date-fns/esm/formatDistanceToNowStrict/index.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/parseISO/index.js","../node_modules/date-fns/esm/isPast/index.js","../src/index.js","../builds/cdn.js"],"sourcesContent":["export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport endOfDay from \"../endOfDay/index.js\";\nimport endOfMonth from \"../endOfMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * var result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\n\nexport default function isLastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return endOfDay(date).getTime() === endOfMonth(date).getTime();\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarMonths from \"../differenceInCalendarMonths/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport isLastDayOfMonth from \"../isLastDayOfMonth/index.js\";\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates using trunc as a default rounding method.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\n\nexport default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));\n var result; // Check for the difference of less than month\n\n if (difference < 1) {\n result = 0;\n } else {\n if (dateLeft.getMonth() === 1 && dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n dateLeft.setDate(30);\n }\n\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference); // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign; // Check for cases of one full calendar month\n\n if (isLastDayOfMonth(toDate(dirtyDateLeft)) && difference === 1 && compareAsc(dirtyDateLeft, dateRight) === 1) {\n isLastMonthNotFull = false;\n }\n\n result = sign * (difference - Number(isLastMonthNotFull));\n } // Prevent negative zero\n\n\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dateLeft, dateRight) {\n requiredArgs(2, arguments);\n return toDate(dateLeft).getTime() - toDate(dateRight).getTime();\n}","var roundingMap = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function (value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n } // Math.trunc is not supported by IE\n\n};\nvar defaultRoundingMethod = 'trunc';\nexport function getRoundingMethod(method) {\n return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","import differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","import assign from \"../assign/index.js\";\nexport default function cloneObject(dirtyObject) {\n return assign({}, dirtyObject);\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import compareAsc from \"../compareAsc/index.js\";\nimport differenceInMonths from \"../differenceInMonths/index.js\";\nimport differenceInSeconds from \"../differenceInSeconds/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_TWO_MONTHS = 86400;\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWords ` to `formatDistance`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWords(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 11, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n *\n * // v2.0.0 onward\n *\n * formatDistance(\n * new Date(1986, 3, 4, 11, 32, 0),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * const result = formatDistance(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistance(dirtyDate, dirtyBaseDate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n requiredArgs(2, arguments);\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft);\n var offsetInSeconds = (getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft)) / 1000;\n var minutes = Math.round((seconds - offsetInSeconds) / 60);\n var months; // 0 up to 2 mins\n\n if (minutes < 2) {\n if (options.includeSeconds) {\n if (seconds < 5) {\n return locale.formatDistance('lessThanXSeconds', 5, localizeOptions);\n } else if (seconds < 10) {\n return locale.formatDistance('lessThanXSeconds', 10, localizeOptions);\n } else if (seconds < 20) {\n return locale.formatDistance('lessThanXSeconds', 20, localizeOptions);\n } else if (seconds < 40) {\n return locale.formatDistance('halfAMinute', null, localizeOptions);\n } else if (seconds < 60) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', minutes, localizeOptions);\n }\n } // 2 mins up to 0.75 hrs\n\n } else if (minutes < 45) {\n return locale.formatDistance('xMinutes', minutes, localizeOptions); // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance('aboutXHours', 1, localizeOptions); // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60);\n return locale.formatDistance('aboutXHours', hours, localizeOptions); // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return locale.formatDistance('xDays', 1, localizeOptions); // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('aboutXMonths', months, localizeOptions);\n }\n\n months = differenceInMonths(dateRight, dateLeft); // 2 months up to 12 months\n\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('xMonths', nearestMonth, localizeOptions); // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12;\n var years = Math.floor(months / 12); // N years up to 1 years 3 months\n\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance('aboutXYears', years, localizeOptions); // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance('overXYears', years, localizeOptions); // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance('almostXYears', years + 1, localizeOptions);\n }\n }\n}","import distanceInWords from \"../formatDistance/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name formatDistanceToNow\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now | Result |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWordsToNow ` to `formatDistanceToNow`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsToNow(new Date(2014, 6, 2), { addSuffix: true })\n * //=> 'in 6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceToNow(new Date(2014, 6, 2), { addSuffix: true })\n * //=> 'in 6 months'\n * ```\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result specifies if now is earlier or later than the passed date\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = formatDistanceToNow(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = formatDistanceToNow(\n * new Date(2015, 0, 1, 0, 0, 15),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = formatDistanceToNow(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = formatDistanceToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistanceToNow(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n return distanceInWords(dirtyDate, Date.now(), dirtyOptions);\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 1000 * 60;\nvar MINUTES_IN_DAY = 60 * 24;\nvar MINUTES_IN_MONTH = MINUTES_IN_DAY * 30;\nvar MINUTES_IN_YEAR = MINUTES_IN_DAY * 365;\n/**\n * @name formatDistanceStrict\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWordsStrict` to `formatDistanceStrict`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(2015, 0, 2),\n * new Date(2014, 6, 2)\n * ) //=> '6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(2014, 6, 2),\n * new Date(2015, 0, 2)\n * ) //=> '6 months'\n * ```\n *\n * - `partialMethod` option is renamed to `roundingMethod`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { partialMethod: 'ceil' }\n * ) //=> '2 minutes'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { roundingMethod: 'ceil' }\n * ) //=> '2 minutes'\n * ```\n *\n * - If `roundingMethod` is not specified, it now defaults to `round` instead of `floor`.\n *\n * - `unit` option now accepts one of the strings:\n * 'second', 'minute', 'hour', 'day', 'month' or 'year' instead of 's', 'm', 'h', 'd', 'M' or 'Y'\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { unit: 'm' }\n * )\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { unit: 'minute' }\n * )\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.roundingMethod` must be 'floor', 'ceil' or 'round'\n * @throws {RangeError} `options.unit` must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistanceStrict(new Date(2014, 6, 2), new Date(2015, 0, 2))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00?\n * const result = formatDistanceStrict(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0)\n * )\n * //=> '15 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistanceStrict(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> '1 year ago'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, in minutes?\n * const result = formatDistanceStrict(new Date(2016, 0, 1), new Date(2015, 0, 1), {\n * unit: 'minute'\n * })\n * //=> '525600 minutes'\n *\n * @example\n * // What is the distance from 1 January 2015\n * // to 28 January 2015, in months, rounded up?\n * const result = formatDistanceStrict(new Date(2015, 0, 28), new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistanceStrict(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceStrict(dirtyDate, dirtyBaseDate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n requiredArgs(2, arguments);\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain localize.formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var roundingMethod = options.roundingMethod == null ? 'round' : String(options.roundingMethod);\n var roundingMethodFn;\n\n if (roundingMethod === 'floor') {\n roundingMethodFn = Math.floor;\n } else if (roundingMethod === 'ceil') {\n roundingMethodFn = Math.ceil;\n } else if (roundingMethod === 'round') {\n roundingMethodFn = Math.round;\n } else {\n throw new RangeError(\"roundingMethod must be 'floor', 'ceil' or 'round'\");\n }\n\n var milliseconds = dateRight.getTime() - dateLeft.getTime();\n var minutes = milliseconds / MILLISECONDS_IN_MINUTE;\n var timezoneOffset = getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft); // Use DST-normalized difference in minutes for years, months and days;\n // use regular difference in minutes for hours, minutes and seconds.\n\n var dstNormalizedMinutes = (milliseconds - timezoneOffset) / MILLISECONDS_IN_MINUTE;\n var unit;\n\n if (options.unit == null) {\n if (minutes < 1) {\n unit = 'second';\n } else if (minutes < 60) {\n unit = 'minute';\n } else if (minutes < MINUTES_IN_DAY) {\n unit = 'hour';\n } else if (dstNormalizedMinutes < MINUTES_IN_MONTH) {\n unit = 'day';\n } else if (dstNormalizedMinutes < MINUTES_IN_YEAR) {\n unit = 'month';\n } else {\n unit = 'year';\n }\n } else {\n unit = String(options.unit);\n } // 0 up to 60 seconds\n\n\n if (unit === 'second') {\n var seconds = roundingMethodFn(milliseconds / 1000);\n return locale.formatDistance('xSeconds', seconds, localizeOptions); // 1 up to 60 mins\n } else if (unit === 'minute') {\n var roundedMinutes = roundingMethodFn(minutes);\n return locale.formatDistance('xMinutes', roundedMinutes, localizeOptions); // 1 up to 24 hours\n } else if (unit === 'hour') {\n var hours = roundingMethodFn(minutes / 60);\n return locale.formatDistance('xHours', hours, localizeOptions); // 1 up to 30 days\n } else if (unit === 'day') {\n var days = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 up to 12 months\n } else if (unit === 'month') {\n var months = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_MONTH);\n return months === 12 && options.unit !== 'month' ? locale.formatDistance('xYears', 1, localizeOptions) : locale.formatDistance('xMonths', months, localizeOptions); // 1 year up to max Date\n } else if (unit === 'year') {\n var years = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_YEAR);\n return locale.formatDistance('xYears', years, localizeOptions);\n }\n\n throw new RangeError(\"unit must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\");\n}","import formatDistanceStrict from \"../formatDistanceStrict/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name formatDistanceToNowStrict\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = formatDistanceToNowStrict(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = formatDistanceToNowStrict(\n * new Date(2015, 0, 1, 0, 0, 15)\n * )\n * //=> '20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = formatDistanceToNowStrict(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in 1 year'\n *\n * @example\n * // If today is 28 January 2015,\n * // what is the distance to 1 January 2015, in months, rounded up??\n * var result = formatDistanceToNowStrict(new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = formatDistanceToNowStrict(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceToNowStrict(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n return formatDistanceStrict(dirtyDate, Date.now(), dirtyOptions);\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The previous `parse` implementation was renamed to `parseISO`.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * parseISO('2016-01-01')\n * ```\n *\n * - `parseISO` now validates separate date and time values in ISO-8601 strings\n * and returns `Invalid Date` if the date is invalid.\n *\n * ```javascript\n * parseISO('2018-13-32')\n * //=> Invalid Date\n * ```\n *\n * - `parseISO` now doesn't fall back to `new Date` constructor\n * if it fails to parse a string argument. Instead, it returns `Invalid Date`.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? 2 : toInteger(options.additionalDigits);\n\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n\n var dateStrings = splitDateString(argument);\n var date;\n\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null; // either year or century is null, not both\n\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isPast\n * @category Common Helpers\n * @summary Is the given date in the past?\n * @pure false\n *\n * @description\n * Is the given date in the past?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is in the past\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 2 July 2014 in the past?\n * var result = isPast(new Date(2014, 6, 2))\n * //=> true\n */\n\nexport default function isPast(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getTime() < Date.now();\n}","import formatDistanceToNow from \"date-fns/formatDistanceToNow\";\nimport formatDistanceToNowStrict from \"date-fns/formatDistanceToNowStrict\";\nimport parseISO from \"date-fns/parseISO\";\nimport isPast from \"date-fns/isPast\";\n\nlet locale = null;\n\nfunction TimeAgo(Alpine) {\n Alpine.directive(\n \"timeago\",\n (el, { expression, modifiers }, { evaluateLater, effect, cleanup }) => {\n let evaluateDate = evaluateLater(expression);\n\n const render = (date) => {\n if (typeof date === \"string\") {\n date = parseISO(date);\n }\n\n try {\n if (modifiers.includes(\"strict\")) {\n let unit = modifiers.includes(\"unit\")\n ? modifiers[\n modifiers.findIndex((modifier) => modifier === \"unit\") + 1\n ] || undefined\n : undefined;\n if (\n ![\"second\", \"minute\", \"hour\", \"day\", \"month\", \"year\"].includes(\n unit\n )\n ) {\n unit = undefined;\n }\n let roundingMethod = modifiers.includes(\"rounding\")\n ? modifiers[\n modifiers.findIndex((modifier) => modifier === \"rounding\") + 1\n ] || undefined\n : undefined;\n if (![\"floor\", \"ceil\", \"round\"].includes(roundingMethod)) {\n roundingMethod = undefined;\n }\n el.textContent = formatDistanceToNowStrict(date, {\n addSuffix: !modifiers.includes(\"pure\"),\n unit,\n roundingMethod,\n locale,\n });\n } else {\n el.textContent = formatDistanceToNow(date, {\n addSuffix: !modifiers.includes(\"pure\"),\n includeSeconds: modifiers.includes(\"seconds\"),\n locale,\n });\n }\n\n dispatch(date);\n } catch (e) {\n console.error(e);\n }\n };\n\n let interval;\n\n const dispatch = (date) => {\n el.dispatchEvent(new CustomEvent(\"timeago:render\", { detail: { isPast: isPast(date) }, bubbles: false }));\n };\n\n const setupInterval = (date) => {\n let intervalDuration = 30000;\n if (modifiers.includes(\"seconds\")) {\n intervalDuration = 5000;\n }\n\n interval = setInterval(() => {\n render(date);\n }, intervalDuration);\n };\n\n const intersectionObserver = new IntersectionObserver((entries) => {\n const [entry] = entries;\n const {isIntersecting} = entry;\n if (isIntersecting) {\n evaluateDate((date) => {\n if (!interval) {\n setupInterval(date);\n render(date);\n }\n });\n } else {\n if (interval) {\n clearInterval(interval);\n interval = undefined;\n }\n }\n });\n\n intersectionObserver.observe(el);\n\n effect(() => {\n evaluateDate((date) => {\n if (interval) {\n clearInterval(interval);\n }\n\n render(date);\n\n setupInterval(date);\n });\n });\n\n cleanup(() => clearInterval(interval));\n }\n );\n\n Alpine.magic(\"timeago\", () => (expression, pure, seconds, strictOptions) => {\n if (pure == null) {\n pure = false;\n }\n if (seconds == null) {\n seconds = false;\n }\n if (strictOptions != null && (strictOptions[\"strict\"] || undefined)) {\n return formatDistanceToNowStrict(expression, {\n addSuffix: !pure,\n unit: strictOptions[\"unit\"] || undefined,\n roundingMethod: strictOptions[\"roundingMethod\"] || undefined,\n locale,\n });\n }\n return formatDistanceToNow(expression, {\n addSuffix: !pure,\n includeSeconds: seconds,\n locale,\n });\n });\n}\n\nTimeAgo.configure = (config) => {\n if (config.hasOwnProperty(\"locale\") && typeof config.locale === \"object\") {\n if (config.locale.hasOwnProperty(\"formatDistance\")) {\n locale = config.locale;\n }\n }\n\n return TimeAgo;\n};\n\nexport default TimeAgo;\n","import TimeAgo from '../src/index.js';\n\ndocument.addEventListener('alpine:init', () => {\n TimeAgo(window.Alpine);\n});\n"],"names":["formatDistance","locale","formatLong","formatRelative","localize","match","MINUTES_IN_DAY","MINUTES_IN_MONTH","distanceInWords","TimeAgo","Alpine","directive","el","expression","modifiers","evaluateLater","effect","cleanup","evaluateDate","render","date","parseISO","includes","unit","findIndex","modifier","undefined","roundingMethod","textContent","formatDistanceToNowStrict","addSuffix","formatDistanceToNow","includeSeconds","dispatch","e","console","error","interval","dispatchEvent","CustomEvent","detail","isPast","bubbles","setupInterval","intervalDuration","setInterval","intersectionObserver","IntersectionObserver","entries","entry","isIntersecting","clearInterval","observe","magic","pure","seconds","strictOptions","configure","config","hasOwnProperty","document","addEventListener","window"],"mappings":";;;;;EAAe,SAAS,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE;EACrD,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE;EAC9B,IAAI,MAAM,IAAI,SAAS,CAAC,QAAQ,GAAG,WAAW,IAAI,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,sBAAsB,GAAG,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;EAChI,GAAG;EACH;;ECHA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACe,SAAS,MAAM,CAAC,QAAQ,EAAE;EACzC,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC7B,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxD;EACA,EAAE,IAAI,QAAQ,YAAY,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,KAAK,eAAe,EAAE;EAC9F;EACA,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;EACxC,GAAG,MAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,KAAK,iBAAiB,EAAE;EAC3E,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;EAC9B,GAAG,MAAM;EACT,IAAI,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,KAAK,iBAAiB,KAAK,OAAO,OAAO,KAAK,WAAW,EAAE;EAC1G;EACA,MAAM,OAAO,CAAC,IAAI,CAAC,kJAAkJ,CAAC,CAAC;AACvK;EACA,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;EACtC,KAAK;AACL;EACA,IAAI,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;EACzB,GAAG;EACH;;ECjDA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACe,SAAS,UAAU,CAAC,aAAa,EAAE,cAAc,EAAE;EAClE,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC7B,EAAE,IAAI,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;EACvC,EAAE,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;EACzC,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;AACtD;EACA,EAAE,IAAI,IAAI,GAAG,CAAC,EAAE;EAChB,IAAI,OAAO,CAAC,CAAC,CAAC;EACd,GAAG,MAAM,IAAI,IAAI,GAAG,CAAC,EAAE;EACvB,IAAI,OAAO,CAAC,CAAC;EACb,GAAG,MAAM;EACT,IAAI,OAAO,IAAI,CAAC;EAChB,GAAG;EACH;;EClDA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACe,SAAS,0BAA0B,CAAC,aAAa,EAAE,cAAc,EAAE;EAClF,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC7B,EAAE,IAAI,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;EACvC,EAAE,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;EACzC,EAAE,IAAI,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;EAClE,EAAE,IAAI,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;EAC7D,EAAE,OAAO,QAAQ,GAAG,EAAE,GAAG,SAAS,CAAC;EACnC;;ECjCA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACe,SAAS,QAAQ,CAAC,SAAS,EAAE;EAC5C,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC7B,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;EAC/B,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;EACjC,EAAE,OAAO,IAAI,CAAC;EACd;;EC5BA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACe,SAAS,UAAU,CAAC,SAAS,EAAE;EAC9C,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC7B,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;EAC/B,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;EAC9B,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;EACrD,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;EACjC,EAAE,OAAO,IAAI,CAAC;EACd;;EC5BA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACe,SAAS,gBAAgB,CAAC,SAAS,EAAE;EACpD,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC7B,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;EAC/B,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;EACjE;;ECzBA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACe,SAAS,kBAAkB,CAAC,aAAa,EAAE,cAAc,EAAE;EAC1E,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC7B,EAAE,IAAI,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;EACvC,EAAE,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;EACzC,EAAE,IAAI,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;EAC7C,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;EAC7E,EAAE,IAAI,MAAM,CAAC;AACb;EACA,EAAE,IAAI,UAAU,GAAG,CAAC,EAAE;EACtB,IAAI,MAAM,GAAG,CAAC,CAAC;EACf,GAAG,MAAM;EACT,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;EAC9D;EACA;EACA,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;EAC3B,KAAK;AACL;EACA,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,IAAI,GAAG,UAAU,CAAC,CAAC;EAC/D;AACA;EACA,IAAI,IAAI,kBAAkB,GAAG,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACvE;EACA,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE;EACnH,MAAM,kBAAkB,GAAG,KAAK,CAAC;EACjC,KAAK;AACL;EACA,IAAI,MAAM,GAAG,IAAI,IAAI,UAAU,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;EAC9D,GAAG;AACH;AACA;EACA,EAAE,OAAO,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;EACnC;;ECzDA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACe,SAAS,wBAAwB,CAAC,QAAQ,EAAE,SAAS,EAAE;EACtE,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC7B,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;EAClE;;EChCA,IAAI,WAAW,GAAG;EAClB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI;EACjB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK;EACnB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK;EACnB,EAAE,KAAK,EAAE,UAAU,KAAK,EAAE;EAC1B,IAAI,OAAO,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;EAC5D,GAAG;AACH;EACA,CAAC,CAAC;EACF,IAAI,qBAAqB,GAAG,OAAO,CAAC;EAC7B,SAAS,iBAAiB,CAAC,MAAM,EAAE;EAC1C,EAAE,OAAO,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC;EAC3E;;ECTA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACe,SAAS,mBAAmB,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE;EAC1E,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC7B,EAAE,IAAI,IAAI,GAAG,wBAAwB,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC;EAClE,EAAE,OAAO,iBAAiB,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC;EAC3G;;ECpCA,IAAI,oBAAoB,GAAG;EAC3B,EAAE,gBAAgB,EAAE;EACpB,IAAI,GAAG,EAAE,oBAAoB;EAC7B,IAAI,KAAK,EAAE,6BAA6B;EACxC,GAAG;EACH,EAAE,QAAQ,EAAE;EACZ,IAAI,GAAG,EAAE,UAAU;EACnB,IAAI,KAAK,EAAE,mBAAmB;EAC9B,GAAG;EACH,EAAE,WAAW,EAAE,eAAe;EAC9B,EAAE,gBAAgB,EAAE;EACpB,IAAI,GAAG,EAAE,oBAAoB;EAC7B,IAAI,KAAK,EAAE,6BAA6B;EACxC,GAAG;EACH,EAAE,QAAQ,EAAE;EACZ,IAAI,GAAG,EAAE,UAAU;EACnB,IAAI,KAAK,EAAE,mBAAmB;EAC9B,GAAG;EACH,EAAE,WAAW,EAAE;EACf,IAAI,GAAG,EAAE,cAAc;EACvB,IAAI,KAAK,EAAE,uBAAuB;EAClC,GAAG;EACH,EAAE,MAAM,EAAE;EACV,IAAI,GAAG,EAAE,QAAQ;EACjB,IAAI,KAAK,EAAE,iBAAiB;EAC5B,GAAG;EACH,EAAE,KAAK,EAAE;EACT,IAAI,GAAG,EAAE,OAAO;EAChB,IAAI,KAAK,EAAE,gBAAgB;EAC3B,GAAG;EACH,EAAE,WAAW,EAAE;EACf,IAAI,GAAG,EAAE,cAAc;EACvB,IAAI,KAAK,EAAE,uBAAuB;EAClC,GAAG;EACH,EAAE,MAAM,EAAE;EACV,IAAI,GAAG,EAAE,QAAQ;EACjB,IAAI,KAAK,EAAE,iBAAiB;EAC5B,GAAG;EACH,EAAE,YAAY,EAAE;EAChB,IAAI,GAAG,EAAE,eAAe;EACxB,IAAI,KAAK,EAAE,wBAAwB;EACnC,GAAG;EACH,EAAE,OAAO,EAAE;EACX,IAAI,GAAG,EAAE,SAAS;EAClB,IAAI,KAAK,EAAE,kBAAkB;EAC7B,GAAG;EACH,EAAE,WAAW,EAAE;EACf,IAAI,GAAG,EAAE,cAAc;EACvB,IAAI,KAAK,EAAE,uBAAuB;EAClC,GAAG;EACH,EAAE,MAAM,EAAE;EACV,IAAI,GAAG,EAAE,QAAQ;EACjB,IAAI,KAAK,EAAE,iBAAiB;EAC5B,GAAG;EACH,EAAE,UAAU,EAAE;EACd,IAAI,GAAG,EAAE,aAAa;EACtB,IAAI,KAAK,EAAE,sBAAsB;EACjC,GAAG;EACH,EAAE,YAAY,EAAE;EAChB,IAAI,GAAG,EAAE,eAAe;EACxB,IAAI,KAAK,EAAE,wBAAwB;EACnC,GAAG;EACH,CAAC,CAAC;AACF;EACA,IAAIA,gBAAc,GAAG,UAAU,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;EACtD,EAAE,IAAI,MAAM,CAAC;EACb,EAAE,IAAI,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAC/C;EACA,EAAE,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;EACtC,IAAI,MAAM,GAAG,UAAU,CAAC;EACxB,GAAG,MAAM,IAAI,KAAK,KAAK,CAAC,EAAE;EAC1B,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC;EAC5B,GAAG,MAAM;EACT,IAAI,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;EACrE,GAAG;AACH;EACA,EAAE,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE;EACnE,IAAI,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE;EACtD,MAAM,OAAO,KAAK,GAAG,MAAM,CAAC;EAC5B,KAAK,MAAM;EACX,MAAM,OAAO,MAAM,GAAG,MAAM,CAAC;EAC7B,KAAK;EACL,GAAG;AACH;EACA,EAAE,OAAO,MAAM,CAAC;EAChB,CAAC,CAAC;AACF;AACA,yBAAeA,gBAAc;;ECvFd,SAAS,iBAAiB,CAAC,IAAI,EAAE;EAChD,EAAE,OAAO,YAAY;EACrB,IAAI,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;EACzF;EACA,IAAI,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;EAC1E,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;EACxE,IAAI,OAAO,MAAM,CAAC;EAClB,GAAG,CAAC;EACJ;;ECPA,IAAI,WAAW,GAAG;EAClB,EAAE,IAAI,EAAE,kBAAkB;EAC1B,EAAE,IAAI,EAAE,YAAY;EACpB,EAAE,MAAM,EAAE,UAAU;EACpB,EAAE,KAAK,EAAE,YAAY;EACrB,CAAC,CAAC;EACF,IAAI,WAAW,GAAG;EAClB,EAAE,IAAI,EAAE,gBAAgB;EACxB,EAAE,IAAI,EAAE,aAAa;EACrB,EAAE,MAAM,EAAE,WAAW;EACrB,EAAE,KAAK,EAAE,QAAQ;EACjB,CAAC,CAAC;EACF,IAAI,eAAe,GAAG;EACtB,EAAE,IAAI,EAAE,wBAAwB;EAChC,EAAE,IAAI,EAAE,wBAAwB;EAChC,EAAE,MAAM,EAAE,oBAAoB;EAC9B,EAAE,KAAK,EAAE,oBAAoB;EAC7B,CAAC,CAAC;EACF,IAAI,UAAU,GAAG;EACjB,EAAE,IAAI,EAAE,iBAAiB,CAAC;EAC1B,IAAI,OAAO,EAAE,WAAW;EACxB,IAAI,YAAY,EAAE,MAAM;EACxB,GAAG,CAAC;EACJ,EAAE,IAAI,EAAE,iBAAiB,CAAC;EAC1B,IAAI,OAAO,EAAE,WAAW;EACxB,IAAI,YAAY,EAAE,MAAM;EACxB,GAAG,CAAC;EACJ,EAAE,QAAQ,EAAE,iBAAiB,CAAC;EAC9B,IAAI,OAAO,EAAE,eAAe;EAC5B,IAAI,YAAY,EAAE,MAAM;EACxB,GAAG,CAAC;EACJ,CAAC,CAAC;AACF,qBAAe,UAAU;;ECjCzB,IAAI,oBAAoB,GAAG;EAC3B,EAAE,QAAQ,EAAE,oBAAoB;EAChC,EAAE,SAAS,EAAE,kBAAkB;EAC/B,EAAE,KAAK,EAAE,cAAc;EACvB,EAAE,QAAQ,EAAE,iBAAiB;EAC7B,EAAE,QAAQ,EAAE,aAAa;EACzB,EAAE,KAAK,EAAE,GAAG;EACZ,CAAC,CAAC;AACF;EACA,IAAI,cAAc,GAAG,UAAU,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE;EAClE,EAAE,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;EACrC,CAAC,CAAC;AACF;AACA,yBAAe,cAAc;;ECbd,SAAS,eAAe,CAAC,IAAI,EAAE;EAC9C,EAAE,OAAO,UAAU,UAAU,EAAE,YAAY,EAAE;EAC7C,IAAI,IAAI,OAAO,GAAG,YAAY,IAAI,EAAE,CAAC;EACrC,IAAI,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;EAC3E,IAAI,IAAI,WAAW,CAAC;AACpB;EACA,IAAI,IAAI,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,gBAAgB,EAAE;EAC3D,MAAM,IAAI,YAAY,GAAG,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,YAAY,CAAC;EAC1E,MAAM,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;EACvE,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;EACxF,KAAK,MAAM;EACX,MAAM,IAAI,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;AAC5C;EACA,MAAM,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;AAC7E;EACA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;EACtE,KAAK;AACL;EACA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;AACvF;EACA,IAAI,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;EAC9B,GAAG,CAAC;EACJ;;ECrBA,IAAI,SAAS,GAAG;EAChB,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;EACpB,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;EAC3B,EAAE,IAAI,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC;EACxC,CAAC,CAAC;EACF,IAAI,aAAa,GAAG;EACpB,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EAC9B,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;EACvC,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC;EACpE,CAAC,CAAC;EACF;EACA;EACA;AACA;EACA,IAAI,WAAW,GAAG;EAClB,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACtE,EAAE,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;EACnG,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;EAClI,CAAC,CAAC;EACF,IAAI,SAAS,GAAG;EAChB,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EAC7C,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;EACnD,EAAE,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;EAChE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC;EACtF,CAAC,CAAC;EACF,IAAI,eAAe,GAAG;EACtB,EAAE,MAAM,EAAE;EACV,IAAI,EAAE,EAAE,GAAG;EACX,IAAI,EAAE,EAAE,GAAG;EACX,IAAI,QAAQ,EAAE,IAAI;EAClB,IAAI,IAAI,EAAE,GAAG;EACb,IAAI,OAAO,EAAE,SAAS;EACtB,IAAI,SAAS,EAAE,WAAW;EAC1B,IAAI,OAAO,EAAE,SAAS;EACtB,IAAI,KAAK,EAAE,OAAO;EAClB,GAAG;EACH,EAAE,WAAW,EAAE;EACf,IAAI,EAAE,EAAE,IAAI;EACZ,IAAI,EAAE,EAAE,IAAI;EACZ,IAAI,QAAQ,EAAE,UAAU;EACxB,IAAI,IAAI,EAAE,MAAM;EAChB,IAAI,OAAO,EAAE,SAAS;EACtB,IAAI,SAAS,EAAE,WAAW;EAC1B,IAAI,OAAO,EAAE,SAAS;EACtB,IAAI,KAAK,EAAE,OAAO;EAClB,GAAG;EACH,EAAE,IAAI,EAAE;EACR,IAAI,EAAE,EAAE,MAAM;EACd,IAAI,EAAE,EAAE,MAAM;EACd,IAAI,QAAQ,EAAE,UAAU;EACxB,IAAI,IAAI,EAAE,MAAM;EAChB,IAAI,OAAO,EAAE,SAAS;EACtB,IAAI,SAAS,EAAE,WAAW;EAC1B,IAAI,OAAO,EAAE,SAAS;EACtB,IAAI,KAAK,EAAE,OAAO;EAClB,GAAG;EACH,CAAC,CAAC;EACF,IAAI,yBAAyB,GAAG;EAChC,EAAE,MAAM,EAAE;EACV,IAAI,EAAE,EAAE,GAAG;EACX,IAAI,EAAE,EAAE,GAAG;EACX,IAAI,QAAQ,EAAE,IAAI;EAClB,IAAI,IAAI,EAAE,GAAG;EACb,IAAI,OAAO,EAAE,gBAAgB;EAC7B,IAAI,SAAS,EAAE,kBAAkB;EACjC,IAAI,OAAO,EAAE,gBAAgB;EAC7B,IAAI,KAAK,EAAE,UAAU;EACrB,GAAG;EACH,EAAE,WAAW,EAAE;EACf,IAAI,EAAE,EAAE,IAAI;EACZ,IAAI,EAAE,EAAE,IAAI;EACZ,IAAI,QAAQ,EAAE,UAAU;EACxB,IAAI,IAAI,EAAE,MAAM;EAChB,IAAI,OAAO,EAAE,gBAAgB;EAC7B,IAAI,SAAS,EAAE,kBAAkB;EACjC,IAAI,OAAO,EAAE,gBAAgB;EAC7B,IAAI,KAAK,EAAE,UAAU;EACrB,GAAG;EACH,EAAE,IAAI,EAAE;EACR,IAAI,EAAE,EAAE,MAAM;EACd,IAAI,EAAE,EAAE,MAAM;EACd,IAAI,QAAQ,EAAE,UAAU;EACxB,IAAI,IAAI,EAAE,MAAM;EAChB,IAAI,OAAO,EAAE,gBAAgB;EAC7B,IAAI,SAAS,EAAE,kBAAkB;EACjC,IAAI,OAAO,EAAE,gBAAgB;EAC7B,IAAI,KAAK,EAAE,UAAU;EACrB,GAAG;EACH,CAAC,CAAC;AACF;EACA,IAAI,aAAa,GAAG,UAAU,WAAW,EAAE,QAAQ,EAAE;EACrD,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;EACnC;EACA;EACA;EACA;EACA;AACA;EACA,EAAE,IAAI,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;AAC5B;EACA,EAAE,IAAI,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,EAAE,EAAE;EAClC,IAAI,QAAQ,MAAM,GAAG,EAAE;EACvB,MAAM,KAAK,CAAC;EACZ,QAAQ,OAAO,MAAM,GAAG,IAAI,CAAC;AAC7B;EACA,MAAM,KAAK,CAAC;EACZ,QAAQ,OAAO,MAAM,GAAG,IAAI,CAAC;AAC7B;EACA,MAAM,KAAK,CAAC;EACZ,QAAQ,OAAO,MAAM,GAAG,IAAI,CAAC;EAC7B,KAAK;EACL,GAAG;AACH;EACA,EAAE,OAAO,MAAM,GAAG,IAAI,CAAC;EACvB,CAAC,CAAC;AACF;EACA,IAAI,QAAQ,GAAG;EACf,EAAE,aAAa,EAAE,aAAa;EAC9B,EAAE,GAAG,EAAE,eAAe,CAAC;EACvB,IAAI,MAAM,EAAE,SAAS;EACrB,IAAI,YAAY,EAAE,MAAM;EACxB,GAAG,CAAC;EACJ,EAAE,OAAO,EAAE,eAAe,CAAC;EAC3B,IAAI,MAAM,EAAE,aAAa;EACzB,IAAI,YAAY,EAAE,MAAM;EACxB,IAAI,gBAAgB,EAAE,UAAU,OAAO,EAAE;EACzC,MAAM,OAAO,OAAO,GAAG,CAAC,CAAC;EACzB,KAAK;EACL,GAAG,CAAC;EACJ,EAAE,KAAK,EAAE,eAAe,CAAC;EACzB,IAAI,MAAM,EAAE,WAAW;EACvB,IAAI,YAAY,EAAE,MAAM;EACxB,GAAG,CAAC;EACJ,EAAE,GAAG,EAAE,eAAe,CAAC;EACvB,IAAI,MAAM,EAAE,SAAS;EACrB,IAAI,YAAY,EAAE,MAAM;EACxB,GAAG,CAAC;EACJ,EAAE,SAAS,EAAE,eAAe,CAAC;EAC7B,IAAI,MAAM,EAAE,eAAe;EAC3B,IAAI,YAAY,EAAE,MAAM;EACxB,IAAI,gBAAgB,EAAE,yBAAyB;EAC/C,IAAI,sBAAsB,EAAE,MAAM;EAClC,GAAG,CAAC;EACJ,CAAC,CAAC;AACF,mBAAe,QAAQ;;ECjJR,SAAS,YAAY,CAAC,IAAI,EAAE;EAC3C,EAAE,OAAO,UAAU,MAAM,EAAE;EAC3B,IAAI,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;EACzF,IAAI,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;EAC9B,IAAI,IAAI,YAAY,GAAG,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;EACxG,IAAI,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACjD;EACA,IAAI,IAAI,CAAC,WAAW,EAAE;EACtB,MAAM,OAAO,IAAI,CAAC;EAClB,KAAK;AACL;EACA,IAAI,IAAI,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;EACvC,IAAI,IAAI,aAAa,GAAG,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;EACzG,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,aAAa,EAAE,UAAU,OAAO,EAAE;EACzF,MAAM,OAAO,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;EACzC,KAAK,CAAC,GAAG,OAAO,CAAC,aAAa,EAAE,UAAU,OAAO,EAAE;EACnD,MAAM,OAAO,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;EACzC,KAAK,CAAC,CAAC;EACP,IAAI,IAAI,KAAK,CAAC;EACd,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;EAC/D,IAAI,KAAK,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;EACzE,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;EAClD,IAAI,OAAO;EACX,MAAM,KAAK,EAAE,KAAK;EAClB,MAAM,IAAI,EAAE,IAAI;EAChB,KAAK,CAAC;EACN,GAAG,CAAC;EACJ,CAAC;AACD;EACA,SAAS,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE;EACpC,EAAE,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;EAC1B,IAAI,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;EAC9D,MAAM,OAAO,GAAG,CAAC;EACjB,KAAK;EACL,GAAG;AACH;EACA,EAAE,OAAO,SAAS,CAAC;EACnB,CAAC;AACD;EACA,SAAS,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE;EACrC,EAAE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;EAC/C,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;EAC/B,MAAM,OAAO,GAAG,CAAC;EACjB,KAAK;EACL,GAAG;AACH;EACA,EAAE,OAAO,SAAS,CAAC;EACnB;;EC/Ce,SAAS,mBAAmB,CAAC,IAAI,EAAE;EAClD,EAAE,OAAO,UAAU,MAAM,EAAE;EAC3B,IAAI,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;EACzF,IAAI,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;EACtD,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,CAAC;EAClC,IAAI,IAAI,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;EACvC,IAAI,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;EACtD,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,CAAC;EAClC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;EACzF,IAAI,KAAK,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;EACzE,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;EAClD,IAAI,OAAO;EACX,MAAM,KAAK,EAAE,KAAK;EAClB,MAAM,IAAI,EAAE,IAAI;EAChB,KAAK,CAAC;EACN,GAAG,CAAC;EACJ;;ECdA,IAAI,yBAAyB,GAAG,uBAAuB,CAAC;EACxD,IAAI,yBAAyB,GAAG,MAAM,CAAC;EACvC,IAAI,gBAAgB,GAAG;EACvB,EAAE,MAAM,EAAE,SAAS;EACnB,EAAE,WAAW,EAAE,4DAA4D;EAC3E,EAAE,IAAI,EAAE,4DAA4D;EACpE,CAAC,CAAC;EACF,IAAI,gBAAgB,GAAG;EACvB,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;EACzB,CAAC,CAAC;EACF,IAAI,oBAAoB,GAAG;EAC3B,EAAE,MAAM,EAAE,UAAU;EACpB,EAAE,WAAW,EAAE,WAAW;EAC1B,EAAE,IAAI,EAAE,gCAAgC;EACxC,CAAC,CAAC;EACF,IAAI,oBAAoB,GAAG;EAC3B,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;EAC/B,CAAC,CAAC;EACF,IAAI,kBAAkB,GAAG;EACzB,EAAE,MAAM,EAAE,cAAc;EACxB,EAAE,WAAW,EAAE,qDAAqD;EACpE,EAAE,IAAI,EAAE,2FAA2F;EACnG,CAAC,CAAC;EACF,IAAI,kBAAkB,GAAG;EACzB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;EAC9F,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;EACtG,CAAC,CAAC;EACF,IAAI,gBAAgB,GAAG;EACvB,EAAE,MAAM,EAAE,WAAW;EACrB,EAAE,KAAK,EAAE,0BAA0B;EACnC,EAAE,WAAW,EAAE,iCAAiC;EAChD,EAAE,IAAI,EAAE,8DAA8D;EACtE,CAAC,CAAC;EACF,IAAI,gBAAgB,GAAG;EACvB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;EAC3D,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;EAC5D,CAAC,CAAC;EACF,IAAI,sBAAsB,GAAG;EAC7B,EAAE,MAAM,EAAE,4DAA4D;EACtE,EAAE,GAAG,EAAE,gFAAgF;EACvF,CAAC,CAAC;EACF,IAAI,sBAAsB,GAAG;EAC7B,EAAE,GAAG,EAAE;EACP,IAAI,EAAE,EAAE,KAAK;EACb,IAAI,EAAE,EAAE,KAAK;EACb,IAAI,QAAQ,EAAE,MAAM;EACpB,IAAI,IAAI,EAAE,MAAM;EAChB,IAAI,OAAO,EAAE,UAAU;EACvB,IAAI,SAAS,EAAE,YAAY;EAC3B,IAAI,OAAO,EAAE,UAAU;EACvB,IAAI,KAAK,EAAE,QAAQ;EACnB,GAAG;EACH,CAAC,CAAC;EACF,IAAI,KAAK,GAAG;EACZ,EAAE,aAAa,EAAE,mBAAmB,CAAC;EACrC,IAAI,YAAY,EAAE,yBAAyB;EAC3C,IAAI,YAAY,EAAE,yBAAyB;EAC3C,IAAI,aAAa,EAAE,UAAU,KAAK,EAAE;EACpC,MAAM,OAAO,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;EACjC,KAAK;EACL,GAAG,CAAC;EACJ,EAAE,GAAG,EAAE,YAAY,CAAC;EACpB,IAAI,aAAa,EAAE,gBAAgB;EACnC,IAAI,iBAAiB,EAAE,MAAM;EAC7B,IAAI,aAAa,EAAE,gBAAgB;EACnC,IAAI,iBAAiB,EAAE,KAAK;EAC5B,GAAG,CAAC;EACJ,EAAE,OAAO,EAAE,YAAY,CAAC;EACxB,IAAI,aAAa,EAAE,oBAAoB;EACvC,IAAI,iBAAiB,EAAE,MAAM;EAC7B,IAAI,aAAa,EAAE,oBAAoB;EACvC,IAAI,iBAAiB,EAAE,KAAK;EAC5B,IAAI,aAAa,EAAE,UAAU,KAAK,EAAE;EACpC,MAAM,OAAO,KAAK,GAAG,CAAC,CAAC;EACvB,KAAK;EACL,GAAG,CAAC;EACJ,EAAE,KAAK,EAAE,YAAY,CAAC;EACtB,IAAI,aAAa,EAAE,kBAAkB;EACrC,IAAI,iBAAiB,EAAE,MAAM;EAC7B,IAAI,aAAa,EAAE,kBAAkB;EACrC,IAAI,iBAAiB,EAAE,KAAK;EAC5B,GAAG,CAAC;EACJ,EAAE,GAAG,EAAE,YAAY,CAAC;EACpB,IAAI,aAAa,EAAE,gBAAgB;EACnC,IAAI,iBAAiB,EAAE,MAAM;EAC7B,IAAI,aAAa,EAAE,gBAAgB;EACnC,IAAI,iBAAiB,EAAE,KAAK;EAC5B,GAAG,CAAC;EACJ,EAAE,SAAS,EAAE,YAAY,CAAC;EAC1B,IAAI,aAAa,EAAE,sBAAsB;EACzC,IAAI,iBAAiB,EAAE,KAAK;EAC5B,IAAI,aAAa,EAAE,sBAAsB;EACzC,IAAI,iBAAiB,EAAE,KAAK;EAC5B,GAAG,CAAC;EACJ,CAAC,CAAC;AACF,gBAAe,KAAK;;EC3FpB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAIC,QAAM,GAAG;EACb,EAAE,IAAI,EAAE,OAAO;EACf,EAAE,cAAc,EAAED,gBAAc;EAChC,EAAE,UAAU,EAAEE,YAAU;EACxB,EAAE,cAAc,EAAEC,gBAAc;EAChC,EAAE,QAAQ,EAAEC,UAAQ;EACpB,EAAE,KAAK,EAAEC,OAAK;EACd,EAAE,OAAO,EAAE;EACX,IAAI,YAAY,EAAE,CAAC;EACnB;EACA;EACA,IAAI,qBAAqB,EAAE,CAAC;EAC5B,GAAG;EACH,CAAC,CAAC;AACF,sBAAeJ,QAAM;;EC7BN,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE;EACpD,EAAE,IAAI,MAAM,IAAI,IAAI,EAAE;EACtB,IAAI,MAAM,IAAI,SAAS,CAAC,+DAA+D,CAAC,CAAC;EACzF,GAAG;AACH;EACA,EAAE,WAAW,GAAG,WAAW,IAAI,EAAE,CAAC;AAClC;EACA,EAAE,KAAK,IAAI,QAAQ,IAAI,WAAW,EAAE;EACpC,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE;EACrE,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;EAC/C,KAAK;EACL,GAAG;AACH;EACA,EAAE,OAAO,MAAM,CAAC;EAChB;;ECbe,SAAS,WAAW,CAAC,WAAW,EAAE;EACjD,EAAE,OAAO,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;EACjC;;ECHA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACe,SAAS,+BAA+B,CAAC,IAAI,EAAE;EAC9D,EAAE,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;EACvK,EAAE,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;EAC7C,EAAE,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;EAC5C;;ECPA,IAAIK,gBAAc,GAAG,IAAI,CAAC;EAC1B,IAAI,0BAA0B,GAAG,IAAI,CAAC;EACtC,IAAIC,kBAAgB,GAAG,KAAK,CAAC;EAC7B,IAAI,qBAAqB,GAAG,KAAK,CAAC;EAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACe,SAAS,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE;EACjE,EAAE,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;EACvF,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC7B,EAAE,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC;AAC/C;EACA,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;EAC9B,IAAI,MAAM,IAAI,UAAU,CAAC,6CAA6C,CAAC,CAAC;EACxE,GAAG;AACH;EACA,EAAE,IAAI,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AACxD;EACA,EAAE,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;EACzB,IAAI,MAAM,IAAI,UAAU,CAAC,oBAAoB,CAAC,CAAC;EAC/C,GAAG;AACH;EACA,EAAE,IAAI,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC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CA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACe,SAAS,mBAAmB,CAAC,SAAS,EAAE,YAAY,EAAE;EACrE,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC7B,EAAE,OAAOC,cAAe,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;EAC9D;;ECzGA,IAAI,sBAAsB,GAAG,IAAI,GAAG,EAAE,CAAC;EACvC,IAAI,cAAc,GAAG,EAAE,GAAG,EAAE,CAAC;EAC7B,IAAI,gBAAgB,GAAG,cAAc,GAAG,EAAE,CAAC;EAC3C,IAAI,eAAe,GAAG,cAAc,GAAG,GAAG,CAAC;EAC3C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;E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C;EACnE,GAAG;AACH;EACA,EAAE,MAAM,IAAI,UAAU,CAAC,mEAAmE,CAAC,CAAC;EAC5F;;ECzPA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACe,SAAS,yBAAyB,CAAC,SAAS,EAAE,YAAY,EAAE;EAC3E,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC7B,EAAE,OAAO,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;EACnE;;EChFA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAYA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACO,IAAI,oBAAoB,GAAG,KAAK,CAAC;EACxC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACO,IAAI,kBAAkB,GAAG,OAAO;;ECtCxB,SAAS,SAAS,CAAC,WAAW,EAAE;EAC/C,EAAE,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,KAAK,EAAE;EAC7E,IAAI,OAAO,GAAG,CAAC;EACf,GAAG;AACH;EACA,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AACnC;EACA,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;EACrB,IAAI,OAAO,MAAM,CAAC;EAClB,GAAG;AACH;EACA,EAAE,OAAO,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,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"} \ No newline at end of file diff --git a/dist/alpine-timeago.min.js b/dist/alpine-timeago.min.js index 9f9c822..996111e 100644 --- a/dist/alpine-timeago.min.js +++ b/dist/alpine-timeago.min.js @@ -1,2 +1,2 @@ -!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";function e(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function t(t){e(1,arguments);var n=Object.prototype.toString.call(t);return t instanceof Date||"object"==typeof t&&"[object Date]"===n?new Date(t.getTime()):"number"==typeof t||"[object Number]"===n?new Date(t):("string"!=typeof t&&"[object String]"!==n||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function n(n,a){e(2,arguments);var r=t(n),i=t(a),o=r.getTime()-i.getTime();return o<0?-1:o>0?1:o}function a(n,a){e(2,arguments);var r=t(n),i=t(a),o=r.getFullYear()-i.getFullYear(),u=r.getMonth()-i.getMonth();return 12*o+u}function r(n){e(1,arguments);var a=t(n);return a.setHours(23,59,59,999),a}function i(n){e(1,arguments);var a=t(n),r=a.getMonth();return a.setFullYear(a.getFullYear(),r+1,0),a.setHours(23,59,59,999),a}function o(n){e(1,arguments);var a=t(n);return r(a).getTime()===i(a).getTime()}function u(r,i){e(2,arguments);var u,s=t(r),d=t(i),l=n(s,d),c=Math.abs(a(s,d));if(c<1)u=0;else{1===s.getMonth()&&s.getDate()>27&&s.setDate(30),s.setMonth(s.getMonth()-l*c);var f=n(s,d)===-l;o(t(r))&&1===c&&1===n(r,d)&&(f=!1),u=l*(c-Number(f))}return 0===u?0:u}function s(n,a){return e(2,arguments),t(n).getTime()-t(a).getTime()}var d={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(e){return e<0?Math.ceil(e):Math.floor(e)}};function l(e){return e?d[e]:d.trunc}function c(t,n,a){e(2,arguments);var r=s(t,n)/1e3;return l(null==a?void 0:a.roundingMethod)(r)}var f={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},m=function(e,t,n){var a,r=f[e];return a="string"==typeof r?r:1===t?r.one:r.other.replace("{{count}}",t.toString()),null!=n&&n.addSuffix?n.comparison&&n.comparison>0?"in "+a:a+" ago":a};function h(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth,a=e.formats[n]||e.formats[e.defaultWidth];return a}}var g={date:h({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:h({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:h({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},v={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},w=function(e,t,n,a){return v[e]};function y(e){return function(t,n){var a,r=n||{};if("formatting"===(r.context?String(r.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,o=r.width?String(r.width):i;a=e.formattingValues[o]||e.formattingValues[i]}else{var u=e.defaultWidth,s=r.width?String(r.width):e.defaultWidth;a=e.values[s]||e.values[u]}return a[e.argumentCallback?e.argumentCallback(t):t]}}var b={ordinalNumber:function(e,t){var n=Number(e),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:y({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:y({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:y({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:y({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:y({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})};function p(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=n.width,r=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],i=t.match(r);if(!i)return null;var o,u=i[0],s=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth],d=Array.isArray(s)?D(s,(function(e){return e.test(u)})):M(s,(function(e){return e.test(u)}));o=e.valueCallback?e.valueCallback(d):d,o=n.valueCallback?n.valueCallback(o):o;var l=t.slice(u.length);return{value:o,rest:l}}}function M(e,t){for(var n in e)if(e.hasOwnProperty(n)&&t(e[n]))return n}function D(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},n=e.match(S.matchPattern);if(!n)return null;var a=n[0],r=e.match(S.parsePattern);if(!r)return null;var i=S.valueCallback?S.valueCallback(r[0]):r[0];i=t.valueCallback?t.valueCallback(i):i;var o=e.slice(a.length);return{value:i,rest:o}}),era:p({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:p({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:p({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:p({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:p({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},T={code:"en-US",formatDistance:m,formatLong:g,formatRelative:w,localize:b,match:N,options:{weekStartsOn:0,firstWeekContainsDate:1}};function x(e){return function(e,t){if(null==e)throw new TypeError("assign requires that input parameter not be null or undefined");for(var n in t=t||{})Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}({},e)}function W(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}var P=1440,C=43200;function k(a,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e(2,arguments);var o=i.locale||T;if(!o.formatDistance)throw new RangeError("locale must contain formatDistance property");var s=n(a,r);if(isNaN(s))throw new RangeError("Invalid time value");var d,l,f=x(i);f.addSuffix=Boolean(i.addSuffix),f.comparison=s,s>0?(d=t(r),l=t(a)):(d=t(a),l=t(r));var m,h=c(l,d),g=(W(l)-W(d))/1e3,v=Math.round((h-g)/60);if(v<2)return i.includeSeconds?h<5?o.formatDistance("lessThanXSeconds",5,f):h<10?o.formatDistance("lessThanXSeconds",10,f):h<20?o.formatDistance("lessThanXSeconds",20,f):h<40?o.formatDistance("halfAMinute",null,f):h<60?o.formatDistance("lessThanXMinutes",1,f):o.formatDistance("xMinutes",1,f):0===v?o.formatDistance("lessThanXMinutes",1,f):o.formatDistance("xMinutes",v,f);if(v<45)return o.formatDistance("xMinutes",v,f);if(v<90)return o.formatDistance("aboutXHours",1,f);if(v2&&void 0!==arguments[2]?arguments[2]:{};e(2,arguments);var o=i.locale||T;if(!o.formatDistance)throw new RangeError("locale must contain localize.formatDistance property");var u=n(a,r);if(isNaN(u))throw new RangeError("Invalid time value");var s,d,l=x(i);l.addSuffix=Boolean(i.addSuffix),l.comparison=u,u>0?(s=t(r),d=t(a)):(s=t(a),d=t(r));var c,f=null==i.roundingMethod?"round":String(i.roundingMethod);if("floor"===f)c=Math.floor;else if("ceil"===f)c=Math.ceil;else{if("round"!==f)throw new RangeError("roundingMethod must be 'floor', 'ceil' or 'round'");c=Math.round}var m,h=d.getTime()-s.getTime(),g=h/F,v=W(d)-W(s),w=(h-v)/F;if("second"===(m=null==i.unit?g<1?"second":g<60?"minute":g2)return n;if(/:/.test(a[0])?t=a[0]:(n.date=a[0],t=a[1],z.timeZoneDelimiter.test(n.date)&&(n.date=e.split(z.timeZoneDelimiter)[0],t=e.substr(n.date.length,e.length))),t){var r=z.timezone.exec(t);r?(n.time=t.replace(r[1],""),n.timezone=r[1]):n.time=t}return n}function Z(e,t){var n=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),a=e.match(n);if(!a)return{year:NaN,restDateString:""};var r=a[1]?parseInt(a[1]):null,i=a[2]?parseInt(a[2]):null;return{year:null===i?r:100*i,restDateString:e.slice((a[1]||a[2]).length)}}function B(e,t){if(null===t)return new Date(NaN);var n=e.match(q);if(!n)return new Date(NaN);var a=!!n[4],r=$(n[1]),i=$(n[2])-1,o=$(n[3]),u=$(n[4]),s=$(n[5])-1;if(a)return function(e,t,n){return t>=1&&t<=53&&n>=0&&n<=6}(0,u,s)?function(e,t,n){var a=new Date(0);a.setUTCFullYear(e,0,4);var r=a.getUTCDay()||7,i=7*(t-1)+n+1-r;return a.setUTCDate(a.getUTCDate()+i),a}(t,u,s):new Date(NaN);var d=new Date(0);return function(e,t,n){return t>=0&&t<=11&&n>=1&&n<=(G[t]||(K(e)?29:28))}(t,i,o)&&function(e,t){return t>=1&&t<=(K(e)?366:365)}(t,r)?(d.setUTCFullYear(t,i,Math.max(r,o)),d):new Date(NaN)}function $(e){return e?parseInt(e):1}function Q(e){var t=e.match(H);if(!t)return NaN;var n=V(t[1]),a=V(t[2]),r=V(t[3]);return function(e,t,n){if(24===e)return 0===t&&0===n;return n>=0&&n<60&&t>=0&&t<60&&e>=0&&e<25}(n,a,r)?n*U+6e4*a+1e3*r:NaN}function V(e){return e&&parseFloat(e.replace(",","."))||0}function L(e){if("Z"===e)return 0;var t=e.match(J);if(!t)return 0;var n="+"===t[1]?-1:1,a=parseInt(t[2]),r=t[3]&&parseInt(t[3])||0;return function(e,t){return t>=0&&t<=59}(0,r)?n*(a*U+6e4*r):NaN}var G=[31,null,31,30,31,30,31,31,30,31,30,31];function K(e){return e%400==0||e%4==0&&e%100!=0}let _=null;function ee(t){t.directive("timeago",((t,{expression:n,modifiers:a},{evaluateLater:r,effect:i,cleanup:o})=>{let u=r(n);const s=n=>{"string"==typeof n&&(n=function(t,n){e(1,arguments);var a=n||{},r=null==a.additionalDigits?2:O(a.additionalDigits);if(2!==r&&1!==r&&0!==r)throw new RangeError("additionalDigits must be 0, 1 or 2");if("string"!=typeof t&&"[object String]"!==Object.prototype.toString.call(t))return new Date(NaN);var i,o=R(t);if(o.date){var u=Z(o.date,r);i=B(u.restDateString,u.year)}if(!i||isNaN(i.getTime()))return new Date(NaN);var s,d=i.getTime(),l=0;if(o.time&&(l=Q(o.time),isNaN(l)))return new Date(NaN);if(!o.timezone){var c=new Date(d+l),f=new Date(0);return f.setFullYear(c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()),f.setHours(c.getUTCHours(),c.getUTCMinutes(),c.getUTCSeconds(),c.getUTCMilliseconds()),f}return s=L(o.timezone),isNaN(s)?new Date(NaN):new Date(d+l+s)}(n));try{if(a.includes("strict")){let e=a.includes("unit")&&a[a.findIndex((e=>"unit"===e))+1]||void 0;["second","minute","hour","day","month","year"].includes(e)||(e=void 0);let r=a.includes("rounding")&&a[a.findIndex((e=>"rounding"===e))+1]||void 0;["floor","ceil","round"].includes(r)||(r=void 0),t.textContent=A(n,{addSuffix:!a.includes("pure"),unit:e,roundingMethod:r,locale:_})}else t.textContent=j(n,{addSuffix:!a.includes("pure"),includeSeconds:a.includes("seconds"),locale:_});t.dispatchEvent(new Event("timeago:update",{bubbles:!1}))}catch(e){console.error(e)}};let d;new IntersectionObserver((e=>{const[t]=e,{isIntersecting:n}=t;n?u((e=>{d||((e=>{let t=3e4;a.includes("seconds")&&(t=5e3),d=setInterval((()=>{s(e)}),t)})(e),s(e))})):d&&(clearInterval(d),d=void 0)})).observe(t),i((()=>{u((e=>{d&&clearInterval(d),s(e)}))})),o((()=>clearInterval(d)))})),t.magic("timeago",(()=>(e,t,n,a)=>(null==t&&(t=!1),null==n&&(n=!1),null!=a&&a.strict?A(e,{addSuffix:!t,unit:a.unit||void 0,roundingMethod:a.roundingMethod||void 0,locale:_}):j(e,{addSuffix:!t,includeSeconds:n,locale:_}))))}ee.configure=e=>(e.hasOwnProperty("locale")&&"object"==typeof e.locale&&e.locale.hasOwnProperty("formatDistance")&&(_=e.locale),ee),document.addEventListener("alpine:init",(()=>{ee(window.Alpine)}))})); +!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";function e(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function t(t){e(1,arguments);var n=Object.prototype.toString.call(t);return t instanceof Date||"object"==typeof t&&"[object Date]"===n?new Date(t.getTime()):"number"==typeof t||"[object Number]"===n?new Date(t):("string"!=typeof t&&"[object String]"!==n||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function n(n,a){e(2,arguments);var r=t(n),i=t(a),o=r.getTime()-i.getTime();return o<0?-1:o>0?1:o}function a(n,a){e(2,arguments);var r=t(n),i=t(a),o=r.getFullYear()-i.getFullYear(),u=r.getMonth()-i.getMonth();return 12*o+u}function r(n){e(1,arguments);var a=t(n);return a.setHours(23,59,59,999),a}function i(n){e(1,arguments);var a=t(n),r=a.getMonth();return a.setFullYear(a.getFullYear(),r+1,0),a.setHours(23,59,59,999),a}function o(n){e(1,arguments);var a=t(n);return r(a).getTime()===i(a).getTime()}function u(r,i){e(2,arguments);var u,s=t(r),d=t(i),l=n(s,d),c=Math.abs(a(s,d));if(c<1)u=0;else{1===s.getMonth()&&s.getDate()>27&&s.setDate(30),s.setMonth(s.getMonth()-l*c);var f=n(s,d)===-l;o(t(r))&&1===c&&1===n(r,d)&&(f=!1),u=l*(c-Number(f))}return 0===u?0:u}function s(n,a){return e(2,arguments),t(n).getTime()-t(a).getTime()}var d={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(e){return e<0?Math.ceil(e):Math.floor(e)}};function l(e){return e?d[e]:d.trunc}function c(t,n,a){e(2,arguments);var r=s(t,n)/1e3;return l(null==a?void 0:a.roundingMethod)(r)}var f={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},m=function(e,t,n){var a,r=f[e];return a="string"==typeof r?r:1===t?r.one:r.other.replace("{{count}}",t.toString()),null!=n&&n.addSuffix?n.comparison&&n.comparison>0?"in "+a:a+" ago":a};function h(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth,a=e.formats[n]||e.formats[e.defaultWidth];return a}}var g={date:h({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:h({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:h({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},v={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},w=function(e,t,n,a){return v[e]};function y(e){return function(t,n){var a,r=n||{};if("formatting"===(r.context?String(r.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,o=r.width?String(r.width):i;a=e.formattingValues[o]||e.formattingValues[i]}else{var u=e.defaultWidth,s=r.width?String(r.width):e.defaultWidth;a=e.values[s]||e.values[u]}return a[e.argumentCallback?e.argumentCallback(t):t]}}var b={ordinalNumber:function(e,t){var n=Number(e),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:y({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:y({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:y({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:y({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:y({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})};function p(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=n.width,r=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],i=t.match(r);if(!i)return null;var o,u=i[0],s=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth],d=Array.isArray(s)?D(s,(function(e){return e.test(u)})):M(s,(function(e){return e.test(u)}));o=e.valueCallback?e.valueCallback(d):d,o=n.valueCallback?n.valueCallback(o):o;var l=t.slice(u.length);return{value:o,rest:l}}}function M(e,t){for(var n in e)if(e.hasOwnProperty(n)&&t(e[n]))return n}function D(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},n=e.match(S.matchPattern);if(!n)return null;var a=n[0],r=e.match(S.parsePattern);if(!r)return null;var i=S.valueCallback?S.valueCallback(r[0]):r[0];i=t.valueCallback?t.valueCallback(i):i;var o=e.slice(a.length);return{value:i,rest:o}}),era:p({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:p({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:p({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:p({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:p({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},T={code:"en-US",formatDistance:m,formatLong:g,formatRelative:w,localize:b,match:N,options:{weekStartsOn:0,firstWeekContainsDate:1}};function x(e){return function(e,t){if(null==e)throw new TypeError("assign requires that input parameter not be null or undefined");for(var n in t=t||{})Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}({},e)}function W(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}var P=1440,C=43200;function k(a,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e(2,arguments);var o=i.locale||T;if(!o.formatDistance)throw new RangeError("locale must contain formatDistance property");var s=n(a,r);if(isNaN(s))throw new RangeError("Invalid time value");var d,l,f=x(i);f.addSuffix=Boolean(i.addSuffix),f.comparison=s,s>0?(d=t(r),l=t(a)):(d=t(a),l=t(r));var m,h=c(l,d),g=(W(l)-W(d))/1e3,v=Math.round((h-g)/60);if(v<2)return i.includeSeconds?h<5?o.formatDistance("lessThanXSeconds",5,f):h<10?o.formatDistance("lessThanXSeconds",10,f):h<20?o.formatDistance("lessThanXSeconds",20,f):h<40?o.formatDistance("halfAMinute",null,f):h<60?o.formatDistance("lessThanXMinutes",1,f):o.formatDistance("xMinutes",1,f):0===v?o.formatDistance("lessThanXMinutes",1,f):o.formatDistance("xMinutes",v,f);if(v<45)return o.formatDistance("xMinutes",v,f);if(v<90)return o.formatDistance("aboutXHours",1,f);if(v2&&void 0!==arguments[2]?arguments[2]:{};e(2,arguments);var o=i.locale||T;if(!o.formatDistance)throw new RangeError("locale must contain localize.formatDistance property");var u=n(a,r);if(isNaN(u))throw new RangeError("Invalid time value");var s,d,l=x(i);l.addSuffix=Boolean(i.addSuffix),l.comparison=u,u>0?(s=t(r),d=t(a)):(s=t(a),d=t(r));var c,f=null==i.roundingMethod?"round":String(i.roundingMethod);if("floor"===f)c=Math.floor;else if("ceil"===f)c=Math.ceil;else{if("round"!==f)throw new RangeError("roundingMethod must be 'floor', 'ceil' or 'round'");c=Math.round}var m,h=d.getTime()-s.getTime(),g=h/F,v=W(d)-W(s),w=(h-v)/F;if("second"===(m=null==i.unit?g<1?"second":g<60?"minute":g2)return n;if(/:/.test(a[0])?t=a[0]:(n.date=a[0],t=a[1],z.timeZoneDelimiter.test(n.date)&&(n.date=e.split(z.timeZoneDelimiter)[0],t=e.substr(n.date.length,e.length))),t){var r=z.timezone.exec(t);r?(n.time=t.replace(r[1],""),n.timezone=r[1]):n.time=t}return n}function Z(e,t){var n=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),a=e.match(n);if(!a)return{year:NaN,restDateString:""};var r=a[1]?parseInt(a[1]):null,i=a[2]?parseInt(a[2]):null;return{year:null===i?r:100*i,restDateString:e.slice((a[1]||a[2]).length)}}function B(e,t){if(null===t)return new Date(NaN);var n=e.match(q);if(!n)return new Date(NaN);var a=!!n[4],r=$(n[1]),i=$(n[2])-1,o=$(n[3]),u=$(n[4]),s=$(n[5])-1;if(a)return function(e,t,n){return t>=1&&t<=53&&n>=0&&n<=6}(0,u,s)?function(e,t,n){var a=new Date(0);a.setUTCFullYear(e,0,4);var r=a.getUTCDay()||7,i=7*(t-1)+n+1-r;return a.setUTCDate(a.getUTCDate()+i),a}(t,u,s):new Date(NaN);var d=new Date(0);return function(e,t,n){return t>=0&&t<=11&&n>=1&&n<=(G[t]||(K(e)?29:28))}(t,i,o)&&function(e,t){return t>=1&&t<=(K(e)?366:365)}(t,r)?(d.setUTCFullYear(t,i,Math.max(r,o)),d):new Date(NaN)}function $(e){return e?parseInt(e):1}function Q(e){var t=e.match(H);if(!t)return NaN;var n=V(t[1]),a=V(t[2]),r=V(t[3]);return function(e,t,n){if(24===e)return 0===t&&0===n;return n>=0&&n<60&&t>=0&&t<60&&e>=0&&e<25}(n,a,r)?n*U+6e4*a+1e3*r:NaN}function V(e){return e&&parseFloat(e.replace(",","."))||0}function L(e){if("Z"===e)return 0;var t=e.match(J);if(!t)return 0;var n="+"===t[1]?-1:1,a=parseInt(t[2]),r=t[3]&&parseInt(t[3])||0;return function(e,t){return t>=0&&t<=59}(0,r)?n*(a*U+6e4*r):NaN}var G=[31,null,31,30,31,30,31,31,30,31,30,31];function K(e){return e%400==0||e%4==0&&e%100!=0}function _(n){return e(1,arguments),t(n).getTime(){let u=r(n);const s=n=>{"string"==typeof n&&(n=function(t,n){e(1,arguments);var a=n||{},r=null==a.additionalDigits?2:O(a.additionalDigits);if(2!==r&&1!==r&&0!==r)throw new RangeError("additionalDigits must be 0, 1 or 2");if("string"!=typeof t&&"[object String]"!==Object.prototype.toString.call(t))return new Date(NaN);var i,o=R(t);if(o.date){var u=Z(o.date,r);i=B(u.restDateString,u.year)}if(!i||isNaN(i.getTime()))return new Date(NaN);var s,d=i.getTime(),l=0;if(o.time&&(l=Q(o.time),isNaN(l)))return new Date(NaN);if(!o.timezone){var c=new Date(d+l),f=new Date(0);return f.setFullYear(c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()),f.setHours(c.getUTCHours(),c.getUTCMinutes(),c.getUTCSeconds(),c.getUTCMilliseconds()),f}return s=L(o.timezone),isNaN(s)?new Date(NaN):new Date(d+l+s)}(n));try{if(a.includes("strict")){let e=a.includes("unit")&&a[a.findIndex((e=>"unit"===e))+1]||void 0;["second","minute","hour","day","month","year"].includes(e)||(e=void 0);let r=a.includes("rounding")&&a[a.findIndex((e=>"rounding"===e))+1]||void 0;["floor","ceil","round"].includes(r)||(r=void 0),t.textContent=A(n,{addSuffix:!a.includes("pure"),unit:e,roundingMethod:r,locale:ee})}else t.textContent=j(n,{addSuffix:!a.includes("pure"),includeSeconds:a.includes("seconds"),locale:ee});l(n)}catch(e){console.error(e)}};let d;const l=e=>{t.dispatchEvent(new CustomEvent("timeago:render",{detail:{isPast:_(e)},bubbles:!1}))},c=e=>{let t=3e4;a.includes("seconds")&&(t=5e3),d=setInterval((()=>{s(e)}),t)};new IntersectionObserver((e=>{const[t]=e,{isIntersecting:n}=t;n?u((e=>{d||(c(e),s(e))})):d&&(clearInterval(d),d=void 0)})).observe(t),i((()=>{u((e=>{d&&clearInterval(d),s(e),c(e)}))})),o((()=>clearInterval(d)))})),t.magic("timeago",(()=>(e,t,n,a)=>(null==t&&(t=!1),null==n&&(n=!1),null!=a&&a.strict?A(e,{addSuffix:!t,unit:a.unit||void 0,roundingMethod:a.roundingMethod||void 0,locale:ee}):j(e,{addSuffix:!t,includeSeconds:n,locale:ee}))))}te.configure=e=>(e.hasOwnProperty("locale")&&"object"==typeof e.locale&&e.locale.hasOwnProperty("formatDistance")&&(ee=e.locale),te),document.addEventListener("alpine:init",(()=>{te(window.Alpine)}))})); //# sourceMappingURL=alpine-timeago.min.js.map diff --git a/dist/alpine-timeago.min.js.map b/dist/alpine-timeago.min.js.map index 0675cb9..ae3a4e4 100644 --- a/dist/alpine-timeago.min.js.map +++ b/dist/alpine-timeago.min.js.map @@ -1 +1 @@ -{"version":3,"file":"alpine-timeago.min.js","sources":["../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/date-fns/esm/compareAsc/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/isLastDayOfMonth/index.js","../node_modules/date-fns/esm/differenceInMonths/index.js","../node_modules/date-fns/esm/differenceInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/roundingMethods/index.js","../node_modules/date-fns/esm/differenceInSeconds/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/_lib/cloneObject/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/formatDistance/index.js","../node_modules/date-fns/esm/formatDistanceToNow/index.js","../node_modules/date-fns/esm/formatDistanceStrict/index.js","../node_modules/date-fns/esm/formatDistanceToNowStrict/index.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/parseISO/index.js","../src/index.js","../builds/cdn.js"],"sourcesContent":["export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport endOfDay from \"../endOfDay/index.js\";\nimport endOfMonth from \"../endOfMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * var result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\n\nexport default function isLastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return endOfDay(date).getTime() === endOfMonth(date).getTime();\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarMonths from \"../differenceInCalendarMonths/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport isLastDayOfMonth from \"../isLastDayOfMonth/index.js\";\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates using trunc as a default rounding method.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\n\nexport default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));\n var result; // Check for the difference of less than month\n\n if (difference < 1) {\n result = 0;\n } else {\n if (dateLeft.getMonth() === 1 && dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n dateLeft.setDate(30);\n }\n\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference); // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign; // Check for cases of one full calendar month\n\n if (isLastDayOfMonth(toDate(dirtyDateLeft)) && difference === 1 && compareAsc(dirtyDateLeft, dateRight) === 1) {\n isLastMonthNotFull = false;\n }\n\n result = sign * (difference - Number(isLastMonthNotFull));\n } // Prevent negative zero\n\n\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dateLeft, dateRight) {\n requiredArgs(2, arguments);\n return toDate(dateLeft).getTime() - toDate(dateRight).getTime();\n}","var roundingMap = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function (value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n } // Math.trunc is not supported by IE\n\n};\nvar defaultRoundingMethod = 'trunc';\nexport function getRoundingMethod(method) {\n return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","import differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import assign from \"../assign/index.js\";\nexport default function cloneObject(dirtyObject) {\n return assign({}, dirtyObject);\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import compareAsc from \"../compareAsc/index.js\";\nimport differenceInMonths from \"../differenceInMonths/index.js\";\nimport differenceInSeconds from \"../differenceInSeconds/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_TWO_MONTHS = 86400;\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWords ` to `formatDistance`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWords(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 11, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n *\n * // v2.0.0 onward\n *\n * formatDistance(\n * new Date(1986, 3, 4, 11, 32, 0),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * const result = formatDistance(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistance(dirtyDate, dirtyBaseDate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n requiredArgs(2, arguments);\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft);\n var offsetInSeconds = (getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft)) / 1000;\n var minutes = Math.round((seconds - offsetInSeconds) / 60);\n var months; // 0 up to 2 mins\n\n if (minutes < 2) {\n if (options.includeSeconds) {\n if (seconds < 5) {\n return locale.formatDistance('lessThanXSeconds', 5, localizeOptions);\n } else if (seconds < 10) {\n return locale.formatDistance('lessThanXSeconds', 10, localizeOptions);\n } else if (seconds < 20) {\n return locale.formatDistance('lessThanXSeconds', 20, localizeOptions);\n } else if (seconds < 40) {\n return locale.formatDistance('halfAMinute', null, localizeOptions);\n } else if (seconds < 60) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', minutes, localizeOptions);\n }\n } // 2 mins up to 0.75 hrs\n\n } else if (minutes < 45) {\n return locale.formatDistance('xMinutes', minutes, localizeOptions); // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance('aboutXHours', 1, localizeOptions); // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60);\n return locale.formatDistance('aboutXHours', hours, localizeOptions); // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return locale.formatDistance('xDays', 1, localizeOptions); // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('aboutXMonths', months, localizeOptions);\n }\n\n months = differenceInMonths(dateRight, dateLeft); // 2 months up to 12 months\n\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('xMonths', nearestMonth, localizeOptions); // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12;\n var years = Math.floor(months / 12); // N years up to 1 years 3 months\n\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance('aboutXYears', years, localizeOptions); // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance('overXYears', years, localizeOptions); // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance('almostXYears', years + 1, localizeOptions);\n }\n }\n}","import distanceInWords from \"../formatDistance/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name formatDistanceToNow\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now | Result |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWordsToNow ` to `formatDistanceToNow`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsToNow(new Date(2014, 6, 2), { addSuffix: true })\n * //=> 'in 6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceToNow(new Date(2014, 6, 2), { addSuffix: true })\n * //=> 'in 6 months'\n * ```\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result specifies if now is earlier or later than the passed date\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = formatDistanceToNow(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = formatDistanceToNow(\n * new Date(2015, 0, 1, 0, 0, 15),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = formatDistanceToNow(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = formatDistanceToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistanceToNow(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n return distanceInWords(dirtyDate, Date.now(), dirtyOptions);\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 1000 * 60;\nvar MINUTES_IN_DAY = 60 * 24;\nvar MINUTES_IN_MONTH = MINUTES_IN_DAY * 30;\nvar MINUTES_IN_YEAR = MINUTES_IN_DAY * 365;\n/**\n * @name formatDistanceStrict\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWordsStrict` to `formatDistanceStrict`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(2015, 0, 2),\n * new Date(2014, 6, 2)\n * ) //=> '6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(2014, 6, 2),\n * new Date(2015, 0, 2)\n * ) //=> '6 months'\n * ```\n *\n * - `partialMethod` option is renamed to `roundingMethod`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { partialMethod: 'ceil' }\n * ) //=> '2 minutes'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { roundingMethod: 'ceil' }\n * ) //=> '2 minutes'\n * ```\n *\n * - If `roundingMethod` is not specified, it now defaults to `round` instead of `floor`.\n *\n * - `unit` option now accepts one of the strings:\n * 'second', 'minute', 'hour', 'day', 'month' or 'year' instead of 's', 'm', 'h', 'd', 'M' or 'Y'\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { unit: 'm' }\n * )\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { unit: 'minute' }\n * )\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.roundingMethod` must be 'floor', 'ceil' or 'round'\n * @throws {RangeError} `options.unit` must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistanceStrict(new Date(2014, 6, 2), new Date(2015, 0, 2))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00?\n * const result = formatDistanceStrict(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0)\n * )\n * //=> '15 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistanceStrict(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> '1 year ago'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, in minutes?\n * const result = formatDistanceStrict(new Date(2016, 0, 1), new Date(2015, 0, 1), {\n * unit: 'minute'\n * })\n * //=> '525600 minutes'\n *\n * @example\n * // What is the distance from 1 January 2015\n * // to 28 January 2015, in months, rounded up?\n * const result = formatDistanceStrict(new Date(2015, 0, 28), new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistanceStrict(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceStrict(dirtyDate, dirtyBaseDate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n requiredArgs(2, arguments);\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain localize.formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var roundingMethod = options.roundingMethod == null ? 'round' : String(options.roundingMethod);\n var roundingMethodFn;\n\n if (roundingMethod === 'floor') {\n roundingMethodFn = Math.floor;\n } else if (roundingMethod === 'ceil') {\n roundingMethodFn = Math.ceil;\n } else if (roundingMethod === 'round') {\n roundingMethodFn = Math.round;\n } else {\n throw new RangeError(\"roundingMethod must be 'floor', 'ceil' or 'round'\");\n }\n\n var milliseconds = dateRight.getTime() - dateLeft.getTime();\n var minutes = milliseconds / MILLISECONDS_IN_MINUTE;\n var timezoneOffset = getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft); // Use DST-normalized difference in minutes for years, months and days;\n // use regular difference in minutes for hours, minutes and seconds.\n\n var dstNormalizedMinutes = (milliseconds - timezoneOffset) / MILLISECONDS_IN_MINUTE;\n var unit;\n\n if (options.unit == null) {\n if (minutes < 1) {\n unit = 'second';\n } else if (minutes < 60) {\n unit = 'minute';\n } else if (minutes < MINUTES_IN_DAY) {\n unit = 'hour';\n } else if (dstNormalizedMinutes < MINUTES_IN_MONTH) {\n unit = 'day';\n } else if (dstNormalizedMinutes < MINUTES_IN_YEAR) {\n unit = 'month';\n } else {\n unit = 'year';\n }\n } else {\n unit = String(options.unit);\n } // 0 up to 60 seconds\n\n\n if (unit === 'second') {\n var seconds = roundingMethodFn(milliseconds / 1000);\n return locale.formatDistance('xSeconds', seconds, localizeOptions); // 1 up to 60 mins\n } else if (unit === 'minute') {\n var roundedMinutes = roundingMethodFn(minutes);\n return locale.formatDistance('xMinutes', roundedMinutes, localizeOptions); // 1 up to 24 hours\n } else if (unit === 'hour') {\n var hours = roundingMethodFn(minutes / 60);\n return locale.formatDistance('xHours', hours, localizeOptions); // 1 up to 30 days\n } else if (unit === 'day') {\n var days = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 up to 12 months\n } else if (unit === 'month') {\n var months = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_MONTH);\n return months === 12 && options.unit !== 'month' ? locale.formatDistance('xYears', 1, localizeOptions) : locale.formatDistance('xMonths', months, localizeOptions); // 1 year up to max Date\n } else if (unit === 'year') {\n var years = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_YEAR);\n return locale.formatDistance('xYears', years, localizeOptions);\n }\n\n throw new RangeError(\"unit must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\");\n}","import formatDistanceStrict from \"../formatDistanceStrict/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name formatDistanceToNowStrict\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = formatDistanceToNowStrict(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = formatDistanceToNowStrict(\n * new Date(2015, 0, 1, 0, 0, 15)\n * )\n * //=> '20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = formatDistanceToNowStrict(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in 1 year'\n *\n * @example\n * // If today is 28 January 2015,\n * // what is the distance to 1 January 2015, in months, rounded up??\n * var result = formatDistanceToNowStrict(new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = formatDistanceToNowStrict(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceToNowStrict(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n return formatDistanceStrict(dirtyDate, Date.now(), dirtyOptions);\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The previous `parse` implementation was renamed to `parseISO`.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * parseISO('2016-01-01')\n * ```\n *\n * - `parseISO` now validates separate date and time values in ISO-8601 strings\n * and returns `Invalid Date` if the date is invalid.\n *\n * ```javascript\n * parseISO('2018-13-32')\n * //=> Invalid Date\n * ```\n *\n * - `parseISO` now doesn't fall back to `new Date` constructor\n * if it fails to parse a string argument. Instead, it returns `Invalid Date`.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? 2 : toInteger(options.additionalDigits);\n\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n\n var dateStrings = splitDateString(argument);\n var date;\n\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null; // either year or century is null, not both\n\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import formatDistanceToNow from \"date-fns/formatDistanceToNow\";\nimport formatDistanceToNowStrict from \"date-fns/formatDistanceToNowStrict\";\nimport parseISO from \"date-fns/parseISO\";\n\nlet locale = null;\n\nfunction TimeAgo(Alpine) {\n Alpine.directive(\n \"timeago\",\n (el, { expression, modifiers }, { evaluateLater, effect, cleanup }) => {\n let evaluateDate = evaluateLater(expression);\n\n const render = (date) => {\n if (typeof date === \"string\") {\n date = parseISO(date);\n }\n\n try {\n if (modifiers.includes(\"strict\")) {\n let unit = modifiers.includes(\"unit\")\n ? modifiers[\n modifiers.findIndex((modifier) => modifier === \"unit\") + 1\n ] || undefined\n : undefined;\n if (\n ![\"second\", \"minute\", \"hour\", \"day\", \"month\", \"year\"].includes(\n unit\n )\n ) {\n unit = undefined;\n }\n let roundingMethod = modifiers.includes(\"rounding\")\n ? modifiers[\n modifiers.findIndex((modifier) => modifier === \"rounding\") + 1\n ] || undefined\n : undefined;\n if (![\"floor\", \"ceil\", \"round\"].includes(roundingMethod)) {\n roundingMethod = undefined;\n }\n el.textContent = formatDistanceToNowStrict(date, {\n addSuffix: !modifiers.includes(\"pure\"),\n unit,\n roundingMethod,\n locale,\n });\n } else {\n el.textContent = formatDistanceToNow(date, {\n addSuffix: !modifiers.includes(\"pure\"),\n includeSeconds: modifiers.includes(\"seconds\"),\n locale,\n });\n }\n el.dispatchEvent(new Event(\"timeago:update\", { bubbles: false }));\n } catch (e) {\n console.error(e);\n }\n };\n\n let interval;\n\n const setupInterval = (date) => {\n let intervalDuration = 30000;\n if (modifiers.includes(\"seconds\")) {\n intervalDuration = 5000;\n }\n\n interval = setInterval(() => {\n render(date);\n }, intervalDuration);\n };\n\n const intersectionObserver = new IntersectionObserver((entries) => {\n const [entry] = entries;\n const {isIntersecting} = entry;\n if (isIntersecting) {\n evaluateDate((date) => {\n if (!interval) {\n setupInterval(date);\n render(date);\n }\n });\n } else {\n if (interval) {\n clearInterval(interval);\n interval = undefined;\n }\n }\n });\n\n intersectionObserver.observe(el);\n\n effect(() => {\n evaluateDate((date) => {\n if (interval) {\n clearInterval(interval);\n }\n\n render(date);\n });\n });\n\n cleanup(() => clearInterval(interval));\n }\n );\n\n Alpine.magic(\"timeago\", () => (expression, pure, seconds, strictOptions) => {\n if (pure == null) {\n pure = false;\n }\n if (seconds == null) {\n seconds = false;\n }\n if (strictOptions != null && (strictOptions[\"strict\"] || undefined)) {\n return formatDistanceToNowStrict(expression, {\n addSuffix: !pure,\n unit: strictOptions[\"unit\"] || undefined,\n roundingMethod: strictOptions[\"roundingMethod\"] || undefined,\n locale,\n });\n }\n return formatDistanceToNow(expression, {\n addSuffix: !pure,\n includeSeconds: seconds,\n locale,\n });\n });\n}\n\nTimeAgo.configure = (config) => {\n if (config.hasOwnProperty(\"locale\") && typeof config.locale === \"object\") {\n if (config.locale.hasOwnProperty(\"formatDistance\")) {\n locale = config.locale;\n }\n }\n\n return TimeAgo;\n};\n\nexport default TimeAgo;\n","import TimeAgo from '../src/index.js';\n\ndocument.addEventListener('alpine:init', () => {\n TimeAgo(window.Alpine);\n});\n"],"names":["requiredArgs","required","args","length","TypeError","toDate","argument","arguments","argStr","Object","prototype","toString","call","Date","getTime","console","warn","Error","stack","NaN","compareAsc","dirtyDateLeft","dirtyDateRight","dateLeft","dateRight","diff","differenceInCalendarMonths","yearDiff","getFullYear","monthDiff","getMonth","endOfDay","dirtyDate","date","setHours","endOfMonth","month","setFullYear","isLastDayOfMonth","differenceInMonths","result","sign","difference","Math","abs","getDate","setDate","setMonth","isLastMonthNotFull","Number","differenceInMilliseconds","roundingMap","ceil","round","floor","trunc","value","getRoundingMethod","method","differenceInSeconds","options","roundingMethod","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance$2","token","count","tokenValue","replace","addSuffix","comparison","buildFormatLongFn","undefined","width","String","defaultWidth","format","formats","formatLong$1","full","long","medium","short","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","formatRelative$1","_date","_baseDate","_options","buildLocalizeFn","dirtyIndex","dirtyOptions","valuesArray","context","formattingValues","defaultFormattingWidth","_defaultWidth","_width","values","argumentCallback","localize$1","ordinalNumber","dirtyNumber","number","rem100","era","narrow","abbreviated","wide","quarter","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","match","matchedString","parsePatterns","defaultParseWidth","key","Array","isArray","findIndex","pattern","test","findKey","valueCallback","rest","slice","object","predicate","hasOwnProperty","array","parsePattern","parseInt","parseResult","any","index","defaultLocale","code","formatDistance","formatLong","formatRelative","localize","weekStartsOn","firstWeekContainsDate","cloneObject","dirtyObject","target","property","assign","getTimezoneOffsetInMilliseconds","utcDate","UTC","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","MINUTES_IN_DAY","MINUTES_IN_MONTH","dirtyBaseDate","locale","RangeError","isNaN","localizeOptions","Boolean","months","seconds","offsetInSeconds","minutes","includeSeconds","hours","days","nearestMonth","monthsSinceStartOfYear","years","formatDistanceToNow","distanceInWords","now","MILLISECONDS_IN_MINUTE","MINUTES_IN_YEAR","formatDistanceStrict","roundingMethodFn","unit","milliseconds","timezoneOffset","dstNormalizedMinutes","roundedMinutes","formatDistanceToNowStrict","millisecondsInHour","toInteger","patterns","dateTimeDelimiter","timeZoneDelimiter","timezone","dateRegex","timeRegex","timezoneRegex","splitDateString","dateString","timeString","dateStrings","split","substr","exec","parseYear","additionalDigits","regex","RegExp","captures","year","restDateString","century","parseDate","isWeekDate","dayOfYear","parseDateUnit","week","dayOfWeek","_year","validateWeekDate","isoWeekYear","fourthOfJanuaryDay","getUTCDay","setUTCDate","getUTCDate","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","max","parseTime","parseTimeUnit","validateTime","parseFloat","parseTimezone","timezoneString","_hours","validateTimezone","TimeAgo","Alpine","directive","el","expression","modifiers","evaluateLater","effect","cleanup","evaluateDate","render","parseYearResult","offset","timestamp","getUTCFullYear","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","parseISO","includes","modifier","textContent","dispatchEvent","Event","bubbles","e","error","interval","IntersectionObserver","entries","entry","isIntersecting","intervalDuration","setInterval","setupInterval","clearInterval","observe","magic","pure","strictOptions","configure","config","document","addEventListener","window"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"alpine-timeago.min.js","sources":["../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/date-fns/esm/compareAsc/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/isLastDayOfMonth/index.js","../node_modules/date-fns/esm/differenceInMonths/index.js","../node_modules/date-fns/esm/differenceInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/roundingMethods/index.js","../node_modules/date-fns/esm/differenceInSeconds/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/_lib/cloneObject/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/formatDistance/index.js","../node_modules/date-fns/esm/formatDistanceToNow/index.js","../node_modules/date-fns/esm/formatDistanceStrict/index.js","../node_modules/date-fns/esm/formatDistanceToNowStrict/index.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/parseISO/index.js","../node_modules/date-fns/esm/isPast/index.js","../src/index.js","../builds/cdn.js"],"sourcesContent":["export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport endOfDay from \"../endOfDay/index.js\";\nimport endOfMonth from \"../endOfMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * var result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\n\nexport default function isLastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return endOfDay(date).getTime() === endOfMonth(date).getTime();\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarMonths from \"../differenceInCalendarMonths/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport isLastDayOfMonth from \"../isLastDayOfMonth/index.js\";\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates using trunc as a default rounding method.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\n\nexport default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));\n var result; // Check for the difference of less than month\n\n if (difference < 1) {\n result = 0;\n } else {\n if (dateLeft.getMonth() === 1 && dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n dateLeft.setDate(30);\n }\n\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference); // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign; // Check for cases of one full calendar month\n\n if (isLastDayOfMonth(toDate(dirtyDateLeft)) && difference === 1 && compareAsc(dirtyDateLeft, dateRight) === 1) {\n isLastMonthNotFull = false;\n }\n\n result = sign * (difference - Number(isLastMonthNotFull));\n } // Prevent negative zero\n\n\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dateLeft, dateRight) {\n requiredArgs(2, arguments);\n return toDate(dateLeft).getTime() - toDate(dateRight).getTime();\n}","var roundingMap = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function (value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n } // Math.trunc is not supported by IE\n\n};\nvar defaultRoundingMethod = 'trunc';\nexport function getRoundingMethod(method) {\n return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","import differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import assign from \"../assign/index.js\";\nexport default function cloneObject(dirtyObject) {\n return assign({}, dirtyObject);\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import compareAsc from \"../compareAsc/index.js\";\nimport differenceInMonths from \"../differenceInMonths/index.js\";\nimport differenceInSeconds from \"../differenceInSeconds/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_TWO_MONTHS = 86400;\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWords ` to `formatDistance`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWords(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 11, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n *\n * // v2.0.0 onward\n *\n * formatDistance(\n * new Date(1986, 3, 4, 11, 32, 0),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * const result = formatDistance(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistance(dirtyDate, dirtyBaseDate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n requiredArgs(2, arguments);\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft);\n var offsetInSeconds = (getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft)) / 1000;\n var minutes = Math.round((seconds - offsetInSeconds) / 60);\n var months; // 0 up to 2 mins\n\n if (minutes < 2) {\n if (options.includeSeconds) {\n if (seconds < 5) {\n return locale.formatDistance('lessThanXSeconds', 5, localizeOptions);\n } else if (seconds < 10) {\n return locale.formatDistance('lessThanXSeconds', 10, localizeOptions);\n } else if (seconds < 20) {\n return locale.formatDistance('lessThanXSeconds', 20, localizeOptions);\n } else if (seconds < 40) {\n return locale.formatDistance('halfAMinute', null, localizeOptions);\n } else if (seconds < 60) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', minutes, localizeOptions);\n }\n } // 2 mins up to 0.75 hrs\n\n } else if (minutes < 45) {\n return locale.formatDistance('xMinutes', minutes, localizeOptions); // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance('aboutXHours', 1, localizeOptions); // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60);\n return locale.formatDistance('aboutXHours', hours, localizeOptions); // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return locale.formatDistance('xDays', 1, localizeOptions); // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('aboutXMonths', months, localizeOptions);\n }\n\n months = differenceInMonths(dateRight, dateLeft); // 2 months up to 12 months\n\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('xMonths', nearestMonth, localizeOptions); // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12;\n var years = Math.floor(months / 12); // N years up to 1 years 3 months\n\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance('aboutXYears', years, localizeOptions); // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance('overXYears', years, localizeOptions); // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance('almostXYears', years + 1, localizeOptions);\n }\n }\n}","import distanceInWords from \"../formatDistance/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name formatDistanceToNow\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now | Result |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWordsToNow ` to `formatDistanceToNow`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsToNow(new Date(2014, 6, 2), { addSuffix: true })\n * //=> 'in 6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceToNow(new Date(2014, 6, 2), { addSuffix: true })\n * //=> 'in 6 months'\n * ```\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result specifies if now is earlier or later than the passed date\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = formatDistanceToNow(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = formatDistanceToNow(\n * new Date(2015, 0, 1, 0, 0, 15),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = formatDistanceToNow(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = formatDistanceToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistanceToNow(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n return distanceInWords(dirtyDate, Date.now(), dirtyOptions);\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 1000 * 60;\nvar MINUTES_IN_DAY = 60 * 24;\nvar MINUTES_IN_MONTH = MINUTES_IN_DAY * 30;\nvar MINUTES_IN_YEAR = MINUTES_IN_DAY * 365;\n/**\n * @name formatDistanceStrict\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWordsStrict` to `formatDistanceStrict`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(2015, 0, 2),\n * new Date(2014, 6, 2)\n * ) //=> '6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(2014, 6, 2),\n * new Date(2015, 0, 2)\n * ) //=> '6 months'\n * ```\n *\n * - `partialMethod` option is renamed to `roundingMethod`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { partialMethod: 'ceil' }\n * ) //=> '2 minutes'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { roundingMethod: 'ceil' }\n * ) //=> '2 minutes'\n * ```\n *\n * - If `roundingMethod` is not specified, it now defaults to `round` instead of `floor`.\n *\n * - `unit` option now accepts one of the strings:\n * 'second', 'minute', 'hour', 'day', 'month' or 'year' instead of 's', 'm', 'h', 'd', 'M' or 'Y'\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { unit: 'm' }\n * )\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { unit: 'minute' }\n * )\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.roundingMethod` must be 'floor', 'ceil' or 'round'\n * @throws {RangeError} `options.unit` must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistanceStrict(new Date(2014, 6, 2), new Date(2015, 0, 2))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00?\n * const result = formatDistanceStrict(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0)\n * )\n * //=> '15 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistanceStrict(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> '1 year ago'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, in minutes?\n * const result = formatDistanceStrict(new Date(2016, 0, 1), new Date(2015, 0, 1), {\n * unit: 'minute'\n * })\n * //=> '525600 minutes'\n *\n * @example\n * // What is the distance from 1 January 2015\n * // to 28 January 2015, in months, rounded up?\n * const result = formatDistanceStrict(new Date(2015, 0, 28), new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistanceStrict(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceStrict(dirtyDate, dirtyBaseDate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n requiredArgs(2, arguments);\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain localize.formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var roundingMethod = options.roundingMethod == null ? 'round' : String(options.roundingMethod);\n var roundingMethodFn;\n\n if (roundingMethod === 'floor') {\n roundingMethodFn = Math.floor;\n } else if (roundingMethod === 'ceil') {\n roundingMethodFn = Math.ceil;\n } else if (roundingMethod === 'round') {\n roundingMethodFn = Math.round;\n } else {\n throw new RangeError(\"roundingMethod must be 'floor', 'ceil' or 'round'\");\n }\n\n var milliseconds = dateRight.getTime() - dateLeft.getTime();\n var minutes = milliseconds / MILLISECONDS_IN_MINUTE;\n var timezoneOffset = getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft); // Use DST-normalized difference in minutes for years, months and days;\n // use regular difference in minutes for hours, minutes and seconds.\n\n var dstNormalizedMinutes = (milliseconds - timezoneOffset) / MILLISECONDS_IN_MINUTE;\n var unit;\n\n if (options.unit == null) {\n if (minutes < 1) {\n unit = 'second';\n } else if (minutes < 60) {\n unit = 'minute';\n } else if (minutes < MINUTES_IN_DAY) {\n unit = 'hour';\n } else if (dstNormalizedMinutes < MINUTES_IN_MONTH) {\n unit = 'day';\n } else if (dstNormalizedMinutes < MINUTES_IN_YEAR) {\n unit = 'month';\n } else {\n unit = 'year';\n }\n } else {\n unit = String(options.unit);\n } // 0 up to 60 seconds\n\n\n if (unit === 'second') {\n var seconds = roundingMethodFn(milliseconds / 1000);\n return locale.formatDistance('xSeconds', seconds, localizeOptions); // 1 up to 60 mins\n } else if (unit === 'minute') {\n var roundedMinutes = roundingMethodFn(minutes);\n return locale.formatDistance('xMinutes', roundedMinutes, localizeOptions); // 1 up to 24 hours\n } else if (unit === 'hour') {\n var hours = roundingMethodFn(minutes / 60);\n return locale.formatDistance('xHours', hours, localizeOptions); // 1 up to 30 days\n } else if (unit === 'day') {\n var days = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 up to 12 months\n } else if (unit === 'month') {\n var months = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_MONTH);\n return months === 12 && options.unit !== 'month' ? locale.formatDistance('xYears', 1, localizeOptions) : locale.formatDistance('xMonths', months, localizeOptions); // 1 year up to max Date\n } else if (unit === 'year') {\n var years = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_YEAR);\n return locale.formatDistance('xYears', years, localizeOptions);\n }\n\n throw new RangeError(\"unit must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\");\n}","import formatDistanceStrict from \"../formatDistanceStrict/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name formatDistanceToNowStrict\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = formatDistanceToNowStrict(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = formatDistanceToNowStrict(\n * new Date(2015, 0, 1, 0, 0, 15)\n * )\n * //=> '20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = formatDistanceToNowStrict(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in 1 year'\n *\n * @example\n * // If today is 28 January 2015,\n * // what is the distance to 1 January 2015, in months, rounded up??\n * var result = formatDistanceToNowStrict(new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = formatDistanceToNowStrict(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceToNowStrict(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n return formatDistanceStrict(dirtyDate, Date.now(), dirtyOptions);\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The previous `parse` implementation was renamed to `parseISO`.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * parseISO('2016-01-01')\n * ```\n *\n * - `parseISO` now validates separate date and time values in ISO-8601 strings\n * and returns `Invalid Date` if the date is invalid.\n *\n * ```javascript\n * parseISO('2018-13-32')\n * //=> Invalid Date\n * ```\n *\n * - `parseISO` now doesn't fall back to `new Date` constructor\n * if it fails to parse a string argument. Instead, it returns `Invalid Date`.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? 2 : toInteger(options.additionalDigits);\n\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n\n var dateStrings = splitDateString(argument);\n var date;\n\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null; // either year or century is null, not both\n\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isPast\n * @category Common Helpers\n * @summary Is the given date in the past?\n * @pure false\n *\n * @description\n * Is the given date in the past?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is in the past\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 2 July 2014 in the past?\n * var result = isPast(new Date(2014, 6, 2))\n * //=> true\n */\n\nexport default function isPast(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getTime() < Date.now();\n}","import formatDistanceToNow from \"date-fns/formatDistanceToNow\";\nimport formatDistanceToNowStrict from \"date-fns/formatDistanceToNowStrict\";\nimport parseISO from \"date-fns/parseISO\";\nimport isPast from \"date-fns/isPast\";\n\nlet locale = null;\n\nfunction TimeAgo(Alpine) {\n Alpine.directive(\n \"timeago\",\n (el, { expression, modifiers }, { evaluateLater, effect, cleanup }) => {\n let evaluateDate = evaluateLater(expression);\n\n const render = (date) => {\n if (typeof date === \"string\") {\n date = parseISO(date);\n }\n\n try {\n if (modifiers.includes(\"strict\")) {\n let unit = modifiers.includes(\"unit\")\n ? modifiers[\n modifiers.findIndex((modifier) => modifier === \"unit\") + 1\n ] || undefined\n : undefined;\n if (\n ![\"second\", \"minute\", \"hour\", \"day\", \"month\", \"year\"].includes(\n unit\n )\n ) {\n unit = undefined;\n }\n let roundingMethod = modifiers.includes(\"rounding\")\n ? modifiers[\n modifiers.findIndex((modifier) => modifier === \"rounding\") + 1\n ] || undefined\n : undefined;\n if (![\"floor\", \"ceil\", \"round\"].includes(roundingMethod)) {\n roundingMethod = undefined;\n }\n el.textContent = formatDistanceToNowStrict(date, {\n addSuffix: !modifiers.includes(\"pure\"),\n unit,\n roundingMethod,\n locale,\n });\n } else {\n el.textContent = formatDistanceToNow(date, {\n addSuffix: !modifiers.includes(\"pure\"),\n includeSeconds: modifiers.includes(\"seconds\"),\n locale,\n });\n }\n\n dispatch(date);\n } catch (e) {\n console.error(e);\n }\n };\n\n let interval;\n\n const dispatch = (date) => {\n el.dispatchEvent(new CustomEvent(\"timeago:render\", { detail: { isPast: isPast(date) }, bubbles: false }));\n };\n\n const setupInterval = (date) => {\n let intervalDuration = 30000;\n if (modifiers.includes(\"seconds\")) {\n intervalDuration = 5000;\n }\n\n interval = setInterval(() => {\n render(date);\n }, intervalDuration);\n };\n\n const intersectionObserver = new IntersectionObserver((entries) => {\n const [entry] = entries;\n const {isIntersecting} = entry;\n if (isIntersecting) {\n evaluateDate((date) => {\n if (!interval) {\n setupInterval(date);\n render(date);\n }\n });\n } else {\n if (interval) {\n clearInterval(interval);\n interval = undefined;\n }\n }\n });\n\n intersectionObserver.observe(el);\n\n effect(() => {\n evaluateDate((date) => {\n if (interval) {\n clearInterval(interval);\n }\n\n render(date);\n\n setupInterval(date);\n });\n });\n\n cleanup(() => clearInterval(interval));\n }\n );\n\n Alpine.magic(\"timeago\", () => (expression, pure, seconds, strictOptions) => {\n if (pure == null) {\n pure = false;\n }\n if (seconds == null) {\n seconds = false;\n }\n if (strictOptions != null && (strictOptions[\"strict\"] || undefined)) {\n return formatDistanceToNowStrict(expression, {\n addSuffix: !pure,\n unit: strictOptions[\"unit\"] || undefined,\n roundingMethod: strictOptions[\"roundingMethod\"] || undefined,\n locale,\n });\n }\n return formatDistanceToNow(expression, {\n addSuffix: !pure,\n includeSeconds: seconds,\n locale,\n });\n });\n}\n\nTimeAgo.configure = (config) => {\n if (config.hasOwnProperty(\"locale\") && typeof config.locale === \"object\") {\n if (config.locale.hasOwnProperty(\"formatDistance\")) {\n locale = config.locale;\n }\n }\n\n return TimeAgo;\n};\n\nexport default TimeAgo;\n","import TimeAgo from '../src/index.js';\n\ndocument.addEventListener('alpine:init', () => {\n TimeAgo(window.Alpine);\n});\n"],"names":["requiredArgs","required","args","length","TypeError","toDate","argument","arguments","argStr","Object","prototype","toString","call","Date","getTime","console","warn","Error","stack","NaN","compareAsc","dirtyDateLeft","dirtyDateRight","dateLeft","dateRight","diff","differenceInCalendarMonths","yearDiff","getFullYear","monthDiff","getMonth","endOfDay","dirtyDate","date","setHours","endOfMonth","month","setFullYear","isLastDayOfMonth","differenceInMonths","result","sign","difference","Math","abs","getDate","setDate","setMonth","isLastMonthNotFull","Number","differenceInMilliseconds","roundingMap","ceil","round","floor","trunc","value","getRoundingMethod","method","differenceInSeconds","options","roundingMethod","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance$2","token","count","tokenValue","replace","addSuffix","comparison","buildFormatLongFn","undefined","width","String","defaultWidth","format","formats","formatLong$1","full","long","medium","short","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","formatRelative$1","_date","_baseDate","_options","buildLocalizeFn","dirtyIndex","dirtyOptions","valuesArray","context","formattingValues","defaultFormattingWidth","_defaultWidth","_width","values","argumentCallback","localize$1","ordinalNumber","dirtyNumber","number","rem100","era","narrow","abbreviated","wide","quarter","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","match","matchedString","parsePatterns","defaultParseWidth","key","Array","isArray","findIndex","pattern","test","findKey","valueCallback","rest","slice","object","predicate","hasOwnProperty","array","parsePattern","parseInt","parseResult","any","index","defaultLocale","code","formatDistance","formatLong","formatRelative","localize","weekStartsOn","firstWeekContainsDate","cloneObject","dirtyObject","target","property","assign","getTimezoneOffsetInMilliseconds","utcDate","UTC","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","MINUTES_IN_DAY","MINUTES_IN_MONTH","dirtyBaseDate","locale","RangeError","isNaN","localizeOptions","Boolean","months","seconds","offsetInSeconds","minutes","includeSeconds","hours","days","nearestMonth","monthsSinceStartOfYear","years","formatDistanceToNow","distanceInWords","now","MILLISECONDS_IN_MINUTE","MINUTES_IN_YEAR","formatDistanceStrict","roundingMethodFn","unit","milliseconds","timezoneOffset","dstNormalizedMinutes","roundedMinutes","formatDistanceToNowStrict","millisecondsInHour","toInteger","patterns","dateTimeDelimiter","timeZoneDelimiter","timezone","dateRegex","timeRegex","timezoneRegex","splitDateString","dateString","timeString","dateStrings","split","substr","exec","parseYear","additionalDigits","regex","RegExp","captures","year","restDateString","century","parseDate","isWeekDate","dayOfYear","parseDateUnit","week","dayOfWeek","_year","validateWeekDate","isoWeekYear","fourthOfJanuaryDay","getUTCDay","setUTCDate","getUTCDate","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","max","parseTime","parseTimeUnit","validateTime","parseFloat","parseTimezone","timezoneString","_hours","validateTimezone","isPast","TimeAgo","Alpine","directive","el","expression","modifiers","evaluateLater","effect","cleanup","evaluateDate","render","parseYearResult","offset","timestamp","getUTCFullYear","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","parseISO","includes","modifier","textContent","dispatch","e","error","interval","dispatchEvent","CustomEvent","detail","bubbles","setupInterval","intervalDuration","setInterval","IntersectionObserver","entries","entry","isIntersecting","clearInterval","observe","magic","pure","strictOptions","configure","config","document","addEventListener","window"],"mappings":"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"} \ No newline at end of file diff --git a/src/index.js b/src/index.js index 379002f..a67fcd7 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,7 @@ import formatDistanceToNow from "date-fns/formatDistanceToNow"; import formatDistanceToNowStrict from "date-fns/formatDistanceToNowStrict"; import parseISO from "date-fns/parseISO"; +import isPast from "date-fns/isPast"; let locale = null; @@ -50,7 +51,8 @@ function TimeAgo(Alpine) { locale, }); } - el.dispatchEvent(new Event("timeago:update", { bubbles: false })); + + dispatch(date); } catch (e) { console.error(e); } @@ -58,6 +60,10 @@ function TimeAgo(Alpine) { let interval; + const dispatch = (date) => { + el.dispatchEvent(new CustomEvent("timeago:render", { detail: { isPast: isPast(date) }, bubbles: false })); + }; + const setupInterval = (date) => { let intervalDuration = 30000; if (modifiers.includes("seconds")) { @@ -96,6 +102,8 @@ function TimeAgo(Alpine) { } render(date); + + setupInterval(date); }); });