@fr0st/datetime 5.0.0 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frost-datetime.js","sources":["../src/factory.js","../src/vars.js","../src/helpers.js","../src/formatter/values.js","../src/formatter/format.js","../src/date-time.js","../src/formatter/locales.js","../src/formatter/utility.js","../src/formatter/parse.js","../src/formatter/tokens.js","../src/static/create.js","../src/static/utility.js","../src/prototype/attributes-get.js","../src/prototype/attributes-set.js","../src/prototype/manipulate.js","../src/prototype/output.js","../src/prototype/utility.js","../src/index.js"],"sourcesContent":["/**\n * DateTime Factory\n */\n\nconst data = {};\n\n/**\n * Get values from cache (or generate if they don't exist).\n * @param {string} key The key for the values.\n * @param {function} callback The callback to generate the values.\n * @return {array} The cached values.\n */\nexport function getData(key, callback) {\n if (!(key in data)) {\n data[key] = callback();\n }\n\n return data[key];\n};\n\n/**\n * Create a new date formatter for a timeZone.\n * @param {string} timeZone The timeZone.\n * @param {object} options The options for the formatter.\n * @return {Intl.DateTimeFormat} A new DateTimeFormat object.\n */\nexport function getDateFormatter(timeZone) {\n return getData(\n `dateFormatter.${timeZone}`,\n (_) => makeFormatter('en', {\n timeZone,\n hourCycle: 'h23',\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n }),\n );\n};\n\n/**\n * Create a new relative formatter for a locale.\n * @param {string} locale The locale.\n * @param {object} options The options for the formatter.\n * @return {Intl.RelativeTimeFormat} A new RelativeTimeFormat object.\n */\nexport function getRelativeFormatter(locale) {\n if (!('RelativeTimeFormat' in Intl)) {\n return null;\n }\n\n return getData(\n `relativeFormatter.${locale}`,\n (_) => new Intl.RelativeTimeFormat(locale, {\n numeric: 'auto',\n style: 'long',\n }),\n );\n};\n\n/**\n * Create a new formatter for a locale.\n * @param {string} locale The locale.\n * @param {object} options The options for the formatter.\n * @return {Intl.DateTimeFormat} A new DateTimeFormat object.\n */\nexport function makeFormatter(locale, options) {\n return new Intl.DateTimeFormat(locale, {\n timeZone: 'UTC',\n ...options,\n });\n};\n","/**\n * DateTime Variables\n */\n\nconst resolvedOptions = (new Intl.DateTimeFormat).resolvedOptions();\n\nexport const config = {\n clampDates: true,\n defaultLocale: resolvedOptions.locale,\n defaultTimeZone: resolvedOptions.timeZone,\n};\n\nexport const dateStringTimeZoneRegExp = /\\s(?:UTC|GMT|Z|[\\+\\-]\\d)|\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}\\:\\d{2}\\:\\d{2}\\.\\d{3}[\\+\\-]\\d{2}\\:\\d{2}/i;\n\nexport const formats = {\n date: 'eee MMM dd yyyy',\n rfc3339_extended: `yyyy-MM-dd'T'HH:mm:ss.SSSxxx`,\n string: 'eee MMM dd yyyy HH:mm:ss xx (VV)',\n time: 'HH:mm:ss xx (VV)',\n};\n\nexport const formatTokenRegExp = /([a-z])\\1*|'[^']*'/i;\n\nexport const monthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nexport const offsetRegExp = /(?:GMT)?([\\+\\-])(\\d{2})(\\:?)(\\d{2})?/;\n\nexport const parseOrderKeys = [\n ['year', 'weekYear'],\n ['era'],\n ['quarter', 'month', 'week', 'dayOfYear'],\n ['weekOfMonth'],\n ['date', 'weekDay'],\n ['weekDayInMonth'],\n ['hours24', 'hours12', 'dayPeriod'],\n ['minutes', 'seconds', 'milliseconds'],\n];\n\nexport const thresholds = {\n month: 12,\n week: null,\n day: 7,\n hour: 24,\n minute: 60,\n second: 60,\n};\n","import { getDateFormatter } from './factory.js';\nimport { thresholds } from './vars.js';\n\n/**\n * DateTime Helpers\n */\n\n/**\n * Compensate the difference between two dates.\n * @param {DateTime} date The DateTime.\n * @param {DateTime} other The DateTime to compare to.\n * @param {number} amount The amount to compensate.\n * @param {Boolean} [compensate=true] Whether to compensate the amount.\n * @param {number} [compensation=1] The compensation offset.\n * @return {number} The compensated amount.\n */\nexport function compensateDiff(date, other, amount, compensate = true, compensation = 1) {\n if (amount > 0) {\n amount = Math.floor(amount);\n\n if (compensate && date < other) {\n amount += compensation;\n }\n } else if (amount < 0) {\n amount = Math.ceil(amount);\n\n if (compensate && date > other) {\n amount -= compensation;\n }\n }\n\n return amount;\n};\n\n/**\n * Get the biggest difference between two dates.\n * @param {DateTime} date The DateTime.\n * @param {DateTime} [other] The DateTime to compare to.\n * @return {array} The biggest difference (amount and time unit).\n */\nexport function getBiggestDiff(date, other) {\n let lastResult;\n for (const timeUnit of ['year', 'month', 'week', 'day', 'hour', 'minute', 'second']) {\n const relativeDiff = date.diff(other, { timeUnit });\n if (lastResult && thresholds[timeUnit] && Math.abs(relativeDiff) >= thresholds[timeUnit]) {\n return lastResult;\n }\n\n const actualDiff = date.diff(other, { timeUnit, relative: false });\n if (actualDiff) {\n return [relativeDiff, timeUnit];\n }\n\n if (relativeDiff) {\n lastResult = [relativeDiff, timeUnit];\n } else {\n lastResult = null;\n }\n }\n\n return lastResult ?\n lastResult :\n [0, 'second'];\n};\n\n/**\n * Get the offset for a DateTime.\n * @param {DateTime} date The DateTime.\n * @return {number} The offset.\n */\nexport function getOffset(date) {\n const timeZone = date.getTimeZone();\n\n if (timeZone === 'UTC') {\n return 0;\n }\n\n const utcString = getDateFormatter('UTC').format(date);\n const localString = getDateFormatter(timeZone).format(date);\n\n return (new Date(utcString) - new Date(localString)) / 60000;\n};\n\n/**\n * Get the number of milliseconds since the UNIX epoch (offset to timeZone).\n * @param {DateTime} date The DateTime.\n * @return {number} The number of milliseconds since the UNIX epoch (offset to timeZone).\n */\nexport function getOffsetTime(date) {\n return date.getTime() - (date.getTimeZoneOffset() * 60000);\n};\n\n/**\n * Modify a DateTime by a duration.\n * @param {DateTime} date The DateTime.\n * @param {number} amount The amount to modify the date by.\n * @param {string} [timeUnit] The unit of time.\n * @return {DateTime} The DateTime object.\n */\nexport function modify(date, amount, timeUnit) {\n timeUnit = timeUnit.toLowerCase();\n\n switch (timeUnit) {\n case 'second':\n case 'seconds':\n return date.setSeconds(\n date.getSeconds() + amount,\n );\n case 'minute':\n case 'minutes':\n return date.setMinutes(\n date.getMinutes() + amount,\n );\n case 'hour':\n case 'hours':\n return date.setHours(\n date.getHours() + amount,\n );\n case 'week':\n case 'weeks':\n return date.setDate(\n date.getDate() + (amount * 7),\n );\n case 'day':\n case 'days':\n return date.setDate(\n date.getDate() + amount,\n );\n case 'month':\n case 'months':\n return date.setMonth(\n date.getMonth() + amount,\n );\n case 'year':\n case 'years':\n return date.setYear(\n date.getYear() + amount,\n );\n default:\n throw new Error('Invalid time unit supplied');\n }\n};\n\n/**\n * Compare a literal format string with a date string.\n * @param {string} formatString The literal format string.\n * @param {string} dateString The date string.\n */\nexport function parseCompare(formatString, dateString) {\n let i = 0;\n for (const char of formatString) {\n if (char !== dateString[i]) {\n throw new Error(`Unmatched character in DateTime string: ${char}`);\n }\n\n i++;\n }\n};\n\n/**\n * Generate methods for parsing a date.\n * @return {object} An object containing date parsing methods.\n */\nexport function parseFactory() {\n let isPM = false;\n let lastAM = true;\n\n return {\n date: {\n get: (datetime) => datetime.getDate(),\n set: (datetime, value) => datetime.setDate(value),\n },\n dayPeriod: {\n get: (datetime) => datetime.getHours() < 12 ? 0 : 1,\n set: (datetime, value) => {\n isPM = value;\n let hours = value ? 12 : 0;\n if (lastAM) {\n hours += datetime.getHours();\n }\n return datetime.setHours(hours);\n },\n },\n dayOfYear: {\n get: (datetime) => datetime.getDayOfYear(),\n set: (datetime, value) => datetime.setDayOfYear(value),\n },\n era: {\n get: (datetime) => datetime.getYear() < 1 ? 0 : 1,\n set: (datetime, value) => {\n const offset = value ? 1 : -1;\n return datetime.setYear(\n datetime.getYear() * offset,\n );\n },\n },\n hours12: {\n get: (datetime) => datetime.getHours() % 12,\n set: (datetime, value) => {\n if (isPM) {\n value += 12;\n }\n lastAM = true;\n return datetime.setHours(value);\n },\n },\n hours24: {\n get: (datetime) => datetime.getHours(),\n set: (datetime, value) => {\n lastAM = false;\n return datetime.setHours(value);\n },\n },\n milliseconds: {\n get: (datetime) => datetime.getMilliseconds(),\n set: (datetime, value) => datetime.setMilliseconds(value),\n },\n minutes: {\n get: (datetime) => datetime.getMinutes(),\n set: (datetime, value) => datetime.setMinutes(value),\n },\n month: {\n get: (datetime) => datetime.getMonth(),\n set: (datetime, value) => datetime.setMonth(value),\n },\n quarter: {\n get: (datetime) => datetime.getQuarter(),\n set: (datetime, value) => datetime.setQuarter(value),\n },\n seconds: {\n get: (datetime) => datetime.getSeconds(),\n set: (datetime, value) => datetime.setSeconds(value),\n },\n week: {\n get: (datetime) => datetime.getWeek(),\n set: (datetime, value) => datetime.setWeek(value),\n },\n weekDay: {\n get: (datetime) => datetime.getWeekDay(),\n set: (datetime, value) => datetime.setWeekDay(value),\n },\n weekDayInMonth: {\n get: (datetime) => datetime.getWeekDayInMonth(),\n set: (datetime, value) => datetime.setWeekDayInMonth(value),\n },\n weekOfMonth: {\n get: (datetime) => datetime.getWeekOfMonth(),\n set: (datetime, value) => datetime.setWeekOfMonth(value),\n },\n weekYear: {\n get: (datetime) => datetime.getWeekYear(),\n set: (datetime, value) => datetime.setWeekYear(value),\n },\n year: {\n get: (datetime) => {\n const year = datetime.getYear();\n return Math.abs(year);\n },\n set: (datetime, value) => datetime.setYear(value),\n },\n };\n};\n\n/**\n * Set the number of milliseconds since the UNIX epoch (offset to timeZone).\n * @param {DateTime} date The DateTime.\n * @param {number} time The number of milliseconds since the UNIX epoch (offset to timeZone).\n * @return {DateTime} The DateTime object.\n */\nexport function setOffsetTime(date, time) {\n return date.setTime(time + (date.getTimeZoneOffset() * 60000));\n};\n","import { getData, makeFormatter } from './../factory.js';\n\n/**\n * DateFormatter Values\n */\n\n/**\n * Get cached day period values.\n * @param {string} locale The locale.\n * @param {string} [type=long] The formatting type.\n * @return {array} The cached values.\n */\nexport function getDayPeriods(locale, type = 'long') {\n return getData(\n `periods.${locale}.${type}`,\n (_) => {\n const dayPeriodFormatter = makeFormatter(locale, { hour: 'numeric', hourCycle: 'h11' });\n return new Array(2)\n .fill()\n .map((_, index) =>\n dayPeriodFormatter.formatToParts(Date.UTC(2018, 0, 1, index * 12))\n .find((part) => part.type === 'dayPeriod')\n .value,\n );\n },\n );\n};\n\n/**\n * Get cached day values.\n * @param {string} locale The locale.\n * @param {string} [type=long] The formatting type.\n * @param {Boolean} [standalone=true] Whether the values are standalone.\n * @return {array} The cached values.\n */\nexport function getDays(locale, type = 'long', standalone = true) {\n return getData(\n `days.${locale}.${type}.${standalone}`,\n (_) => {\n if (standalone) {\n const dayFormatter = makeFormatter(locale, { weekday: type });\n return new Array(7)\n .fill()\n .map((_, index) =>\n dayFormatter.format(Date.UTC(2018, 0, index)),\n );\n }\n\n const dayFormatter = makeFormatter(locale, { year: 'numeric', month: 'numeric', day: 'numeric', weekday: type });\n return new Array(7)\n .fill()\n .map((_, index) =>\n dayFormatter.formatToParts(Date.UTC(2018, 0, index))\n .find((part) => part.type === 'weekday')\n .value,\n );\n },\n );\n};\n\n/**\n * Get cached era values.\n * @param {string} locale The locale.\n * @param {string} [type=long] The formatting type.\n * @return {array} The cached values.\n */\nexport function getEras(locale, type = 'long') {\n return getData(\n `eras.${locale}.${type}`,\n (_) => {\n const eraFormatter = makeFormatter(locale, { era: type });\n return new Array(2)\n .fill()\n .map((_, index) =>\n eraFormatter.formatToParts(Date.UTC(index - 1, 0, 1))\n .find((part) => part.type === 'era')\n .value,\n );\n },\n );\n};\n\n/**\n * Get cached month values.\n * @param {string} locale The locale.\n * @param {string} [type=long] The formatting type.\n * @param {Boolean} [standalone=true] Whether the values are standalone.\n * @return {array} The cached values.\n */\nexport function getMonths(locale, type = 'long', standalone = true) {\n return getData(\n `months.${locale}.${type}.${standalone}`,\n (_) => {\n if (standalone) {\n const monthFormatter = makeFormatter(locale, { month: type });\n return new Array(12)\n .fill()\n .map((_, index) =>\n monthFormatter.format(Date.UTC(2018, index, 1)),\n );\n }\n\n const monthFormatter = makeFormatter(locale, { year: 'numeric', month: type, day: 'numeric' });\n return new Array(12)\n .fill()\n .map((_, index) =>\n monthFormatter.formatToParts(Date.UTC(2018, index, 1))\n .find((part) => part.type === 'month')\n .value,\n );\n },\n );\n};\n\n/**\n * Get cached number values.\n * @param {string} locale The locale.\n * @return {array} The cached values.\n */\nexport function getNumbers(locale) {\n return getData(\n `numbers.${locale}`,\n (_) => {\n const numberFormatter = makeFormatter(locale, { minute: 'numeric' });\n return new Array(10)\n .fill()\n .map((_, index) =>\n numberFormatter.format(Date.UTC(2018, 0, 1, 0, index)),\n );\n },\n );\n};\n\n/**\n * Get the RegExp for the number values.\n * @param {string} locale The locale.\n * @return {string} The number values RegExp.\n */\nexport function numberRegExp(locale) {\n const numbers = getNumbers(locale).join('|');\n return `(?:${numbers})+`;\n};\n","import { makeFormatter } from './../factory.js';\nimport { getDayPeriods, getDays, getEras, getMonths, getNumbers } from './values.js';\n\n/**\n * Format a day as a locale string.\n * @param {string} locale The locale.\n * @param {number} day The day to format (0-6).\n * @param {string} [type=long] The formatting type.\n * @param {Boolean} [standalone=true] Whether the value is standalone.\n * @return {string} The formatted string.\n */\nexport function formatDay(locale, day, type = 'long', standalone = true) {\n return getDays(locale, type, standalone)[day];\n};\n\n/**\n * Format a day period as a locale string.\n * @param {string} locale The locale.\n * @param {number} period The period to format (0-1).\n * @param {string} [type=long] The formatting type.\n * @return {string} The formatted string.\n */\nexport function formatDayPeriod(locale, period, type = 'long') {\n return getDayPeriods(locale, type)[period];\n};\n\n/**\n * Format an era as a locale string.\n * @param {string} locale The locale.\n * @param {number} era The period to format (0-1).\n * @param {string} [type=long] The formatting type.\n * @return {string} The formatted string.\n */\nexport function formatEra(locale, era, type = 'long') {\n return getEras(locale, type)[era];\n};\n\n/**\n * Format a month as a locale string.\n * @param {string} locale The locale.\n * @param {number} month The month to format (1-12).\n * @param {string} [type=long] The formatting type.\n * @param {Boolean} [standalone=true] Whether the value is standalone.\n * @return {string} The formatted string.\n */\nexport function formatMonth(locale, month, type = 'long', standalone = true) {\n return getMonths(locale, type, standalone)[month - 1];\n};\n\n/**\n * Format a number as a locale number string.\n * @param {string} locale The locale.\n * @param {number} number The number to format.\n * @param {number} [padding=0] The amount of padding to use.\n * @return {string} The formatted string.\n */\nexport function formatNumber(locale, number, padding = 0) {\n const numbers = getNumbers(locale);\n return `${number}`\n .padStart(padding, 0)\n .replace(/\\d/g, (match) => numbers[match]);\n};\n\n/**\n * Format a number to an offset string.\n * @param {number} offset The offset to format.\n * @param {Boolean} [useColon=true] Whether to use a colon seperator.\n * @param {Boolean} [optionalMinutes=false] Whether minutes are optional.\n * @return {string} The formatted offset string.\n */\nexport function formatOffset(offset, useColon = true, optionalMinutes = false) {\n const hours = Math.abs(\n (offset / 60) | 0,\n );\n const minutes = Math.abs(offset % 60);\n\n const sign = offset > 0 ?\n '-' :\n '+';\n const hourString = `${hours}`.padStart(2, 0);\n const minuteString = minutes || !optionalMinutes ?\n `${minutes}`.padStart(2, 0) :\n '';\n const colon = useColon && minuteString ?\n ':' :\n '';\n\n return `${sign}${hourString}${colon}${minuteString}`;\n};\n\n/**\n * Format a time zone as a locale string.\n * @param {string} locale The locale.\n * @param {number} timestamp The timestamp to use.\n * @param {string} timeZone The time zone to format.\n * @param {string} [type=long] The formatting type.\n * @return {string} The formatted string.\n */\nexport function formatTimeZoneName(locale, timestamp, timeZone, type = 'long') {\n return makeFormatter(locale, { second: 'numeric', timeZone, timeZoneName: type })\n .formatToParts(timestamp)\n .find((part) => part.type === 'timeZoneName')\n .value;\n};\n","import { getOffset } from './helpers.js';\nimport { config, dateStringTimeZoneRegExp, offsetRegExp } from './vars.js';\nimport { formatOffset } from './formatter/format.js';\n\n/**\n * DateTime class\n * @class\n */\nexport default class DateTime {\n /**\n * New DateTime constructor.\n * @param {string|number|null} [date] The date or timestamp to parse.\n * @param {object} [options] Options for the new DateTime.\n * @param {string} [options.timeZone] The timeZone to use.\n * @param {string} [options.locale] The locale to use.\n */\n constructor(date = null, options = {}) {\n let timestamp;\n let adjustOffset = false;\n\n if (date === null) {\n timestamp = Date.now();\n } else if (!isNaN(parseInt(date)) && isFinite(date)) {\n timestamp = date;\n } else if (date === `${date}`) {\n timestamp = Date.parse(date);\n\n if (isNaN(timestamp)) {\n throw new Error('Invalid date string supplied');\n }\n\n if (!date.match(dateStringTimeZoneRegExp)) {\n timestamp -= new Date()\n .getTimezoneOffset() *\n 60000;\n }\n\n adjustOffset = true;\n } else {\n throw new Error('Invalid date supplied');\n }\n\n this._date = new Date(timestamp);\n this._dynamicTz = false;\n this.isValid = true;\n\n let timeZone = options.timeZone;\n\n if (!timeZone) {\n timeZone = config.defaultTimeZone;\n }\n\n if (['Z', 'GMT'].includes(timeZone)) {\n timeZone = 'UTC';\n }\n\n const match = timeZone.match(offsetRegExp);\n if (match) {\n this._offset = match[2] * 60 + parseInt(match[4] || 0);\n if (this._offset && match[1] === '+') {\n this._offset *= -1;\n }\n\n if (this._offset) {\n this._timeZone = formatOffset(this._offset);\n } else {\n this._dynamicTz = true;\n this._timeZone = 'UTC';\n }\n } else {\n this._dynamicTz = true;\n this._timeZone = timeZone;\n }\n\n if (this._dynamicTz) {\n this._offset = getOffset(this);\n }\n\n if (adjustOffset && this._offset) {\n const oldOffset = this._offset;\n\n this._date.setTime(this.getTime() + this._offset * 60000);\n\n if (this._dynamicTz) {\n this._offset = getOffset(this);\n\n // compensate for DST transitions\n if (oldOffset !== this._offset) {\n this._date.setTime(this.getTime() - ((oldOffset - offset) * 60000));\n }\n }\n }\n\n if (!('locale' in options)) {\n options.locale = config.defaultLocale;\n }\n\n this._locale = options.locale;\n }\n\n /**\n * Get the name of the current locale.\n * @return {string} The name of the current locale.\n */\n getLocale() {\n return this._locale;\n }\n\n /**\n * Get the number of milliseconds since the UNIX epoch.\n * @return {number} The number of milliseconds since the UNIX epoch.\n */\n getTime() {\n return this._date.getTime();\n }\n\n /**\n * Get the name of the current timeZone.\n * @return {string} The name of the current timeZone.\n */\n getTimeZone() {\n return this._timeZone;\n }\n\n /**\n * Get the UTC offset (in minutes) of the current timeZone.\n * @return {number} The UTC offset (in minutes) of the current timeZone.\n */\n getTimeZoneOffset() {\n return this._offset;\n }\n\n /**\n * Set the current locale.\n * @param {string} locale The name of the timeZone.\n * @return {DateTime} The DateTime object.\n */\n setLocale(locale) {\n return new DateTime(this.getTime(), {\n locale,\n timeZone: this._timeZone,\n });\n }\n\n /**\n * Set the number of milliseconds since the UNIX epoch.\n * @param {number} time The number of milliseconds since the UNIX epoch.\n * @return {DateTime} The DateTime object.\n */\n setTime(time) {\n return new DateTime(time, {\n locale: this._locale,\n timeZone: this._timeZone,\n });\n }\n\n /**\n * Set the current timeZone.\n * @param {string} timeZone The name of the timeZone.\n * @return {DateTime} The DateTime object.\n */\n setTimeZone(timeZone) {\n return new DateTime(this.getTime(), {\n locale: this._locale,\n timeZone,\n });\n }\n\n /**\n * Set the current UTC offset.\n * @param {number} offset The UTC offset (in minutes).\n * @return {DateTime} The DateTime object.\n */\n setTimeZoneOffset(offset) {\n return new DateTime(this.getTime(), {\n locale: this._locale,\n timeZone: formatOffset(offset),\n });\n }\n\n /**\n * Get the number of milliseconds since the UNIX epoch.\n * @return {number} The number of milliseconds since the UNIX epoch.\n */\n valueOf() {\n return this.getTime();\n }\n\n /**\n * Return a primitive value of the DateTime.\n * @param {string} hint The type hint.\n * @return {string|number}\n */\n [Symbol.toPrimitive](hint) {\n return hint === 'number' ?\n this.valueOf() :\n this.toString();\n }\n}\n","export const weekStart = { '1': ['af', 'am', 'ar-il', 'ar-sa', 'ar-ye', 'as', 'bn', 'bo', 'brx', 'ccp', 'ceb', 'chr', 'dav', 'dz', 'ebu', 'en', 'fil', 'gu', 'guz', 'haw', 'he', 'hi', 'id', 'ii', 'ja', 'jv', 'kam', 'ki', 'kln', 'km', 'kn', 'ko', 'kok', 'ks', 'lkt', 'lo', 'luo', 'luy', 'mas', 'mer', 'mgh', 'ml', 'mr', 'mt', 'my', 'nd', 'ne', 'om', 'or', 'pa', 'ps-pk', 'pt', 'qu', 'saq', 'sd', 'seh', 'sn', 'ta', 'te', 'th', 'ti', 'ug', 'ur', 'xh', 'yue', 'zh', 'zu'], '7': ['ar', 'ckb', 'en-ae', 'en-sd', 'fa', 'kab', 'lrc', 'mzn', 'ps'] };\nexport const minDaysInFirstWeek = { '4': ['ast', 'bg', 'br', 'ca', 'ce', 'cs', 'cy', 'da', 'de', 'dsb', 'el', 'en-at', 'en-be', 'en-ch', 'en-de', 'en-dk', 'en-fi', 'en-fj', 'en-gb', 'en-gg', 'en-gi', 'en-ie', 'en-im', 'en-je', 'en-nl', 'en-se', 'es', 'et', 'eu', 'fi', 'fo', 'fr', 'fur', 'fy', 'ga', 'gd', 'gl', 'gsw', 'gv', 'hsb', 'hu', 'is', 'it', 'ksh', 'kw', 'lb', 'lt', 'nb', 'nds', 'nl', 'nn', 'os-ru', 'pl', 'pt-ch', 'pt-lu', 'pt-pt', 'rm', 'ru', 'sah', 'se', 'sk', 'smn', 'sv', 'tt', 'wae'] };\n","import { minDaysInFirstWeek, weekStart } from './locales.js';\nimport { getData } from './../factory.js';\n\n/**\n * Get the formatting type from the component token length.\n * @param {number} length The component token length.\n * @return {string} The formatting type.\n */\nexport function getType(length) {\n switch (length) {\n case 5:\n return 'narrow';\n case 4:\n return 'long';\n default:\n return 'short';\n }\n};\n\n/**\n * Get the minimum days.\n * @param {string} locale The locale.\n * @return {number} The minimum days.\n */\nexport function minimumDays(locale) {\n return getData(\n `minimumDays.${locale}`,\n (_) => {\n let minDays = 1;\n const localeTest = locale.toLowerCase().split('-');\n while (minDays === 1 && localeTest.length) {\n for (const days in minDaysInFirstWeek) {\n if (!{}.hasOwnProperty.call(minDaysInFirstWeek, days)) {\n continue;\n }\n\n const locales = minDaysInFirstWeek[days];\n\n if (locales.includes(localeTest.join('-'))) {\n minDays = parseInt(days);\n break;\n }\n }\n\n localeTest.pop();\n }\n\n return minDays;\n },\n );\n};\n\n/**\n * Get the week start offset for a locale.\n * @param {string} [locale] The locale to load.\n * @return {number} The week start offset.\n */\nfunction weekStartOffset(locale) {\n return getData(\n `weekStartOffset.${locale}`,\n (_) => {\n let weekStarted;\n const localeTest = locale.toLowerCase().split('-');\n while (!weekStarted && localeTest.length) {\n for (const start in weekStart) {\n if (!{}.hasOwnProperty.call(weekStart, start)) {\n continue;\n }\n\n const locales = weekStart[start];\n\n if (locales.includes(localeTest.join('-'))) {\n weekStarted = parseInt(start);\n break;\n }\n }\n\n localeTest.pop();\n }\n\n return weekStarted ?\n weekStarted - 2 :\n 0;\n },\n );\n};\n\n/**\n * Convert a day of the week to a local format.\n * @param {string} locale The locale.\n * @param {number} day The day of the week.\n * @return {number} The local day of the week.\n */\nexport function weekDay(locale, day) {\n return (7 + parseInt(day) - weekStartOffset(locale)) % 7 || 7;\n};\n","import { getDayPeriods, getDays, getEras, getMonths, getNumbers } from './values.js';\nimport { weekDay } from './utility.js';\n\n/**\n * Parse a day from a locale string.\n * @param {string} locale The locale.\n * @param {string} value The value to parse.\n * @param {string} [type=long] The formatting type.\n * @param {Boolean} [standalone=true] Whether the value is standalone.\n * @return {number} The day number (0-6).\n */\nexport function parseDay(locale, value, type = 'long', standalone = true) {\n const day = getDays(locale, type, standalone).indexOf(value) || 7;\n return weekDay(locale, day);\n};\n\n/**\n * Parse a day period from a locale string.\n * @param {string} locale The locale.\n * @param {string} value The value to parse.\n * @param {string} [type=long] The formatting type.\n * @return {number} The day period (0-1).\n */\nexport function parseDayPeriod(locale, value, type = 'long') {\n return getDayPeriods(locale, type).indexOf(value);\n};\n\n/**\n * Parse an era from a locale string.\n * @param {string} locale The locale.\n * @param {string} value The value to parse.\n * @param {string} [type=long] The formatting type.\n * @return {number} The era (0-1).\n */\nexport function parseEra(locale, value, type = 'long') {\n return getEras(locale, type).indexOf(value);\n};\n\n/**\n * Parse a month from a locale string.\n * @param {string} locale The locale.\n * @param {string} value The value to parse.\n * @param {string} [type=long] The formatting type.\n * @param {Boolean} [standalone=true] Whether the value is standalone.\n * @return {number} The month number (1-12).\n */\nexport function parseMonth(locale, value, type = 'long', standalone = true) {\n return getMonths(locale, type, standalone).indexOf(value) + 1;\n};\n\n/**\n * Parse a number from a locale number string.\n * @param {string} locale The locale.\n * @param {string} value The value to parse.\n * @return {number} The parsed number.\n */\nexport function parseNumber(locale, value) {\n const numbers = getNumbers(locale);\n return parseInt(\n `${value}`.replace(/./g, (match) => numbers.indexOf(match)),\n );\n};\n","import { formatDay, formatMonth, formatNumber, formatOffset } from './format.js';\nimport { parseDay, parseDayPeriod, parseEra, parseMonth, parseNumber } from './parse.js';\nimport { getType } from './utility.js';\nimport { getDayPeriods, getDays, getEras, getMonths, numberRegExp } from './values.js';\n\n/**\n * DateFormatter Format Data\n */\n\nexport default {\n\n /* ERA */\n\n G: {\n key: 'era',\n maxLength: 5,\n regex: (locale, length) => {\n const type = getType(length);\n return getEras(locale, type).join('|');\n },\n input: (locale, value, length) => {\n const type = getType(length);\n return parseEra(locale, value, type);\n },\n output: (datetime, length) => {\n const type = getType(length);\n return datetime.era(type);\n },\n },\n\n /* YEAR */\n\n // year\n y: {\n key: 'year',\n regex: (locale) => numberRegExp(locale),\n input: (locale, value, length) => {\n value = parseNumber(locale, value);\n\n if (length !== 2 || `${value}`.length !== 2) {\n return value;\n }\n\n return value > 40 ?\n 1900 + value :\n 2000 + value;\n },\n output: (datetime, length) => {\n let year = datetime.getYear();\n if (length === 2) {\n year = `${year}`.slice(-2);\n }\n return formatNumber(\n datetime.getLocale(),\n Math.abs(year),\n length,\n );\n },\n },\n\n // week year\n Y: {\n key: 'weekYear',\n regex: (locale) => numberRegExp(locale),\n input: (locale, value, length) => {\n value = parseNumber(locale, value);\n\n if (length !== 2 || `${value}`.length !== 2) {\n return value;\n }\n\n return value > 40 ?\n 1900 + value :\n 2000 + value;\n },\n output: (datetime, length) => {\n let year = datetime.getWeekYear();\n if (length === 2) {\n year = `${year}`.slice(-2);\n }\n return formatNumber(\n datetime.getLocale(),\n Math.abs(year),\n length,\n );\n },\n },\n\n /* QUARTER */\n\n // quarter\n Q: {\n key: 'quarter',\n regex: (locale) => numberRegExp(locale),\n input: (locale, value) => parseNumber(locale, value),\n output: (datetime, length) =>\n formatNumber(\n datetime.getLocale(),\n datetime.getQuarter(),\n length,\n ),\n },\n\n // quarter (standalone)\n q: {\n key: 'quarter',\n regex: (locale) => numberRegExp(locale),\n input: (locale, value) => parseNumber(locale, value),\n output: (datetime, length) =>\n formatNumber(\n datetime.getLocale(),\n datetime.getQuarter(),\n length,\n ),\n },\n\n /* MONTH */\n\n // month\n M: {\n key: 'month',\n regex: (locale, length) => {\n switch (length) {\n case 5:\n case 4:\n case 3:\n const type = getType(length);\n return getMonths(locale, type, false).join('|');\n default:\n return numberRegExp(locale);\n }\n },\n input: (locale, value, length) => {\n switch (length) {\n case 5:\n return null;\n case 4:\n case 3:\n const type = getType(length);\n return parseMonth(locale, value, type, false);\n default:\n return parseNumber(locale, value);\n }\n },\n output: (datetime, length) => {\n const locale = datetime.getLocale();\n const month = datetime.getMonth();\n switch (length) {\n case 5:\n case 4:\n case 3:\n const type = getType(length);\n return formatMonth(locale, month, type, false);\n default:\n return formatNumber(locale, month, length);\n }\n },\n },\n\n // month (standalone)\n L: {\n key: 'month',\n regex: (locale, length) => {\n switch (length) {\n case 5:\n case 4:\n case 3:\n const type = getType(length);\n return getMonths(locale, type).join('|');\n default:\n return numberRegExp(locale);\n }\n },\n input: (locale, value, length) => {\n switch (length) {\n case 5:\n return null;\n case 4:\n case 3:\n const type = getType(length);\n return parseMonth(locale, value, type);\n default:\n return parseNumber(locale, value);\n }\n },\n output: (datetime, length) => {\n const locale = datetime.getLocale();\n const month = datetime.getMonth();\n switch (length) {\n case 5:\n case 4:\n case 3:\n const type = getType(length);\n return formatMonth(locale, month, type);\n default:\n return formatNumber(locale, month, length);\n }\n },\n },\n\n /* WEEK */\n\n // local week\n w: {\n key: 'week',\n regex: (locale) => numberRegExp(locale),\n input: (locale, value) => parseNumber(locale, value),\n output: (datetime, length) =>\n formatNumber(\n datetime.getLocale(),\n datetime.getWeek(),\n length,\n ),\n },\n\n // local week of month\n W: {\n key: 'weekOfMonth',\n regex: (locale) => numberRegExp(locale),\n input: (locale, value) => parseNumber(locale, value),\n output: (datetime) =>\n formatNumber(\n datetime.getLocale(),\n datetime.getWeekOfMonth(),\n ),\n },\n\n /* DAY */\n\n // day of month\n d: {\n key: 'date',\n regex: (locale) => numberRegExp(locale),\n input: (locale, value) => parseNumber(locale, value),\n output: (datetime, length) =>\n formatNumber(\n datetime.getLocale(),\n datetime.getDate(),\n length,\n ),\n },\n\n // day of year\n D: {\n key: 'dayOfYear',\n regex: (locale) => numberRegExp(locale),\n input: (locale, value) => parseNumber(locale, value),\n output: (datetime, length) =>\n formatNumber(\n datetime.getLocale(),\n datetime.getDayOfYear(),\n length,\n ),\n },\n\n // day of week in month\n F: {\n key: 'weekDayInMonth',\n regex: (locale) => numberRegExp(locale),\n input: (locale, value) => parseNumber(locale, value),\n output: (datetime) =>\n formatNumber(\n datetime.getLocale(),\n datetime.getWeekDayInMonth(),\n ),\n },\n\n // week day name\n E: {\n key: 'weekDay',\n regex: (locale, length) => {\n const type = getType(length);\n return getDays(locale, type, false).join('|');\n },\n input: (locale, value, length) => {\n if (length === 5) {\n return null;\n }\n\n const type = getType(length);\n return parseDay(locale, value, type, false);\n },\n output: (datetime, length) => {\n const type = getType(length);\n const locale = datetime.getLocale();\n const day = datetime.getDay();\n return formatDay(locale, day, type, false);\n },\n },\n\n // week day\n e: {\n key: 'weekDay',\n maxLength: 5,\n regex: (locale, length) => {\n switch (length) {\n case 5:\n case 4:\n case 3:\n const type = getType(length);\n return getDays(locale, type, false).join('|');\n default:\n return numberRegExp(locale);\n }\n },\n input: (locale, value, length) => {\n switch (length) {\n case 5:\n return null;\n case 4:\n case 3:\n const type = getType(length);\n return parseDay(locale, value, type, false);\n default:\n return parseNumber(locale, value);\n }\n },\n output: (datetime, length) => {\n const locale = datetime.getLocale();\n switch (length) {\n case 5:\n case 4:\n case 3:\n const type = getType(length);\n const day = datetime.getDay();\n return formatDay(locale, day, type, false);\n default:\n const weekDay = datetime.getWeekDay();\n return formatNumber(locale, weekDay, length);\n }\n },\n },\n\n // week day (standalone)\n c: {\n key: 'weekDay',\n maxLength: 5,\n regex: (locale, length) => {\n switch (length) {\n case 5:\n case 4:\n case 3:\n const type = getType(length);\n return getDays(locale, type).join('|');\n default:\n return numberRegExp(locale);\n }\n },\n input: (locale, value, length) => {\n switch (length) {\n case 5:\n return null;\n case 4:\n case 3:\n const type = getType(length);\n return parseDay(locale, value, type);\n default:\n return parseNumber(locale, value);\n }\n },\n output: (datetime, length) => {\n const locale = datetime.getLocale();\n switch (length) {\n case 5:\n case 4:\n case 3:\n const type = getType(length);\n const day = datetime.getDay();\n return formatDay(locale, day, type);\n default:\n const weekDay = datetime.getWeekDay();\n return formatNumber(locale, weekDay);\n }\n },\n },\n\n /* PERIOD */\n\n a: {\n key: 'dayPeriod',\n regex: (locale, length) => {\n const type = getType(length);\n return getDayPeriods(locale, type).join('|');\n },\n input: (locale, value, length) => {\n const type = getType(length);\n return parseDayPeriod(locale, value, type);\n },\n output: (datetime, length) => {\n const type = getType(length);\n return datetime.dayPeriod(type);\n },\n },\n\n /* HOUR */\n\n h: {\n key: 'hours12',\n regex: (locale) => numberRegExp(locale),\n input: (locale, value) => {\n value = parseNumber(locale, value);\n if (value === 12) {\n value = 0;\n }\n return value;\n },\n output: (datetime, length) =>\n formatNumber(\n datetime.getLocale(),\n datetime.getHours() % 12 || 12,\n length,\n ),\n },\n\n H: {\n key: 'hours24',\n regex: (locale) => numberRegExp(locale),\n input: (locale, value) => parseNumber(locale, value),\n output: (datetime, length) =>\n formatNumber(\n datetime.getLocale(),\n datetime.getHours(),\n length,\n ),\n },\n\n K: {\n key: 'hours12',\n regex: (locale) => numberRegExp(locale),\n input: (locale, value) => parseNumber(locale, value),\n output: (datetime, length) =>\n formatNumber(\n datetime.getLocale(),\n datetime.getHours() % 12,\n length,\n ),\n },\n\n k: {\n key: 'hours24',\n regex: (locale) => numberRegExp(locale),\n input: (locale, value) => {\n value = parseNumber(locale, value);\n if (value === 24) {\n value = 0;\n }\n return value;\n },\n output: (datetime, length) =>\n formatNumber(\n datetime.getLocale(),\n datetime.getHours() || 24,\n length,\n ),\n },\n\n /* MINUTE */\n\n m: {\n key: 'minutes',\n regex: (locale) => numberRegExp(locale),\n input: (locale, value) => parseNumber(locale, value),\n output: (datetime, length) =>\n formatNumber(\n datetime.getLocale(),\n datetime.getMinutes(),\n length,\n ),\n },\n\n /* SECOND */\n\n s: {\n key: 'seconds',\n regex: (locale) => numberRegExp(locale),\n input: (locale, value) => parseNumber(locale, value),\n output: (datetime, length) =>\n formatNumber(\n datetime.getLocale(),\n datetime.getSeconds(),\n length,\n ),\n },\n\n /* FRACTIONAL */\n\n S: {\n key: 'milliseconds',\n regex: (locale) => numberRegExp(locale),\n input: (_) => 0,\n output: (datetime, length) =>\n formatNumber(\n datetime.getLocale(),\n `${Math.floor(\n datetime.getMilliseconds() *\n 1000,\n )}`.padEnd(length, '0').slice(0, length),\n ),\n },\n\n /* TIMEZONE/OFFSET */\n\n z: {\n output: (datetime, length) => {\n if (length === 5) {\n length = 1;\n }\n const type = getType(length);\n return datetime.timeZoneName(type);\n },\n },\n\n Z: {\n key: 'timeZone',\n regex: (_, length) => {\n switch (length) {\n case 5:\n return `[\\\\+\\\\-]\\\\d{2}\\\\:\\\\d{2}|Z`;\n case 4:\n return `GMT[\\\\+\\\\-]\\\\d{2}\\\\:\\\\d{2}|GMT`;\n default:\n return `[\\\\+\\\\-]\\\\d{4}`;\n }\n },\n input: (_, value) => value,\n output: (datetime, length) => {\n const offset = datetime.getTimeZoneOffset();\n\n let useColon = true;\n let prefix = '';\n switch (length) {\n case 5:\n if (!offset) {\n return 'Z';\n }\n break;\n case 4:\n prefix = 'GMT';\n\n if (!offset) {\n return prefix;\n }\n\n break;\n default:\n useColon = false;\n break;\n }\n\n return prefix + formatOffset(offset, useColon);\n },\n },\n\n O: {\n key: 'timeZone',\n regex: (_, length) => {\n switch (length) {\n case 4:\n return `GMT[\\\\+\\\\-]\\\\d{2}\\\\:\\\\d{2}|GMT`;\n default:\n return `GMT[\\\\+\\\\-]\\\\d{2}|GMT`;\n }\n },\n input: (_, value) => value,\n output: (datetime, length) => {\n const offset = datetime.getTimeZoneOffset();\n const prefix = 'GMT';\n\n if (!offset) {\n return prefix;\n }\n\n let optionalMinutes = false;\n switch (length) {\n case 4:\n break;\n default:\n optionalMinutes = true;\n }\n\n return prefix + formatOffset(offset, true, optionalMinutes);\n },\n },\n\n V: {\n key: 'timeZone',\n regex: (_) => '([a-zA-Z_\\/]+)',\n input: (_, value) => value,\n output: (datetime) => datetime.getTimeZone(),\n },\n\n X: {\n key: 'timeZone',\n regex: (_, length) => {\n switch (length) {\n case 5:\n case 3:\n return `[\\\\+\\\\-]\\\\d{2}\\\\:\\\\d{2}|Z`;\n case 4:\n case 2:\n return `[\\\\+\\\\-]\\\\d{4}|Z`;\n default:\n return `[\\\\+\\\\-]\\\\d{2}(?:\\\\d{2})?|Z`;\n }\n },\n input: (_, value) => value,\n output: (datetime, length) => {\n const offset = datetime.getTimeZoneOffset();\n\n if (!offset) {\n return 'Z';\n }\n\n let useColon;\n switch (length) {\n case 5:\n case 3:\n useColon = true;\n break;\n default:\n useColon = false;\n break;\n }\n\n return formatOffset(offset, useColon, length === 1);\n },\n },\n\n x: {\n key: 'timeZone',\n regex: (_, length) => {\n switch (length) {\n case 5:\n case 3:\n return `[\\\\+\\\\-]\\\\d{2}\\\\:\\\\d{2}`;\n case 4:\n case 2:\n return `[\\\\+\\\\-]\\\\d{4}`;\n default:\n return `[\\\\+\\\\-]\\\\d{2}(?:\\\\d{2})?`;\n }\n },\n input: (_, value) => value,\n output: (datetime, length) => {\n let useColon;\n switch (length) {\n case 5:\n case 3:\n useColon = true;\n break;\n default:\n useColon = false;\n break;\n }\n\n return formatOffset(datetime.getTimeZoneOffset(), useColon, length === 1);\n },\n },\n\n};\n","import DateTime from './../date-time.js';\nimport { parseCompare, parseFactory } from './../helpers.js';\nimport { config, formats, formatTokenRegExp, parseOrderKeys } from './../vars.js';\nimport tokens from './../formatter/tokens.js';\n\n/**\n * DateTime (Static) Creation\n */\n\n/**\n * Create a new DateTime from an array.\n * @param {number[]} dateArray The date to parse.\n * @param {object} [options] Options for the new DateTime.\n * @param {string} [options.timeZone] The timeZone to use.\n * @param {string} [options.locale] The locale to use.\n * @return {DateTime} A new DateTime object.\n */\nexport function fromArray(dateArray, options = {}) {\n const dateValues = dateArray.slice(0, 3);\n const timeValues = dateArray.slice(3);\n\n if (dateValues.length < 3) {\n dateValues.push(...new Array(3 - dateValues.length).fill(1));\n }\n\n if (timeValues.length < 4) {\n timeValues.push(...new Array(4 - timeValues.length).fill(0));\n }\n\n return new DateTime(null, options)\n .setTimestamp(0)\n .setYear(...dateValues)\n .setHours(...timeValues);\n};\n\n/**\n * Create a new DateTime from a Date.\n * @param {Date} date The date.\n * @param {object} [options] Options for the new DateTime.\n * @param {string} [options.timeZone] The timeZone to use.\n * @param {string} [options.locale] The locale to use.\n * @return {DateTime} A new DateTime object.\n */\nexport function fromDate(date, options = {}) {\n return new DateTime(date.getTime(), options);\n};\n\n/**\n * Create a new DateTime from a format string.\n * @param {string} formatString The format string.\n * @param {string} dateString The date string.\n * @param {object} [options] Options for the new DateTime.\n * @param {string} [options.timeZone] The timeZone to use.\n * @param {string} [options.locale] The locale to use.\n * @return {DateTime} A new DateTime object.\n */\nexport function fromFormat(formatString, dateString, options = {}) {\n if (!('locale' in options)) {\n options.locale = config.defaultLocale;\n }\n\n const values = [];\n\n let match;\n while (formatString && (match = formatString.match(formatTokenRegExp))) {\n const token = match[1];\n const position = match.index;\n const length = match[0].length;\n\n if (position) {\n const formatTest = formatString.substring(0, position);\n parseCompare(formatTest, dateString);\n }\n\n formatString = formatString.substring(position + length);\n dateString = dateString.substring(position);\n\n if (!token) {\n const literal = match[0].slice(1, -1);\n parseCompare(literal || `'`, dateString);\n dateString = dateString.substring(literal.length);\n continue;\n }\n\n if (!(token in tokens)) {\n throw new Error(`Invalid token in DateTime format: ${token}`);\n }\n\n const regExp = tokens[token].regex(options.locale, length);\n const matchedValue = dateString.match(new RegExp(`^${regExp}`));\n\n if (!matchedValue) {\n throw new Error(`Unmatched token in DateTime string: ${token}`);\n }\n\n const literal = matchedValue[0];\n const value = tokens[token].input(options.locale, literal, length);\n\n if (value !== null) {\n const key = tokens[token].key;\n values.push({ key, value, literal, token, length });\n }\n\n dateString = dateString.substring(literal.length);\n }\n\n if (formatString) {\n parseCompare(formatString, dateString);\n }\n\n if (!('timeZone' in options)) {\n options.timeZone = config.defaultTimeZone;\n }\n\n let timeZone = options.timeZone;\n for (const { key, value } of values) {\n if (key !== 'timeZone') {\n continue;\n }\n\n timeZone = value;\n }\n\n let datetime = this.fromTimestamp(0, {\n locale: options.locale,\n }).setYear(1).setTimeZone(timeZone);\n\n const methods = parseFactory();\n\n const testValues = [];\n\n for (const subKeys of parseOrderKeys) {\n for (const subKey of subKeys) {\n if (subKey === 'era' && !values.find((data) => data.key === 'year')) {\n continue;\n }\n\n for (const data of values) {\n const { key, value, literal, token, length } = data;\n\n if (key !== subKey) {\n continue;\n }\n\n // skip narrow month and day names if output already matches\n if (length === 5 && ['M', 'L', 'E', 'e', 'c'].includes(token)) {\n const fullToken = token.repeat(length);\n if (datetime.format(fullToken) === literal) {\n continue;\n }\n }\n\n datetime = methods[key].set(datetime, value);\n testValues.push(data);\n }\n }\n }\n\n let isValid = true;\n for (const { key, value } of testValues) {\n if (key in methods && methods[key].get(datetime) !== value) {\n isValid = false;\n break;\n }\n }\n\n if (options.timeZone !== timeZone) {\n datetime = datetime.setTimeZone(options.timeZone);\n }\n\n datetime.isValid = isValid;\n\n return datetime;\n};\n\n/**\n * Create a new DateTime from an ISO format string.\n * @param {string} dateString The date string.\n * @param {object} [options] Options for the new DateTime.\n * @param {string} [options.timeZone] The timeZone to use.\n * @param {string} [options.locale] The locale to use.\n * @return {DateTime} A new DateTime object.\n */\nexport function fromISOString(dateString, options = {}) {\n let date = this.fromFormat(formats.rfc3339_extended, dateString, {\n locale: 'en',\n });\n\n if ('timeZone' in options) {\n date = date.setTimeZone(options.timeZone);\n }\n\n if ('locale' in options) {\n date = date.setLocale(options.locale);\n }\n\n return date;\n};\n\n/**\n * Create a new DateTime from a timestamp.\n * @param {number} timestamp The timestamp.\n * @param {object} [options] Options for the new DateTime.\n * @param {string} [options.timeZone] The timeZone to use.\n * @param {string} [options.locale] The locale to use.\n * @return {DateTime} A new DateTime object.\n */\nexport function fromTimestamp(timestamp, options = {}) {\n return new DateTime(null, options)\n .setTimestamp(timestamp);\n};\n\n/**\n * Create a new DateTime for the current time.\n * @param {object} [options] Options for the new DateTime.\n * @param {string} [options.timeZone] The timeZone to use.\n * @param {string} [options.locale] The locale to use.\n * @return {DateTime} A new DateTime object.\n */\nexport function now(options = {}) {\n return new DateTime(null, options);\n};\n","import { config, monthDays } from './../vars.js';\n\n/**\n * DateTime (Static) Utility\n */\n\n/**\n * Get the day of the year for a year, month and date.\n * @param {number} year The year.\n * @param {number} month The month. (1, 12)\n * @param {number} date The date.\n * @return {number} The day of the year. (1, 366)\n */\nexport function dayOfYear(year, month, date) {\n return new Array(month - 1)\n .fill()\n .reduce(\n (d, _, i) =>\n d + daysInMonth(year, i + 1),\n date,\n );\n};\n\n/**\n * Get the number of days in a month, from a year and month.\n * @param {number} year The year.\n * @param {number} month The month. (1, 12)\n * @return {number} The number of days in the month.\n */\nexport function daysInMonth(year, month) {\n const date = new Date(Date.UTC(year, month - 1));\n month = date.getUTCMonth();\n\n return monthDays[month] +\n (\n month == 1 && isLeapYear(\n date.getUTCFullYear(),\n ) ?\n 1 :\n 0\n );\n};\n\n/**\n * Get the number of days in a year.\n * @param {number} year The year.\n * @return {number} The number of days in the year.\n */\nexport function daysInYear(year) {\n return !isLeapYear(year) ?\n 365 :\n 366;\n};\n\n/**\n * Get the default locale.\n * @return {string} The locale.\n */\nexport function getDefaultLocale() {\n return config.defaultLocale;\n};\n\n/**\n * Get the default timeZone.\n * @return {string} The name of the timeZone.\n */\nexport function getDefaultTimeZone() {\n return config.defaultTimeZone;\n};\n\n/**\n * Return true if a year is a leap year.\n * @param {number} year The year.\n * @return {Boolean} TRUE if the year is a leap year, otherwise FALSE.\n */\nexport function isLeapYear(year) {\n return new Date(year, 1, 29)\n .getDate() === 29;\n};\n\n/**\n * Set whether dates will be clamped when changing months.\n * @param {Boolean} clampDates Whether to clamp dates.\n */\nexport function setDateClamping(clampDates) {\n config.clampDates = clampDates;\n};\n\n/**\n * Set the default locale.\n * @param {string} locale The locale.\n */\nexport function setDefaultLocale(locale) {\n config.defaultLocale = locale;\n};\n\n/**\n * Set the default timeZone.\n * @param {string} timeZone The name of the timeZone.\n */\nexport function setDefaultTimeZone(timeZone) {\n config.defaultTimeZone = timeZone;\n};\n","import { getOffsetTime } from './../helpers.js';\nimport { minimumDays, weekDay } from './../formatter/utility.js';\nimport { dayOfYear } from './../static/utility.js';\n\n/**\n * DateTime Attributes (Get)\n */\n\n/**\n * Get the date of the month in current timeZone.\n * @return {number} The date of the month.\n */\nexport function getDate() {\n return new Date(getOffsetTime(this)).getUTCDate();\n};\n\n/**\n * Get the day of the week in current timeZone.\n * @return {number} The day of the week. (0 - Sunday, 6 - Saturday)\n */\nexport function getDay() {\n return new Date(getOffsetTime(this)).getUTCDay();\n};\n\n/**\n * Get the day of the year in current timeZone.\n * @return {number} The day of the year. (1, 366)\n */\nexport function getDayOfYear() {\n return dayOfYear(\n this.getYear(),\n this.getMonth(),\n this.getDate(),\n );\n};\n\n/**\n * Get the hours of the day in current timeZone.\n * @return {number} The hours of the day. (0, 23)\n */\nexport function getHours() {\n return new Date(getOffsetTime(this)).getUTCHours();\n};\n\n/**\n * Get the milliseconds in current timeZone.\n * @return {number} The milliseconds.\n */\nexport function getMilliseconds() {\n return new Date(getOffsetTime(this)).getUTCMilliseconds();\n};\n\n/**\n * Get the minutes in current timeZone.\n * @return {number} The minutes. (0, 59)\n */\nexport function getMinutes() {\n return new Date(getOffsetTime(this)).getUTCMinutes();\n};\n\n/**\n * Get the month in current timeZone.\n * @return {number} The month. (1, 12)\n */\nexport function getMonth() {\n return new Date(getOffsetTime(this)).getUTCMonth() + 1;\n};\n\n/**\n * Get the quarter of the year in current timeZone.\n * @return {number} The quarter of the year. (1, 4)\n */\nexport function getQuarter() {\n return Math.ceil(this.getMonth() / 3);\n};\n\n/**\n * Get the seconds in current timeZone.\n * @return {number} The seconds. (0, 59)\n */\nexport function getSeconds() {\n return new Date(getOffsetTime(this)).getUTCSeconds();\n};\n\n/**\n * Get the number of seconds since the UNIX epoch.\n * @return {number} The number of seconds since the UNIX epoch.\n */\nexport function getTimestamp() {\n return Math.floor(this.getTime() / 1000);\n};\n\n/**\n * Get the local week in current timeZone.\n * @return {number} The local week. (1, 53)\n */\nexport function getWeek() {\n const thisWeek = this.startOf('day').setWeekDay(1);\n const firstWeek = thisWeek.setWeek(1, 1);\n\n return 1 +\n (\n (\n (thisWeek - firstWeek) /\n 604800000\n ) | 0\n );\n};\n\n/**\n * Get the local day of the week in current timeZone.\n * @return {number} The local day of the week. (1 - 7)\n */\nexport function getWeekDay() {\n return weekDay(\n this.getLocale(),\n this.getDay(),\n );\n};\n\n/**\n * Get the week day in month in current timeZone.\n * @return {number} The week day in month.\n */\nexport function getWeekDayInMonth() {\n const thisWeek = this.getWeek();\n const first = this.setDate(1);\n const firstWeek = first.getWeek();\n const offset = first.getWeekDay() > this.getWeekDay() ?\n 0 : 1;\n return firstWeek > thisWeek ?\n thisWeek + offset :\n thisWeek - firstWeek + offset;\n};\n\n/**\n * Get the week of month in current timeZone.\n * @return {number} The week of month.\n */\nexport function getWeekOfMonth() {\n const thisWeek = this.getWeek();\n const firstWeek = this.setDate(1).getWeek();\n return firstWeek > thisWeek ?\n thisWeek + 1 :\n thisWeek - firstWeek + 1;\n};\n\n/**\n * Get the week year in current timeZone.\n * @return {number} The week year.\n */\nexport function getWeekYear() {\n const minDays = minimumDays(this.getLocale());\n return this.setWeekDay(7 - minDays + 1).getYear();\n};\n\n/**\n * Get the year in current timeZone.\n * @return {number} The year.\n */\nexport function getYear() {\n return new Date(getOffsetTime(this)).getUTCFullYear();\n};\n","import DateTime from './../date-time.js';\nimport { getOffsetTime, setOffsetTime } from './../helpers.js';\nimport { config } from './../vars.js';\nimport { minimumDays } from './../formatter/utility.js';\nimport { daysInMonth } from './../static/utility.js';\n\n/**\n * DateTime Attributes (Set)\n */\n\n/**\n * Set the date of the month in current timeZone.\n * @param {number} date The date of the month.\n * @return {DateTime} The DateTime object.\n */\nexport function setDate(date) {\n return setOffsetTime(\n this,\n new Date(getOffsetTime(this)).setUTCDate(date),\n );\n};\n\n/**\n * Set the day of the week in current timeZone.\n * @param {number} day The day of the week. (0 - Sunday, 6 - Saturday)\n * @return {DateTime} The DateTime object.\n */\nexport function setDay(day) {\n return setOffsetTime(\n this,\n new Date(getOffsetTime(this)).setUTCDate(\n this.getDate() -\n this.getDay() +\n parseInt(day),\n ),\n );\n};\n\n/**\n * Set the day of the year in current timeZone.\n * @param {number} day The day of the year. (1, 366)\n * @return {DateTime} The DateTime object.\n */\nexport function setDayOfYear(day) {\n return setOffsetTime(\n this,\n new Date(getOffsetTime(this)).setUTCMonth(\n 0,\n day,\n ),\n );\n};\n\n/**\n * Set the hours in current timeZone (and optionally, minutes, seconds and milliseconds).\n * @param {number} hours The hours. (0, 23)\n * @param {number} [minutes] The minutes. (0, 59)\n * @param {number} [seconds] The seconds. (0, 59)\n * @param {number} [milliseconds] The milliseconds.\n * @return {DateTime} The DateTime object.\n */\nexport function setHours(...args) {\n return setOffsetTime(\n this,\n new Date(getOffsetTime(this)).setUTCHours(...args),\n );\n};\n\n/**\n * Set the milliseconds in current timeZone.\n * @param {number} milliseconds The milliseconds.\n * @return {DateTime} The DateTime object.\n */\nexport function setMilliseconds(milliseconds) {\n return setOffsetTime(\n this,\n new Date(getOffsetTime(this)).setUTCMilliseconds(milliseconds),\n );\n};\n\n/**\n * Set the minutes in current timeZone (and optionally, seconds and milliseconds).\n * @param {number} minutes The minutes. (0, 59)\n * @param {number} [seconds] The seconds. (0, 59)\n * @param {number} [milliseconds] The milliseconds.\n * @return {DateTime} The DateTime object.\n */\nexport function setMinutes(...args) {\n return setOffsetTime(\n this,\n new Date(getOffsetTime(this)).setUTCMinutes(...args),\n );\n};\n\n/**\n * Set the month in current timeZone (and optionally, date).\n * @param {number} month The month. (1, 12)\n * @param {number|null} [date] The date of the month.\n * @return {DateTime} The DateTime object.\n */\nexport function setMonth(month, date = null) {\n if (date === null) {\n date = this.getDate();\n\n if (config.clampDates) {\n date = Math.min(\n date,\n daysInMonth(\n this.getYear(),\n month,\n ),\n );\n }\n }\n\n return setOffsetTime(\n this,\n new Date(getOffsetTime(this)).setUTCMonth(\n month - 1,\n date,\n ),\n );\n};\n\n/**\n * Set the quarter of the year in current timeZone.\n * @param {number} quarter The quarter of the year. (1, 4)\n * @return {DateTime} The DateTime object.\n */\nexport function setQuarter(quarter) {\n return setOffsetTime(\n this,\n new Date(getOffsetTime(this)).setUTCMonth(\n quarter * 3 -\n 3,\n ),\n );\n};\n\n/**\n * Set the seconds in current timeZone (and optionally, milliseconds).\n * @param {number} seconds The seconds. (0, 59)\n * @param {number} [milliseconds] The milliseconds.\n * @return {DateTime} The DateTime object.\n */\nexport function setSeconds(...args) {\n return setOffsetTime(\n this,\n new Date(getOffsetTime(this)).setUTCSeconds(...args),\n );\n};\n\n/**\n * Set the number of seconds since the UNIX epoch.\n * @param {number} timestamp The number of seconds since the UNIX epoch.\n * @return {DateTime} The DateTime object.\n */\nexport function setTimestamp(timestamp) {\n return this.setTime(timestamp * 1000);\n};\n\n/**\n * Set the local day of the week in current timeZone (and optionally, day of the week).\n * @param {number} week The local week.\n * @param {number|null} [day] The local day of the week. (1 - 7)\n * @return {DateTime} The DateTime object.\n */\nexport function setWeek(week, day = null) {\n if (day === null) {\n day = this.getWeekDay();\n }\n\n const minDays = minimumDays(this.getLocale());\n return this.setYear(this.getWeekYear(), 1, minDays + ((week - 1) * 7)).setWeekDay(day);\n};\n\n/**\n * Set the local day of the week in current timeZone.\n * @param {number} day The local day of the week. (1 - 7)\n * @return {DateTime} The DateTime object.\n */\nexport function setWeekDay(day) {\n return setOffsetTime(\n this,\n new Date(getOffsetTime(this)).setUTCDate(\n this.getDate() -\n this.getWeekDay() +\n parseInt(day),\n ),\n );\n};\n\n/**\n * Set the week day in month in current timeZone.\n * @param {number} week The week day in month.\n * @return {DateTime} The DateTime object.\n */\nexport function setWeekDayInMonth(week) {\n return this.setDate(\n this.getDate() +\n (\n week -\n this.getWeekDayInMonth()\n ) * 7,\n );\n};\n\n/**\n * Set the week of month in current timeZone.\n * @param {number} week The week of month.\n * @return {DateTime} The DateTime object.\n */\nexport function setWeekOfMonth(week) {\n return this.setDate(\n this.getDate() +\n (\n week -\n this.getWeekOfMonth()\n ) * 7,\n );\n};\n\n/**\n * Set the local day of the week in current timeZone (and optionally, week and day of the week).\n * @param {number} year The local year.\n * @param {number|null} [week] The local week.\n * @param {number|null} [day] The local day of the week. (1 - 7)\n * @return {DateTime} The DateTime object.\n */\nexport function setWeekYear(year, week = null, day = null) {\n const minDays = minimumDays(this.getLocale());\n\n if (week === null) {\n week = Math.min(\n this.getWeek(),\n DateTime.fromArray([year, 1, minDays]).weeksInYear(),\n );\n }\n\n if (day === null) {\n day = this.getWeekDay();\n }\n\n return this.setYear(year, 1, minDays + ((week - 1) * 7)).setWeekDay(day);\n};\n\n/**\n * Set the year in current timeZone (and optionally, month and date).\n * @param {number} year The year.\n * @param {number|null} [month] The month. (1, 12)\n * @param {number|null} [date] The date of the month.\n * @return {DateTime} The DateTime object.\n */\nexport function setYear(year, month = null, date = null) {\n if (month === null) {\n month = this.getMonth();\n }\n\n if (date === null) {\n date = this.getDate();\n\n if (config.clampDates) {\n date = Math.min(\n date,\n daysInMonth(\n this.getYear(),\n month,\n ),\n );\n }\n }\n\n return setOffsetTime(\n this,\n new Date(getOffsetTime(this)).setUTCFullYear(\n year,\n month - 1,\n date,\n ),\n );\n};\n","import { modify } from './../helpers.js';\nimport { daysInMonth } from './../static/utility.js';\n\n/**\n * DateTime Manipulation\n */\n\n/**\n * Add a duration to the date.\n * @param {number} amount The amount to modify the date by.\n * @param {string} timeUnit The unit of time.\n * @return {DateTime} The DateTime object.\n */\nexport function add(amount, timeUnit) {\n return modify(this, amount, timeUnit);\n};\n\n/**\n * Modify the DateTime by setting it to the end of a unit of time.\n * @param {string} timeUnit The unit of time.\n * @return {DateTime} The DateTime object.\n */\nexport function endOf(timeUnit) {\n timeUnit = timeUnit.toLowerCase();\n\n switch (timeUnit) {\n case 'second':\n return this.setMilliseconds(999);\n case 'minute':\n return this.setSeconds(59, 999);\n case 'hour':\n return this.setMinutes(59, 59, 999);\n case 'day':\n return this.setHours(23, 59, 59, 999);\n case 'week':\n return this.setWeekDay(7)\n .setHours(23, 59, 59, 999);\n case 'month':\n return this.setDate(this.daysInMonth())\n .setHours(23, 59, 59, 999);\n case 'quarter':\n const month = this.getQuarter() * 3;\n return this.setMonth(month, daysInMonth(this.getYear(), month))\n .setHours(23, 59, 59, 999);\n case 'year':\n return this.setMonth(12, 31)\n .setHours(23, 59, 59, 999);\n default:\n throw new Error('Invalid time unit supplied');\n }\n};\n\n/**\n * Modify the DateTime by setting it to the start of a unit of time.\n * @param {string} timeUnit The unit of time.\n * @return {DateTime} The DateTime object.\n */\nexport function startOf(timeUnit) {\n timeUnit = timeUnit.toLowerCase();\n\n switch (timeUnit) {\n case 'second':\n return this.setMilliseconds(0);\n case 'minute':\n return this.setSeconds(0, 0);\n case 'hour':\n return this.setMinutes(0, 0, 0);\n case 'day':\n return this.setHours(0, 0, 0, 0);\n case 'week':\n return this.setWeekDay(1)\n .setHours(0, 0, 0, 0);\n case 'month':\n return this.setDate(1)\n .setHours(0, 0, 0, 0);\n case 'quarter':\n const month = this.getQuarter() * 3 - 2;\n return this.setMonth(month, 1)\n .setHours(0, 0, 0, 0);\n case 'year':\n return this.setMonth(1, 1)\n .setHours(0, 0, 0, 0);\n default:\n throw new Error('Invalid time unit supplied');\n }\n};\n\n/**\n * Subtract a duration from the date.\n * @param {number} amount The amount to modify the date by.\n * @param {string} timeUnit The unit of time.\n * @return {DateTime} The DateTime object.\n */\nexport function sub(amount, timeUnit) {\n return modify(this, -amount, timeUnit);\n};\n","import { formats, formatTokenRegExp } from './../vars.js';\nimport tokens from './../formatter/tokens.js';\n\n/**\n * DateTime Output\n */\n\n/**\n * Format the current date using a format string.\n * @param {string} formatString The format string.\n * @return {string} The formatted date string.\n */\nexport function format(formatString) {\n let match;\n let output = '';\n\n while (formatString && (match = formatString.match(formatTokenRegExp))) {\n const token = match[1];\n const position = match.index;\n const length = match[0].length;\n\n if (position) {\n output += formatString.substring(0, position);\n }\n\n formatString = formatString.substring(position + length);\n\n if (!token) {\n output += match[0].slice(1, -1);\n continue;\n }\n\n if (!(token in tokens)) {\n throw new Error(`Invalid token in DateTime format: ${token}`);\n }\n\n output += tokens[token].output(this, length);\n }\n\n output += formatString;\n\n return output;\n};\n\n/**\n * Format the current date using \"eee MMM dd yyyy\".\n * @return {string} The formatted date string.\n */\nexport function toDateString() {\n return this.format(formats.date);\n};\n\n/**\n * Format the current date using \"yyyy-MM-dd'THH:mm:ss.SSSSSSxxx\".\n * @return {string} The formatted date string.\n */\nexport function toISOString() {\n return this\n .setLocale('en')\n .setTimeZone('UTC')\n .format(formats.rfc3339_extended);\n};\n\n/**\n * Format the current date using \"eee MMM dd yyyy HH:mm:ss xx (VV)\".\n * @return {string} The formatted date string.\n */\nexport function toString() {\n return this.format(formats.string);\n};\n\n/**\n * Format the current date using \"HH:mm:ss xx (VV)\".\n * @return {string} The formatted date string.\n */\nexport function toTimeString() {\n return this.format(formats.time);\n};\n\n/**\n * Format the current date in UTC timeZone using \"eee MMM dd yyyy HH:mm:ss xx (VV)\".\n * @return {string} The formatted date string.\n */\nexport function toUTCString() {\n return this\n .setLocale('en')\n .setTimeZone('UTC')\n .toString();\n};\n","import DateTime from './../date-time.js';\nimport { getRelativeFormatter } from './../factory.js';\nimport { compensateDiff, getBiggestDiff } from './../helpers.js';\nimport { formatDay, formatDayPeriod, formatEra, formatMonth, formatOffset, formatTimeZoneName } from './../formatter/format.js';\nimport { minimumDays } from './../formatter/utility.js';\nimport { daysInMonth as _daysInMonth, daysInYear as _daysInYear, isLeapYear as _isLeapYear } from './../static/utility.js';\n\n/**\n * DateTime Utility\n */\n\n/**\n * Get the name of the day of the week in current timeZone.\n * @param {string} [type=long] The type of day name to return.\n * @return {string} The name of the day of the week.\n */\nexport function dayName(type = 'long') {\n return formatDay(this.getLocale(), this.getDay(), type);\n};\n\n/**\n * Get the day period in current timeZone.\n * @param {string} [type=long] The type of day period to return.\n * @return {string} The day period.\n */\nexport function dayPeriod(type = 'long') {\n return formatDayPeriod(\n this.getLocale(),\n this.getHours() < 12 ?\n 0 :\n 1,\n type,\n );\n};\n\n/**\n * Get the number of days in the current month.\n * @return {number} The number of days in the current month.\n */\nexport function daysInMonth() {\n return _daysInMonth(\n this.getYear(),\n this.getMonth(),\n );\n};\n\n/**\n * Get the number of days in the current year.\n * @return {number} The number of days in the current year.\n */\nexport function daysInYear() {\n return _daysInYear(\n this.getYear(),\n );\n};\n\n/**\n * Get the difference between this and another Date.\n * @param {DateTime} [other] The date to compare to.\n * @param {object} [options] The options for comparing the dates.\n * @param {string} [options.timeUnit] The unit of time.\n * @param {Boolean} [options.relative=true] Whether to use the relative difference.\n * @return {number} The difference.\n */\nexport function diff(other, { timeUnit, relative = true } = {}) {\n if (!other) {\n other = new this.constructor;\n }\n\n if (!timeUnit) {\n return this - other;\n }\n\n if (timeUnit) {\n timeUnit = timeUnit.toLowerCase();\n }\n\n other = other.setTimeZone(this.getTimeZone());\n\n switch (timeUnit) {\n case 'year':\n case 'years':\n const yearDiff = this.getYear() - other.getYear();\n return compensateDiff(\n this,\n other.setYear(\n this.getYear(),\n ),\n yearDiff,\n !relative,\n -1,\n );\n case 'month':\n case 'months':\n const monthDiff = (this.getYear() - other.getYear()) *\n 12 +\n this.getMonth() -\n other.getMonth();\n return compensateDiff(\n this,\n other.setYear(\n this.getYear(),\n this.getMonth(),\n ),\n monthDiff,\n !relative,\n -1,\n );\n case 'week':\n case 'weeks':\n const weekDiff = (this - other) / 604800000;\n return compensateDiff(\n this,\n other.setWeekYear(\n this.getWeekYear(),\n this.getWeek(),\n ),\n weekDiff,\n relative,\n );\n case 'day':\n case 'days':\n const dayDiff = (this - other) / 86400000;\n return compensateDiff(\n this,\n other.setYear(\n this.getYear(),\n this.getMonth(),\n this.getDate(),\n ),\n dayDiff,\n relative,\n );\n case 'hour':\n case 'hours':\n const hourDiff = (this - other) / 3600000;\n return compensateDiff(\n this,\n other.setYear(\n this.getYear(),\n this.getMonth(),\n this.getDate(),\n ).setHours(\n this.getHours(),\n ),\n hourDiff,\n relative,\n );\n case 'minute':\n case 'minutes':\n const minuteDiff = (this - other) / 60000;\n return compensateDiff(\n this,\n other.setYear(\n this.getYear(),\n this.getMonth(),\n this.getDate(),\n ).setHours(\n this.getHours(),\n this.getMinutes(),\n ),\n minuteDiff,\n relative,\n );\n case 'second':\n case 'seconds':\n const secondDiff = (this - other) / 1000;\n return compensateDiff(\n this,\n other.setYear(\n this.getYear(),\n this.getMonth(),\n this.getDate(),\n ).setHours(\n this.getHours(),\n this.getMinutes(),\n this.getSeconds(),\n ),\n secondDiff,\n relative,\n );\n default:\n throw new Error('Invalid time unit supplied');\n }\n};\n\n/**\n * Get the era in current timeZone.\n * @param {string} [type=long] The type of era to return.\n * @return {string} The era.\n */\nexport function era(type = 'long') {\n return formatEra(\n this.getLocale(),\n this.getYear() < 0 ?\n 0 :\n 1,\n type,\n );\n};\n\n/**\n * Get the difference between this and another Date in human readable form.\n * @param {DateTime} [other] The date to compare to.\n * @param {object} [options] The options for comparing the dates.\n * @param {string} [options.timeUnit] The unit of time.\n * @return {string} The difference in human readable form.\n */\nexport function humanDiff(other, { timeUnit } = {}) {\n const relativeFormatter = getRelativeFormatter(this.getLocale());\n\n if (!relativeFormatter) {\n throw new Error('RelativeTimeFormat not supported');\n }\n\n if (!other) {\n other = new this.constructor;\n }\n\n let amount;\n if (timeUnit) {\n amount = this.diff(other, { timeUnit });\n } else {\n [amount, timeUnit] = getBiggestDiff(this, other);\n }\n\n return relativeFormatter.format(amount, timeUnit);\n};\n\n/**\n * Determine whether this DateTime is after another date (optionally to a granularity).\n * @param {DateTime} [other] The date to compare to.\n * @param {object} [options] The options for comparing the dates.\n * @param {string} [options.granularity] The level of granularity to use for comparison.\n * @return {Boolean} TRUE if this DateTime is after the other date, otherwise FALSE.\n */\nexport function isAfter(other, { granularity } = {}) {\n return this.diff(other, { timeUnit: granularity }) > 0;\n};\n\n/**\n * Determine whether this DateTime is before another date (optionally to a granularity).\n * @param {DateTime} [other] The date to compare to.\n * @param {object} [options] The options for comparing the dates.\n * @param {string} [options.granularity] The level of granularity to use for comparison.\n * @return {Boolean} TRUE if this DateTime is before the other date, otherwise FALSE.\n */\nexport function isBefore(other, { granularity } = {}) {\n return this.diff(other, { timeUnit: granularity }) < 0;\n};\n\n/**\n * Determine whether this DateTime is between two other dates (optionally to a granularity).\n * @param {DateTime} [start] The first date to compare to.\n * @param {DateTime} [end] The second date to compare to.\n * @param {object} [options] The options for comparing the dates.\n * @param {string} [options.granularity] The level of granularity to use for comparison.\n * @return {Boolean} TRUE if this DateTime is between the other dates, otherwise FALSE.\n */\nexport function isBetween(start, end, { granularity } = {}) {\n return this.diff(start, { timeUnit: granularity }) > 0 && this.diff(end, { timeUnit: granularity }) < 0;\n};\n\n/**\n * Return true if the DateTime is in daylight savings.\n * @return {Boolean} TRUE if the current time is in daylight savings, otherwise FALSE.\n */\nexport function isDST() {\n if (!this._dynamicTz) {\n return false;\n }\n\n const year = this.getYear();\n const dateA = DateTime.fromArray([year, 1, 1], {\n timeZone: this.getTimeZone(),\n });\n const dateB = DateTime.fromArray([year, 6, 1], {\n timeZone: this.getTimeZone(),\n });\n\n return this.getTimeZoneOffset() < Math.max(dateA.getTimeZoneOffset(), dateB.getTimeZoneOffset());\n};\n\n/**\n * Return true if the year is a leap year.\n * @return {Boolean} TRUE if the current year is a leap year, otherwise FALSE.\n */\nexport function isLeapYear() {\n return _isLeapYear(\n this.getYear(),\n );\n};\n\n/**\n * Determine whether this DateTime is the same as another date (optionally to a granularity).\n * @param {DateTime} [other] The date to compare to.\n * @param {object} [options] The options for comparing the dates.\n * @param {string} [options.granularity] The level of granularity to use for comparison.\n * @return {Boolean} TRUE if this DateTime is the same as the other date, otherwise FALSE.\n */\nexport function isSame(other, { granularity } = {}) {\n return this.diff(other, { timeUnit: granularity }) === 0;\n};\n\n/**\n * Determine whether this DateTime is the same or after another date (optionally to a granularity).\n * @param {DateTime} [other] The date to compare to.\n * @param {object} [options] The options for comparing the dates.\n * @param {string} [options.granularity] The level of granularity to use for comparison.\n * @return {Boolean} TRUE if this DateTime is the same or after the other date, otherwise FALSE.\n */\nexport function isSameOrAfter(other, { granularity } = {}) {\n return this.diff(other, { timeUnit: granularity }) >= 0;\n};\n\n/**\n * Determine whether this DateTime is the same or before another date.\n * @param {DateTime} other The date to compare to.\n * @param {object} [options] The options for comparing the dates.\n * @param {string} [options.granularity] The level of granularity to use for comparison.\n * @return {Boolean} TRUE if this DateTime is the same or before the other date, otherwise FALSE.\n */\nexport function isSameOrBefore(other, { granularity } = {}) {\n return this.diff(other, { timeUnit: granularity }) <= 0;\n};\n\n/**\n * Get the name of the month in current timeZone.\n * @param {string} [type=long] The type of month name to return.\n * @return {string} The name of the month.\n */\nexport function monthName(type = 'long') {\n return formatMonth(this.getLocale(), this.getMonth(), type);\n};\n\n/**\n * Get the name of the current timeZone.\n * @param {string} [type=long] The formatting type.\n * @return {string} The name of the time zone.\n */\nexport function timeZoneName(type = 'long') {\n return this._dynamicTz ?\n formatTimeZoneName(this.getLocale(), this.getTime(), this.getTimeZone(), type) :\n 'GMT' + formatOffset(this.getTimeZoneOffset(), true, type === 'short');\n};\n\n/**\n * Get the number of weeks in the current year.\n * @return {number} The number of weeks in the current year.\n */\nexport function weeksInYear() {\n const minDays = minimumDays(this.getLocale());\n return this.setMonth(12, 24 + minDays).getWeek();\n};\n","import DateTime from './date-time.js';\nimport { fromArray, fromDate, fromFormat, fromISOString, fromTimestamp, now } from './static/create.js';\nimport { dayOfYear, daysInMonth as _daysInMonth, daysInYear as _daysInYear, getDefaultLocale, getDefaultTimeZone, isLeapYear as _isLeapYear, setDateClamping, setDefaultLocale, setDefaultTimeZone } from './static/utility.js';\nimport { getDate, getDay, getDayOfYear, getHours, getMilliseconds, getMinutes, getMonth, getQuarter, getSeconds, getTimestamp, getWeek, getWeekDay, getWeekDayInMonth, getWeekOfMonth, getWeekYear, getYear } from './prototype/attributes-get.js';\nimport { setDate, setDay, setDayOfYear, setHours, setMilliseconds, setMinutes, setMonth, setQuarter, setSeconds, setTimestamp, setWeek, setWeekDay, setWeekDayInMonth, setWeekOfMonth, setWeekYear, setYear } from './prototype/attributes-set.js';\nimport { add, endOf, startOf, sub } from './prototype/manipulate.js';\nimport { format, toDateString, toISOString, toString, toTimeString, toUTCString } from './prototype/output.js';\nimport { dayName, dayPeriod, daysInMonth, daysInYear, diff, era, humanDiff, isAfter, isBefore, isBetween, isDST, isLeapYear, isSame, isSameOrAfter, isSameOrBefore, monthName, timeZoneName, weeksInYear } from './prototype/utility.js';\n\nDateTime.dayOfYear = dayOfYear;\nDateTime.daysInMonth = _daysInMonth;\nDateTime.daysInYear = _daysInYear;\nDateTime.fromArray = fromArray;\nDateTime.fromDate = fromDate;\nDateTime.fromFormat = fromFormat;\nDateTime.fromISOString = fromISOString;\nDateTime.fromTimestamp = fromTimestamp;\nDateTime.getDefaultLocale = getDefaultLocale;\nDateTime.getDefaultTimeZone = getDefaultTimeZone;\nDateTime.isLeapYear = _isLeapYear;\nDateTime.now = now;\nDateTime.setDateClamping = setDateClamping;\nDateTime.setDefaultLocale = setDefaultLocale;\nDateTime.setDefaultTimeZone = setDefaultTimeZone;\n\nconst proto = DateTime.prototype;\n\nproto.add = add;\nproto.dayName = dayName;\nproto.dayPeriod = dayPeriod;\nproto.daysInMonth = daysInMonth;\nproto.daysInYear = daysInYear;\nproto.diff = diff;\nproto.endOf = endOf;\nproto.era = era;\nproto.format = format;\nproto.getDate = getDate;\nproto.getDay = getDay;\nproto.getDayOfYear = getDayOfYear;\nproto.getHours = getHours;\nproto.getMilliseconds = getMilliseconds;\nproto.getMinutes = getMinutes;\nproto.getMonth = getMonth;\nproto.getQuarter = getQuarter;\nproto.getSeconds = getSeconds;\nproto.getTimestamp = getTimestamp;\nproto.getWeek = getWeek;\nproto.getWeekDay = getWeekDay;\nproto.getWeekDayInMonth = getWeekDayInMonth;\nproto.getWeekOfMonth = getWeekOfMonth;\nproto.getWeekYear = getWeekYear;\nproto.getYear = getYear;\nproto.humanDiff = humanDiff;\nproto.isAfter = isAfter;\nproto.isBefore = isBefore;\nproto.isBetween = isBetween;\nproto.isDST = isDST;\nproto.isLeapYear = isLeapYear;\nproto.isSame = isSame;\nproto.isSameOrAfter = isSameOrAfter;\nproto.isSameOrBefore = isSameOrBefore;\nproto.monthName = monthName;\nproto.setDate = setDate;\nproto.setDay = setDay;\nproto.setDayOfYear = setDayOfYear;\nproto.setHours = setHours;\nproto.setMilliseconds = setMilliseconds;\nproto.setMinutes = setMinutes;\nproto.setMonth = setMonth;\nproto.setQuarter = setQuarter;\nproto.setSeconds = setSeconds;\nproto.setTimestamp = setTimestamp;\nproto.setWeek = setWeek;\nproto.setWeekDay = setWeekDay;\nproto.setWeekDayInMonth = setWeekDayInMonth;\nproto.setWeekOfMonth = setWeekOfMonth;\nproto.setWeekYear = setWeekYear;\nproto.setYear = setYear;\nproto.startOf = startOf;\nproto.sub = sub;\nproto.timeZoneName = timeZoneName;\nproto.toDateString = toDateString;\nproto.toISOString = toISOString;\nproto.toString = toString;\nproto.toTimeString = toTimeString;\nproto.toUTCString = toUTCString;\nproto.weeksInYear = weeksInYear;\n\nexport default DateTime;\n"],"names":["daysInMonth","isLeapYear","daysInYear","_daysInMonth","_daysInYear","_isLeapYear"],"mappings":"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O,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;IACthB,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE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"}
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).DateTime=t()}(this,(function(){"use strict";const e={};function t(t,n){return t in e||(e[t]=n()),e[t]}function n(e){return t(`dateFormatter.${e}`,(t=>r("en",{timeZone:e,hourCycle:"h23",year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric"})))}function r(e,t){return new Intl.DateTimeFormat(e,{timeZone:"UTC",...t})}const s=(new Intl.DateTimeFormat).resolvedOptions(),i={clampDates:!0,defaultLocale:s.locale,defaultTimeZone:s.timeZone},o=/\s(?:UTC|GMT|Z|[\+\-]\d)|\d{4}\-\d{2}\-\d{2}T\d{2}\:\d{2}\:\d{2}\.\d{3}[\+\-]\d{2}\:\d{2}/i,a="eee MMM dd yyyy",u="yyyy-MM-dd'T'HH:mm:ss.SSSxxx",c="eee MMM dd yyyy HH:mm:ss xx (VV)",h="HH:mm:ss xx (VV)",l=/([a-z])\1*|'[^']*'/i,f=[31,28,31,30,31,30,31,31,30,31,30,31],g=/(?:GMT)?([\+\-])(\d{2})(\:?)(\d{2})?/,m=[["year","weekYear"],["era"],["quarter","month","week","dayOfYear"],["weekOfMonth"],["date","weekDay"],["weekDayInMonth"],["hours24","hours12","dayPeriod"],["minutes","seconds","milliseconds"]],d={month:12,week:null,day:7,hour:24,minute:60,second:60};function y(e,t,n,r=!0,s=1){return n>0?(n=Math.floor(n),r&&e<t&&(n+=s)):n<0&&(n=Math.ceil(n),r&&e>t&&(n-=s)),n}function p(e){const t=e.getTimeZone();if("UTC"===t)return 0;const r=n("UTC").format(e),s=n(t).format(e);return(new Date(r)-new Date(s))/6e4}function k(e){return e.getTime()-6e4*e.getTimeZoneOffset()}function w(e,t,n){switch(n=n.toLowerCase()){case"second":case"seconds":return e.setSeconds(e.getSeconds()+t);case"minute":case"minutes":return e.setMinutes(e.getMinutes()+t);case"hour":case"hours":return e.setHours(e.getHours()+t);case"week":case"weeks":return e.setDate(e.getDate()+7*t);case"day":case"days":return e.setDate(e.getDate()+t);case"month":case"months":return e.setMonth(e.getMonth()+t);case"year":case"years":return e.setYear(e.getYear()+t);default:throw new Error("Invalid time unit supplied")}}function T(e,t){let n=0;for(const r of e){if(r!==t[n])throw new Error(`Unmatched character in DateTime string: ${r}`);n++}}function D(e,t){return e.setTime(t+6e4*e.getTimeZoneOffset())}function M(e,n="long"){return t(`periods.${e}.${n}`,(t=>{const n=r(e,{hour:"numeric",hourCycle:"h11"});return new Array(2).fill().map(((e,t)=>n.formatToParts(Date.UTC(2018,0,1,12*t)).find((e=>"dayPeriod"===e.type)).value))}))}function Z(e,n="long",s=!0){return t(`days.${e}.${n}.${s}`,(t=>{if(s){const t=r(e,{weekday:n});return new Array(7).fill().map(((e,n)=>t.format(Date.UTC(2018,0,n))))}const i=r(e,{year:"numeric",month:"numeric",day:"numeric",weekday:n});return new Array(7).fill().map(((e,t)=>i.formatToParts(Date.UTC(2018,0,t)).find((e=>"weekday"===e.type)).value))}))}function Y(e,n="long"){return t(`eras.${e}.${n}`,(t=>{const s=r(e,{era:n});return new Array(2).fill().map(((e,t)=>s.formatToParts(Date.UTC(t-1,0,1)).find((e=>"era"===e.type)).value))}))}function L(e,n="long",s=!0){return t(`months.${e}.${n}.${s}`,(t=>{if(s){const t=r(e,{month:n});return new Array(12).fill().map(((e,n)=>t.format(Date.UTC(2018,n,1))))}const i=r(e,{year:"numeric",month:n,day:"numeric"});return new Array(12).fill().map(((e,t)=>i.formatToParts(Date.UTC(2018,t,1)).find((e=>"month"===e.type)).value))}))}function x(e){return t(`numbers.${e}`,(t=>{const n=r(e,{minute:"numeric"});return new Array(10).fill().map(((e,t)=>n.format(Date.UTC(2018,0,1,0,t))))}))}function U(e){return`(?:${x(e).join("|")})+`}function W(e,t,n="long",r=!0){return Z(e,n,r)[t]}function O(e,t,n="long",r=!0){return L(e,n,r)[t-1]}function C(e,t,n=0){const r=x(e);return`${t}`.padStart(n,0).replace(/\d/g,(e=>r[e]))}function b(e,t=!0,n=!1){const r=Math.abs(e/60|0),s=Math.abs(e%60),i=e>0?"-":"+",o=`${r}`.padStart(2,0),a=s||!n?`${s}`.padStart(2,0):"";return`${i}${o}${t&&a?":":""}${a}`}class H{constructor(e=null,t={}){let n,r=!1;if(null===e)n=Date.now();else if(!isNaN(parseInt(e))&&isFinite(e))n=e;else{if(e!==`${e}`)throw new Error("Invalid date supplied");if(n=Date.parse(e),isNaN(n))throw new Error("Invalid date string supplied");e.match(o)||(n-=6e4*(new Date).getTimezoneOffset()),r=!0}this._date=new Date(n),this._dynamicTz=!1,this.isValid=!0;let s=t.timeZone;s||(s=i.defaultTimeZone),["Z","GMT"].includes(s)&&(s="UTC");const a=s.match(g);if(a?(this._offset=60*a[2]+parseInt(a[4]||0),this._offset&&"+"===a[1]&&(this._offset*=-1),this._offset?this._timeZone=b(this._offset):(this._dynamicTz=!0,this._timeZone="UTC")):(this._dynamicTz=!0,this._timeZone=s),this._dynamicTz&&(this._offset=p(this)),r&&this._offset){const e=this._offset;this._date.setTime(this.getTime()+6e4*this._offset),this._dynamicTz&&(this._offset=p(this),e!==this._offset&&this._date.setTime(this.getTime()-6e4*(e-offset)))}"locale"in t||(t.locale=i.defaultLocale),this._locale=t.locale}getLocale(){return this._locale}getTime(){return this._date.getTime()}getTimeZone(){return this._timeZone}getTimeZoneOffset(){return this._offset}setLocale(e){return new H(this.getTime(),{locale:e,timeZone:this._timeZone})}setTime(e){return new H(e,{locale:this._locale,timeZone:this._timeZone})}setTimeZone(e){return new H(this.getTime(),{locale:this._locale,timeZone:e})}setTimeZoneOffset(e){return new H(this.getTime(),{locale:this._locale,timeZone:b(e)})}valueOf(){return this.getTime()}[Symbol.toPrimitive](e){return"number"===e?this.valueOf():this.toString()}}const I={1:["af","am","ar-il","ar-sa","ar-ye","as","bn","bo","brx","ccp","ceb","chr","dav","dz","ebu","en","fil","gu","guz","haw","he","hi","id","ii","ja","jv","kam","ki","kln","km","kn","ko","kok","ks","lkt","lo","luo","luy","mas","mer","mgh","ml","mr","mt","my","nd","ne","om","or","pa","ps-pk","pt","qu","saq","sd","seh","sn","ta","te","th","ti","ug","ur","xh","yue","zh","zu"],7:["ar","ckb","en-ae","en-sd","fa","kab","lrc","mzn","ps"]},S={4:["ast","bg","br","ca","ce","cs","cy","da","de","dsb","el","en-at","en-be","en-ch","en-de","en-dk","en-fi","en-fj","en-gb","en-gg","en-gi","en-ie","en-im","en-je","en-nl","en-se","es","et","eu","fi","fo","fr","fur","fy","ga","gd","gl","gsw","gv","hsb","hu","is","it","ksh","kw","lb","lt","nb","nds","nl","nn","os-ru","pl","pt-ch","pt-lu","pt-pt","rm","ru","sah","se","sk","smn","sv","tt","wae"]};function $(e){switch(e){case 5:return"narrow";case 4:return"long";default:return"short"}}function _(e){return t(`minimumDays.${e}`,(t=>{let n=1;const r=e.toLowerCase().split("-");for(;1===n&&r.length;){for(const e in S)if({}.hasOwnProperty.call(S,e)&&S[e].includes(r.join("-"))){n=parseInt(e);break}r.pop()}return n}))}function v(e,n){return(7+parseInt(n)-function(e){return t(`weekStartOffset.${e}`,(t=>{let n;const r=e.toLowerCase().split("-");for(;!n&&r.length;){for(const e in I)if({}.hasOwnProperty.call(I,e)&&I[e].includes(r.join("-"))){n=parseInt(e);break}r.pop()}return n?n-2:0}))}(e))%7||7}function A(e,t,n="long",r=!0){return v(e,Z(e,n,r).indexOf(t)||7)}function z(e,t,n="long",r=!0){return L(e,n,r).indexOf(t)+1}function j(e,t){const n=x(e);return parseInt(`${t}`.replace(/./g,(e=>n.indexOf(e))))}var E={G:{key:"era",maxLength:5,regex:(e,t)=>Y(e,$(t)).join("|"),input:(e,t,n)=>function(e,t,n="long"){return Y(e,n).indexOf(t)}(e,t,$(n)),output:(e,t)=>{const n=$(t);return e.era(n)}},y:{key:"year",regex:e=>U(e),input:(e,t,n)=>(t=j(e,t),2!==n||2!==`${t}`.length?t:t>40?1900+t:2e3+t),output:(e,t)=>{let n=e.getYear();return 2===t&&(n=`${n}`.slice(-2)),C(e.getLocale(),Math.abs(n),t)}},Y:{key:"weekYear",regex:e=>U(e),input:(e,t,n)=>(t=j(e,t),2!==n||2!==`${t}`.length?t:t>40?1900+t:2e3+t),output:(e,t)=>{let n=e.getWeekYear();return 2===t&&(n=`${n}`.slice(-2)),C(e.getLocale(),Math.abs(n),t)}},Q:{key:"quarter",regex:e=>U(e),input:(e,t)=>j(e,t),output:(e,t)=>C(e.getLocale(),e.getQuarter(),t)},q:{key:"quarter",regex:e=>U(e),input:(e,t)=>j(e,t),output:(e,t)=>C(e.getLocale(),e.getQuarter(),t)},M:{key:"month",regex:(e,t)=>{switch(t){case 5:case 4:case 3:return L(e,$(t),!1).join("|");default:return U(e)}},input:(e,t,n)=>{switch(n){case 5:return null;case 4:case 3:return z(e,t,$(n),!1);default:return j(e,t)}},output:(e,t)=>{const n=e.getLocale(),r=e.getMonth();switch(t){case 5:case 4:case 3:return O(n,r,$(t),!1);default:return C(n,r,t)}}},L:{key:"month",regex:(e,t)=>{switch(t){case 5:case 4:case 3:return L(e,$(t)).join("|");default:return U(e)}},input:(e,t,n)=>{switch(n){case 5:return null;case 4:case 3:return z(e,t,$(n));default:return j(e,t)}},output:(e,t)=>{const n=e.getLocale(),r=e.getMonth();switch(t){case 5:case 4:case 3:return O(n,r,$(t));default:return C(n,r,t)}}},w:{key:"week",regex:e=>U(e),input:(e,t)=>j(e,t),output:(e,t)=>C(e.getLocale(),e.getWeek(),t)},W:{key:"weekOfMonth",regex:e=>U(e),input:(e,t)=>j(e,t),output:e=>C(e.getLocale(),e.getWeekOfMonth())},d:{key:"date",regex:e=>U(e),input:(e,t)=>j(e,t),output:(e,t)=>C(e.getLocale(),e.getDate(),t)},D:{key:"dayOfYear",regex:e=>U(e),input:(e,t)=>j(e,t),output:(e,t)=>C(e.getLocale(),e.getDayOfYear(),t)},F:{key:"weekDayInMonth",regex:e=>U(e),input:(e,t)=>j(e,t),output:e=>C(e.getLocale(),e.getWeekDayInMonth())},E:{key:"weekDay",regex:(e,t)=>Z(e,$(t),!1).join("|"),input:(e,t,n)=>5===n?null:A(e,t,$(n),!1),output:(e,t)=>{const n=$(t);return W(e.getLocale(),e.getDay(),n,!1)}},e:{key:"weekDay",maxLength:5,regex:(e,t)=>{switch(t){case 5:case 4:case 3:return Z(e,$(t),!1).join("|");default:return U(e)}},input:(e,t,n)=>{switch(n){case 5:return null;case 4:case 3:return A(e,t,$(n),!1);default:return j(e,t)}},output:(e,t)=>{const n=e.getLocale();switch(t){case 5:case 4:case 3:const r=$(t);return W(n,e.getDay(),r,!1);default:return C(n,e.getWeekDay(),t)}}},c:{key:"weekDay",maxLength:5,regex:(e,t)=>{switch(t){case 5:case 4:case 3:return Z(e,$(t)).join("|");default:return U(e)}},input:(e,t,n)=>{switch(n){case 5:return null;case 4:case 3:return A(e,t,$(n));default:return j(e,t)}},output:(e,t)=>{const n=e.getLocale();switch(t){case 5:case 4:case 3:const r=$(t);return W(n,e.getDay(),r);default:return C(n,e.getWeekDay())}}},a:{key:"dayPeriod",regex:(e,t)=>M(e,$(t)).join("|"),input:(e,t,n)=>function(e,t,n="long"){return M(e,n).indexOf(t)}(e,t,$(n)),output:(e,t)=>{const n=$(t);return e.dayPeriod(n)}},h:{key:"hours12",regex:e=>U(e),input:(e,t)=>(12===(t=j(e,t))&&(t=0),t),output:(e,t)=>C(e.getLocale(),e.getHours()%12||12,t)},H:{key:"hours24",regex:e=>U(e),input:(e,t)=>j(e,t),output:(e,t)=>C(e.getLocale(),e.getHours(),t)},K:{key:"hours12",regex:e=>U(e),input:(e,t)=>j(e,t),output:(e,t)=>C(e.getLocale(),e.getHours()%12,t)},k:{key:"hours24",regex:e=>U(e),input:(e,t)=>(24===(t=j(e,t))&&(t=0),t),output:(e,t)=>C(e.getLocale(),e.getHours()||24,t)},m:{key:"minutes",regex:e=>U(e),input:(e,t)=>j(e,t),output:(e,t)=>C(e.getLocale(),e.getMinutes(),t)},s:{key:"seconds",regex:e=>U(e),input:(e,t)=>j(e,t),output:(e,t)=>C(e.getLocale(),e.getSeconds(),t)},S:{key:"milliseconds",regex:e=>U(e),input:e=>0,output:(e,t)=>C(e.getLocale(),`${Math.floor(1e3*e.getMilliseconds())}`.padEnd(t,"0").slice(0,t))},z:{output:(e,t)=>{5===t&&(t=1);const n=$(t);return e.timeZoneName(n)}},Z:{key:"timeZone",regex:(e,t)=>{switch(t){case 5:return"[\\+\\-]\\d{2}\\:\\d{2}|Z";case 4:return"GMT[\\+\\-]\\d{2}\\:\\d{2}|GMT";default:return"[\\+\\-]\\d{4}"}},input:(e,t)=>t,output:(e,t)=>{const n=e.getTimeZoneOffset();let r=!0,s="";switch(t){case 5:if(!n)return"Z";break;case 4:if(s="GMT",!n)return s;break;default:r=!1}return s+b(n,r)}},O:{key:"timeZone",regex:(e,t)=>4===t?"GMT[\\+\\-]\\d{2}\\:\\d{2}|GMT":"GMT[\\+\\-]\\d{2}|GMT",input:(e,t)=>t,output:(e,t)=>{const n=e.getTimeZoneOffset();if(!n)return"GMT";let r=!1;return 4===t||(r=!0),"GMT"+b(n,!0,r)}},V:{key:"timeZone",regex:e=>"([a-zA-Z_/]+)",input:(e,t)=>t,output:e=>e.getTimeZone()},X:{key:"timeZone",regex:(e,t)=>{switch(t){case 5:case 3:return"[\\+\\-]\\d{2}\\:\\d{2}|Z";case 4:case 2:return"[\\+\\-]\\d{4}|Z";default:return"[\\+\\-]\\d{2}(?:\\d{2})?|Z"}},input:(e,t)=>t,output:(e,t)=>{const n=e.getTimeZoneOffset();if(!n)return"Z";let r;switch(t){case 5:case 3:r=!0;break;default:r=!1}return b(n,r,1===t)}},x:{key:"timeZone",regex:(e,t)=>{switch(t){case 5:case 3:return"[\\+\\-]\\d{2}\\:\\d{2}";case 4:case 2:return"[\\+\\-]\\d{4}";default:return"[\\+\\-]\\d{2}(?:\\d{2})?"}},input:(e,t)=>t,output:(e,t)=>{let n;switch(t){case 5:case 3:n=!0;break;default:n=!1}return b(e.getTimeZoneOffset(),n,1===t)}}};function F(e,t,n){return new Array(t-1).fill().reduce(((t,n,r)=>t+G(e,r+1)),n)}function G(e,t){const n=new Date(Date.UTC(e,t-1));return t=n.getUTCMonth(),f[t]+(1==t&&N(n.getUTCFullYear())?1:0)}function P(e){return N(e)?366:365}function N(e){return 29===new Date(e,1,29).getDate()}H.dayOfYear=F,H.daysInMonth=G,H.daysInYear=P,H.fromArray=function(e,t={}){const n=e.slice(0,3),r=e.slice(3);return n.length<3&&n.push(...new Array(3-n.length).fill(1)),r.length<4&&r.push(...new Array(4-r.length).fill(0)),new H(null,t).setTimestamp(0).setYear(...n).setHours(...r)},H.fromDate=function(e,t={}){return new H(e.getTime(),t)},H.fromFormat=function(e,t,n={}){"locale"in n||(n.locale=i.defaultLocale);const r=[];let s;for(;e&&(s=e.match(l));){const i=s[1],o=s.index,a=s[0].length;if(o&&T(e.substring(0,o),t),e=e.substring(o+a),t=t.substring(o),!i){const e=s[0].slice(1,-1);T(e||"'",t),t=t.substring(e.length);continue}if(!(i in E))throw new Error(`Invalid token in DateTime format: ${i}`);const u=E[i].regex(n.locale,a),c=t.match(new RegExp(`^${u}`));if(!c)throw new Error(`Unmatched token in DateTime string: ${i}`);const h=c[0],l=E[i].input(n.locale,h,a);if(null!==l){const e=E[i].key;r.push({key:e,value:l,literal:h,token:i,length:a})}t=t.substring(h.length)}e&&T(e,t),"timeZone"in n||(n.timeZone=i.defaultTimeZone);let o=n.timeZone;for(const{key:e,value:t}of r)"timeZone"===e&&(o=t);let a=this.fromTimestamp(0,{locale:n.locale}).setYear(1).setTimeZone(o);const u=function(){let e=!1,t=!0;return{date:{get:e=>e.getDate(),set:(e,t)=>e.setDate(t)},dayPeriod:{get:e=>e.getHours()<12?0:1,set:(n,r)=>{e=r;let s=r?12:0;return t&&(s+=n.getHours()),n.setHours(s)}},dayOfYear:{get:e=>e.getDayOfYear(),set:(e,t)=>e.setDayOfYear(t)},era:{get:e=>e.getYear()<1?0:1,set:(e,t)=>{const n=t?1:-1;return e.setYear(e.getYear()*n)}},hours12:{get:e=>e.getHours()%12,set:(n,r)=>(e&&(r+=12),t=!0,n.setHours(r))},hours24:{get:e=>e.getHours(),set:(e,n)=>(t=!1,e.setHours(n))},milliseconds:{get:e=>e.getMilliseconds(),set:(e,t)=>e.setMilliseconds(t)},minutes:{get:e=>e.getMinutes(),set:(e,t)=>e.setMinutes(t)},month:{get:e=>e.getMonth(),set:(e,t)=>e.setMonth(t)},quarter:{get:e=>e.getQuarter(),set:(e,t)=>e.setQuarter(t)},seconds:{get:e=>e.getSeconds(),set:(e,t)=>e.setSeconds(t)},week:{get:e=>e.getWeek(),set:(e,t)=>e.setWeek(t)},weekDay:{get:e=>e.getWeekDay(),set:(e,t)=>e.setWeekDay(t)},weekDayInMonth:{get:e=>e.getWeekDayInMonth(),set:(e,t)=>e.setWeekDayInMonth(t)},weekOfMonth:{get:e=>e.getWeekOfMonth(),set:(e,t)=>e.setWeekOfMonth(t)},weekYear:{get:e=>e.getWeekYear(),set:(e,t)=>e.setWeekYear(t)},year:{get:e=>{const t=e.getYear();return Math.abs(t)},set:(e,t)=>e.setYear(t)}}}(),c=[];for(const e of m)for(const t of e)if("era"!==t||r.find((e=>"year"===e.key)))for(const e of r){const{key:n,value:r,literal:s,token:i,length:o}=e;if(n===t){if(5===o&&["M","L","E","e","c"].includes(i)){const e=i.repeat(o);if(a.format(e)===s)continue}a=u[n].set(a,r),c.push(e)}}let h=!0;for(const{key:e,value:t}of c)if(e in u&&u[e].get(a)!==t){h=!1;break}return n.timeZone!==o&&(a=a.setTimeZone(n.timeZone)),a.isValid=h,a},H.fromISOString=function(e,t={}){let n=this.fromFormat(u,e,{locale:"en"});return"timeZone"in t&&(n=n.setTimeZone(t.timeZone)),"locale"in t&&(n=n.setLocale(t.locale)),n},H.fromTimestamp=function(e,t={}){return new H(null,t).setTimestamp(e)},H.getDefaultLocale=function(){return i.defaultLocale},H.getDefaultTimeZone=function(){return i.defaultTimeZone},H.isLeapYear=N,H.now=function(e={}){return new H(null,e)},H.setDateClamping=function(e){i.clampDates=e},H.setDefaultLocale=function(e){i.defaultLocale=e},H.setDefaultTimeZone=function(e){i.defaultTimeZone=e};const q=H.prototype;return q.add=function(e,t){return w(this,e,t)},q.dayName=function(e="long"){return W(this.getLocale(),this.getDay(),e)},q.dayPeriod=function(e="long"){return function(e,t,n="long"){return M(e,n)[t]}(this.getLocale(),this.getHours()<12?0:1,e)},q.daysInMonth=function(){return G(this.getYear(),this.getMonth())},q.daysInYear=function(){return P(this.getYear())},q.diff=function(e,{timeUnit:t,relative:n=!0}={}){if(e||(e=new this.constructor),!t)return this-e;switch(t&&(t=t.toLowerCase()),e=e.setTimeZone(this.getTimeZone()),t){case"year":case"years":const t=this.getYear()-e.getYear();return y(this,e.setYear(this.getYear()),t,!n,-1);case"month":case"months":const r=12*(this.getYear()-e.getYear())+this.getMonth()-e.getMonth();return y(this,e.setYear(this.getYear(),this.getMonth()),r,!n,-1);case"week":case"weeks":const s=(this-e)/6048e5;return y(this,e.setWeekYear(this.getWeekYear(),this.getWeek()),s,n);case"day":case"days":const i=(this-e)/864e5;return y(this,e.setYear(this.getYear(),this.getMonth(),this.getDate()),i,n);case"hour":case"hours":const o=(this-e)/36e5;return y(this,e.setYear(this.getYear(),this.getMonth(),this.getDate()).setHours(this.getHours()),o,n);case"minute":case"minutes":const a=(this-e)/6e4;return y(this,e.setYear(this.getYear(),this.getMonth(),this.getDate()).setHours(this.getHours(),this.getMinutes()),a,n);case"second":case"seconds":const u=(this-e)/1e3;return y(this,e.setYear(this.getYear(),this.getMonth(),this.getDate()).setHours(this.getHours(),this.getMinutes(),this.getSeconds()),u,n);default:throw new Error("Invalid time unit supplied")}},q.endOf=function(e){switch(e=e.toLowerCase()){case"second":return this.setMilliseconds(999);case"minute":return this.setSeconds(59,999);case"hour":return this.setMinutes(59,59,999);case"day":return this.setHours(23,59,59,999);case"week":return this.setWeekDay(7).setHours(23,59,59,999);case"month":return this.setDate(this.daysInMonth()).setHours(23,59,59,999);case"quarter":const e=3*this.getQuarter();return this.setMonth(e,G(this.getYear(),e)).setHours(23,59,59,999);case"year":return this.setMonth(12,31).setHours(23,59,59,999);default:throw new Error("Invalid time unit supplied")}},q.era=function(e="long"){return function(e,t,n="long"){return Y(e,n)[t]}(this.getLocale(),this.getYear()<0?0:1,e)},q.format=function(e){let t,n="";for(;e&&(t=e.match(l));){const r=t[1],s=t.index,i=t[0].length;if(s&&(n+=e.substring(0,s)),e=e.substring(s+i),r){if(!(r in E))throw new Error(`Invalid token in DateTime format: ${r}`);n+=E[r].output(this,i)}else n+=t[0].slice(1,-1)}return n+=e,n},q.getDate=function(){return new Date(k(this)).getUTCDate()},q.getDay=function(){return new Date(k(this)).getUTCDay()},q.getDayOfYear=function(){return F(this.getYear(),this.getMonth(),this.getDate())},q.getHours=function(){return new Date(k(this)).getUTCHours()},q.getMilliseconds=function(){return new Date(k(this)).getUTCMilliseconds()},q.getMinutes=function(){return new Date(k(this)).getUTCMinutes()},q.getMonth=function(){return new Date(k(this)).getUTCMonth()+1},q.getQuarter=function(){return Math.ceil(this.getMonth()/3)},q.getSeconds=function(){return new Date(k(this)).getUTCSeconds()},q.getTimestamp=function(){return Math.floor(this.getTime()/1e3)},q.getWeek=function(){const e=this.startOf("day").setWeekDay(1),t=e.setWeek(1,1);return 1+((e-t)/6048e5|0)},q.getWeekDay=function(){return v(this.getLocale(),this.getDay())},q.getWeekDayInMonth=function(){const e=this.getWeek(),t=this.setDate(1),n=t.getWeek(),r=t.getWeekDay()>this.getWeekDay()?0:1;return n>e?e+r:e-n+r},q.getWeekOfMonth=function(){const e=this.getWeek(),t=this.setDate(1).getWeek();return t>e?e+1:e-t+1},q.getWeekYear=function(){const e=_(this.getLocale());return this.setWeekDay(7-e+1).getYear()},q.getYear=function(){return new Date(k(this)).getUTCFullYear()},q.humanDiff=function(e,{timeUnit:n}={}){const r=(s=this.getLocale(),"RelativeTimeFormat"in Intl?t(`relativeFormatter.${s}`,(e=>new Intl.RelativeTimeFormat(s,{numeric:"auto",style:"long"}))):null);var s;if(!r)throw new Error("RelativeTimeFormat not supported");let i;return e||(e=new this.constructor),n?i=this.diff(e,{timeUnit:n}):[i,n]=function(e,t){let n;for(const r of["year","month","week","day","hour","minute","second"]){const s=e.diff(t,{timeUnit:r});if(n&&d[r]&&Math.abs(s)>=d[r])return n;if(e.diff(t,{timeUnit:r,relative:!1}))return[s,r];n=s?[s,r]:null}return n||[0,"second"]}(this,e),r.format(i,n)},q.isAfter=function(e,{granularity:t}={}){return this.diff(e,{timeUnit:t})>0},q.isBefore=function(e,{granularity:t}={}){return this.diff(e,{timeUnit:t})<0},q.isBetween=function(e,t,{granularity:n}={}){return this.diff(e,{timeUnit:n})>0&&this.diff(t,{timeUnit:n})<0},q.isDST=function(){if(!this._dynamicTz)return!1;const e=this.getYear(),t=H.fromArray([e,1,1],{timeZone:this.getTimeZone()}),n=H.fromArray([e,6,1],{timeZone:this.getTimeZone()});return this.getTimeZoneOffset()<Math.max(t.getTimeZoneOffset(),n.getTimeZoneOffset())},q.isLeapYear=function(){return N(this.getYear())},q.isSame=function(e,{granularity:t}={}){return 0===this.diff(e,{timeUnit:t})},q.isSameOrAfter=function(e,{granularity:t}={}){return this.diff(e,{timeUnit:t})>=0},q.isSameOrBefore=function(e,{granularity:t}={}){return this.diff(e,{timeUnit:t})<=0},q.monthName=function(e="long"){return O(this.getLocale(),this.getMonth(),e)},q.setDate=function(e){return D(this,new Date(k(this)).setUTCDate(e))},q.setDay=function(e){return D(this,new Date(k(this)).setUTCDate(this.getDate()-this.getDay()+parseInt(e)))},q.setDayOfYear=function(e){return D(this,new Date(k(this)).setUTCMonth(0,e))},q.setHours=function(...e){return D(this,new Date(k(this)).setUTCHours(...e))},q.setMilliseconds=function(e){return D(this,new Date(k(this)).setUTCMilliseconds(e))},q.setMinutes=function(...e){return D(this,new Date(k(this)).setUTCMinutes(...e))},q.setMonth=function(e,t=null){return null===t&&(t=this.getDate(),i.clampDates&&(t=Math.min(t,G(this.getYear(),e)))),D(this,new Date(k(this)).setUTCMonth(e-1,t))},q.setQuarter=function(e){return D(this,new Date(k(this)).setUTCMonth(3*e-3))},q.setSeconds=function(...e){return D(this,new Date(k(this)).setUTCSeconds(...e))},q.setTimestamp=function(e){return this.setTime(1e3*e)},q.setWeek=function(e,t=null){null===t&&(t=this.getWeekDay());const n=_(this.getLocale());return this.setYear(this.getWeekYear(),1,n+7*(e-1)).setWeekDay(t)},q.setWeekDay=function(e){return D(this,new Date(k(this)).setUTCDate(this.getDate()-this.getWeekDay()+parseInt(e)))},q.setWeekDayInMonth=function(e){return this.setDate(this.getDate()+7*(e-this.getWeekDayInMonth()))},q.setWeekOfMonth=function(e){return this.setDate(this.getDate()+7*(e-this.getWeekOfMonth()))},q.setWeekYear=function(e,t=null,n=null){const r=_(this.getLocale());return null===t&&(t=Math.min(this.getWeek(),H.fromArray([e,1,r]).weeksInYear())),null===n&&(n=this.getWeekDay()),this.setYear(e,1,r+7*(t-1)).setWeekDay(n)},q.setYear=function(e,t=null,n=null){return null===t&&(t=this.getMonth()),null===n&&(n=this.getDate(),i.clampDates&&(n=Math.min(n,G(this.getYear(),t)))),D(this,new Date(k(this)).setUTCFullYear(e,t-1,n))},q.startOf=function(e){switch(e=e.toLowerCase()){case"second":return this.setMilliseconds(0);case"minute":return this.setSeconds(0,0);case"hour":return this.setMinutes(0,0,0);case"day":return this.setHours(0,0,0,0);case"week":return this.setWeekDay(1).setHours(0,0,0,0);case"month":return this.setDate(1).setHours(0,0,0,0);case"quarter":const e=3*this.getQuarter()-2;return this.setMonth(e,1).setHours(0,0,0,0);case"year":return this.setMonth(1,1).setHours(0,0,0,0);default:throw new Error("Invalid time unit supplied")}},q.sub=function(e,t){return w(this,-e,t)},q.timeZoneName=function(e="long"){return this._dynamicTz?function(e,t,n,s="long"){return r(e,{second:"numeric",timeZone:n,timeZoneName:s}).formatToParts(t).find((e=>"timeZoneName"===e.type)).value}(this.getLocale(),this.getTime(),this.getTimeZone(),e):"GMT"+b(this.getTimeZoneOffset(),!0,"short"===e)},q.toDateString=function(){return this.format(a)},q.toISOString=function(){return this.setLocale("en").setTimeZone("UTC").format(u)},q.toString=function(){return this.format(c)},q.toTimeString=function(){return this.format(h)},q.toUTCString=function(){return this.setLocale("en").setTimeZone("UTC").toString()},q.weeksInYear=function(){const e=_(this.getLocale());return this.setMonth(12,24+e).getWeek()},H}));