{"version":3,"file":"static/js/vendors-beb35932.717755c6.js","mappings":"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","sources":["../node_modules/date-fns/closestIndexTo.js","../node_modules/date-fns/closestTo.js","../node_modules/date-fns/compareAsc.js","../node_modules/date-fns/compareDesc.js","../node_modules/date-fns/constants.js","../node_modules/date-fns/constructFrom.js","../node_modules/date-fns/constructNow.js","../node_modules/date-fns/daysToWeeks.js","../node_modules/date-fns/differenceInBusinessDays.js","../node_modules/date-fns/differenceInCalendarDays.js","../node_modules/date-fns/differenceInCalendarISOWeekYears.js","../node_modules/date-fns/differenceInCalendarISOWeeks.js","../node_modules/date-fns/differenceInCalendarMonths.js","../node_modules/date-fns/differenceInCalendarQuarters.js","../node_modules/date-fns/differenceInCalendarWeeks.js","../node_modules/date-fns/differenceInCalendarYears.js","../node_modules/date-fns/differenceInDays.js","../node_modules/date-fns/differenceInHours.js","../node_modules/date-fns/differenceInISOWeekYears.js","../node_modules/date-fns/differenceInMilliseconds.js","../node_modules/date-fns/differenceInMinutes.js","../node_modules/date-fns/differenceInMonths.js","../node_modules/date-fns/differenceInQuarters.js","../node_modules/date-fns/differenceInSeconds.js","../node_modules/date-fns/differenceInWeeks.js","../node_modules/date-fns/differenceInYears.js","../node_modules/date-fns/eachDayOfInterval.js","../node_modules/date-fns/eachHourOfInterval.js","../node_modules/date-fns/eachMinuteOfInterval.js","../node_modules/date-fns/eachMonthOfInterval.js","../node_modules/date-fns/eachQuarterOfInterval.js","../node_modules/date-fns/eachWeekOfInterval.js","../node_modules/date-fns/eachWeekendOfInterval.js","../node_modules/date-fns/eachWeekendOfMonth.js","../node_modules/date-fns/eachWeekendOfYear.js","../node_modules/date-fns/eachYearOfInterval.js","../node_modules/date-fns/endOfDay.js","../node_modules/date-fns/endOfDecade.js","../node_modules/date-fns/endOfHour.js","../node_modules/date-fns/endOfISOWeek.js","../node_modules/date-fns/endOfISOWeekYear.js","../node_modules/date-fns/endOfMinute.js","../node_modules/date-fns/endOfMonth.js","../node_modules/date-fns/endOfQuarter.js","../node_modules/date-fns/endOfSecond.js","../node_modules/date-fns/endOfToday.js","../node_modules/date-fns/endOfTomorrow.js","../node_modules/date-fns/endOfWeek.js","../node_modules/date-fns/endOfYear.js","../node_modules/date-fns/endOfYesterday.js","../node_modules/date-fns/format.js","../node_modules/date-fns/formatDistance.js","../node_modules/date-fns/formatDistanceStrict.js","../node_modules/date-fns/formatDistanceToNow.js","../node_modules/date-fns/formatDistanceToNowStrict.js","../node_modules/date-fns/formatDuration.js","../node_modules/date-fns/formatISO.js","../node_modules/date-fns/formatISO9075.js","../node_modules/date-fns/formatISODuration.js","../node_modules/date-fns/formatRFC3339.js","../node_modules/date-fns/formatRFC7231.js","../node_modules/date-fns/formatRelative.js","../node_modules/date-fns/fromUnixTime.js"],"sourcesContent":["\"use strict\";\nexports.closestIndexTo = closestIndexTo;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name closestIndexTo\n * @category Common Helpers\n * @summary Return an index of the closest date from the array comparing to the given date.\n *\n * @description\n * Return an index of the closest date from the array comparing to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateToCompare - The date to compare with\n * @param dates - The array to search\n *\n * @returns An index of the date closest to the given date or undefined if no valid value is given\n *\n * @example\n * // Which date is closer to 6 September 2015?\n * const dateToCompare = new Date(2015, 8, 6)\n * const datesArray = [\n * new Date(2015, 0, 1),\n * new Date(2016, 0, 1),\n * new Date(2017, 0, 1)\n * ]\n * const result = closestIndexTo(dateToCompare, datesArray)\n * //=> 1\n */\nfunction closestIndexTo(dateToCompare, dates) {\n const date = (0, _index.toDate)(dateToCompare);\n\n if (isNaN(Number(date))) return NaN;\n\n const timeToCompare = date.getTime();\n\n let result;\n let minDistance;\n dates.forEach(function (dirtyDate, index) {\n const currentDate = (0, _index.toDate)(dirtyDate);\n\n if (isNaN(Number(currentDate))) {\n result = NaN;\n minDistance = NaN;\n return;\n }\n\n const distance = Math.abs(timeToCompare - currentDate.getTime());\n if (result == null || distance < minDistance) {\n result = index;\n minDistance = distance;\n }\n });\n\n return result;\n}\n","\"use strict\";\nexports.closestTo = closestTo;\nvar _index = require(\"./constructFrom.js\");\nvar _index2 = require(\"./toDate.js\");\n\n/**\n * @name closestTo\n * @category Common Helpers\n * @summary Return a date from the array closest to the given date.\n *\n * @description\n * Return a date from the array closest to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateToCompare - The date to compare with\n * @param dates - The array to search\n *\n * @returns The date from the array closest to the given date or undefined if no valid value is given\n *\n * @example\n * // Which date is closer to 6 September 2015: 1 January 2000 or 1 January 2030?\n * const dateToCompare = new Date(2015, 8, 6)\n * const result = closestTo(dateToCompare, [\n * new Date(2000, 0, 1),\n * new Date(2030, 0, 1)\n * ])\n * //=> Tue Jan 01 2030 00:00:00\n */\nfunction closestTo(dateToCompare, dates) {\n const date = (0, _index2.toDate)(dateToCompare);\n\n if (isNaN(Number(date))) return (0, _index.constructFrom)(dateToCompare, NaN);\n\n const timeToCompare = date.getTime();\n\n let result;\n let minDistance;\n dates.forEach((dirtyDate) => {\n const currentDate = (0, _index2.toDate)(dirtyDate);\n\n if (isNaN(Number(currentDate))) {\n result = (0, _index.constructFrom)(dateToCompare, NaN);\n minDistance = NaN;\n return;\n }\n\n const distance = Math.abs(timeToCompare - currentDate.getTime());\n if (result == null || distance < minDistance) {\n result = currentDate;\n minDistance = distance;\n }\n });\n\n return result;\n}\n","\"use strict\";\nexports.compareAsc = compareAsc;\nvar _index = require(\"./toDate.js\");\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The result of the comparison\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 */\nfunction compareAsc(dateLeft, dateRight) {\n const _dateLeft = (0, _index.toDate)(dateLeft);\n const _dateRight = (0, _index.toDate)(dateRight);\n\n const diff = _dateLeft.getTime() - _dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1;\n // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n","\"use strict\";\nexports.compareDesc = compareDesc;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name compareDesc\n * @category Common Helpers\n * @summary Compare the two dates reverse chronologically 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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989 reverse chronologically:\n * const result = compareDesc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> 1\n *\n * @example\n * // Sort the array of dates in reverse chronological order:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareDesc)\n * //=> [\n * // Sun Jul 02 1995 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Wed Feb 11 1987 00:00:00\n * // ]\n */\nfunction compareDesc(dateLeft, dateRight) {\n const _dateLeft = (0, _index.toDate)(dateLeft);\n const _dateRight = (0, _index.toDate)(dateRight);\n\n const diff = _dateLeft.getTime() - _dateRight.getTime();\n\n if (diff > 0) {\n return -1;\n } else if (diff < 0) {\n return 1;\n // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n","\"use strict\";\nexports.secondsInYear =\n exports.secondsInWeek =\n exports.secondsInQuarter =\n exports.secondsInMonth =\n exports.secondsInMinute =\n exports.secondsInHour =\n exports.secondsInDay =\n exports.quartersInYear =\n exports.monthsInYear =\n exports.monthsInQuarter =\n exports.minutesInYear =\n exports.minutesInMonth =\n exports.minutesInHour =\n exports.minutesInDay =\n exports.minTime =\n exports.millisecondsInWeek =\n exports.millisecondsInSecond =\n exports.millisecondsInMinute =\n exports.millisecondsInHour =\n exports.millisecondsInDay =\n exports.maxTime =\n exports.daysInYear =\n exports.daysInWeek =\n void 0; /**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nconst daysInWeek = (exports.daysInWeek = 7);\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nconst daysInYear = (exports.daysInYear = 365.2425);\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nconst maxTime = (exports.maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000);\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nconst minTime = (exports.minTime = -maxTime);\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nconst millisecondsInWeek = (exports.millisecondsInWeek = 604800000);\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nconst millisecondsInDay = (exports.millisecondsInDay = 86400000);\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nconst millisecondsInMinute = (exports.millisecondsInMinute = 60000);\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nconst millisecondsInHour = (exports.millisecondsInHour = 3600000);\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nconst millisecondsInSecond = (exports.millisecondsInSecond = 1000);\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nconst minutesInYear = (exports.minutesInYear = 525600);\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nconst minutesInMonth = (exports.minutesInMonth = 43200);\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nconst minutesInDay = (exports.minutesInDay = 1440);\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nconst minutesInHour = (exports.minutesInHour = 60);\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nconst monthsInQuarter = (exports.monthsInQuarter = 3);\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nconst monthsInYear = (exports.monthsInYear = 12);\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nconst quartersInYear = (exports.quartersInYear = 4);\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nconst secondsInHour = (exports.secondsInHour = 3600);\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nconst secondsInMinute = (exports.secondsInMinute = 60);\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nconst secondsInDay = (exports.secondsInDay = secondsInHour * 24);\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nconst secondsInWeek = (exports.secondsInWeek = secondsInDay * 7);\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nconst secondsInYear = (exports.secondsInYear = secondsInDay * daysInYear);\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nconst secondsInMonth = (exports.secondsInMonth = secondsInYear / 12);\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nconst secondsInQuarter = (exports.secondsInQuarter = secondsInMonth * 3);\n","\"use strict\";\nexports.constructFrom = constructFrom;\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from 'date-fns'\n *\n * // A function that clones a date preserving the original type\n * function cloneDate(\n * date: DateType | number | string,\n * ): boolean {\n * // If we were to use `new Date()` directly, the function would behave\n * // differently in different timezones and return false for the same date.\n * return isSameDay(date, constructNow(date));\n * }\n */\nfunction constructNow(date) {\n return (0, _index.constructFrom)(date, Date.now());\n}\n","\"use strict\";\nexports.daysToWeeks = daysToWeeks;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name daysToWeeks\n * @category Conversion Helpers\n * @summary Convert days to weeks.\n *\n * @description\n * Convert a number of days to a full number of weeks.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param days - The number of days to be converted\n *\n * @returns The number of days converted in weeks\n *\n * @example\n * // Convert 14 days to weeks:\n * const result = daysToWeeks(14)\n * //=> 2\n *\n * @example\n * // It uses trunc rounding:\n * const result = daysToWeeks(13)\n * //=> 1\n */\nfunction daysToWeeks(days) {\n const weeks = days / _index.daysInWeek;\n const result = Math.trunc(weeks);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n","\"use strict\";\nexports.differenceInBusinessDays = differenceInBusinessDays;\nvar _index = require(\"./addDays.js\");\nvar _index2 = require(\"./differenceInCalendarDays.js\");\nvar _index3 = require(\"./isSameDay.js\");\nvar _index4 = require(\"./isValid.js\");\nvar _index5 = require(\"./isWeekend.js\");\nvar _index6 = require(\"./toDate.js\");\n\n/**\n * @name differenceInBusinessDays\n * @category Day Helpers\n * @summary Get the number of business days between the given dates.\n *\n * @description\n * Get the number of business day periods between the given dates.\n * Business days being days that arent in the weekend.\n * Like `differenceInCalendarDays`, the function removes the times from\n * the dates before calculating the difference.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of business days\n *\n * @example\n * // How many business days are between\n * // 10 January 2014 and 20 July 2014?\n * const result = differenceInBusinessDays(\n * new Date(2014, 6, 20),\n * new Date(2014, 0, 10)\n * )\n * //=> 136\n *\n * // How many business days are between\n * // 30 November 2021 and 1 November 2021?\n * const result = differenceInBusinessDays(\n * new Date(2021, 10, 30),\n * new Date(2021, 10, 1)\n * )\n * //=> 21\n *\n * // How many business days are between\n * // 1 November 2021 and 1 December 2021?\n * const result = differenceInBusinessDays(\n * new Date(2021, 10, 1),\n * new Date(2021, 11, 1)\n * )\n * //=> -22\n *\n * // How many business days are between\n * // 1 November 2021 and 1 November 2021 ?\n * const result = differenceInBusinessDays(\n * new Date(2021, 10, 1),\n * new Date(2021, 10, 1)\n * )\n * //=> 0\n */\nfunction differenceInBusinessDays(dateLeft, dateRight) {\n const _dateLeft = (0, _index6.toDate)(dateLeft);\n let _dateRight = (0, _index6.toDate)(dateRight);\n\n if (!(0, _index4.isValid)(_dateLeft) || !(0, _index4.isValid)(_dateRight))\n return NaN;\n\n const calendarDifference = (0, _index2.differenceInCalendarDays)(\n _dateLeft,\n _dateRight,\n );\n const sign = calendarDifference < 0 ? -1 : 1;\n\n const weeks = Math.trunc(calendarDifference / 7);\n\n let result = weeks * 5;\n _dateRight = (0, _index.addDays)(_dateRight, weeks * 7);\n\n // the loop below will run at most 6 times to account for the remaining days that don't makeup a full week\n while (!(0, _index3.isSameDay)(_dateLeft, _dateRight)) {\n // sign is used to account for both negative and positive differences\n result += (0, _index5.isWeekend)(_dateRight) ? 0 : sign;\n _dateRight = (0, _index.addDays)(_dateRight, sign);\n }\n\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n","\"use strict\";\nexports.differenceInCalendarDays = differenceInCalendarDays;\nvar _index = require(\"./constants.js\");\nvar _index2 = require(\"./startOfDay.js\");\nvar _index3 = require(\"./_lib/getTimezoneOffsetInMilliseconds.js\");\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nfunction differenceInCalendarDays(dateLeft, dateRight) {\n const startOfDayLeft = (0, _index2.startOfDay)(dateLeft);\n const startOfDayRight = (0, _index2.startOfDay)(dateRight);\n\n const timestampLeft =\n +startOfDayLeft -\n (0, _index3.getTimezoneOffsetInMilliseconds)(startOfDayLeft);\n const timestampRight =\n +startOfDayRight -\n (0, _index3.getTimezoneOffsetInMilliseconds)(startOfDayRight);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(\n (timestampLeft - timestampRight) / _index.millisecondsInDay,\n );\n}\n","\"use strict\";\nexports.differenceInCalendarISOWeekYears = differenceInCalendarISOWeekYears;\nvar _index = require(\"./getISOWeekYear.js\");\n\n/**\n * @name differenceInCalendarISOWeekYears\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of calendar ISO week-numbering years between the given dates.\n *\n * @description\n * Get the number of calendar ISO week-numbering years between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar ISO week-numbering years\n *\n * @example\n * // How many calendar ISO week-numbering years are 1 January 2010 and 1 January 2012?\n * const result = differenceInCalendarISOWeekYears(\n * new Date(2012, 0, 1),\n * new Date(2010, 0, 1)\n * )\n * //=> 2\n */\nfunction differenceInCalendarISOWeekYears(dateLeft, dateRight) {\n return (\n (0, _index.getISOWeekYear)(dateLeft) - (0, _index.getISOWeekYear)(dateRight)\n );\n}\n","\"use strict\";\nexports.differenceInCalendarISOWeeks = differenceInCalendarISOWeeks;\nvar _index = require(\"./constants.js\");\nvar _index2 = require(\"./startOfISOWeek.js\");\nvar _index3 = require(\"./_lib/getTimezoneOffsetInMilliseconds.js\");\n\n/**\n * @name differenceInCalendarISOWeeks\n * @category ISO Week Helpers\n * @summary Get the number of calendar ISO weeks between the given dates.\n *\n * @description\n * Get the number of calendar ISO weeks between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar ISO weeks\n *\n * @example\n * // How many calendar ISO weeks are between 6 July 2014 and 21 July 2014?\n * const result = differenceInCalendarISOWeeks(\n * new Date(2014, 6, 21),\n * new Date(2014, 6, 6)\n * )\n * //=> 3\n */\nfunction differenceInCalendarISOWeeks(dateLeft, dateRight) {\n const startOfISOWeekLeft = (0, _index2.startOfISOWeek)(dateLeft);\n const startOfISOWeekRight = (0, _index2.startOfISOWeek)(dateRight);\n\n const timestampLeft =\n +startOfISOWeekLeft -\n (0, _index3.getTimezoneOffsetInMilliseconds)(startOfISOWeekLeft);\n const timestampRight =\n +startOfISOWeekRight -\n (0, _index3.getTimezoneOffsetInMilliseconds)(startOfISOWeekRight);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(\n (timestampLeft - timestampRight) / _index.millisecondsInWeek,\n );\n}\n","\"use strict\";\nexports.differenceInCalendarMonths = differenceInCalendarMonths;\nvar _index = require(\"./toDate.js\");\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar months\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nfunction differenceInCalendarMonths(dateLeft, dateRight) {\n const _dateLeft = (0, _index.toDate)(dateLeft);\n const _dateRight = (0, _index.toDate)(dateRight);\n\n const yearDiff = _dateLeft.getFullYear() - _dateRight.getFullYear();\n const monthDiff = _dateLeft.getMonth() - _dateRight.getMonth();\n\n return yearDiff * 12 + monthDiff;\n}\n","\"use strict\";\nexports.differenceInCalendarQuarters = differenceInCalendarQuarters;\nvar _index = require(\"./getQuarter.js\");\nvar _index2 = require(\"./toDate.js\");\n\n/**\n * @name differenceInCalendarQuarters\n * @category Quarter Helpers\n * @summary Get the number of calendar quarters between the given dates.\n *\n * @description\n * Get the number of calendar quarters between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n\n * @returns The number of calendar quarters\n *\n * @example\n * // How many calendar quarters are between 31 December 2013 and 2 July 2014?\n * const result = differenceInCalendarQuarters(\n * new Date(2014, 6, 2),\n * new Date(2013, 11, 31)\n * )\n * //=> 3\n */\nfunction differenceInCalendarQuarters(dateLeft, dateRight) {\n const _dateLeft = (0, _index2.toDate)(dateLeft);\n const _dateRight = (0, _index2.toDate)(dateRight);\n\n const yearDiff = _dateLeft.getFullYear() - _dateRight.getFullYear();\n const quarterDiff =\n (0, _index.getQuarter)(_dateLeft) - (0, _index.getQuarter)(_dateRight);\n\n return yearDiff * 4 + quarterDiff;\n}\n","\"use strict\";\nexports.differenceInCalendarWeeks = differenceInCalendarWeeks;\nvar _index = require(\"./constants.js\");\nvar _index2 = require(\"./startOfWeek.js\");\n\nvar _index3 = require(\"./_lib/getTimezoneOffsetInMilliseconds.js\");\n\n/**\n * The {@link differenceInCalendarWeeks} function options.\n */\n\n/**\n * @name differenceInCalendarWeeks\n * @category Week Helpers\n * @summary Get the number of calendar weeks between the given dates.\n *\n * @description\n * Get the number of calendar weeks between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of calendar weeks\n *\n * @example\n * // How many calendar weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5)\n * )\n * //=> 3\n *\n * @example\n * // If the week starts on Monday,\n * // how many calendar weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5),\n * { weekStartsOn: 1 }\n * )\n * //=> 2\n */\nfunction differenceInCalendarWeeks(dateLeft, dateRight, options) {\n const startOfWeekLeft = (0, _index2.startOfWeek)(dateLeft, options);\n const startOfWeekRight = (0, _index2.startOfWeek)(dateRight, options);\n\n const timestampLeft =\n +startOfWeekLeft -\n (0, _index3.getTimezoneOffsetInMilliseconds)(startOfWeekLeft);\n const timestampRight =\n +startOfWeekRight -\n (0, _index3.getTimezoneOffsetInMilliseconds)(startOfWeekRight);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a days is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(\n (timestampLeft - timestampRight) / _index.millisecondsInWeek,\n );\n}\n","\"use strict\";\nexports.differenceInCalendarYears = differenceInCalendarYears;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n\n * @returns The number of calendar years\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\nfunction differenceInCalendarYears(dateLeft, dateRight) {\n const _dateLeft = (0, _index.toDate)(dateLeft);\n const _dateRight = (0, _index.toDate)(dateRight);\n\n return _dateLeft.getFullYear() - _dateRight.getFullYear();\n}\n","\"use strict\";\nexports.differenceInDays = differenceInDays;\nvar _index = require(\"./differenceInCalendarDays.js\");\nvar _index2 = require(\"./toDate.js\");\n\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between two dates. Fractional days are\n * truncated towards zero.\n *\n * One \"full day\" is the distance between a local time in one day to the same\n * local time on the next or previous day. A full day can sometimes be less than\n * or more than 24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 24-hour periods, use this instead:\n * `Math.trunc(differenceInHours(dateLeft, dateRight)/24)|0`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of full days according to the local timezone\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n *\n * @example\n * // How many full days are between\n * // 1 March 2020 0:00 and 1 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 92 days, even in\n * // time zones where DST starts and the\n * // period has only 92*24-1 hours.\n * const result = differenceInDays(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 1)\n * )\n * //=> 92\n */\nfunction differenceInDays(dateLeft, dateRight) {\n const _dateLeft = (0, _index2.toDate)(dateLeft);\n const _dateRight = (0, _index2.toDate)(dateRight);\n\n const sign = compareLocalAsc(_dateLeft, _dateRight);\n const difference = Math.abs(\n (0, _index.differenceInCalendarDays)(_dateLeft, _dateRight),\n );\n\n _dateLeft.setDate(_dateLeft.getDate() - sign * difference);\n\n // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n const isLastDayNotFull = Number(\n compareLocalAsc(_dateLeft, _dateRight) === -sign,\n );\n const result = sign * (difference - isLastDayNotFull);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n\n// Like `compareAsc` but uses local time not UTC, which is needed\n// for accurate equality comparisons of UTC timestamps that end up\n// having the same representation in local time, e.g. one hour before\n// DST ends vs. the instant that DST ends.\nfunction compareLocalAsc(dateLeft, dateRight) {\n const diff =\n dateLeft.getFullYear() - dateRight.getFullYear() ||\n dateLeft.getMonth() - dateRight.getMonth() ||\n dateLeft.getDate() - dateRight.getDate() ||\n dateLeft.getHours() - dateRight.getHours() ||\n dateLeft.getMinutes() - dateRight.getMinutes() ||\n dateLeft.getSeconds() - dateRight.getSeconds() ||\n dateLeft.getMilliseconds() - dateRight.getMilliseconds();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1;\n // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n","\"use strict\";\nexports.differenceInHours = differenceInHours;\nvar _index = require(\"./_lib/getRoundingMethod.js\");\nvar _index2 = require(\"./constants.js\");\nvar _index3 = require(\"./differenceInMilliseconds.js\");\n\n/**\n * The {@link differenceInHours} function options.\n */\n\n/**\n * @name differenceInHours\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of hours\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * const result = differenceInHours(\n * new Date(2014, 6, 2, 19, 0),\n * new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\nfunction differenceInHours(dateLeft, dateRight, options) {\n const diff =\n (0, _index3.differenceInMilliseconds)(dateLeft, dateRight) /\n _index2.millisecondsInHour;\n return (0, _index.getRoundingMethod)(options?.roundingMethod)(diff);\n}\n","\"use strict\";\nexports.differenceInISOWeekYears = differenceInISOWeekYears;\nvar _index = require(\"./compareAsc.js\");\nvar _index2 = require(\"./differenceInCalendarISOWeekYears.js\");\nvar _index3 = require(\"./subISOWeekYears.js\");\nvar _index4 = require(\"./toDate.js\");\n\n/**\n * @name differenceInISOWeekYears\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of full ISO week-numbering years between the given dates.\n *\n * @description\n * Get the number of full ISO week-numbering years between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of full ISO week-numbering years\n *\n * @example\n * // How many full ISO week-numbering years are between 1 January 2010 and 1 January 2012?\n * const result = differenceInISOWeekYears(\n * new Date(2012, 0, 1),\n * new Date(2010, 0, 1)\n * )\n * //=> 1\n */\nfunction differenceInISOWeekYears(dateLeft, dateRight) {\n let _dateLeft = (0, _index4.toDate)(dateLeft);\n const _dateRight = (0, _index4.toDate)(dateRight);\n\n const sign = (0, _index.compareAsc)(_dateLeft, _dateRight);\n const difference = Math.abs(\n (0, _index2.differenceInCalendarISOWeekYears)(_dateLeft, _dateRight),\n );\n _dateLeft = (0, _index3.subISOWeekYears)(_dateLeft, sign * difference);\n\n // Math.abs(diff in full ISO years - diff in calendar ISO years) === 1\n // if last calendar ISO year is not full\n // If so, result must be decreased by 1 in absolute value\n const isLastISOWeekYearNotFull = Number(\n (0, _index.compareAsc)(_dateLeft, _dateRight) === -sign,\n );\n const result = sign * (difference - isLastISOWeekYearNotFull);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n","\"use strict\";\nexports.differenceInMilliseconds = differenceInMilliseconds;\nvar _index = require(\"./toDate.js\");\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of milliseconds\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 */\nfunction differenceInMilliseconds(dateLeft, dateRight) {\n return +(0, _index.toDate)(dateLeft) - +(0, _index.toDate)(dateRight);\n}\n","\"use strict\";\nexports.differenceInMinutes = differenceInMinutes;\nvar _index = require(\"./_lib/getRoundingMethod.js\");\nvar _index2 = require(\"./constants.js\");\nvar _index3 = require(\"./differenceInMilliseconds.js\");\n\n/**\n * The {@link differenceInMinutes} function options.\n */\n\n/**\n * @name differenceInMinutes\n * @category Minute Helpers\n * @summary Get the number of minutes between the given dates.\n *\n * @description\n * Get the signed number of full (rounded towards 0) minutes between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of minutes\n *\n * @example\n * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\n * const result = differenceInMinutes(\n * new Date(2014, 6, 2, 12, 20, 0),\n * new Date(2014, 6, 2, 12, 7, 59)\n * )\n * //=> 12\n *\n * @example\n * // How many minutes are between 10:01:59 and 10:00:00\n * const result = differenceInMinutes(\n * new Date(2000, 0, 1, 10, 0, 0),\n * new Date(2000, 0, 1, 10, 1, 59)\n * )\n * //=> -1\n */\nfunction differenceInMinutes(dateLeft, dateRight, options) {\n const diff =\n (0, _index3.differenceInMilliseconds)(dateLeft, dateRight) /\n _index2.millisecondsInMinute;\n return (0, _index.getRoundingMethod)(options?.roundingMethod)(diff);\n}\n","\"use strict\";\nexports.differenceInMonths = differenceInMonths;\nvar _index = require(\"./compareAsc.js\");\nvar _index2 = require(\"./differenceInCalendarMonths.js\");\nvar _index3 = require(\"./isLastDayOfMonth.js\");\nvar _index4 = require(\"./toDate.js\");\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of full months\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 */\nfunction differenceInMonths(dateLeft, dateRight) {\n const _dateLeft = (0, _index4.toDate)(dateLeft);\n const _dateRight = (0, _index4.toDate)(dateRight);\n\n const sign = (0, _index.compareAsc)(_dateLeft, _dateRight);\n const difference = Math.abs(\n (0, _index2.differenceInCalendarMonths)(_dateLeft, _dateRight),\n );\n let result;\n\n // Check for the difference of less than month\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);\n\n // 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 let isLastMonthNotFull =\n (0, _index.compareAsc)(_dateLeft, _dateRight) === -sign;\n\n // Check for cases of one full calendar month\n if (\n (0, _index3.isLastDayOfMonth)((0, _index4.toDate)(dateLeft)) &&\n difference === 1 &&\n (0, _index.compareAsc)(dateLeft, _dateRight) === 1\n ) {\n isLastMonthNotFull = false;\n }\n\n result = sign * (difference - Number(isLastMonthNotFull));\n }\n\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n","\"use strict\";\nexports.differenceInQuarters = differenceInQuarters;\nvar _index = require(\"./_lib/getRoundingMethod.js\");\nvar _index2 = require(\"./differenceInMonths.js\");\n\n/**\n * The {@link differenceInQuarters} function options.\n */\n\n/**\n * @name differenceInQuarters\n * @category Quarter Helpers\n * @summary Get the number of quarters between the given dates.\n *\n * @description\n * Get the number of quarters between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of full quarters\n *\n * @example\n * // How many full quarters are between 31 December 2013 and 2 July 2014?\n * const result = differenceInQuarters(new Date(2014, 6, 2), new Date(2013, 11, 31))\n * //=> 2\n */\nfunction differenceInQuarters(dateLeft, dateRight, options) {\n const diff = (0, _index2.differenceInMonths)(dateLeft, dateRight) / 3;\n return (0, _index.getRoundingMethod)(options?.roundingMethod)(diff);\n}\n","\"use strict\";\nexports.differenceInSeconds = differenceInSeconds;\nvar _index = require(\"./_lib/getRoundingMethod.js\");\nvar _index2 = require(\"./differenceInMilliseconds.js\");\n\n/**\n * The {@link differenceInSeconds} function options.\n */\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of seconds\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 */\nfunction differenceInSeconds(dateLeft, dateRight, options) {\n const diff =\n (0, _index2.differenceInMilliseconds)(dateLeft, dateRight) / 1000;\n return (0, _index.getRoundingMethod)(options?.roundingMethod)(diff);\n}\n","\"use strict\";\nexports.differenceInWeeks = differenceInWeeks;\nvar _index = require(\"./_lib/getRoundingMethod.js\");\nvar _index2 = require(\"./differenceInDays.js\");\n\n/**\n * The {@link differenceInWeeks} function options.\n */\n\n/**\n * @name differenceInWeeks\n * @category Week Helpers\n * @summary Get the number of full weeks between the given dates.\n *\n * @description\n * Get the number of full weeks between two dates. Fractional weeks are\n * truncated towards zero by default.\n *\n * One \"full week\" is the distance between a local time in one day to the same\n * local time 7 days earlier or later. A full week can sometimes be less than\n * or more than 7*24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 7*24-hour periods, use this instead:\n * `Math.trunc(differenceInHours(dateLeft, dateRight)/(7*24))|0`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options\n *\n * @returns The number of full weeks\n *\n * @example\n * // How many full weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInWeeks(new Date(2014, 6, 20), new Date(2014, 6, 5))\n * //=> 2\n *\n * @example\n * // How many full weeks are between\n * // 1 March 2020 0:00 and 6 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 8 weeks (54 days),\n * // even if DST starts and the period has\n * // only 54*24-1 hours.\n * const result = differenceInWeeks(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 6)\n * )\n * //=> 8\n */\nfunction differenceInWeeks(dateLeft, dateRight, options) {\n const diff = (0, _index2.differenceInDays)(dateLeft, dateRight) / 7;\n return (0, _index.getRoundingMethod)(options?.roundingMethod)(diff);\n}\n","\"use strict\";\nexports.differenceInYears = differenceInYears;\nvar _index = require(\"./compareAsc.js\");\nvar _index2 = require(\"./differenceInCalendarYears.js\");\nvar _index3 = require(\"./toDate.js\");\n\n/**\n * @name differenceInYears\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of full years\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))\n * //=> 1\n */\nfunction differenceInYears(dateLeft, dateRight) {\n const _dateLeft = (0, _index3.toDate)(dateLeft);\n const _dateRight = (0, _index3.toDate)(dateRight);\n\n const sign = (0, _index.compareAsc)(_dateLeft, _dateRight);\n const difference = Math.abs(\n (0, _index2.differenceInCalendarYears)(_dateLeft, _dateRight),\n );\n\n // Set both dates to a valid leap year for accurate comparison when dealing\n // with leap days\n _dateLeft.setFullYear(1584);\n _dateRight.setFullYear(1584);\n\n // Math.abs(diff in full years - diff in calendar years) === 1 if last calendar year is not full\n // If so, result must be decreased by 1 in absolute value\n const isLastYearNotFull =\n (0, _index.compareAsc)(_dateLeft, _dateRight) === -sign;\n const result = sign * (difference - +isLastYearNotFull);\n\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n","\"use strict\";\nexports.eachDayOfInterval = eachDayOfInterval;\nvar _index = require(\"./toDate.js\");\n\n/**\n * The {@link eachDayOfInterval} function options.\n */\n\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of days from the day of the interval start to the day of the interval end\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\nfunction eachDayOfInterval(interval, options) {\n const startDate = (0, _index.toDate)(interval.start);\n const endDate = (0, _index.toDate)(interval.end);\n\n let reversed = +startDate > +endDate;\n const endTime = reversed ? +startDate : +endDate;\n const currentDate = reversed ? endDate : startDate;\n currentDate.setHours(0, 0, 0, 0);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n dates.push((0, _index.toDate)(currentDate));\n currentDate.setDate(currentDate.getDate() + step);\n currentDate.setHours(0, 0, 0, 0);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n","\"use strict\";\nexports.eachHourOfInterval = eachHourOfInterval;\nvar _index = require(\"./addHours.js\");\nvar _index2 = require(\"./toDate.js\");\n\n/**\n * The {@link eachHourOfInterval} function options.\n */\n\n/**\n * @name eachHourOfInterval\n * @category Interval Helpers\n * @summary Return the array of hours within the specified time interval.\n *\n * @description\n * Return the array of hours within the specified time interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of hours from the hour of the interval start to the hour of the interval end\n *\n * @example\n * // Each hour between 6 October 2014, 12:00 and 6 October 2014, 15:00\n * const result = eachHourOfInterval({\n * start: new Date(2014, 9, 6, 12),\n * end: new Date(2014, 9, 6, 15)\n * })\n * //=> [\n * // Mon Oct 06 2014 12:00:00,\n * // Mon Oct 06 2014 13:00:00,\n * // Mon Oct 06 2014 14:00:00,\n * // Mon Oct 06 2014 15:00:00\n * // ]\n */\nfunction eachHourOfInterval(interval, options) {\n const startDate = (0, _index2.toDate)(interval.start);\n const endDate = (0, _index2.toDate)(interval.end);\n\n let reversed = +startDate > +endDate;\n const endTime = reversed ? +startDate : +endDate;\n let currentDate = reversed ? endDate : startDate;\n currentDate.setMinutes(0, 0, 0);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n dates.push((0, _index2.toDate)(currentDate));\n currentDate = (0, _index.addHours)(currentDate, step);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n","\"use strict\";\nexports.eachMinuteOfInterval = eachMinuteOfInterval;\nvar _index = require(\"./addMinutes.js\");\nvar _index2 = require(\"./startOfMinute.js\");\nvar _index3 = require(\"./toDate.js\");\n\n/**\n * The {@link eachMinuteOfInterval} function options.\n */\n\n/**\n * @name eachMinuteOfInterval\n * @category Interval Helpers\n * @summary Return the array of minutes within the specified time interval.\n *\n * @description\n * Returns the array of minutes within the specified time interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of minutes from the minute of the interval start to the minute of the interval end\n *\n * @example\n * // Each minute between 14 October 2020, 13:00 and 14 October 2020, 13:03\n * const result = eachMinuteOfInterval({\n * start: new Date(2014, 9, 14, 13),\n * end: new Date(2014, 9, 14, 13, 3)\n * })\n * //=> [\n * // Wed Oct 14 2014 13:00:00,\n * // Wed Oct 14 2014 13:01:00,\n * // Wed Oct 14 2014 13:02:00,\n * // Wed Oct 14 2014 13:03:00\n * // ]\n */\nfunction eachMinuteOfInterval(interval, options) {\n const startDate = (0, _index2.startOfMinute)(\n (0, _index3.toDate)(interval.start),\n );\n const endDate = (0, _index3.toDate)(interval.end);\n\n let reversed = +startDate > +endDate;\n const endTime = reversed ? +startDate : +endDate;\n let currentDate = reversed ? endDate : startDate;\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n dates.push((0, _index3.toDate)(currentDate));\n currentDate = (0, _index.addMinutes)(currentDate, step);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n","\"use strict\";\nexports.eachMonthOfInterval = eachMonthOfInterval;\nvar _index = require(\"./toDate.js\");\n\n/**\n * The {@link eachMonthOfInterval} function options.\n */\n\n/**\n * @name eachMonthOfInterval\n * @category Interval Helpers\n * @summary Return the array of months within the specified time interval.\n *\n * @description\n * Return the array of months within the specified time interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The interval\n *\n * @returns The array with starts of months from the month of the interval start to the month of the interval end\n *\n * @example\n * // Each month between 6 February 2014 and 10 August 2014:\n * const result = eachMonthOfInterval({\n * start: new Date(2014, 1, 6),\n * end: new Date(2014, 7, 10)\n * })\n * //=> [\n * // Sat Feb 01 2014 00:00:00,\n * // Sat Mar 01 2014 00:00:00,\n * // Tue Apr 01 2014 00:00:00,\n * // Thu May 01 2014 00:00:00,\n * // Sun Jun 01 2014 00:00:00,\n * // Tue Jul 01 2014 00:00:00,\n * // Fri Aug 01 2014 00:00:00\n * // ]\n */\nfunction eachMonthOfInterval(interval, options) {\n const startDate = (0, _index.toDate)(interval.start);\n const endDate = (0, _index.toDate)(interval.end);\n\n let reversed = +startDate > +endDate;\n const endTime = reversed ? +startDate : +endDate;\n const currentDate = reversed ? endDate : startDate;\n currentDate.setHours(0, 0, 0, 0);\n currentDate.setDate(1);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n dates.push((0, _index.toDate)(currentDate));\n currentDate.setMonth(currentDate.getMonth() + step);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n","\"use strict\";\nexports.eachQuarterOfInterval = eachQuarterOfInterval;\nvar _index = require(\"./addQuarters.js\");\nvar _index2 = require(\"./startOfQuarter.js\");\nvar _index3 = require(\"./toDate.js\");\n\n/**\n * The {@link eachQuarterOfInterval} function options.\n */\n\n/**\n * @name eachQuarterOfInterval\n * @category Interval Helpers\n * @summary Return the array of quarters within the specified time interval.\n *\n * @description\n * Return the array of quarters within the specified time interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The interval\n *\n * @returns The array with starts of quarters from the quarter of the interval start to the quarter of the interval end\n *\n * @example\n * // Each quarter within interval 6 February 2014 - 10 August 2014:\n * const result = eachQuarterOfInterval({\n * start: new Date(2014, 1, 6),\n * end: new Date(2014, 7, 10)\n * })\n * //=> [\n * // Wed Jan 01 2014 00:00:00,\n * // Tue Apr 01 2014 00:00:00,\n * // Tue Jul 01 2014 00:00:00,\n * // ]\n */\nfunction eachQuarterOfInterval(interval, options) {\n const startDate = (0, _index3.toDate)(interval.start);\n const endDate = (0, _index3.toDate)(interval.end);\n\n let reversed = +startDate > +endDate;\n const endTime = reversed\n ? +(0, _index2.startOfQuarter)(startDate)\n : +(0, _index2.startOfQuarter)(endDate);\n let currentDate = reversed\n ? (0, _index2.startOfQuarter)(endDate)\n : (0, _index2.startOfQuarter)(startDate);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n dates.push((0, _index3.toDate)(currentDate));\n currentDate = (0, _index.addQuarters)(currentDate, step);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n","\"use strict\";\nexports.eachWeekOfInterval = eachWeekOfInterval;\nvar _index = require(\"./addWeeks.js\");\nvar _index2 = require(\"./startOfWeek.js\");\nvar _index3 = require(\"./toDate.js\");\n\n/**\n * The {@link eachWeekOfInterval} function options.\n */\n\n/**\n * @name eachWeekOfInterval\n * @category Interval Helpers\n * @summary Return the array of weeks within the specified time interval.\n *\n * @description\n * Return the array of weeks within the specified time interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of weeks from the week of the interval start to the week of the interval end\n *\n * @example\n * // Each week within interval 6 October 2014 - 23 November 2014:\n * const result = eachWeekOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 10, 23)\n * })\n * //=> [\n * // Sun Oct 05 2014 00:00:00,\n * // Sun Oct 12 2014 00:00:00,\n * // Sun Oct 19 2014 00:00:00,\n * // Sun Oct 26 2014 00:00:00,\n * // Sun Nov 02 2014 00:00:00,\n * // Sun Nov 09 2014 00:00:00,\n * // Sun Nov 16 2014 00:00:00,\n * // Sun Nov 23 2014 00:00:00\n * // ]\n */\nfunction eachWeekOfInterval(interval, options) {\n const startDate = (0, _index3.toDate)(interval.start);\n const endDate = (0, _index3.toDate)(interval.end);\n\n let reversed = +startDate > +endDate;\n const startDateWeek = reversed\n ? (0, _index2.startOfWeek)(endDate, options)\n : (0, _index2.startOfWeek)(startDate, options);\n const endDateWeek = reversed\n ? (0, _index2.startOfWeek)(startDate, options)\n : (0, _index2.startOfWeek)(endDate, options);\n\n // Some timezones switch DST at midnight, making start of day unreliable in these timezones, 3pm is a safe bet\n startDateWeek.setHours(15);\n endDateWeek.setHours(15);\n\n const endTime = +endDateWeek.getTime();\n let currentDate = startDateWeek;\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n currentDate.setHours(0);\n dates.push((0, _index3.toDate)(currentDate));\n currentDate = (0, _index.addWeeks)(currentDate, step);\n currentDate.setHours(15);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n","\"use strict\";\nexports.eachWeekendOfInterval = eachWeekendOfInterval;\nvar _index = require(\"./eachDayOfInterval.js\");\nvar _index2 = require(\"./isWeekend.js\");\n\n/**\n * @name eachWeekendOfInterval\n * @category Interval Helpers\n * @summary List all the Saturdays and Sundays in the given date interval.\n *\n * @description\n * Get all the Saturdays and Sundays in the given date interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The given interval\n *\n * @returns An array containing all the Saturdays and Sundays\n *\n * @example\n * // Lists all Saturdays and Sundays in the given date interval\n * const result = eachWeekendOfInterval({\n * start: new Date(2018, 8, 17),\n * end: new Date(2018, 8, 30)\n * })\n * //=> [\n * // Sat Sep 22 2018 00:00:00,\n * // Sun Sep 23 2018 00:00:00,\n * // Sat Sep 29 2018 00:00:00,\n * // Sun Sep 30 2018 00:00:00\n * // ]\n */\nfunction eachWeekendOfInterval(interval) {\n const dateInterval = (0, _index.eachDayOfInterval)(interval);\n const weekends = [];\n let index = 0;\n while (index < dateInterval.length) {\n const date = dateInterval[index++];\n if ((0, _index2.isWeekend)(date)) weekends.push(date);\n }\n return weekends;\n}\n","\"use strict\";\nexports.eachWeekendOfMonth = eachWeekendOfMonth;\nvar _index = require(\"./eachWeekendOfInterval.js\");\nvar _index2 = require(\"./endOfMonth.js\");\nvar _index3 = require(\"./startOfMonth.js\");\n\n/**\n * @name eachWeekendOfMonth\n * @category Month Helpers\n * @summary List all the Saturdays and Sundays in the given month.\n *\n * @description\n * Get all the Saturdays and Sundays in the given month.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given month\n *\n * @returns An array containing all the Saturdays and Sundays\n *\n * @example\n * // Lists all Saturdays and Sundays in the given month\n * const result = eachWeekendOfMonth(new Date(2022, 1, 1))\n * //=> [\n * // Sat Feb 05 2022 00:00:00,\n * // Sun Feb 06 2022 00:00:00,\n * // Sat Feb 12 2022 00:00:00,\n * // Sun Feb 13 2022 00:00:00,\n * // Sat Feb 19 2022 00:00:00,\n * // Sun Feb 20 2022 00:00:00,\n * // Sat Feb 26 2022 00:00:00,\n * // Sun Feb 27 2022 00:00:00\n * // ]\n */\nfunction eachWeekendOfMonth(date) {\n const start = (0, _index3.startOfMonth)(date);\n const end = (0, _index2.endOfMonth)(date);\n return (0, _index.eachWeekendOfInterval)({ start, end });\n}\n","\"use strict\";\nexports.eachWeekendOfYear = eachWeekendOfYear;\nvar _index = require(\"./eachWeekendOfInterval.js\");\nvar _index2 = require(\"./endOfYear.js\");\nvar _index3 = require(\"./startOfYear.js\");\n\n/**\n * @name eachWeekendOfYear\n * @category Year Helpers\n * @summary List all the Saturdays and Sundays in the year.\n *\n * @description\n * Get all the Saturdays and Sundays in the year.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given year\n *\n * @returns An array containing all the Saturdays and Sundays\n *\n * @example\n * // Lists all Saturdays and Sundays in the year\n * const result = eachWeekendOfYear(new Date(2020, 1, 1))\n * //=> [\n * // Sat Jan 03 2020 00:00:00,\n * // Sun Jan 04 2020 00:00:00,\n * // ...\n * // Sun Dec 27 2020 00:00:00\n * // ]\n * ]\n */\nfunction eachWeekendOfYear(date) {\n const start = (0, _index3.startOfYear)(date);\n const end = (0, _index2.endOfYear)(date);\n return (0, _index.eachWeekendOfInterval)({ start, end });\n}\n","\"use strict\";\nexports.eachYearOfInterval = eachYearOfInterval;\nvar _index = require(\"./toDate.js\");\n\n/**\n * The {@link eachYearOfInterval} function options.\n */\n\n/**\n * @name eachYearOfInterval\n * @category Interval Helpers\n * @summary Return the array of yearly timestamps within the specified time interval.\n *\n * @description\n * Return the array of yearly timestamps within the specified time interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The interval.\n *\n * @returns The array with starts of yearly timestamps from the month of the interval start to the month of the interval end\n *\n * @example\n * // Each year between 6 February 2014 and 10 August 2017:\n * const result = eachYearOfInterval({\n * start: new Date(2014, 1, 6),\n * end: new Date(2017, 7, 10)\n * })\n * //=> [\n * // Wed Jan 01 2014 00:00:00,\n * // Thu Jan 01 2015 00:00:00,\n * // Fri Jan 01 2016 00:00:00,\n * // Sun Jan 01 2017 00:00:00\n * // ]\n */\nfunction eachYearOfInterval(interval, options) {\n const startDate = (0, _index.toDate)(interval.start);\n const endDate = (0, _index.toDate)(interval.end);\n\n let reversed = +startDate > +endDate;\n const endTime = reversed ? +startDate : +endDate;\n const currentDate = reversed ? endDate : startDate;\n currentDate.setHours(0, 0, 0, 0);\n currentDate.setMonth(0, 1);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n dates.push((0, _index.toDate)(currentDate));\n currentDate.setFullYear(currentDate.getFullYear() + step);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n","\"use strict\";\nexports.endOfDay = endOfDay;\nvar _index = require(\"./toDate.js\");\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a day\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 */\nfunction endOfDay(date) {\n const _date = (0, _index.toDate)(date);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n","\"use strict\";\nexports.endOfDecade = endOfDecade;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name endOfDecade\n * @category Decade Helpers\n * @summary Return the end of a decade for the given date.\n *\n * @description\n * Return the end of a decade for the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a decade\n *\n * @example\n * // The end of a decade for 12 May 1984 00:00:00:\n * const result = endOfDecade(new Date(1984, 4, 12, 00, 00, 00))\n * //=> Dec 31 1989 23:59:59.999\n */\nfunction endOfDecade(date) {\n // TODO: Switch to more technical definition in of decades that start with 1\n // end with 0. I.e. 2001-2010 instead of current 2000-2009. It's a breaking\n // change, so it can only be done in 4.0.\n const _date = (0, _index.toDate)(date);\n const year = _date.getFullYear();\n const decade = 9 + Math.floor(year / 10) * 10;\n _date.setFullYear(decade, 11, 31);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n","\"use strict\";\nexports.endOfHour = endOfHour;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name endOfHour\n * @category Hour Helpers\n * @summary Return the end of an hour for the given date.\n *\n * @description\n * Return the end of an hour for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of an hour\n *\n * @example\n * // The end of an hour for 2 September 2014 11:55:00:\n * const result = endOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:59:59.999\n */\nfunction endOfHour(date) {\n const _date = (0, _index.toDate)(date);\n _date.setMinutes(59, 59, 999);\n return _date;\n}\n","\"use strict\";\nexports.endOfISOWeek = endOfISOWeek;\nvar _index = require(\"./endOfWeek.js\");\n\n/**\n * @name endOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the end of an ISO week for the given date.\n *\n * @description\n * Return the end of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of an ISO week\n *\n * @example\n * // The end of an ISO week for 2 September 2014 11:55:00:\n * const result = endOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nfunction endOfISOWeek(date) {\n return (0, _index.endOfWeek)(date, { weekStartsOn: 1 });\n}\n","\"use strict\";\nexports.endOfISOWeekYear = endOfISOWeekYear;\nvar _index = require(\"./getISOWeekYear.js\");\nvar _index2 = require(\"./startOfISOWeek.js\");\nvar _index3 = require(\"./constructFrom.js\");\n\n/**\n * @name endOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the end of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the end of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of an ISO week-numbering year\n *\n * @example\n * // The end of an ISO week-numbering year for 2 July 2005:\n * const result = endOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Sun Jan 01 2006 23:59:59.999\n */\nfunction endOfISOWeekYear(date) {\n const year = (0, _index.getISOWeekYear)(date);\n const fourthOfJanuaryOfNextYear = (0, _index3.constructFrom)(date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const _date = (0, _index2.startOfISOWeek)(fourthOfJanuaryOfNextYear);\n _date.setMilliseconds(_date.getMilliseconds() - 1);\n return _date;\n}\n","\"use strict\";\nexports.endOfMinute = endOfMinute;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name endOfMinute\n * @category Minute Helpers\n * @summary Return the end of a minute for the given date.\n *\n * @description\n * Return the end of a minute for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a minute\n *\n * @example\n * // The end of a minute for 1 December 2014 22:15:45.400:\n * const result = endOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:59.999\n */\nfunction endOfMinute(date) {\n const _date = (0, _index.toDate)(date);\n _date.setSeconds(59, 999);\n return _date;\n}\n","\"use strict\";\nexports.endOfMonth = endOfMonth;\nvar _index = require(\"./toDate.js\");\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a month\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 */\nfunction endOfMonth(date) {\n const _date = (0, _index.toDate)(date);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n","\"use strict\";\nexports.endOfQuarter = endOfQuarter;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name endOfQuarter\n * @category Quarter Helpers\n * @summary Return the end of a year quarter for the given date.\n *\n * @description\n * Return the end of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a quarter\n *\n * @example\n * // The end of a quarter for 2 September 2014 11:55:00:\n * const result = endOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nfunction endOfQuarter(date) {\n const _date = (0, _index.toDate)(date);\n const currentMonth = _date.getMonth();\n const month = currentMonth - (currentMonth % 3) + 3;\n _date.setMonth(month, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n","\"use strict\";\nexports.endOfSecond = endOfSecond;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name endOfSecond\n * @category Second Helpers\n * @summary Return the end of a second for the given date.\n *\n * @description\n * Return the end of a second for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a second\n *\n * @example\n * // The end of a second for 1 December 2014 22:15:45.400:\n * const result = endOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.999\n */\nfunction endOfSecond(date) {\n const _date = (0, _index.toDate)(date);\n _date.setMilliseconds(999);\n return _date;\n}\n","\"use strict\";\nexports.endOfToday = endOfToday;\nvar _index = require(\"./endOfDay.js\");\n\n/**\n * @name endOfToday\n * @category Day Helpers\n * @summary Return the end of today.\n * @pure false\n *\n * @description\n * Return the end of today.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @returns The end of today\n *\n * @example\n * // If today is 6 October 2014:\n * const result = endOfToday()\n * //=> Mon Oct 6 2014 23:59:59.999\n */\nfunction endOfToday() {\n return (0, _index.endOfDay)(Date.now());\n}\n","\"use strict\";\nexports.endOfTomorrow = endOfTomorrow; /**\n * @name endOfTomorrow\n * @category Day Helpers\n * @summary Return the end of tomorrow.\n * @pure false\n *\n * @description\n * Return the end of tomorrow.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @returns The end of tomorrow\n *\n * @example\n * // If today is 6 October 2014:\n * const result = endOfTomorrow()\n * //=> Tue Oct 7 2014 23:59:59.999\n */\nfunction endOfTomorrow() {\n const now = new Date();\n const year = now.getFullYear();\n const month = now.getMonth();\n const day = now.getDate();\n\n const date = new Date(0);\n date.setFullYear(year, month, day + 1);\n date.setHours(23, 59, 59, 999);\n return date;\n}\n","\"use strict\";\nexports.endOfWeek = endOfWeek;\nvar _index = require(\"./toDate.js\");\n\nvar _index2 = require(\"./_lib/defaultOptions.js\");\n\n/**\n * The {@link endOfWeek} function options.\n */\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a week\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nfunction endOfWeek(date, options) {\n const defaultOptions = (0, _index2.getDefaultOptions)();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = (0, _index.toDate)(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n\n _date.setDate(_date.getDate() + diff);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n","\"use strict\";\nexports.endOfYear = endOfYear;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a year\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nfunction endOfYear(date) {\n const _date = (0, _index.toDate)(date);\n const year = _date.getFullYear();\n _date.setFullYear(year + 1, 0, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n","\"use strict\";\nexports.endOfYesterday = endOfYesterday; /**\n * @name endOfYesterday\n * @category Day Helpers\n * @summary Return the end of yesterday.\n * @pure false\n *\n * @description\n * Return the end of yesterday.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @returns The end of yesterday\n *\n * @example\n * // If today is 6 October 2014:\n * const result = endOfYesterday()\n * //=> Sun Oct 5 2014 23:59:59.999\n */\nfunction endOfYesterday() {\n const now = new Date();\n const year = now.getFullYear();\n const month = now.getMonth();\n const day = now.getDate();\n\n const date = new Date(0);\n date.setFullYear(year, month, day - 1);\n date.setHours(23, 59, 59, 999);\n return date;\n}\n","\"use strict\";\nexports.format = exports.formatDate = format;\nObject.defineProperty(exports, \"formatters\", {\n enumerable: true,\n get: function () {\n return _index3.formatters;\n },\n});\nObject.defineProperty(exports, \"longFormatters\", {\n enumerable: true,\n get: function () {\n return _index4.longFormatters;\n },\n});\nvar _index = require(\"./_lib/defaultLocale.js\");\nvar _index2 = require(\"./_lib/defaultOptions.js\");\nvar _index3 = require(\"./_lib/format/formatters.js\");\nvar _index4 = require(\"./_lib/format/longFormatters.js\");\nvar _index5 = require(\"./_lib/protectedTokens.js\");\n\nvar _index6 = require(\"./isValid.js\");\nvar _index7 = require(\"./toDate.js\");\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nfunction format(date, formatStr, options) {\n const defaultOptions = (0, _index2.getDefaultOptions)();\n const locale =\n options?.locale ?? defaultOptions.locale ?? _index.defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = (0, _index7.toDate)(date);\n\n if (!(0, _index6.isValid)(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = _index4.longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (_index3.formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n (0, _index5.isProtectedWeekYearToken)(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n (0, _index5.isProtectedDayOfYearToken)(token))\n ) {\n (0, _index5.warnOrThrowProtectedError)(token, formatStr, String(date));\n }\n\n const formatter = _index3.formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n","\"use strict\";\nexports.formatDistance = formatDistance;\nvar _index = require(\"./compareAsc.js\");\nvar _index2 = require(\"./constants.js\");\nvar _index3 = require(\"./differenceInMonths.js\");\nvar _index4 = require(\"./differenceInSeconds.js\");\nvar _index5 = require(\"./toDate.js\");\n\nvar _index6 = require(\"./_lib/defaultLocale.js\");\nvar _index7 = require(\"./_lib/defaultOptions.js\");\nvar _index8 = require(\"./_lib/getTimezoneOffsetInMilliseconds.js\");\n\n/**\n * The {@link formatDistance} function options.\n */\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date\n * @param baseDate - The date to compare with\n * @param options - An object with options\n *\n * @returns The distance in words\n *\n * @throws `date` must not be Invalid Date\n * @throws `baseDate` must not be Invalid Date\n * @throws `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\nfunction formatDistance(date, baseDate, options) {\n const defaultOptions = (0, _index7.getDefaultOptions)();\n const locale =\n options?.locale ?? defaultOptions.locale ?? _index6.defaultLocale;\n const minutesInAlmostTwoDays = 2520;\n\n const comparison = (0, _index.compareAsc)(date, baseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const localizeOptions = Object.assign({}, options, {\n addSuffix: options?.addSuffix,\n comparison: comparison,\n });\n\n let dateLeft;\n let dateRight;\n if (comparison > 0) {\n dateLeft = (0, _index5.toDate)(baseDate);\n dateRight = (0, _index5.toDate)(date);\n } else {\n dateLeft = (0, _index5.toDate)(date);\n dateRight = (0, _index5.toDate)(baseDate);\n }\n\n const seconds = (0, _index4.differenceInSeconds)(dateRight, dateLeft);\n const offsetInSeconds =\n ((0, _index8.getTimezoneOffsetInMilliseconds)(dateRight) -\n (0, _index8.getTimezoneOffsetInMilliseconds)(dateLeft)) /\n 1000;\n const minutes = Math.round((seconds - offsetInSeconds) / 60);\n let months;\n\n // 0 up to 2 mins\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\", 0, 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 }\n\n // 2 mins up to 0.75 hrs\n } else if (minutes < 45) {\n return locale.formatDistance(\"xMinutes\", minutes, localizeOptions);\n\n // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance(\"aboutXHours\", 1, localizeOptions);\n\n // 1.5 hrs up to 24 hrs\n } else if (minutes < _index2.minutesInDay) {\n const hours = Math.round(minutes / 60);\n return locale.formatDistance(\"aboutXHours\", hours, localizeOptions);\n\n // 1 day up to 1.75 days\n } else if (minutes < minutesInAlmostTwoDays) {\n return locale.formatDistance(\"xDays\", 1, localizeOptions);\n\n // 1.75 days up to 30 days\n } else if (minutes < _index2.minutesInMonth) {\n const days = Math.round(minutes / _index2.minutesInDay);\n return locale.formatDistance(\"xDays\", days, localizeOptions);\n\n // 1 month up to 2 months\n } else if (minutes < _index2.minutesInMonth * 2) {\n months = Math.round(minutes / _index2.minutesInMonth);\n return locale.formatDistance(\"aboutXMonths\", months, localizeOptions);\n }\n\n months = (0, _index3.differenceInMonths)(dateRight, dateLeft);\n\n // 2 months up to 12 months\n if (months < 12) {\n const nearestMonth = Math.round(minutes / _index2.minutesInMonth);\n return locale.formatDistance(\"xMonths\", nearestMonth, localizeOptions);\n\n // 1 year up to max Date\n } else {\n const monthsSinceStartOfYear = months % 12;\n const years = Math.trunc(months / 12);\n\n // N years up to 1 years 3 months\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance(\"aboutXYears\", years, localizeOptions);\n\n // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance(\"overXYears\", years, localizeOptions);\n\n // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance(\"almostXYears\", years + 1, localizeOptions);\n }\n }\n}\n","\"use strict\";\nexports.formatDistanceStrict = formatDistanceStrict;\nvar _index = require(\"./_lib/defaultLocale.js\");\nvar _index2 = require(\"./_lib/defaultOptions.js\");\nvar _index3 = require(\"./_lib/getRoundingMethod.js\");\nvar _index4 = require(\"./_lib/getTimezoneOffsetInMilliseconds.js\");\nvar _index5 = require(\"./compareAsc.js\");\nvar _index6 = require(\"./constants.js\");\n\nvar _index7 = require(\"./toDate.js\");\n\n/**\n * The {@link formatDistanceStrict} function options.\n */\n\n/**\n * The unit used to format the distance in {@link formatDistanceStrict}.\n */\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date\n * @param baseDate - The date to compare with\n * @param options - An object with options\n *\n * @returns The distance in words\n *\n * @throws `date` must not be Invalid Date\n * @throws `baseDate` must not be Invalid Date\n * @throws `options.unit` must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\n * @throws `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\nfunction formatDistanceStrict(date, baseDate, options) {\n const defaultOptions = (0, _index2.getDefaultOptions)();\n const locale =\n options?.locale ?? defaultOptions.locale ?? _index.defaultLocale;\n\n const comparison = (0, _index5.compareAsc)(date, baseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const localizeOptions = Object.assign({}, options, {\n addSuffix: options?.addSuffix,\n comparison: comparison,\n });\n\n let dateLeft;\n let dateRight;\n if (comparison > 0) {\n dateLeft = (0, _index7.toDate)(baseDate);\n dateRight = (0, _index7.toDate)(date);\n } else {\n dateLeft = (0, _index7.toDate)(date);\n dateRight = (0, _index7.toDate)(baseDate);\n }\n\n const roundingMethod = (0, _index3.getRoundingMethod)(\n options?.roundingMethod ?? \"round\",\n );\n\n const milliseconds = dateRight.getTime() - dateLeft.getTime();\n const minutes = milliseconds / _index6.millisecondsInMinute;\n\n const timezoneOffset =\n (0, _index4.getTimezoneOffsetInMilliseconds)(dateRight) -\n (0, _index4.getTimezoneOffsetInMilliseconds)(dateLeft);\n\n // Use DST-normalized difference in minutes for years, months and days;\n // use regular difference in minutes for hours, minutes and seconds.\n const dstNormalizedMinutes =\n (milliseconds - timezoneOffset) / _index6.millisecondsInMinute;\n\n const defaultUnit = options?.unit;\n let unit;\n if (!defaultUnit) {\n if (minutes < 1) {\n unit = \"second\";\n } else if (minutes < 60) {\n unit = \"minute\";\n } else if (minutes < _index6.minutesInDay) {\n unit = \"hour\";\n } else if (dstNormalizedMinutes < _index6.minutesInMonth) {\n unit = \"day\";\n } else if (dstNormalizedMinutes < _index6.minutesInYear) {\n unit = \"month\";\n } else {\n unit = \"year\";\n }\n } else {\n unit = defaultUnit;\n }\n\n // 0 up to 60 seconds\n if (unit === \"second\") {\n const seconds = roundingMethod(milliseconds / 1000);\n return locale.formatDistance(\"xSeconds\", seconds, localizeOptions);\n\n // 1 up to 60 mins\n } else if (unit === \"minute\") {\n const roundedMinutes = roundingMethod(minutes);\n return locale.formatDistance(\"xMinutes\", roundedMinutes, localizeOptions);\n\n // 1 up to 24 hours\n } else if (unit === \"hour\") {\n const hours = roundingMethod(minutes / 60);\n return locale.formatDistance(\"xHours\", hours, localizeOptions);\n\n // 1 up to 30 days\n } else if (unit === \"day\") {\n const days = roundingMethod(dstNormalizedMinutes / _index6.minutesInDay);\n return locale.formatDistance(\"xDays\", days, localizeOptions);\n\n // 1 up to 12 months\n } else if (unit === \"month\") {\n const months = roundingMethod(\n dstNormalizedMinutes / _index6.minutesInMonth,\n );\n return months === 12 && defaultUnit !== \"month\"\n ? locale.formatDistance(\"xYears\", 1, localizeOptions)\n : locale.formatDistance(\"xMonths\", months, localizeOptions);\n\n // 1 year up to max Date\n } else {\n const years = roundingMethod(dstNormalizedMinutes / _index6.minutesInYear);\n return locale.formatDistance(\"xYears\", years, localizeOptions);\n }\n}\n","\"use strict\";\nexports.formatDistanceToNow = formatDistanceToNow;\nvar _index = require(\"./constructNow.js\");\n\nvar _index2 = require(\"./formatDistance.js\");\n\n/**\n * The {@link formatDistanceToNow} function options.\n */\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - The object with options\n *\n * @returns The distance in words\n *\n * @throws `date` must not be Invalid Date\n * @throws `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 * const 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 * const 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 * const 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 * const eoLocale = require('date-fns/locale/eo')\n * const result = formatDistanceToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\nfunction formatDistanceToNow(date, options) {\n return (0, _index2.formatDistance)(\n date,\n (0, _index.constructNow)(date),\n options,\n );\n}\n","\"use strict\";\nexports.formatDistanceToNowStrict = formatDistanceToNowStrict;\nvar _index = require(\"./formatDistanceStrict.js\");\nvar _index2 = require(\"./constructNow.js\");\n\n/**\n * The {@link formatDistanceToNowStrict} function options.\n */\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The distance in words\n *\n * @throws `date` must not be Invalid Date\n * @throws `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 * const 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 * const result = formatDistanceToNowStrict(\n * new Date(2015, 0, 1, 0, 0, 15)\n * )\n * //=> '15 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * const 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 * const 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 January 2016 in Esperanto?\n * const eoLocale = require('date-fns/locale/eo')\n * const result = formatDistanceToNowStrict(\n * new Date(2016, 0, 1),\n * {locale: eoLocale}\n * )\n * //=> '1 jaro'\n */\nfunction formatDistanceToNowStrict(date, options) {\n return (0, _index.formatDistanceStrict)(\n date,\n (0, _index2.constructNow)(date),\n options,\n );\n}\n","\"use strict\";\nexports.formatDuration = formatDuration;\n\nvar _index = require(\"./_lib/defaultLocale.js\");\nvar _index2 = require(\"./_lib/defaultOptions.js\");\n\n/**\n * The {@link formatDuration} function options.\n */\n\nconst defaultFormat = [\n \"years\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n];\n\n/**\n * @name formatDuration\n * @category Common Helpers\n * @summary Formats a duration in human-readable format\n *\n * @description\n * Return human-readable duration string i.e. \"9 months 2 days\"\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param duration - The duration to format\n * @param options - An object with options.\n *\n * @returns The formatted date string\n *\n * @example\n * // Format full duration\n * formatDuration({\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * })\n * //=> '2 years 9 months 1 week 7 days 5 hours 9 minutes 30 seconds'\n *\n * @example\n * // Format partial duration\n * formatDuration({ months: 9, days: 2 })\n * //=> '9 months 2 days'\n *\n * @example\n * // Customize the format\n * formatDuration(\n * {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * },\n * { format: ['months', 'weeks'] }\n * ) === '9 months 1 week'\n *\n * @example\n * // Customize the zeros presence\n * formatDuration({ years: 0, months: 9 })\n * //=> '9 months'\n * formatDuration({ years: 0, months: 9 }, { zero: true })\n * //=> '0 years 9 months'\n *\n * @example\n * // Customize the delimiter\n * formatDuration({ years: 2, months: 9, weeks: 3 }, { delimiter: ', ' })\n * //=> '2 years, 9 months, 3 weeks'\n */\nfunction formatDuration(duration, options) {\n const defaultOptions = (0, _index2.getDefaultOptions)();\n const locale =\n options?.locale ?? defaultOptions.locale ?? _index.defaultLocale;\n const format = options?.format ?? defaultFormat;\n const zero = options?.zero ?? false;\n const delimiter = options?.delimiter ?? \" \";\n\n if (!locale.formatDistance) {\n return \"\";\n }\n\n const result = format\n .reduce((acc, unit) => {\n const token = `x${unit.replace(/(^.)/, (m) => m.toUpperCase())}`;\n const value = duration[unit];\n if (value !== undefined && (zero || duration[unit])) {\n return acc.concat(locale.formatDistance(token, value));\n }\n return acc;\n }, [])\n .join(delimiter);\n\n return result;\n}\n","\"use strict\";\nexports.formatISO = formatISO;\nvar _index = require(\"./toDate.js\");\n\nvar _index2 = require(\"./_lib/addLeadingZeros.js\");\n\n/**\n * The {@link formatISO} function options.\n */\n\n/**\n * @name formatISO\n * @category Common Helpers\n * @summary Format the date according to the ISO 8601 standard (https://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a003169814.htm).\n *\n * @description\n * Return the formatted date string in ISO 8601 format. Options may be passed to control the parts and notations of the date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options.\n *\n * @returns The formatted date string (in loca.l time zone)\n *\n * @throws `date` must not be Invalid Date\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18T19:00:52Z'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601, short format (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })\n * //=> '20190918T190052'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, date only:\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })\n * //=> '2019-09-18'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, time only (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })\n * //=> '19:00:52Z'\n */\nfunction formatISO(date, options) {\n const _date = (0, _index.toDate)(date);\n\n if (isNaN(_date.getTime())) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const format = options?.format ?? \"extended\";\n const representation = options?.representation ?? \"complete\";\n\n let result = \"\";\n let tzOffset = \"\";\n\n const dateDelimiter = format === \"extended\" ? \"-\" : \"\";\n const timeDelimiter = format === \"extended\" ? \":\" : \"\";\n\n // Representation is either 'date' or 'complete'\n if (representation !== \"time\") {\n const day = (0, _index2.addLeadingZeros)(_date.getDate(), 2);\n const month = (0, _index2.addLeadingZeros)(_date.getMonth() + 1, 2);\n const year = (0, _index2.addLeadingZeros)(_date.getFullYear(), 4);\n\n // yyyyMMdd or yyyy-MM-dd.\n result = `${year}${dateDelimiter}${month}${dateDelimiter}${day}`;\n }\n\n // Representation is either 'time' or 'complete'\n if (representation !== \"date\") {\n // Add the timezone.\n const offset = _date.getTimezoneOffset();\n\n if (offset !== 0) {\n const absoluteOffset = Math.abs(offset);\n const hourOffset = (0, _index2.addLeadingZeros)(\n Math.trunc(absoluteOffset / 60),\n 2,\n );\n const minuteOffset = (0, _index2.addLeadingZeros)(absoluteOffset % 60, 2);\n // If less than 0, the sign is +, because it is ahead of time.\n const sign = offset < 0 ? \"+\" : \"-\";\n\n tzOffset = `${sign}${hourOffset}:${minuteOffset}`;\n } else {\n tzOffset = \"Z\";\n }\n\n const hour = (0, _index2.addLeadingZeros)(_date.getHours(), 2);\n const minute = (0, _index2.addLeadingZeros)(_date.getMinutes(), 2);\n const second = (0, _index2.addLeadingZeros)(_date.getSeconds(), 2);\n\n // If there's also date, separate it with time with 'T'\n const separator = result === \"\" ? \"\" : \"T\";\n\n // Creates a time string consisting of hour, minute, and second, separated by delimiters, if defined.\n const time = [hour, minute, second].join(timeDelimiter);\n\n // HHmmss or HH:mm:ss.\n result = `${result}${separator}${time}${tzOffset}`;\n }\n\n return result;\n}\n","\"use strict\";\nexports.formatISO9075 = formatISO9075;\nvar _index = require(\"./isValid.js\");\nvar _index2 = require(\"./toDate.js\");\n\nvar _index3 = require(\"./_lib/addLeadingZeros.js\");\n\n/**\n * The {@link formatISO9075} function options.\n */\n\n/**\n * @name formatISO9075\n * @category Common Helpers\n * @summary Format the date according to the ISO 9075 standard (https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_get-format).\n *\n * @description\n * Return the formatted date string in ISO 9075 format. Options may be passed to control the parts and notations of the date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options.\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n *\n * @example\n * // Represent 18 September 2019 in ISO 9075 format:\n * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18 19:00:52'\n *\n * @example\n * // Represent 18 September 2019 in ISO 9075, short format:\n * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })\n * //=> '20190918 190052'\n *\n * @example\n * // Represent 18 September 2019 in ISO 9075 format, date only:\n * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })\n * //=> '2019-09-18'\n *\n * @example\n * // Represent 18 September 2019 in ISO 9075 format, time only:\n * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })\n * //=> '19:00:52'\n */\nfunction formatISO9075(date, options) {\n const _date = (0, _index2.toDate)(date);\n\n if (!(0, _index.isValid)(_date)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const format = options?.format ?? \"extended\";\n const representation = options?.representation ?? \"complete\";\n\n let result = \"\";\n\n const dateDelimiter = format === \"extended\" ? \"-\" : \"\";\n const timeDelimiter = format === \"extended\" ? \":\" : \"\";\n\n // Representation is either 'date' or 'complete'\n if (representation !== \"time\") {\n const day = (0, _index3.addLeadingZeros)(_date.getDate(), 2);\n const month = (0, _index3.addLeadingZeros)(_date.getMonth() + 1, 2);\n const year = (0, _index3.addLeadingZeros)(_date.getFullYear(), 4);\n\n // yyyyMMdd or yyyy-MM-dd.\n result = `${year}${dateDelimiter}${month}${dateDelimiter}${day}`;\n }\n\n // Representation is either 'time' or 'complete'\n if (representation !== \"date\") {\n const hour = (0, _index3.addLeadingZeros)(_date.getHours(), 2);\n const minute = (0, _index3.addLeadingZeros)(_date.getMinutes(), 2);\n const second = (0, _index3.addLeadingZeros)(_date.getSeconds(), 2);\n\n // If there's also date, separate it with time with a space\n const separator = result === \"\" ? \"\" : \" \";\n\n // HHmmss or HH:mm:ss.\n result = `${result}${separator}${hour}${timeDelimiter}${minute}${timeDelimiter}${second}`;\n }\n\n return result;\n}\n","\"use strict\";\nexports.formatISODuration = formatISODuration;\n\n/**\n * @name formatISODuration\n * @category Common Helpers\n * @summary Format a duration object according as ISO 8601 duration string\n *\n * @description\n * Format a duration object according to the ISO 8601 duration standard (https://www.digi.com/resources/documentation/digidocs//90001488-13/reference/r_iso_8601_duration_format.htm)\n *\n * @param duration - The duration to format\n *\n * @returns The ISO 8601 duration string\n *\n * @example\n * // Format the given duration as ISO 8601 string\n * const result = formatISODuration({\n * years: 39,\n * months: 2,\n * days: 20,\n * hours: 7,\n * minutes: 5,\n * seconds: 0\n * })\n * //=> 'P39Y2M20DT0H0M0S'\n */\nfunction formatISODuration(duration) {\n const {\n years = 0,\n months = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n } = duration;\n\n return `P${years}Y${months}M${days}DT${hours}H${minutes}M${seconds}S`;\n}\n","\"use strict\";\nexports.formatRFC3339 = formatRFC3339;\nvar _index = require(\"./isValid.js\");\nvar _index2 = require(\"./toDate.js\");\nvar _index3 = require(\"./_lib/addLeadingZeros.js\");\n\n/**\n * The {@link formatRFC3339} function options.\n */\n\n/**\n * @name formatRFC3339\n * @category Common Helpers\n * @summary Format the date according to the RFC 3339 standard (https://tools.ietf.org/html/rfc3339#section-5.6).\n *\n * @description\n * Return the formatted date string in RFC 3339 format. Options may be passed to control the parts and notations of the date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options.\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n *\n * @example\n * // Represent 18 September 2019 in RFC 3339 format:\n * formatRFC3339(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18T19:00:52Z'\n *\n * @example\n * // Represent 18 September 2019 in RFC 3339 format, 3 digits of second fraction\n * formatRFC3339(new Date(2019, 8, 18, 19, 0, 52, 234), {\n * fractionDigits: 3\n * })\n * //=> '2019-09-18T19:00:52.234Z'\n */\nfunction formatRFC3339(date, options) {\n const _date = (0, _index2.toDate)(date);\n\n if (!(0, _index.isValid)(_date)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const fractionDigits = options?.fractionDigits ?? 0;\n\n const day = (0, _index3.addLeadingZeros)(_date.getDate(), 2);\n const month = (0, _index3.addLeadingZeros)(_date.getMonth() + 1, 2);\n const year = _date.getFullYear();\n\n const hour = (0, _index3.addLeadingZeros)(_date.getHours(), 2);\n const minute = (0, _index3.addLeadingZeros)(_date.getMinutes(), 2);\n const second = (0, _index3.addLeadingZeros)(_date.getSeconds(), 2);\n\n let fractionalSecond = \"\";\n if (fractionDigits > 0) {\n const milliseconds = _date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, fractionDigits - 3),\n );\n fractionalSecond =\n \".\" + (0, _index3.addLeadingZeros)(fractionalSeconds, fractionDigits);\n }\n\n let offset = \"\";\n const tzOffset = _date.getTimezoneOffset();\n\n if (tzOffset !== 0) {\n const absoluteOffset = Math.abs(tzOffset);\n const hourOffset = (0, _index3.addLeadingZeros)(\n Math.trunc(absoluteOffset / 60),\n 2,\n );\n const minuteOffset = (0, _index3.addLeadingZeros)(absoluteOffset % 60, 2);\n // If less than 0, the sign is +, because it is ahead of time.\n const sign = tzOffset < 0 ? \"+\" : \"-\";\n\n offset = `${sign}${hourOffset}:${minuteOffset}`;\n } else {\n offset = \"Z\";\n }\n\n return `${year}-${month}-${day}T${hour}:${minute}:${second}${fractionalSecond}${offset}`;\n}\n","\"use strict\";\nexports.formatRFC7231 = formatRFC7231;\nvar _index = require(\"./isValid.js\");\nvar _index2 = require(\"./toDate.js\");\nvar _index3 = require(\"./_lib/addLeadingZeros.js\");\n\nconst days = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n\nconst months = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n\n/**\n * @name formatRFC7231\n * @category Common Helpers\n * @summary Format the date according to the RFC 7231 standard (https://tools.ietf.org/html/rfc7231#section-7.1.1.1).\n *\n * @description\n * Return the formatted date string in RFC 7231 format.\n * The result will always be in UTC timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n *\n * @example\n * // Represent 18 September 2019 in RFC 7231 format:\n * const result = formatRFC7231(new Date(2019, 8, 18, 19, 0, 52))\n * //=> 'Wed, 18 Sep 2019 19:00:52 GMT'\n */\nfunction formatRFC7231(date) {\n const _date = (0, _index2.toDate)(date);\n\n if (!(0, _index.isValid)(_date)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const dayName = days[_date.getUTCDay()];\n const dayOfMonth = (0, _index3.addLeadingZeros)(_date.getUTCDate(), 2);\n const monthName = months[_date.getUTCMonth()];\n const year = _date.getUTCFullYear();\n\n const hour = (0, _index3.addLeadingZeros)(_date.getUTCHours(), 2);\n const minute = (0, _index3.addLeadingZeros)(_date.getUTCMinutes(), 2);\n const second = (0, _index3.addLeadingZeros)(_date.getUTCSeconds(), 2);\n\n // Result variables.\n return `${dayName}, ${dayOfMonth} ${monthName} ${year} ${hour}:${minute}:${second} GMT`;\n}\n","\"use strict\";\nexports.formatRelative = formatRelative;\nvar _index = require(\"./differenceInCalendarDays.js\");\nvar _index2 = require(\"./format.js\");\n\nvar _index3 = require(\"./toDate.js\");\n\nvar _index4 = require(\"./_lib/defaultLocale.js\");\nvar _index5 = require(\"./_lib/defaultOptions.js\");\n\n/**\n * The {@link formatRelative} function options.\n */\n\n/**\n * @name formatRelative\n * @category Common Helpers\n * @summary Represent the date in words relative to the given base date.\n *\n * @description\n * Represent the date in words relative to the given base date.\n *\n * | Distance to the base date | Result |\n * |---------------------------|---------------------------|\n * | Previous 6 days | last Sunday at 04:30 AM |\n * | Last day | yesterday at 04:30 AM |\n * | Same day | today at 04:30 AM |\n * | Next day | tomorrow at 04:30 AM |\n * | Next 6 days | Sunday at 04:30 AM |\n * | Other | 12/31/2017 |\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to format\n * @param baseDate - The date to compare with\n * @param options - An object with options\n *\n * @returns The date in words\n *\n * @throws `date` must not be Invalid Date\n * @throws `baseDate` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws `options.locale` must contain `formatRelative` property\n *\n * @example\n * // Represent the date of 6 days ago in words relative to the given base date. In this example, today is Wednesday\n * const result = formatRelative(subDays(new Date(), 6), new Date())\n * //=> \"last Thursday at 12:45 AM\"\n */\nfunction formatRelative(date, baseDate, options) {\n const _date = (0, _index3.toDate)(date);\n const _baseDate = (0, _index3.toDate)(baseDate);\n\n const defaultOptions = (0, _index5.getDefaultOptions)();\n const locale =\n options?.locale ?? defaultOptions.locale ?? _index4.defaultLocale;\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const diff = (0, _index.differenceInCalendarDays)(_date, _baseDate);\n\n if (isNaN(diff)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let token;\n if (diff < -6) {\n token = \"other\";\n } else if (diff < -1) {\n token = \"lastWeek\";\n } else if (diff < 0) {\n token = \"yesterday\";\n } else if (diff < 1) {\n token = \"today\";\n } else if (diff < 2) {\n token = \"tomorrow\";\n } else if (diff < 7) {\n token = \"nextWeek\";\n } else {\n token = \"other\";\n }\n\n const formatStr = locale.formatRelative(token, _date, _baseDate, {\n locale,\n weekStartsOn,\n });\n return (0, _index2.format)(_date, formatStr, { locale, weekStartsOn });\n}\n","\"use strict\";\nexports.fromUnixTime = fromUnixTime;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name fromUnixTime\n * @category Timestamp Helpers\n * @summary Create a date from a Unix timestamp.\n *\n * @description\n * Create a date from a Unix timestamp (in seconds). Decimal values will be discarded.\n *\n * @param unixTime - The given Unix timestamp (in seconds)\n *\n * @returns The date\n *\n * @example\n * // Create the date 29 February 2012 11:45:05:\n * const result = fromUnixTime(1330515905)\n * //=> Wed Feb 29 2012 11:45:05\n */\nfunction fromUnixTime(unixTime) {\n return (0, _index.toDate)(unixTime * 1000);\n}\n"],"names":["exports","closestIndexTo","dateToCompare","dates","date","_index","toDate","isNaN","Number","NaN","timeToCompare","getTime","result","minDistance","forEach","dirtyDate","index","currentDate","distance","Math","abs","require","closestTo","_index2","constructFrom","compareAsc","dateLeft","dateRight","_dateLeft","_dateRight","diff","compareDesc","secondsInYear","secondsInWeek","secondsInQuarter","secondsInMonth","secondsInMinute","secondsInHour","secondsInDay","quartersInYear","monthsInYear","monthsInQuarter","minutesInYear","minutesInMonth","minutesInHour","minutesInDay","minTime","millisecondsInWeek","millisecondsInSecond","millisecondsInMinute","millisecondsInHour","millisecondsInDay","maxTime","daysInYear","daysInWeek","pow","value","Date","constructor","constructNow","now","daysToWeeks","days","weeks","trunc","differenceInBusinessDays","_index6","_index4","isValid","calendarDifference","differenceInCalendarDays","sign","addDays","_index3","isSameDay","_index5","isWeekend","startOfDayLeft","startOfDay","startOfDayRight","timestampLeft","getTimezoneOffsetInMilliseconds","timestampRight","round","differenceInCalendarISOWeekYears","getISOWeekYear","differenceInCalendarISOWeeks","startOfISOWeekLeft","startOfISOWeek","startOfISOWeekRight","differenceInCalendarMonths","yearDiff","getFullYear","monthDiff","getMonth","differenceInCalendarQuarters","quarterDiff","getQuarter","differenceInCalendarWeeks","options","startOfWeekLeft","startOfWeek","startOfWeekRight","differenceInCalendarYears","differenceInDays","compareLocalAsc","difference","setDate","getDate","isLastDayNotFull","getHours","getMinutes","getSeconds","getMilliseconds","differenceInHours","differenceInMilliseconds","getRoundingMethod","roundingMethod","differenceInISOWeekYears","subISOWeekYears","isLastISOWeekYearNotFull","differenceInMinutes","differenceInMonths","setMonth","isLastMonthNotFull","isLastDayOfMonth","differenceInQuarters","differenceInSeconds","differenceInWeeks","differenceInYears","setFullYear","isLastYearNotFull","eachDayOfInterval","interval","_options$step","startDate","start","endDate","end","reversed","endTime","setHours","step","push","reverse","eachHourOfInterval","setMinutes","addHours","eachMinuteOfInterval","startOfMinute","addMinutes","eachMonthOfInterval","eachQuarterOfInterval","startOfQuarter","addQuarters","eachWeekOfInterval","startDateWeek","endDateWeek","addWeeks","eachWeekendOfInterval","dateInterval","weekends","length","eachWeekendOfMonth","startOfMonth","endOfMonth","eachWeekendOfYear","startOfYear","endOfYear","eachYearOfInterval","endOfDay","_date","endOfDecade","year","decade","floor","endOfHour","endOfISOWeek","endOfWeek","weekStartsOn","endOfISOWeekYear","fourthOfJanuaryOfNextYear","setMilliseconds","endOfMinute","setSeconds","month","endOfQuarter","currentMonth","endOfSecond","endOfToday","endOfTomorrow","day","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_defaultOptions$local","defaultOptions","getDefaultOptions","locale","getDay","endOfYesterday","format","formatDate","formatStr","_ref4","_options$firstWeekCon","_options$locale2","_ref5","_ref6","_ref7","_options$locale3","_defaultOptions$local2","defaultLocale","firstWeekContainsDate","originalDate","_index7","RangeError","parts","match","longFormattingTokensRegExp","map","substring","firstCharacter","longFormatter","longFormatters","formatLong","join","formattingTokensRegExp","isToken","cleanEscapedString","formatters","unescapedLatinCharacterRegExp","localize","preprocessor","formatterOptions","part","token","useAdditionalWeekYearTokens","isProtectedWeekYearToken","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","warnOrThrowProtectedError","String","formatter","Object","defineProperty","enumerable","get","escapedStringRegExp","doubleQuoteRegExp","input","matched","replace","formatDistance","baseDate","comparison","localizeOptions","assign","addSuffix","seconds","offsetInSeconds","_index8","minutes","months","includeSeconds","hours","nearestMonth","monthsSinceStartOfYear","years","formatDistanceStrict","_options$roundingMeth","milliseconds","timezoneOffset","dstNormalizedMinutes","defaultUnit","unit","roundedMinutes","formatDistanceToNow","formatDistanceToNowStrict","formatDuration","duration","_options$format","_options$zero","_options$delimiter","defaultFormat","zero","delimiter","reduce","acc","concat","m","toUpperCase","undefined","formatISO","_options$representati","representation","tzOffset","dateDelimiter","timeDelimiter","addLeadingZeros","offset","getTimezoneOffset","absoluteOffset","hourOffset","minuteOffset","separator","time","formatISO9075","hour","minute","second","formatISODuration","formatRFC3339","_options$fractionDigi","fractionDigits","fractionalSecond","fractionalSeconds","formatRFC7231","dayName","getUTCDay","dayOfMonth","getUTCDate","monthName","getUTCMonth","getUTCFullYear","getUTCHours","getUTCMinutes","getUTCSeconds","formatRelative","_baseDate","fromUnixTime","unixTime"],"sourceRoot":""}