Grabbed dndbeyond's source code
``` ~/go/bin/sourcemapper -output ddb -jsurl https://media.dndbeyond.com/character-app/static/js/main.90aa78c5.js ```
This commit is contained in:
Generated
Vendored
+8
@@ -0,0 +1,8 @@
|
||||
export default function addLeadingZeros(number, targetLength) {
|
||||
var sign = number < 0 ? '-' : '';
|
||||
var output = Math.abs(number).toString();
|
||||
while (output.length < targetLength) {
|
||||
output = '0' + output;
|
||||
}
|
||||
return sign + output;
|
||||
}
|
||||
Generated
Vendored
+12
@@ -0,0 +1,12 @@
|
||||
export default function assign(target, object) {
|
||||
if (target == null) {
|
||||
throw new TypeError('assign requires that input parameter not be null or undefined');
|
||||
}
|
||||
for (var property in object) {
|
||||
if (Object.prototype.hasOwnProperty.call(object, property)) {
|
||||
;
|
||||
target[property] = object[property];
|
||||
}
|
||||
}
|
||||
return target;
|
||||
}
|
||||
Generated
Vendored
+4
@@ -0,0 +1,4 @@
|
||||
import assign from "../assign/index.js";
|
||||
export default function cloneObject(object) {
|
||||
return assign({}, object);
|
||||
}
|
||||
Generated
Vendored
+2
@@ -0,0 +1,2 @@
|
||||
import defaultLocale from "../../locale/en-US/index.js";
|
||||
export default defaultLocale;
|
||||
Generated
Vendored
+7
@@ -0,0 +1,7 @@
|
||||
var defaultOptions = {};
|
||||
export function getDefaultOptions() {
|
||||
return defaultOptions;
|
||||
}
|
||||
export function setDefaultOptions(newOptions) {
|
||||
defaultOptions = newOptions;
|
||||
}
|
||||
Generated
Vendored
+80
@@ -0,0 +1,80 @@
|
||||
import addLeadingZeros from "../../addLeadingZeros/index.js";
|
||||
/*
|
||||
* | | Unit | | Unit |
|
||||
* |-----|--------------------------------|-----|--------------------------------|
|
||||
* | a | AM, PM | A* | |
|
||||
* | d | Day of month | D | |
|
||||
* | h | Hour [1-12] | H | Hour [0-23] |
|
||||
* | m | Minute | M | Month |
|
||||
* | s | Second | S | Fraction of second |
|
||||
* | y | Year (abs) | Y | |
|
||||
*
|
||||
* Letters marked by * are not implemented but reserved by Unicode standard.
|
||||
*/
|
||||
var formatters = {
|
||||
// Year
|
||||
y: function y(date, token) {
|
||||
// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens
|
||||
// | Year | y | yy | yyy | yyyy | yyyyy |
|
||||
// |----------|-------|----|-------|-------|-------|
|
||||
// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |
|
||||
// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |
|
||||
// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |
|
||||
// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |
|
||||
// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |
|
||||
|
||||
var signedYear = date.getUTCFullYear();
|
||||
// Returns 1 for 1 BC (which is year 0 in JavaScript)
|
||||
var year = signedYear > 0 ? signedYear : 1 - signedYear;
|
||||
return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);
|
||||
},
|
||||
// Month
|
||||
M: function M(date, token) {
|
||||
var month = date.getUTCMonth();
|
||||
return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);
|
||||
},
|
||||
// Day of the month
|
||||
d: function d(date, token) {
|
||||
return addLeadingZeros(date.getUTCDate(), token.length);
|
||||
},
|
||||
// AM or PM
|
||||
a: function a(date, token) {
|
||||
var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';
|
||||
switch (token) {
|
||||
case 'a':
|
||||
case 'aa':
|
||||
return dayPeriodEnumValue.toUpperCase();
|
||||
case 'aaa':
|
||||
return dayPeriodEnumValue;
|
||||
case 'aaaaa':
|
||||
return dayPeriodEnumValue[0];
|
||||
case 'aaaa':
|
||||
default:
|
||||
return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';
|
||||
}
|
||||
},
|
||||
// Hour [1-12]
|
||||
h: function h(date, token) {
|
||||
return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);
|
||||
},
|
||||
// Hour [0-23]
|
||||
H: function H(date, token) {
|
||||
return addLeadingZeros(date.getUTCHours(), token.length);
|
||||
},
|
||||
// Minute
|
||||
m: function m(date, token) {
|
||||
return addLeadingZeros(date.getUTCMinutes(), token.length);
|
||||
},
|
||||
// Second
|
||||
s: function s(date, token) {
|
||||
return addLeadingZeros(date.getUTCSeconds(), token.length);
|
||||
},
|
||||
// Fraction of second
|
||||
S: function S(date, token) {
|
||||
var numberOfDigits = token.length;
|
||||
var milliseconds = date.getUTCMilliseconds();
|
||||
var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));
|
||||
return addLeadingZeros(fractionalSeconds, token.length);
|
||||
}
|
||||
};
|
||||
export default formatters;
|
||||
Generated
Vendored
+16
@@ -0,0 +1,16 @@
|
||||
/**
|
||||
* Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.
|
||||
* They usually appear for dates that denote time before the timezones were introduced
|
||||
* (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891
|
||||
* and GMT+01:00:00 after that date)
|
||||
*
|
||||
* Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,
|
||||
* which would lead to incorrect calculations.
|
||||
*
|
||||
* This function returns the timezone offset in milliseconds that takes seconds in account.
|
||||
*/
|
||||
export default function getTimezoneOffsetInMilliseconds(date) {
|
||||
var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));
|
||||
utcDate.setUTCFullYear(date.getFullYear());
|
||||
return date.getTime() - utcDate.getTime();
|
||||
}
|
||||
Generated
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
export default function requiredArgs(required, args) {
|
||||
if (args.length < required) {
|
||||
throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');
|
||||
}
|
||||
}
|
||||
Generated
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
var roundingMap = {
|
||||
ceil: Math.ceil,
|
||||
round: Math.round,
|
||||
floor: Math.floor,
|
||||
trunc: function trunc(value) {
|
||||
return value < 0 ? Math.ceil(value) : Math.floor(value);
|
||||
} // Math.trunc is not supported by IE
|
||||
};
|
||||
|
||||
var defaultRoundingMethod = 'trunc';
|
||||
export function getRoundingMethod(method) {
|
||||
return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];
|
||||
}
|
||||
Generated
Vendored
+10
@@ -0,0 +1,10 @@
|
||||
export default function toInteger(dirtyNumber) {
|
||||
if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {
|
||||
return NaN;
|
||||
}
|
||||
var number = Number(dirtyNumber);
|
||||
if (isNaN(number)) {
|
||||
return number;
|
||||
}
|
||||
return number < 0 ? Math.ceil(number) : Math.floor(number);
|
||||
}
|
||||
Generated
Vendored
+27
@@ -0,0 +1,27 @@
|
||||
import toInteger from "../_lib/toInteger/index.js";
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name addMilliseconds
|
||||
* @category Millisecond Helpers
|
||||
* @summary Add the specified number of milliseconds to the given date.
|
||||
*
|
||||
* @description
|
||||
* Add the specified number of milliseconds to the given date.
|
||||
*
|
||||
* @param {Date|Number} date - the date to be changed
|
||||
* @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.
|
||||
* @returns {Date} the new date with the milliseconds added
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Add 750 milliseconds to 10 July 2014 12:45:30.000:
|
||||
* const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)
|
||||
* //=> Thu Jul 10 2014 12:45:30.750
|
||||
*/
|
||||
export default function addMilliseconds(dirtyDate, dirtyAmount) {
|
||||
requiredArgs(2, arguments);
|
||||
var timestamp = toDate(dirtyDate).getTime();
|
||||
var amount = toInteger(dirtyAmount);
|
||||
return new Date(timestamp + amount);
|
||||
}
|
||||
Generated
Vendored
+48
@@ -0,0 +1,48 @@
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name compareAsc
|
||||
* @category Common Helpers
|
||||
* @summary Compare the two dates and return -1, 0 or 1.
|
||||
*
|
||||
* @description
|
||||
* Compare the two dates and return 1 if the first date is after the second,
|
||||
* -1 if the first date is before the second or 0 if dates are equal.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the first date to compare
|
||||
* @param {Date|Number} dateRight - the second date to compare
|
||||
* @returns {Number} the result of the comparison
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Compare 11 February 1987 and 10 July 1989:
|
||||
* const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))
|
||||
* //=> -1
|
||||
*
|
||||
* @example
|
||||
* // Sort the array of dates:
|
||||
* const result = [
|
||||
* new Date(1995, 6, 2),
|
||||
* new Date(1987, 1, 11),
|
||||
* new Date(1989, 6, 10)
|
||||
* ].sort(compareAsc)
|
||||
* //=> [
|
||||
* // Wed Feb 11 1987 00:00:00,
|
||||
* // Mon Jul 10 1989 00:00:00,
|
||||
* // Sun Jul 02 1995 00:00:00
|
||||
* // ]
|
||||
*/
|
||||
export default function compareAsc(dirtyDateLeft, dirtyDateRight) {
|
||||
requiredArgs(2, arguments);
|
||||
var dateLeft = toDate(dirtyDateLeft);
|
||||
var dateRight = toDate(dirtyDateRight);
|
||||
var diff = dateLeft.getTime() - dateRight.getTime();
|
||||
if (diff < 0) {
|
||||
return -1;
|
||||
} else if (diff > 0) {
|
||||
return 1;
|
||||
// Return 0 if diff is 0; return NaN if diff is NaN
|
||||
} else {
|
||||
return diff;
|
||||
}
|
||||
}
|
||||
Generated
Vendored
+183
@@ -0,0 +1,183 @@
|
||||
/**
|
||||
* Days in 1 week.
|
||||
*
|
||||
* @name daysInWeek
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var daysInWeek = 7;
|
||||
|
||||
/**
|
||||
* Days in 1 year
|
||||
* One years equals 365.2425 days according to the formula:
|
||||
*
|
||||
* > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.
|
||||
* > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days
|
||||
*
|
||||
* @name daysInYear
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var daysInYear = 365.2425;
|
||||
|
||||
/**
|
||||
* Maximum allowed time.
|
||||
*
|
||||
* @name maxTime
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;
|
||||
|
||||
/**
|
||||
* Milliseconds in 1 minute
|
||||
*
|
||||
* @name millisecondsInMinute
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var millisecondsInMinute = 60000;
|
||||
|
||||
/**
|
||||
* Milliseconds in 1 hour
|
||||
*
|
||||
* @name millisecondsInHour
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var millisecondsInHour = 3600000;
|
||||
|
||||
/**
|
||||
* Milliseconds in 1 second
|
||||
*
|
||||
* @name millisecondsInSecond
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var millisecondsInSecond = 1000;
|
||||
|
||||
/**
|
||||
* Minimum allowed time.
|
||||
*
|
||||
* @name minTime
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var minTime = -maxTime;
|
||||
|
||||
/**
|
||||
* Minutes in 1 hour
|
||||
*
|
||||
* @name minutesInHour
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var minutesInHour = 60;
|
||||
|
||||
/**
|
||||
* Months in 1 quarter
|
||||
*
|
||||
* @name monthsInQuarter
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var monthsInQuarter = 3;
|
||||
|
||||
/**
|
||||
* Months in 1 year
|
||||
*
|
||||
* @name monthsInYear
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var monthsInYear = 12;
|
||||
|
||||
/**
|
||||
* Quarters in 1 year
|
||||
*
|
||||
* @name quartersInYear
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var quartersInYear = 4;
|
||||
|
||||
/**
|
||||
* Seconds in 1 hour
|
||||
*
|
||||
* @name secondsInHour
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var secondsInHour = 3600;
|
||||
|
||||
/**
|
||||
* Seconds in 1 minute
|
||||
*
|
||||
* @name secondsInMinute
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var secondsInMinute = 60;
|
||||
|
||||
/**
|
||||
* Seconds in 1 day
|
||||
*
|
||||
* @name secondsInDay
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var secondsInDay = secondsInHour * 24;
|
||||
|
||||
/**
|
||||
* Seconds in 1 week
|
||||
*
|
||||
* @name secondsInWeek
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var secondsInWeek = secondsInDay * 7;
|
||||
|
||||
/**
|
||||
* Seconds in 1 year
|
||||
*
|
||||
* @name secondsInYear
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var secondsInYear = secondsInDay * daysInYear;
|
||||
|
||||
/**
|
||||
* Seconds in 1 month
|
||||
*
|
||||
* @name secondsInMonth
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var secondsInMonth = secondsInYear / 12;
|
||||
|
||||
/**
|
||||
* Seconds in 1 quarter
|
||||
*
|
||||
* @name secondsInQuarter
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var secondsInQuarter = secondsInMonth * 3;
|
||||
Generated
Vendored
+32
@@ -0,0 +1,32 @@
|
||||
import { millisecondsInHour } from "../constants/index.js";
|
||||
import differenceInMilliseconds from "../differenceInMilliseconds/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
import { getRoundingMethod } from "../_lib/roundingMethods/index.js";
|
||||
/**
|
||||
* @name differenceInHours
|
||||
* @category Hour Helpers
|
||||
* @summary Get the number of hours between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of hours between the given dates.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @param {Object} [options] - an object with options.
|
||||
* @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)
|
||||
* @returns {Number} the number of hours
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?
|
||||
* const result = differenceInHours(
|
||||
* new Date(2014, 6, 2, 19, 0),
|
||||
* new Date(2014, 6, 2, 6, 50)
|
||||
* )
|
||||
* //=> 12
|
||||
*/
|
||||
export default function differenceInHours(dateLeft, dateRight, options) {
|
||||
requiredArgs(2, arguments);
|
||||
var diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInHour;
|
||||
return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);
|
||||
}
|
||||
Generated
Vendored
+28
@@ -0,0 +1,28 @@
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name differenceInMilliseconds
|
||||
* @category Millisecond Helpers
|
||||
* @summary Get the number of milliseconds between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of milliseconds between the given dates.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @returns {Number} the number of milliseconds
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many milliseconds are between
|
||||
* // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?
|
||||
* const result = differenceInMilliseconds(
|
||||
* new Date(2014, 6, 2, 12, 30, 21, 700),
|
||||
* new Date(2014, 6, 2, 12, 30, 20, 600)
|
||||
* )
|
||||
* //=> 1100
|
||||
*/
|
||||
export default function differenceInMilliseconds(dateLeft, dateRight) {
|
||||
requiredArgs(2, arguments);
|
||||
return toDate(dateLeft).getTime() - toDate(dateRight).getTime();
|
||||
}
|
||||
Generated
Vendored
+40
@@ -0,0 +1,40 @@
|
||||
import { millisecondsInMinute } from "../constants/index.js";
|
||||
import differenceInMilliseconds from "../differenceInMilliseconds/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
import { getRoundingMethod } from "../_lib/roundingMethods/index.js";
|
||||
/**
|
||||
* @name differenceInMinutes
|
||||
* @category Minute Helpers
|
||||
* @summary Get the number of minutes between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the signed number of full (rounded towards 0) minutes between the given dates.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @param {Object} [options] - an object with options.
|
||||
* @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)
|
||||
* @returns {Number} the number of minutes
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?
|
||||
* const result = differenceInMinutes(
|
||||
* new Date(2014, 6, 2, 12, 20, 0),
|
||||
* new Date(2014, 6, 2, 12, 7, 59)
|
||||
* )
|
||||
* //=> 12
|
||||
*
|
||||
* @example
|
||||
* // How many minutes are between 10:01:59 and 10:00:00
|
||||
* const result = differenceInMinutes(
|
||||
* new Date(2000, 0, 1, 10, 0, 0),
|
||||
* new Date(2000, 0, 1, 10, 1, 59)
|
||||
* )
|
||||
* //=> -1
|
||||
*/
|
||||
export default function differenceInMinutes(dateLeft, dateRight, options) {
|
||||
requiredArgs(2, arguments);
|
||||
var diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInMinute;
|
||||
return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);
|
||||
}
|
||||
Generated
Vendored
+32
@@ -0,0 +1,32 @@
|
||||
import differenceInMilliseconds from "../differenceInMilliseconds/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
import { getRoundingMethod } from "../_lib/roundingMethods/index.js";
|
||||
/**
|
||||
* @name differenceInSeconds
|
||||
* @category Second Helpers
|
||||
* @summary Get the number of seconds between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of seconds between the given dates.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @param {Object} [options] - an object with options.
|
||||
* @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)
|
||||
* @returns {Number} the number of seconds
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many seconds are between
|
||||
* // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?
|
||||
* const result = differenceInSeconds(
|
||||
* new Date(2014, 6, 2, 12, 30, 20, 0),
|
||||
* new Date(2014, 6, 2, 12, 30, 7, 999)
|
||||
* )
|
||||
* //=> 12
|
||||
*/
|
||||
export default function differenceInSeconds(dateLeft, dateRight, options) {
|
||||
requiredArgs(2, arguments);
|
||||
var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;
|
||||
return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);
|
||||
}
|
||||
Generated
Vendored
+190
@@ -0,0 +1,190 @@
|
||||
import { getDefaultOptions } from "../_lib/defaultOptions/index.js";
|
||||
import getTimezoneOffsetInMilliseconds from "../_lib/getTimezoneOffsetInMilliseconds/index.js";
|
||||
import compareAsc from "../compareAsc/index.js";
|
||||
import toDate from "../toDate/index.js";
|
||||
import cloneObject from "../_lib/cloneObject/index.js";
|
||||
import assign from "../_lib/assign/index.js";
|
||||
import defaultLocale from "../_lib/defaultLocale/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
var MILLISECONDS_IN_MINUTE = 1000 * 60;
|
||||
var MINUTES_IN_DAY = 60 * 24;
|
||||
var MINUTES_IN_MONTH = MINUTES_IN_DAY * 30;
|
||||
var MINUTES_IN_YEAR = MINUTES_IN_DAY * 365;
|
||||
|
||||
/**
|
||||
* @name formatDistanceStrict
|
||||
* @category Common Helpers
|
||||
* @summary Return the distance between the given dates in words.
|
||||
*
|
||||
* @description
|
||||
* Return the distance between the given dates in words, using strict units.
|
||||
* This is like `formatDistance`, but does not use helpers like 'almost', 'over',
|
||||
* 'less than' and the like.
|
||||
*
|
||||
* | Distance between dates | Result |
|
||||
* |------------------------|---------------------|
|
||||
* | 0 ... 59 secs | [0..59] seconds |
|
||||
* | 1 ... 59 mins | [1..59] minutes |
|
||||
* | 1 ... 23 hrs | [1..23] hours |
|
||||
* | 1 ... 29 days | [1..29] days |
|
||||
* | 1 ... 11 months | [1..11] months |
|
||||
* | 1 ... N years | [1..N] years |
|
||||
*
|
||||
* @param {Date|Number} date - the date
|
||||
* @param {Date|Number} baseDate - the date to compare with
|
||||
* @param {Object} [options] - an object with options.
|
||||
* @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first
|
||||
* @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit
|
||||
* @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units
|
||||
* @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}
|
||||
* @returns {String} the distance in words
|
||||
* @throws {TypeError} 2 arguments required
|
||||
* @throws {RangeError} `date` must not be Invalid Date
|
||||
* @throws {RangeError} `baseDate` must not be Invalid Date
|
||||
* @throws {RangeError} `options.roundingMethod` must be 'floor', 'ceil' or 'round'
|
||||
* @throws {RangeError} `options.unit` must be 'second', 'minute', 'hour', 'day', 'month' or 'year'
|
||||
* @throws {RangeError} `options.locale` must contain `formatDistance` property
|
||||
*
|
||||
* @example
|
||||
* // What is the distance between 2 July 2014 and 1 January 2015?
|
||||
* const result = formatDistanceStrict(new Date(2014, 6, 2), new Date(2015, 0, 2))
|
||||
* //=> '6 months'
|
||||
*
|
||||
* @example
|
||||
* // What is the distance between 1 January 2015 00:00:15
|
||||
* // and 1 January 2015 00:00:00?
|
||||
* const result = formatDistanceStrict(
|
||||
* new Date(2015, 0, 1, 0, 0, 15),
|
||||
* new Date(2015, 0, 1, 0, 0, 0)
|
||||
* )
|
||||
* //=> '15 seconds'
|
||||
*
|
||||
* @example
|
||||
* // What is the distance from 1 January 2016
|
||||
* // to 1 January 2015, with a suffix?
|
||||
* const result = formatDistanceStrict(new Date(2015, 0, 1), new Date(2016, 0, 1), {
|
||||
* addSuffix: true
|
||||
* })
|
||||
* //=> '1 year ago'
|
||||
*
|
||||
* @example
|
||||
* // What is the distance from 1 January 2016
|
||||
* // to 1 January 2015, in minutes?
|
||||
* const result = formatDistanceStrict(new Date(2016, 0, 1), new Date(2015, 0, 1), {
|
||||
* unit: 'minute'
|
||||
* })
|
||||
* //=> '525600 minutes'
|
||||
*
|
||||
* @example
|
||||
* // What is the distance from 1 January 2015
|
||||
* // to 28 January 2015, in months, rounded up?
|
||||
* const result = formatDistanceStrict(new Date(2015, 0, 28), new Date(2015, 0, 1), {
|
||||
* unit: 'month',
|
||||
* roundingMethod: 'ceil'
|
||||
* })
|
||||
* //=> '1 month'
|
||||
*
|
||||
* @example
|
||||
* // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?
|
||||
* import { eoLocale } from 'date-fns/locale/eo'
|
||||
* const result = formatDistanceStrict(new Date(2016, 7, 1), new Date(2015, 0, 1), {
|
||||
* locale: eoLocale
|
||||
* })
|
||||
* //=> '1 jaro'
|
||||
*/
|
||||
|
||||
export default function formatDistanceStrict(dirtyDate, dirtyBaseDate, options) {
|
||||
var _ref, _options$locale, _options$roundingMeth;
|
||||
requiredArgs(2, arguments);
|
||||
var defaultOptions = getDefaultOptions();
|
||||
var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;
|
||||
if (!locale.formatDistance) {
|
||||
throw new RangeError('locale must contain localize.formatDistance property');
|
||||
}
|
||||
var comparison = compareAsc(dirtyDate, dirtyBaseDate);
|
||||
if (isNaN(comparison)) {
|
||||
throw new RangeError('Invalid time value');
|
||||
}
|
||||
var localizeOptions = assign(cloneObject(options), {
|
||||
addSuffix: Boolean(options === null || options === void 0 ? void 0 : options.addSuffix),
|
||||
comparison: comparison
|
||||
});
|
||||
var dateLeft;
|
||||
var dateRight;
|
||||
if (comparison > 0) {
|
||||
dateLeft = toDate(dirtyBaseDate);
|
||||
dateRight = toDate(dirtyDate);
|
||||
} else {
|
||||
dateLeft = toDate(dirtyDate);
|
||||
dateRight = toDate(dirtyBaseDate);
|
||||
}
|
||||
var roundingMethod = String((_options$roundingMeth = options === null || options === void 0 ? void 0 : options.roundingMethod) !== null && _options$roundingMeth !== void 0 ? _options$roundingMeth : 'round');
|
||||
var roundingMethodFn;
|
||||
if (roundingMethod === 'floor') {
|
||||
roundingMethodFn = Math.floor;
|
||||
} else if (roundingMethod === 'ceil') {
|
||||
roundingMethodFn = Math.ceil;
|
||||
} else if (roundingMethod === 'round') {
|
||||
roundingMethodFn = Math.round;
|
||||
} else {
|
||||
throw new RangeError("roundingMethod must be 'floor', 'ceil' or 'round'");
|
||||
}
|
||||
var milliseconds = dateRight.getTime() - dateLeft.getTime();
|
||||
var minutes = milliseconds / MILLISECONDS_IN_MINUTE;
|
||||
var timezoneOffset = getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft);
|
||||
|
||||
// Use DST-normalized difference in minutes for years, months and days;
|
||||
// use regular difference in minutes for hours, minutes and seconds.
|
||||
var dstNormalizedMinutes = (milliseconds - timezoneOffset) / MILLISECONDS_IN_MINUTE;
|
||||
var defaultUnit = options === null || options === void 0 ? void 0 : options.unit;
|
||||
var unit;
|
||||
if (!defaultUnit) {
|
||||
if (minutes < 1) {
|
||||
unit = 'second';
|
||||
} else if (minutes < 60) {
|
||||
unit = 'minute';
|
||||
} else if (minutes < MINUTES_IN_DAY) {
|
||||
unit = 'hour';
|
||||
} else if (dstNormalizedMinutes < MINUTES_IN_MONTH) {
|
||||
unit = 'day';
|
||||
} else if (dstNormalizedMinutes < MINUTES_IN_YEAR) {
|
||||
unit = 'month';
|
||||
} else {
|
||||
unit = 'year';
|
||||
}
|
||||
} else {
|
||||
unit = String(defaultUnit);
|
||||
}
|
||||
|
||||
// 0 up to 60 seconds
|
||||
if (unit === 'second') {
|
||||
var seconds = roundingMethodFn(milliseconds / 1000);
|
||||
return locale.formatDistance('xSeconds', seconds, localizeOptions);
|
||||
|
||||
// 1 up to 60 mins
|
||||
} else if (unit === 'minute') {
|
||||
var roundedMinutes = roundingMethodFn(minutes);
|
||||
return locale.formatDistance('xMinutes', roundedMinutes, localizeOptions);
|
||||
|
||||
// 1 up to 24 hours
|
||||
} else if (unit === 'hour') {
|
||||
var hours = roundingMethodFn(minutes / 60);
|
||||
return locale.formatDistance('xHours', hours, localizeOptions);
|
||||
|
||||
// 1 up to 30 days
|
||||
} else if (unit === 'day') {
|
||||
var days = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_DAY);
|
||||
return locale.formatDistance('xDays', days, localizeOptions);
|
||||
|
||||
// 1 up to 12 months
|
||||
} else if (unit === 'month') {
|
||||
var months = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_MONTH);
|
||||
return months === 12 && defaultUnit !== 'month' ? locale.formatDistance('xYears', 1, localizeOptions) : locale.formatDistance('xMonths', months, localizeOptions);
|
||||
|
||||
// 1 year up to max Date
|
||||
} else if (unit === 'year') {
|
||||
var years = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_YEAR);
|
||||
return locale.formatDistance('xYears', years, localizeOptions);
|
||||
}
|
||||
throw new RangeError("unit must be 'second', 'minute', 'hour', 'day', 'month' or 'year'");
|
||||
}
|
||||
Generated
Vendored
+100
@@ -0,0 +1,100 @@
|
||||
import toDate from "../toDate/index.js";
|
||||
import addLeadingZeros from "../_lib/addLeadingZeros/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name formatISO
|
||||
* @category Common Helpers
|
||||
* @summary Format the date according to the ISO 8601 standard (https://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a003169814.htm).
|
||||
*
|
||||
* @description
|
||||
* Return the formatted date string in ISO 8601 format. Options may be passed to control the parts and notations of the date.
|
||||
*
|
||||
* @param {Date|Number} date - the original date
|
||||
* @param {Object} [options] - an object with options.
|
||||
* @param {'extended'|'basic'} [options.format='extended'] - if 'basic', hide delimiters between date and time values.
|
||||
* @param {'complete'|'date'|'time'} [options.representation='complete'] - format date, time with local time zone, or both.
|
||||
* @returns {String} the formatted date string (in local time zone)
|
||||
* @throws {TypeError} 1 argument required
|
||||
* @throws {RangeError} `date` must not be Invalid Date
|
||||
* @throws {RangeError} `options.format` must be 'extended' or 'basic'
|
||||
* @throws {RangeError} `options.representation` must be 'date', 'time' or 'complete'
|
||||
*
|
||||
* @example
|
||||
* // Represent 18 September 2019 in ISO 8601 format (local time zone is UTC):
|
||||
* const result = formatISO(new Date(2019, 8, 18, 19, 0, 52))
|
||||
* //=> '2019-09-18T19:00:52Z'
|
||||
*
|
||||
* @example
|
||||
* // Represent 18 September 2019 in ISO 8601, short format (local time zone is UTC):
|
||||
* const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })
|
||||
* //=> '20190918T190052'
|
||||
*
|
||||
* @example
|
||||
* // Represent 18 September 2019 in ISO 8601 format, date only:
|
||||
* const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })
|
||||
* //=> '2019-09-18'
|
||||
*
|
||||
* @example
|
||||
* // Represent 18 September 2019 in ISO 8601 format, time only (local time zone is UTC):
|
||||
* const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })
|
||||
* //=> '19:00:52Z'
|
||||
*/
|
||||
export default function formatISO(date, options) {
|
||||
var _options$format, _options$representati;
|
||||
requiredArgs(1, arguments);
|
||||
var originalDate = toDate(date);
|
||||
if (isNaN(originalDate.getTime())) {
|
||||
throw new RangeError('Invalid time value');
|
||||
}
|
||||
var format = String((_options$format = options === null || options === void 0 ? void 0 : options.format) !== null && _options$format !== void 0 ? _options$format : 'extended');
|
||||
var representation = String((_options$representati = options === null || options === void 0 ? void 0 : options.representation) !== null && _options$representati !== void 0 ? _options$representati : 'complete');
|
||||
if (format !== 'extended' && format !== 'basic') {
|
||||
throw new RangeError("format must be 'extended' or 'basic'");
|
||||
}
|
||||
if (representation !== 'date' && representation !== 'time' && representation !== 'complete') {
|
||||
throw new RangeError("representation must be 'date', 'time', or 'complete'");
|
||||
}
|
||||
var result = '';
|
||||
var tzOffset = '';
|
||||
var dateDelimiter = format === 'extended' ? '-' : '';
|
||||
var timeDelimiter = format === 'extended' ? ':' : '';
|
||||
|
||||
// Representation is either 'date' or 'complete'
|
||||
if (representation !== 'time') {
|
||||
var day = addLeadingZeros(originalDate.getDate(), 2);
|
||||
var month = addLeadingZeros(originalDate.getMonth() + 1, 2);
|
||||
var year = addLeadingZeros(originalDate.getFullYear(), 4);
|
||||
|
||||
// yyyyMMdd or yyyy-MM-dd.
|
||||
result = "".concat(year).concat(dateDelimiter).concat(month).concat(dateDelimiter).concat(day);
|
||||
}
|
||||
|
||||
// Representation is either 'time' or 'complete'
|
||||
if (representation !== 'date') {
|
||||
// Add the timezone.
|
||||
var offset = originalDate.getTimezoneOffset();
|
||||
if (offset !== 0) {
|
||||
var absoluteOffset = Math.abs(offset);
|
||||
var hourOffset = addLeadingZeros(Math.floor(absoluteOffset / 60), 2);
|
||||
var minuteOffset = addLeadingZeros(absoluteOffset % 60, 2);
|
||||
// If less than 0, the sign is +, because it is ahead of time.
|
||||
var sign = offset < 0 ? '+' : '-';
|
||||
tzOffset = "".concat(sign).concat(hourOffset, ":").concat(minuteOffset);
|
||||
} else {
|
||||
tzOffset = 'Z';
|
||||
}
|
||||
var hour = addLeadingZeros(originalDate.getHours(), 2);
|
||||
var minute = addLeadingZeros(originalDate.getMinutes(), 2);
|
||||
var second = addLeadingZeros(originalDate.getSeconds(), 2);
|
||||
|
||||
// If there's also date, separate it with time with 'T'
|
||||
var separator = result === '' ? '' : 'T';
|
||||
|
||||
// Creates a time string consisting of hour, minute, and second, separated by delimiters, if defined.
|
||||
var time = [hour, minute, second].join(timeDelimiter);
|
||||
|
||||
// HHmmss or HH:mm:ss.
|
||||
result = "".concat(result).concat(separator).concat(time).concat(tzOffset);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
Generated
Vendored
+38
@@ -0,0 +1,38 @@
|
||||
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name isDate
|
||||
* @category Common Helpers
|
||||
* @summary Is the given value a date?
|
||||
*
|
||||
* @description
|
||||
* Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.
|
||||
*
|
||||
* @param {*} value - the value to check
|
||||
* @returns {boolean} true if the given value is a date
|
||||
* @throws {TypeError} 1 arguments required
|
||||
*
|
||||
* @example
|
||||
* // For a valid date:
|
||||
* const result = isDate(new Date())
|
||||
* //=> true
|
||||
*
|
||||
* @example
|
||||
* // For an invalid date:
|
||||
* const result = isDate(new Date(NaN))
|
||||
* //=> true
|
||||
*
|
||||
* @example
|
||||
* // For some value:
|
||||
* const result = isDate('2014-02-31')
|
||||
* //=> false
|
||||
*
|
||||
* @example
|
||||
* // For an object:
|
||||
* const result = isDate({})
|
||||
* //=> false
|
||||
*/
|
||||
export default function isDate(value) {
|
||||
requiredArgs(1, arguments);
|
||||
return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';
|
||||
}
|
||||
Generated
Vendored
+42
@@ -0,0 +1,42 @@
|
||||
import isDate from "../isDate/index.js";
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name isValid
|
||||
* @category Common Helpers
|
||||
* @summary Is the given date valid?
|
||||
*
|
||||
* @description
|
||||
* Returns false if argument is Invalid Date and true otherwise.
|
||||
* Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}
|
||||
* Invalid Date is a Date, whose time value is NaN.
|
||||
*
|
||||
* Time value of Date: http://es5.github.io/#x15.9.1.1
|
||||
*
|
||||
* @param {*} date - the date to check
|
||||
* @returns {Boolean} the date is valid
|
||||
* @throws {TypeError} 1 argument required
|
||||
*
|
||||
* @example
|
||||
* // For the valid date:
|
||||
* const result = isValid(new Date(2014, 1, 31))
|
||||
* //=> true
|
||||
*
|
||||
* @example
|
||||
* // For the value, convertable into a date:
|
||||
* const result = isValid(1393804800000)
|
||||
* //=> true
|
||||
*
|
||||
* @example
|
||||
* // For the invalid date:
|
||||
* const result = isValid(new Date(''))
|
||||
* //=> false
|
||||
*/
|
||||
export default function isValid(dirtyDate) {
|
||||
requiredArgs(1, arguments);
|
||||
if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {
|
||||
return false;
|
||||
}
|
||||
var date = toDate(dirtyDate);
|
||||
return !isNaN(Number(date));
|
||||
}
|
||||
Generated
Vendored
+118
@@ -0,0 +1,118 @@
|
||||
import toDate from "../toDate/index.js";
|
||||
import formatters from "../_lib/format/lightFormatters/index.js";
|
||||
import getTimezoneOffsetInMilliseconds from "../_lib/getTimezoneOffsetInMilliseconds/index.js";
|
||||
import isValid from "../isValid/index.js";
|
||||
import subMilliseconds from "../subMilliseconds/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js"; // This RegExp consists of three parts separated by `|`:
|
||||
// - (\w)\1* matches any sequences of the same letter
|
||||
// - '' matches two quote characters in a row
|
||||
// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),
|
||||
// except a single quote symbol, which ends the sequence.
|
||||
// Two quote characters do not end the sequence.
|
||||
// If there is no matching single quote
|
||||
// then the sequence will continue until the end of the string.
|
||||
// - . matches any single character unmatched by previous parts of the RegExps
|
||||
var formattingTokensRegExp = /(\w)\1*|''|'(''|[^'])+('|$)|./g;
|
||||
var escapedStringRegExp = /^'([^]*?)'?$/;
|
||||
var doubleQuoteRegExp = /''/g;
|
||||
var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
|
||||
|
||||
/**
|
||||
* @name lightFormat
|
||||
* @category Common Helpers
|
||||
* @summary Format the date.
|
||||
*
|
||||
* @description
|
||||
* Return the formatted date string in the given format. Unlike `format`,
|
||||
* `lightFormat` doesn't use locales and outputs date using the most popular tokens.
|
||||
*
|
||||
* > ⚠️ Please note that the `lightFormat` tokens differ from Moment.js and other libraries.
|
||||
* > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
|
||||
*
|
||||
* The characters wrapped between two single quotes characters (') are escaped.
|
||||
* Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.
|
||||
*
|
||||
* Format of the string is based on Unicode Technical Standard #35:
|
||||
* https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
|
||||
*
|
||||
* Accepted patterns:
|
||||
* | Unit | Pattern | Result examples |
|
||||
* |---------------------------------|---------|-----------------------------------|
|
||||
* | AM, PM | a..aaa | AM, PM |
|
||||
* | | aaaa | a.m., p.m. |
|
||||
* | | aaaaa | a, p |
|
||||
* | Calendar year | y | 44, 1, 1900, 2017 |
|
||||
* | | yy | 44, 01, 00, 17 |
|
||||
* | | yyy | 044, 001, 000, 017 |
|
||||
* | | yyyy | 0044, 0001, 1900, 2017 |
|
||||
* | Month (formatting) | M | 1, 2, ..., 12 |
|
||||
* | | MM | 01, 02, ..., 12 |
|
||||
* | Day of month | d | 1, 2, ..., 31 |
|
||||
* | | dd | 01, 02, ..., 31 |
|
||||
* | Hour [1-12] | h | 1, 2, ..., 11, 12 |
|
||||
* | | hh | 01, 02, ..., 11, 12 |
|
||||
* | Hour [0-23] | H | 0, 1, 2, ..., 23 |
|
||||
* | | HH | 00, 01, 02, ..., 23 |
|
||||
* | Minute | m | 0, 1, ..., 59 |
|
||||
* | | mm | 00, 01, ..., 59 |
|
||||
* | Second | s | 0, 1, ..., 59 |
|
||||
* | | ss | 00, 01, ..., 59 |
|
||||
* | Fraction of second | S | 0, 1, ..., 9 |
|
||||
* | | SS | 00, 01, ..., 99 |
|
||||
* | | SSS | 000, 001, ..., 999 |
|
||||
* | | SSSS | ... |
|
||||
*
|
||||
* @param {Date|Number} date - the original date
|
||||
* @param {String} format - the string of tokens
|
||||
* @returns {String} the formatted date string
|
||||
* @throws {TypeError} 2 arguments required
|
||||
* @throws {RangeError} format string contains an unescaped latin alphabet character
|
||||
*
|
||||
* @example
|
||||
* const result = lightFormat(new Date(2014, 1, 11), 'yyyy-MM-dd')
|
||||
* //=> '2014-02-11'
|
||||
*/
|
||||
|
||||
export default function lightFormat(dirtyDate, formatStr) {
|
||||
requiredArgs(2, arguments);
|
||||
var originalDate = toDate(dirtyDate);
|
||||
if (!isValid(originalDate)) {
|
||||
throw new RangeError('Invalid time value');
|
||||
}
|
||||
|
||||
// Convert the date in system timezone to the same date in UTC+00:00 timezone.
|
||||
// This ensures that when UTC functions will be implemented, locales will be compatible with them.
|
||||
// See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376
|
||||
var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);
|
||||
var utcDate = subMilliseconds(originalDate, timezoneOffset);
|
||||
var tokens = formatStr.match(formattingTokensRegExp);
|
||||
|
||||
// The only case when formattingTokensRegExp doesn't match the string is when it's empty
|
||||
if (!tokens) return '';
|
||||
var result = tokens.map(function (substring) {
|
||||
// Replace two single quote characters with one single quote character
|
||||
if (substring === "''") {
|
||||
return "'";
|
||||
}
|
||||
var firstCharacter = substring[0];
|
||||
if (firstCharacter === "'") {
|
||||
return cleanEscapedString(substring);
|
||||
}
|
||||
var formatter = formatters[firstCharacter];
|
||||
if (formatter) {
|
||||
return formatter(utcDate, substring);
|
||||
}
|
||||
if (firstCharacter.match(unescapedLatinCharacterRegExp)) {
|
||||
throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');
|
||||
}
|
||||
return substring;
|
||||
}).join('');
|
||||
return result;
|
||||
}
|
||||
function cleanEscapedString(input) {
|
||||
var matches = input.match(escapedStringRegExp);
|
||||
if (!matches) {
|
||||
return input;
|
||||
}
|
||||
return matches[1].replace(doubleQuoteRegExp, "'");
|
||||
}
|
||||
Generated
Vendored
+9
@@ -0,0 +1,9 @@
|
||||
export default function buildFormatLongFn(args) {
|
||||
return function () {
|
||||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
// TODO: Remove String()
|
||||
var width = options.width ? String(options.width) : args.defaultWidth;
|
||||
var format = args.formats[width] || args.formats[args.defaultWidth];
|
||||
return format;
|
||||
};
|
||||
}
|
||||
Generated
Vendored
+18
@@ -0,0 +1,18 @@
|
||||
export default function buildLocalizeFn(args) {
|
||||
return function (dirtyIndex, options) {
|
||||
var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';
|
||||
var valuesArray;
|
||||
if (context === 'formatting' && args.formattingValues) {
|
||||
var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
|
||||
var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;
|
||||
valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
|
||||
} else {
|
||||
var _defaultWidth = args.defaultWidth;
|
||||
var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;
|
||||
valuesArray = args.values[_width] || args.values[_defaultWidth];
|
||||
}
|
||||
var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;
|
||||
// @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!
|
||||
return valuesArray[index];
|
||||
};
|
||||
}
|
||||
Generated
Vendored
+42
@@ -0,0 +1,42 @@
|
||||
export default function buildMatchFn(args) {
|
||||
return function (string) {
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
var width = options.width;
|
||||
var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];
|
||||
var matchResult = string.match(matchPattern);
|
||||
if (!matchResult) {
|
||||
return null;
|
||||
}
|
||||
var matchedString = matchResult[0];
|
||||
var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];
|
||||
var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {
|
||||
return pattern.test(matchedString);
|
||||
}) : findKey(parsePatterns, function (pattern) {
|
||||
return pattern.test(matchedString);
|
||||
});
|
||||
var value;
|
||||
value = args.valueCallback ? args.valueCallback(key) : key;
|
||||
value = options.valueCallback ? options.valueCallback(value) : value;
|
||||
var rest = string.slice(matchedString.length);
|
||||
return {
|
||||
value: value,
|
||||
rest: rest
|
||||
};
|
||||
};
|
||||
}
|
||||
function findKey(object, predicate) {
|
||||
for (var key in object) {
|
||||
if (object.hasOwnProperty(key) && predicate(object[key])) {
|
||||
return key;
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
function findIndex(array, predicate) {
|
||||
for (var key = 0; key < array.length; key++) {
|
||||
if (predicate(array[key])) {
|
||||
return key;
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
Generated
Vendored
+17
@@ -0,0 +1,17 @@
|
||||
export default function buildMatchPatternFn(args) {
|
||||
return function (string) {
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
var matchResult = string.match(args.matchPattern);
|
||||
if (!matchResult) return null;
|
||||
var matchedString = matchResult[0];
|
||||
var parseResult = string.match(args.parsePattern);
|
||||
if (!parseResult) return null;
|
||||
var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];
|
||||
value = options.valueCallback ? options.valueCallback(value) : value;
|
||||
var rest = string.slice(matchedString.length);
|
||||
return {
|
||||
value: value,
|
||||
rest: rest
|
||||
};
|
||||
};
|
||||
}
|
||||
Generated
Vendored
+83
@@ -0,0 +1,83 @@
|
||||
var formatDistanceLocale = {
|
||||
lessThanXSeconds: {
|
||||
one: 'less than a second',
|
||||
other: 'less than {{count}} seconds'
|
||||
},
|
||||
xSeconds: {
|
||||
one: '1 second',
|
||||
other: '{{count}} seconds'
|
||||
},
|
||||
halfAMinute: 'half a minute',
|
||||
lessThanXMinutes: {
|
||||
one: 'less than a minute',
|
||||
other: 'less than {{count}} minutes'
|
||||
},
|
||||
xMinutes: {
|
||||
one: '1 minute',
|
||||
other: '{{count}} minutes'
|
||||
},
|
||||
aboutXHours: {
|
||||
one: 'about 1 hour',
|
||||
other: 'about {{count}} hours'
|
||||
},
|
||||
xHours: {
|
||||
one: '1 hour',
|
||||
other: '{{count}} hours'
|
||||
},
|
||||
xDays: {
|
||||
one: '1 day',
|
||||
other: '{{count}} days'
|
||||
},
|
||||
aboutXWeeks: {
|
||||
one: 'about 1 week',
|
||||
other: 'about {{count}} weeks'
|
||||
},
|
||||
xWeeks: {
|
||||
one: '1 week',
|
||||
other: '{{count}} weeks'
|
||||
},
|
||||
aboutXMonths: {
|
||||
one: 'about 1 month',
|
||||
other: 'about {{count}} months'
|
||||
},
|
||||
xMonths: {
|
||||
one: '1 month',
|
||||
other: '{{count}} months'
|
||||
},
|
||||
aboutXYears: {
|
||||
one: 'about 1 year',
|
||||
other: 'about {{count}} years'
|
||||
},
|
||||
xYears: {
|
||||
one: '1 year',
|
||||
other: '{{count}} years'
|
||||
},
|
||||
overXYears: {
|
||||
one: 'over 1 year',
|
||||
other: 'over {{count}} years'
|
||||
},
|
||||
almostXYears: {
|
||||
one: 'almost 1 year',
|
||||
other: 'almost {{count}} years'
|
||||
}
|
||||
};
|
||||
var formatDistance = function formatDistance(token, count, options) {
|
||||
var result;
|
||||
var tokenValue = formatDistanceLocale[token];
|
||||
if (typeof tokenValue === 'string') {
|
||||
result = tokenValue;
|
||||
} else if (count === 1) {
|
||||
result = tokenValue.one;
|
||||
} else {
|
||||
result = tokenValue.other.replace('{{count}}', count.toString());
|
||||
}
|
||||
if (options !== null && options !== void 0 && options.addSuffix) {
|
||||
if (options.comparison && options.comparison > 0) {
|
||||
return 'in ' + result;
|
||||
} else {
|
||||
return result + ' ago';
|
||||
}
|
||||
}
|
||||
return result;
|
||||
};
|
||||
export default formatDistance;
|
||||
Generated
Vendored
+34
@@ -0,0 +1,34 @@
|
||||
import buildFormatLongFn from "../../../_lib/buildFormatLongFn/index.js";
|
||||
var dateFormats = {
|
||||
full: 'EEEE, MMMM do, y',
|
||||
long: 'MMMM do, y',
|
||||
medium: 'MMM d, y',
|
||||
short: 'MM/dd/yyyy'
|
||||
};
|
||||
var timeFormats = {
|
||||
full: 'h:mm:ss a zzzz',
|
||||
long: 'h:mm:ss a z',
|
||||
medium: 'h:mm:ss a',
|
||||
short: 'h:mm a'
|
||||
};
|
||||
var dateTimeFormats = {
|
||||
full: "{{date}} 'at' {{time}}",
|
||||
long: "{{date}} 'at' {{time}}",
|
||||
medium: '{{date}}, {{time}}',
|
||||
short: '{{date}}, {{time}}'
|
||||
};
|
||||
var formatLong = {
|
||||
date: buildFormatLongFn({
|
||||
formats: dateFormats,
|
||||
defaultWidth: 'full'
|
||||
}),
|
||||
time: buildFormatLongFn({
|
||||
formats: timeFormats,
|
||||
defaultWidth: 'full'
|
||||
}),
|
||||
dateTime: buildFormatLongFn({
|
||||
formats: dateTimeFormats,
|
||||
defaultWidth: 'full'
|
||||
})
|
||||
};
|
||||
export default formatLong;
|
||||
Generated
Vendored
+12
@@ -0,0 +1,12 @@
|
||||
var formatRelativeLocale = {
|
||||
lastWeek: "'last' eeee 'at' p",
|
||||
yesterday: "'yesterday at' p",
|
||||
today: "'today at' p",
|
||||
tomorrow: "'tomorrow at' p",
|
||||
nextWeek: "eeee 'at' p",
|
||||
other: 'P'
|
||||
};
|
||||
var formatRelative = function formatRelative(token, _date, _baseDate, _options) {
|
||||
return formatRelativeLocale[token];
|
||||
};
|
||||
export default formatRelative;
|
||||
Generated
Vendored
+143
@@ -0,0 +1,143 @@
|
||||
import buildLocalizeFn from "../../../_lib/buildLocalizeFn/index.js";
|
||||
var eraValues = {
|
||||
narrow: ['B', 'A'],
|
||||
abbreviated: ['BC', 'AD'],
|
||||
wide: ['Before Christ', 'Anno Domini']
|
||||
};
|
||||
var quarterValues = {
|
||||
narrow: ['1', '2', '3', '4'],
|
||||
abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],
|
||||
wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']
|
||||
};
|
||||
|
||||
// Note: in English, the names of days of the week and months are capitalized.
|
||||
// If you are making a new locale based on this one, check if the same is true for the language you're working on.
|
||||
// Generally, formatted dates should look like they are in the middle of a sentence,
|
||||
// e.g. in Spanish language the weekdays and months should be in the lowercase.
|
||||
var monthValues = {
|
||||
narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],
|
||||
abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
||||
wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
|
||||
};
|
||||
var dayValues = {
|
||||
narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
|
||||
short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
|
||||
abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
||||
wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
|
||||
};
|
||||
var dayPeriodValues = {
|
||||
narrow: {
|
||||
am: 'a',
|
||||
pm: 'p',
|
||||
midnight: 'mi',
|
||||
noon: 'n',
|
||||
morning: 'morning',
|
||||
afternoon: 'afternoon',
|
||||
evening: 'evening',
|
||||
night: 'night'
|
||||
},
|
||||
abbreviated: {
|
||||
am: 'AM',
|
||||
pm: 'PM',
|
||||
midnight: 'midnight',
|
||||
noon: 'noon',
|
||||
morning: 'morning',
|
||||
afternoon: 'afternoon',
|
||||
evening: 'evening',
|
||||
night: 'night'
|
||||
},
|
||||
wide: {
|
||||
am: 'a.m.',
|
||||
pm: 'p.m.',
|
||||
midnight: 'midnight',
|
||||
noon: 'noon',
|
||||
morning: 'morning',
|
||||
afternoon: 'afternoon',
|
||||
evening: 'evening',
|
||||
night: 'night'
|
||||
}
|
||||
};
|
||||
var formattingDayPeriodValues = {
|
||||
narrow: {
|
||||
am: 'a',
|
||||
pm: 'p',
|
||||
midnight: 'mi',
|
||||
noon: 'n',
|
||||
morning: 'in the morning',
|
||||
afternoon: 'in the afternoon',
|
||||
evening: 'in the evening',
|
||||
night: 'at night'
|
||||
},
|
||||
abbreviated: {
|
||||
am: 'AM',
|
||||
pm: 'PM',
|
||||
midnight: 'midnight',
|
||||
noon: 'noon',
|
||||
morning: 'in the morning',
|
||||
afternoon: 'in the afternoon',
|
||||
evening: 'in the evening',
|
||||
night: 'at night'
|
||||
},
|
||||
wide: {
|
||||
am: 'a.m.',
|
||||
pm: 'p.m.',
|
||||
midnight: 'midnight',
|
||||
noon: 'noon',
|
||||
morning: 'in the morning',
|
||||
afternoon: 'in the afternoon',
|
||||
evening: 'in the evening',
|
||||
night: 'at night'
|
||||
}
|
||||
};
|
||||
var ordinalNumber = function ordinalNumber(dirtyNumber, _options) {
|
||||
var number = Number(dirtyNumber);
|
||||
|
||||
// If ordinal numbers depend on context, for example,
|
||||
// if they are different for different grammatical genders,
|
||||
// use `options.unit`.
|
||||
//
|
||||
// `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',
|
||||
// 'day', 'hour', 'minute', 'second'.
|
||||
|
||||
var rem100 = number % 100;
|
||||
if (rem100 > 20 || rem100 < 10) {
|
||||
switch (rem100 % 10) {
|
||||
case 1:
|
||||
return number + 'st';
|
||||
case 2:
|
||||
return number + 'nd';
|
||||
case 3:
|
||||
return number + 'rd';
|
||||
}
|
||||
}
|
||||
return number + 'th';
|
||||
};
|
||||
var localize = {
|
||||
ordinalNumber: ordinalNumber,
|
||||
era: buildLocalizeFn({
|
||||
values: eraValues,
|
||||
defaultWidth: 'wide'
|
||||
}),
|
||||
quarter: buildLocalizeFn({
|
||||
values: quarterValues,
|
||||
defaultWidth: 'wide',
|
||||
argumentCallback: function argumentCallback(quarter) {
|
||||
return quarter - 1;
|
||||
}
|
||||
}),
|
||||
month: buildLocalizeFn({
|
||||
values: monthValues,
|
||||
defaultWidth: 'wide'
|
||||
}),
|
||||
day: buildLocalizeFn({
|
||||
values: dayValues,
|
||||
defaultWidth: 'wide'
|
||||
}),
|
||||
dayPeriod: buildLocalizeFn({
|
||||
values: dayPeriodValues,
|
||||
defaultWidth: 'wide',
|
||||
formattingValues: formattingDayPeriodValues,
|
||||
defaultFormattingWidth: 'wide'
|
||||
})
|
||||
};
|
||||
export default localize;
|
||||
Generated
Vendored
+98
@@ -0,0 +1,98 @@
|
||||
import buildMatchFn from "../../../_lib/buildMatchFn/index.js";
|
||||
import buildMatchPatternFn from "../../../_lib/buildMatchPatternFn/index.js";
|
||||
var matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i;
|
||||
var parseOrdinalNumberPattern = /\d+/i;
|
||||
var matchEraPatterns = {
|
||||
narrow: /^(b|a)/i,
|
||||
abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,
|
||||
wide: /^(before christ|before common era|anno domini|common era)/i
|
||||
};
|
||||
var parseEraPatterns = {
|
||||
any: [/^b/i, /^(a|c)/i]
|
||||
};
|
||||
var matchQuarterPatterns = {
|
||||
narrow: /^[1234]/i,
|
||||
abbreviated: /^q[1234]/i,
|
||||
wide: /^[1234](th|st|nd|rd)? quarter/i
|
||||
};
|
||||
var parseQuarterPatterns = {
|
||||
any: [/1/i, /2/i, /3/i, /4/i]
|
||||
};
|
||||
var matchMonthPatterns = {
|
||||
narrow: /^[jfmasond]/i,
|
||||
abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,
|
||||
wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i
|
||||
};
|
||||
var parseMonthPatterns = {
|
||||
narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],
|
||||
any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]
|
||||
};
|
||||
var matchDayPatterns = {
|
||||
narrow: /^[smtwf]/i,
|
||||
short: /^(su|mo|tu|we|th|fr|sa)/i,
|
||||
abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,
|
||||
wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i
|
||||
};
|
||||
var parseDayPatterns = {
|
||||
narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],
|
||||
any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]
|
||||
};
|
||||
var matchDayPeriodPatterns = {
|
||||
narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,
|
||||
any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i
|
||||
};
|
||||
var parseDayPeriodPatterns = {
|
||||
any: {
|
||||
am: /^a/i,
|
||||
pm: /^p/i,
|
||||
midnight: /^mi/i,
|
||||
noon: /^no/i,
|
||||
morning: /morning/i,
|
||||
afternoon: /afternoon/i,
|
||||
evening: /evening/i,
|
||||
night: /night/i
|
||||
}
|
||||
};
|
||||
var match = {
|
||||
ordinalNumber: buildMatchPatternFn({
|
||||
matchPattern: matchOrdinalNumberPattern,
|
||||
parsePattern: parseOrdinalNumberPattern,
|
||||
valueCallback: function valueCallback(value) {
|
||||
return parseInt(value, 10);
|
||||
}
|
||||
}),
|
||||
era: buildMatchFn({
|
||||
matchPatterns: matchEraPatterns,
|
||||
defaultMatchWidth: 'wide',
|
||||
parsePatterns: parseEraPatterns,
|
||||
defaultParseWidth: 'any'
|
||||
}),
|
||||
quarter: buildMatchFn({
|
||||
matchPatterns: matchQuarterPatterns,
|
||||
defaultMatchWidth: 'wide',
|
||||
parsePatterns: parseQuarterPatterns,
|
||||
defaultParseWidth: 'any',
|
||||
valueCallback: function valueCallback(index) {
|
||||
return index + 1;
|
||||
}
|
||||
}),
|
||||
month: buildMatchFn({
|
||||
matchPatterns: matchMonthPatterns,
|
||||
defaultMatchWidth: 'wide',
|
||||
parsePatterns: parseMonthPatterns,
|
||||
defaultParseWidth: 'any'
|
||||
}),
|
||||
day: buildMatchFn({
|
||||
matchPatterns: matchDayPatterns,
|
||||
defaultMatchWidth: 'wide',
|
||||
parsePatterns: parseDayPatterns,
|
||||
defaultParseWidth: 'any'
|
||||
}),
|
||||
dayPeriod: buildMatchFn({
|
||||
matchPatterns: matchDayPeriodPatterns,
|
||||
defaultMatchWidth: 'any',
|
||||
parsePatterns: parseDayPeriodPatterns,
|
||||
defaultParseWidth: 'any'
|
||||
})
|
||||
};
|
||||
export default match;
|
||||
ddb_main/node_modules/@dndbeyond/game-log-components/node_modules/date-fns/esm/locale/en-US/index.js
Generated
Vendored
+27
@@ -0,0 +1,27 @@
|
||||
import formatDistance from "./_lib/formatDistance/index.js";
|
||||
import formatLong from "./_lib/formatLong/index.js";
|
||||
import formatRelative from "./_lib/formatRelative/index.js";
|
||||
import localize from "./_lib/localize/index.js";
|
||||
import match from "./_lib/match/index.js";
|
||||
/**
|
||||
* @type {Locale}
|
||||
* @category Locales
|
||||
* @summary English locale (United States).
|
||||
* @language English
|
||||
* @iso-639-2 eng
|
||||
* @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}
|
||||
* @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}
|
||||
*/
|
||||
var locale = {
|
||||
code: 'en-US',
|
||||
formatDistance: formatDistance,
|
||||
formatLong: formatLong,
|
||||
formatRelative: formatRelative,
|
||||
localize: localize,
|
||||
match: match,
|
||||
options: {
|
||||
weekStartsOn: 0 /* Sunday */,
|
||||
firstWeekContainsDate: 1
|
||||
}
|
||||
};
|
||||
export default locale;
|
||||
Generated
Vendored
+26
@@ -0,0 +1,26 @@
|
||||
import addMilliseconds from "../addMilliseconds/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
import toInteger from "../_lib/toInteger/index.js";
|
||||
/**
|
||||
* @name subMilliseconds
|
||||
* @category Millisecond Helpers
|
||||
* @summary Subtract the specified number of milliseconds from the given date.
|
||||
*
|
||||
* @description
|
||||
* Subtract the specified number of milliseconds from the given date.
|
||||
*
|
||||
* @param {Date|Number} date - the date to be changed
|
||||
* @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.
|
||||
* @returns {Date} the new date with the milliseconds subtracted
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:
|
||||
* const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)
|
||||
* //=> Thu Jul 10 2014 12:45:29.250
|
||||
*/
|
||||
export default function subMilliseconds(dirtyDate, dirtyAmount) {
|
||||
requiredArgs(2, arguments);
|
||||
var amount = toInteger(dirtyAmount);
|
||||
return addMilliseconds(dirtyDate, -amount);
|
||||
}
|
||||
Generated
Vendored
+52
@@ -0,0 +1,52 @@
|
||||
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name toDate
|
||||
* @category Common Helpers
|
||||
* @summary Convert the given argument to an instance of Date.
|
||||
*
|
||||
* @description
|
||||
* Convert the given argument to an instance of Date.
|
||||
*
|
||||
* If the argument is an instance of Date, the function returns its clone.
|
||||
*
|
||||
* If the argument is a number, it is treated as a timestamp.
|
||||
*
|
||||
* If the argument is none of the above, the function returns Invalid Date.
|
||||
*
|
||||
* **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.
|
||||
*
|
||||
* @param {Date|Number} argument - the value to convert
|
||||
* @returns {Date} the parsed date in the local time zone
|
||||
* @throws {TypeError} 1 argument required
|
||||
*
|
||||
* @example
|
||||
* // Clone the date:
|
||||
* const result = toDate(new Date(2014, 1, 11, 11, 30, 30))
|
||||
* //=> Tue Feb 11 2014 11:30:30
|
||||
*
|
||||
* @example
|
||||
* // Convert the timestamp to date:
|
||||
* const result = toDate(1392098430000)
|
||||
* //=> Tue Feb 11 2014 11:30:30
|
||||
*/
|
||||
export default function toDate(argument) {
|
||||
requiredArgs(1, arguments);
|
||||
var argStr = Object.prototype.toString.call(argument);
|
||||
|
||||
// Clone the date
|
||||
if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {
|
||||
// Prevent the date to lose the milliseconds when passed to new Date() in IE10
|
||||
return new Date(argument.getTime());
|
||||
} else if (typeof argument === 'number' || argStr === '[object Number]') {
|
||||
return new Date(argument);
|
||||
} else {
|
||||
if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments");
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(new Error().stack);
|
||||
}
|
||||
return new Date(NaN);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user