dev
This commit is contained in:
18
node_modules/moment/src/lib/duration/abs.js
generated
vendored
Normal file
18
node_modules/moment/src/lib/duration/abs.js
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
var mathAbs = Math.abs;
|
||||
|
||||
export function abs() {
|
||||
var data = this._data;
|
||||
|
||||
this._milliseconds = mathAbs(this._milliseconds);
|
||||
this._days = mathAbs(this._days);
|
||||
this._months = mathAbs(this._months);
|
||||
|
||||
data.milliseconds = mathAbs(data.milliseconds);
|
||||
data.seconds = mathAbs(data.seconds);
|
||||
data.minutes = mathAbs(data.minutes);
|
||||
data.hours = mathAbs(data.hours);
|
||||
data.months = mathAbs(data.months);
|
||||
data.years = mathAbs(data.years);
|
||||
|
||||
return this;
|
||||
}
|
||||
21
node_modules/moment/src/lib/duration/add-subtract.js
generated
vendored
Normal file
21
node_modules/moment/src/lib/duration/add-subtract.js
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
import { createDuration } from './create';
|
||||
|
||||
function addSubtract(duration, input, value, direction) {
|
||||
var other = createDuration(input, value);
|
||||
|
||||
duration._milliseconds += direction * other._milliseconds;
|
||||
duration._days += direction * other._days;
|
||||
duration._months += direction * other._months;
|
||||
|
||||
return duration._bubble();
|
||||
}
|
||||
|
||||
// supports only 2.0-style add(1, 's') or add(duration)
|
||||
export function add(input, value) {
|
||||
return addSubtract(this, input, value, 1);
|
||||
}
|
||||
|
||||
// supports only 2.0-style subtract(1, 's') or subtract(duration)
|
||||
export function subtract(input, value) {
|
||||
return addSubtract(this, input, value, -1);
|
||||
}
|
||||
76
node_modules/moment/src/lib/duration/as.js
generated
vendored
Normal file
76
node_modules/moment/src/lib/duration/as.js
generated
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
import { daysToMonths, monthsToDays } from './bubble';
|
||||
import { normalizeUnits } from '../units/aliases';
|
||||
|
||||
export function as(units) {
|
||||
if (!this.isValid()) {
|
||||
return NaN;
|
||||
}
|
||||
var days,
|
||||
months,
|
||||
milliseconds = this._milliseconds;
|
||||
|
||||
units = normalizeUnits(units);
|
||||
|
||||
if (units === 'month' || units === 'quarter' || units === 'year') {
|
||||
days = this._days + milliseconds / 864e5;
|
||||
months = this._months + daysToMonths(days);
|
||||
switch (units) {
|
||||
case 'month':
|
||||
return months;
|
||||
case 'quarter':
|
||||
return months / 3;
|
||||
case 'year':
|
||||
return months / 12;
|
||||
}
|
||||
} else {
|
||||
// handle milliseconds separately because of floating point math errors (issue #1867)
|
||||
days = this._days + Math.round(monthsToDays(this._months));
|
||||
switch (units) {
|
||||
case 'week':
|
||||
return days / 7 + milliseconds / 6048e5;
|
||||
case 'day':
|
||||
return days + milliseconds / 864e5;
|
||||
case 'hour':
|
||||
return days * 24 + milliseconds / 36e5;
|
||||
case 'minute':
|
||||
return days * 1440 + milliseconds / 6e4;
|
||||
case 'second':
|
||||
return days * 86400 + milliseconds / 1000;
|
||||
// Math.floor prevents floating point math errors here
|
||||
case 'millisecond':
|
||||
return Math.floor(days * 864e5) + milliseconds;
|
||||
default:
|
||||
throw new Error('Unknown unit ' + units);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function makeAs(alias) {
|
||||
return function () {
|
||||
return this.as(alias);
|
||||
};
|
||||
}
|
||||
|
||||
var asMilliseconds = makeAs('ms'),
|
||||
asSeconds = makeAs('s'),
|
||||
asMinutes = makeAs('m'),
|
||||
asHours = makeAs('h'),
|
||||
asDays = makeAs('d'),
|
||||
asWeeks = makeAs('w'),
|
||||
asMonths = makeAs('M'),
|
||||
asQuarters = makeAs('Q'),
|
||||
asYears = makeAs('y'),
|
||||
valueOf = asMilliseconds;
|
||||
|
||||
export {
|
||||
asMilliseconds,
|
||||
asSeconds,
|
||||
asMinutes,
|
||||
asHours,
|
||||
asDays,
|
||||
asWeeks,
|
||||
asMonths,
|
||||
asQuarters,
|
||||
asYears,
|
||||
valueOf,
|
||||
};
|
||||
68
node_modules/moment/src/lib/duration/bubble.js
generated
vendored
Normal file
68
node_modules/moment/src/lib/duration/bubble.js
generated
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
import absFloor from '../utils/abs-floor';
|
||||
import absCeil from '../utils/abs-ceil';
|
||||
|
||||
export function bubble() {
|
||||
var milliseconds = this._milliseconds,
|
||||
days = this._days,
|
||||
months = this._months,
|
||||
data = this._data,
|
||||
seconds,
|
||||
minutes,
|
||||
hours,
|
||||
years,
|
||||
monthsFromDays;
|
||||
|
||||
// if we have a mix of positive and negative values, bubble down first
|
||||
// check: https://github.com/moment/moment/issues/2166
|
||||
if (
|
||||
!(
|
||||
(milliseconds >= 0 && days >= 0 && months >= 0) ||
|
||||
(milliseconds <= 0 && days <= 0 && months <= 0)
|
||||
)
|
||||
) {
|
||||
milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
|
||||
days = 0;
|
||||
months = 0;
|
||||
}
|
||||
|
||||
// The following code bubbles up values, see the tests for
|
||||
// examples of what that means.
|
||||
data.milliseconds = milliseconds % 1000;
|
||||
|
||||
seconds = absFloor(milliseconds / 1000);
|
||||
data.seconds = seconds % 60;
|
||||
|
||||
minutes = absFloor(seconds / 60);
|
||||
data.minutes = minutes % 60;
|
||||
|
||||
hours = absFloor(minutes / 60);
|
||||
data.hours = hours % 24;
|
||||
|
||||
days += absFloor(hours / 24);
|
||||
|
||||
// convert days to months
|
||||
monthsFromDays = absFloor(daysToMonths(days));
|
||||
months += monthsFromDays;
|
||||
days -= absCeil(monthsToDays(monthsFromDays));
|
||||
|
||||
// 12 months -> 1 year
|
||||
years = absFloor(months / 12);
|
||||
months %= 12;
|
||||
|
||||
data.days = days;
|
||||
data.months = months;
|
||||
data.years = years;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
export function daysToMonths(days) {
|
||||
// 400 years have 146097 days (taking into account leap year rules)
|
||||
// 400 years have 12 months === 4800
|
||||
return (days * 4800) / 146097;
|
||||
}
|
||||
|
||||
export function monthsToDays(months) {
|
||||
// the reverse of daysToMonths
|
||||
return (months * 146097) / 4800;
|
||||
}
|
||||
5
node_modules/moment/src/lib/duration/clone.js
generated
vendored
Normal file
5
node_modules/moment/src/lib/duration/clone.js
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
import { createDuration } from './create';
|
||||
|
||||
export function clone() {
|
||||
return createDuration(this);
|
||||
}
|
||||
42
node_modules/moment/src/lib/duration/constructor.js
generated
vendored
Normal file
42
node_modules/moment/src/lib/duration/constructor.js
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
import { normalizeObjectUnits } from '../units/aliases';
|
||||
import { getLocale } from '../locale/locales';
|
||||
import isDurationValid from './valid.js';
|
||||
|
||||
export function Duration(duration) {
|
||||
var normalizedInput = normalizeObjectUnits(duration),
|
||||
years = normalizedInput.year || 0,
|
||||
quarters = normalizedInput.quarter || 0,
|
||||
months = normalizedInput.month || 0,
|
||||
weeks = normalizedInput.week || normalizedInput.isoWeek || 0,
|
||||
days = normalizedInput.day || 0,
|
||||
hours = normalizedInput.hour || 0,
|
||||
minutes = normalizedInput.minute || 0,
|
||||
seconds = normalizedInput.second || 0,
|
||||
milliseconds = normalizedInput.millisecond || 0;
|
||||
|
||||
this._isValid = isDurationValid(normalizedInput);
|
||||
|
||||
// representation for dateAddRemove
|
||||
this._milliseconds =
|
||||
+milliseconds +
|
||||
seconds * 1e3 + // 1000
|
||||
minutes * 6e4 + // 1000 * 60
|
||||
hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
|
||||
// Because of dateAddRemove treats 24 hours as different from a
|
||||
// day when working around DST, we need to store them separately
|
||||
this._days = +days + weeks * 7;
|
||||
// It is impossible to translate months into days without knowing
|
||||
// which months you are are talking about, so we have to store
|
||||
// it separately.
|
||||
this._months = +months + quarters * 3 + years * 12;
|
||||
|
||||
this._data = {};
|
||||
|
||||
this._locale = getLocale();
|
||||
|
||||
this._bubble();
|
||||
}
|
||||
|
||||
export function isDuration(obj) {
|
||||
return obj instanceof Duration;
|
||||
}
|
||||
133
node_modules/moment/src/lib/duration/create.js
generated
vendored
Normal file
133
node_modules/moment/src/lib/duration/create.js
generated
vendored
Normal file
@@ -0,0 +1,133 @@
|
||||
import { Duration, isDuration } from './constructor';
|
||||
import isNumber from '../utils/is-number';
|
||||
import toInt from '../utils/to-int';
|
||||
import absRound from '../utils/abs-round';
|
||||
import hasOwnProp from '../utils/has-own-prop';
|
||||
import { DATE, HOUR, MINUTE, SECOND, MILLISECOND } from '../units/constants';
|
||||
import { cloneWithOffset } from '../units/offset';
|
||||
import { createLocal } from '../create/local';
|
||||
import { createInvalid as invalid } from './valid';
|
||||
|
||||
// ASP.NET json date format regex
|
||||
var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,
|
||||
// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
|
||||
// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
|
||||
// and further modified to allow for strings containing both week and day
|
||||
isoRegex =
|
||||
/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
|
||||
|
||||
export function createDuration(input, key) {
|
||||
var duration = input,
|
||||
// matching against regexp is expensive, do it on demand
|
||||
match = null,
|
||||
sign,
|
||||
ret,
|
||||
diffRes;
|
||||
|
||||
if (isDuration(input)) {
|
||||
duration = {
|
||||
ms: input._milliseconds,
|
||||
d: input._days,
|
||||
M: input._months,
|
||||
};
|
||||
} else if (isNumber(input) || !isNaN(+input)) {
|
||||
duration = {};
|
||||
if (key) {
|
||||
duration[key] = +input;
|
||||
} else {
|
||||
duration.milliseconds = +input;
|
||||
}
|
||||
} else if ((match = aspNetRegex.exec(input))) {
|
||||
sign = match[1] === '-' ? -1 : 1;
|
||||
duration = {
|
||||
y: 0,
|
||||
d: toInt(match[DATE]) * sign,
|
||||
h: toInt(match[HOUR]) * sign,
|
||||
m: toInt(match[MINUTE]) * sign,
|
||||
s: toInt(match[SECOND]) * sign,
|
||||
ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match
|
||||
};
|
||||
} else if ((match = isoRegex.exec(input))) {
|
||||
sign = match[1] === '-' ? -1 : 1;
|
||||
duration = {
|
||||
y: parseIso(match[2], sign),
|
||||
M: parseIso(match[3], sign),
|
||||
w: parseIso(match[4], sign),
|
||||
d: parseIso(match[5], sign),
|
||||
h: parseIso(match[6], sign),
|
||||
m: parseIso(match[7], sign),
|
||||
s: parseIso(match[8], sign),
|
||||
};
|
||||
} else if (duration == null) {
|
||||
// checks for null or undefined
|
||||
duration = {};
|
||||
} else if (
|
||||
typeof duration === 'object' &&
|
||||
('from' in duration || 'to' in duration)
|
||||
) {
|
||||
diffRes = momentsDifference(
|
||||
createLocal(duration.from),
|
||||
createLocal(duration.to)
|
||||
);
|
||||
|
||||
duration = {};
|
||||
duration.ms = diffRes.milliseconds;
|
||||
duration.M = diffRes.months;
|
||||
}
|
||||
|
||||
ret = new Duration(duration);
|
||||
|
||||
if (isDuration(input) && hasOwnProp(input, '_locale')) {
|
||||
ret._locale = input._locale;
|
||||
}
|
||||
|
||||
if (isDuration(input) && hasOwnProp(input, '_isValid')) {
|
||||
ret._isValid = input._isValid;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
createDuration.fn = Duration.prototype;
|
||||
createDuration.invalid = invalid;
|
||||
|
||||
function parseIso(inp, sign) {
|
||||
// We'd normally use ~~inp for this, but unfortunately it also
|
||||
// converts floats to ints.
|
||||
// inp may be undefined, so careful calling replace on it.
|
||||
var res = inp && parseFloat(inp.replace(',', '.'));
|
||||
// apply sign while we're at it
|
||||
return (isNaN(res) ? 0 : res) * sign;
|
||||
}
|
||||
|
||||
function positiveMomentsDifference(base, other) {
|
||||
var res = {};
|
||||
|
||||
res.months =
|
||||
other.month() - base.month() + (other.year() - base.year()) * 12;
|
||||
if (base.clone().add(res.months, 'M').isAfter(other)) {
|
||||
--res.months;
|
||||
}
|
||||
|
||||
res.milliseconds = +other - +base.clone().add(res.months, 'M');
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
function momentsDifference(base, other) {
|
||||
var res;
|
||||
if (!(base.isValid() && other.isValid())) {
|
||||
return { milliseconds: 0, months: 0 };
|
||||
}
|
||||
|
||||
other = cloneWithOffset(other, base);
|
||||
if (base.isBefore(other)) {
|
||||
res = positiveMomentsDifference(base, other);
|
||||
} else {
|
||||
res = positiveMomentsDifference(other, base);
|
||||
res.milliseconds = -res.milliseconds;
|
||||
res.months = -res.months;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
16
node_modules/moment/src/lib/duration/duration.js
generated
vendored
Normal file
16
node_modules/moment/src/lib/duration/duration.js
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
// Side effect imports
|
||||
import './prototype';
|
||||
|
||||
import { createDuration } from './create';
|
||||
import { isDuration } from './constructor';
|
||||
import {
|
||||
getSetRelativeTimeRounding,
|
||||
getSetRelativeTimeThreshold,
|
||||
} from './humanize';
|
||||
|
||||
export {
|
||||
createDuration,
|
||||
isDuration,
|
||||
getSetRelativeTimeRounding,
|
||||
getSetRelativeTimeThreshold,
|
||||
};
|
||||
27
node_modules/moment/src/lib/duration/get.js
generated
vendored
Normal file
27
node_modules/moment/src/lib/duration/get.js
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
import { normalizeUnits } from '../units/aliases';
|
||||
import absFloor from '../utils/abs-floor';
|
||||
|
||||
export function get(units) {
|
||||
units = normalizeUnits(units);
|
||||
return this.isValid() ? this[units + 's']() : NaN;
|
||||
}
|
||||
|
||||
function makeGetter(name) {
|
||||
return function () {
|
||||
return this.isValid() ? this._data[name] : NaN;
|
||||
};
|
||||
}
|
||||
|
||||
var milliseconds = makeGetter('milliseconds'),
|
||||
seconds = makeGetter('seconds'),
|
||||
minutes = makeGetter('minutes'),
|
||||
hours = makeGetter('hours'),
|
||||
days = makeGetter('days'),
|
||||
months = makeGetter('months'),
|
||||
years = makeGetter('years');
|
||||
|
||||
export { milliseconds, seconds, minutes, hours, days, months, years };
|
||||
|
||||
export function weeks() {
|
||||
return absFloor(this.days() / 7);
|
||||
}
|
||||
114
node_modules/moment/src/lib/duration/humanize.js
generated
vendored
Normal file
114
node_modules/moment/src/lib/duration/humanize.js
generated
vendored
Normal file
@@ -0,0 +1,114 @@
|
||||
import { createDuration } from './create';
|
||||
|
||||
var round = Math.round,
|
||||
thresholds = {
|
||||
ss: 44, // a few seconds to seconds
|
||||
s: 45, // seconds to minute
|
||||
m: 45, // minutes to hour
|
||||
h: 22, // hours to day
|
||||
d: 26, // days to month/week
|
||||
w: null, // weeks to month
|
||||
M: 11, // months to year
|
||||
};
|
||||
|
||||
// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
|
||||
function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
|
||||
return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
|
||||
}
|
||||
|
||||
function relativeTime(posNegDuration, withoutSuffix, thresholds, locale) {
|
||||
var duration = createDuration(posNegDuration).abs(),
|
||||
seconds = round(duration.as('s')),
|
||||
minutes = round(duration.as('m')),
|
||||
hours = round(duration.as('h')),
|
||||
days = round(duration.as('d')),
|
||||
months = round(duration.as('M')),
|
||||
weeks = round(duration.as('w')),
|
||||
years = round(duration.as('y')),
|
||||
a =
|
||||
(seconds <= thresholds.ss && ['s', seconds]) ||
|
||||
(seconds < thresholds.s && ['ss', seconds]) ||
|
||||
(minutes <= 1 && ['m']) ||
|
||||
(minutes < thresholds.m && ['mm', minutes]) ||
|
||||
(hours <= 1 && ['h']) ||
|
||||
(hours < thresholds.h && ['hh', hours]) ||
|
||||
(days <= 1 && ['d']) ||
|
||||
(days < thresholds.d && ['dd', days]);
|
||||
|
||||
if (thresholds.w != null) {
|
||||
a =
|
||||
a ||
|
||||
(weeks <= 1 && ['w']) ||
|
||||
(weeks < thresholds.w && ['ww', weeks]);
|
||||
}
|
||||
a = a ||
|
||||
(months <= 1 && ['M']) ||
|
||||
(months < thresholds.M && ['MM', months]) ||
|
||||
(years <= 1 && ['y']) || ['yy', years];
|
||||
|
||||
a[2] = withoutSuffix;
|
||||
a[3] = +posNegDuration > 0;
|
||||
a[4] = locale;
|
||||
return substituteTimeAgo.apply(null, a);
|
||||
}
|
||||
|
||||
// This function allows you to set the rounding function for relative time strings
|
||||
export function getSetRelativeTimeRounding(roundingFunction) {
|
||||
if (roundingFunction === undefined) {
|
||||
return round;
|
||||
}
|
||||
if (typeof roundingFunction === 'function') {
|
||||
round = roundingFunction;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// This function allows you to set a threshold for relative time strings
|
||||
export function getSetRelativeTimeThreshold(threshold, limit) {
|
||||
if (thresholds[threshold] === undefined) {
|
||||
return false;
|
||||
}
|
||||
if (limit === undefined) {
|
||||
return thresholds[threshold];
|
||||
}
|
||||
thresholds[threshold] = limit;
|
||||
if (threshold === 's') {
|
||||
thresholds.ss = limit - 1;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export function humanize(argWithSuffix, argThresholds) {
|
||||
if (!this.isValid()) {
|
||||
return this.localeData().invalidDate();
|
||||
}
|
||||
|
||||
var withSuffix = false,
|
||||
th = thresholds,
|
||||
locale,
|
||||
output;
|
||||
|
||||
if (typeof argWithSuffix === 'object') {
|
||||
argThresholds = argWithSuffix;
|
||||
argWithSuffix = false;
|
||||
}
|
||||
if (typeof argWithSuffix === 'boolean') {
|
||||
withSuffix = argWithSuffix;
|
||||
}
|
||||
if (typeof argThresholds === 'object') {
|
||||
th = Object.assign({}, thresholds, argThresholds);
|
||||
if (argThresholds.s != null && argThresholds.ss == null) {
|
||||
th.ss = argThresholds.s - 1;
|
||||
}
|
||||
}
|
||||
|
||||
locale = this.localeData();
|
||||
output = relativeTime(this, !withSuffix, th, locale);
|
||||
|
||||
if (withSuffix) {
|
||||
output = locale.pastFuture(+this, output);
|
||||
}
|
||||
|
||||
return locale.postformat(output);
|
||||
}
|
||||
68
node_modules/moment/src/lib/duration/iso-string.js
generated
vendored
Normal file
68
node_modules/moment/src/lib/duration/iso-string.js
generated
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
import absFloor from '../utils/abs-floor';
|
||||
var abs = Math.abs;
|
||||
|
||||
function sign(x) {
|
||||
return (x > 0) - (x < 0) || +x;
|
||||
}
|
||||
|
||||
export function toISOString() {
|
||||
// for ISO strings we do not use the normal bubbling rules:
|
||||
// * milliseconds bubble up until they become hours
|
||||
// * days do not bubble at all
|
||||
// * months bubble up until they become years
|
||||
// This is because there is no context-free conversion between hours and days
|
||||
// (think of clock changes)
|
||||
// and also not between days and months (28-31 days per month)
|
||||
if (!this.isValid()) {
|
||||
return this.localeData().invalidDate();
|
||||
}
|
||||
|
||||
var seconds = abs(this._milliseconds) / 1000,
|
||||
days = abs(this._days),
|
||||
months = abs(this._months),
|
||||
minutes,
|
||||
hours,
|
||||
years,
|
||||
s,
|
||||
total = this.asSeconds(),
|
||||
totalSign,
|
||||
ymSign,
|
||||
daysSign,
|
||||
hmsSign;
|
||||
|
||||
if (!total) {
|
||||
// this is the same as C#'s (Noda) and python (isodate)...
|
||||
// but not other JS (goog.date)
|
||||
return 'P0D';
|
||||
}
|
||||
|
||||
// 3600 seconds -> 60 minutes -> 1 hour
|
||||
minutes = absFloor(seconds / 60);
|
||||
hours = absFloor(minutes / 60);
|
||||
seconds %= 60;
|
||||
minutes %= 60;
|
||||
|
||||
// 12 months -> 1 year
|
||||
years = absFloor(months / 12);
|
||||
months %= 12;
|
||||
|
||||
// inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
|
||||
s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
|
||||
|
||||
totalSign = total < 0 ? '-' : '';
|
||||
ymSign = sign(this._months) !== sign(total) ? '-' : '';
|
||||
daysSign = sign(this._days) !== sign(total) ? '-' : '';
|
||||
hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
|
||||
|
||||
return (
|
||||
totalSign +
|
||||
'P' +
|
||||
(years ? ymSign + years + 'Y' : '') +
|
||||
(months ? ymSign + months + 'M' : '') +
|
||||
(days ? daysSign + days + 'D' : '') +
|
||||
(hours || minutes || seconds ? 'T' : '') +
|
||||
(hours ? hmsSign + hours + 'H' : '') +
|
||||
(minutes ? hmsSign + minutes + 'M' : '') +
|
||||
(seconds ? hmsSign + s + 'S' : '')
|
||||
);
|
||||
}
|
||||
78
node_modules/moment/src/lib/duration/prototype.js
generated
vendored
Normal file
78
node_modules/moment/src/lib/duration/prototype.js
generated
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
import { Duration } from './constructor';
|
||||
|
||||
var proto = Duration.prototype;
|
||||
|
||||
import { abs } from './abs';
|
||||
import { add, subtract } from './add-subtract';
|
||||
import {
|
||||
as,
|
||||
asMilliseconds,
|
||||
asSeconds,
|
||||
asMinutes,
|
||||
asHours,
|
||||
asDays,
|
||||
asWeeks,
|
||||
asMonths,
|
||||
asQuarters,
|
||||
asYears,
|
||||
valueOf,
|
||||
} from './as';
|
||||
import { bubble } from './bubble';
|
||||
import { clone } from './clone';
|
||||
import {
|
||||
get,
|
||||
milliseconds,
|
||||
seconds,
|
||||
minutes,
|
||||
hours,
|
||||
days,
|
||||
months,
|
||||
years,
|
||||
weeks,
|
||||
} from './get';
|
||||
import { humanize } from './humanize';
|
||||
import { toISOString } from './iso-string';
|
||||
import { lang, locale, localeData } from '../moment/locale';
|
||||
import { isValid } from './valid';
|
||||
|
||||
proto.isValid = isValid;
|
||||
proto.abs = abs;
|
||||
proto.add = add;
|
||||
proto.subtract = subtract;
|
||||
proto.as = as;
|
||||
proto.asMilliseconds = asMilliseconds;
|
||||
proto.asSeconds = asSeconds;
|
||||
proto.asMinutes = asMinutes;
|
||||
proto.asHours = asHours;
|
||||
proto.asDays = asDays;
|
||||
proto.asWeeks = asWeeks;
|
||||
proto.asMonths = asMonths;
|
||||
proto.asQuarters = asQuarters;
|
||||
proto.asYears = asYears;
|
||||
proto.valueOf = valueOf;
|
||||
proto._bubble = bubble;
|
||||
proto.clone = clone;
|
||||
proto.get = get;
|
||||
proto.milliseconds = milliseconds;
|
||||
proto.seconds = seconds;
|
||||
proto.minutes = minutes;
|
||||
proto.hours = hours;
|
||||
proto.days = days;
|
||||
proto.weeks = weeks;
|
||||
proto.months = months;
|
||||
proto.years = years;
|
||||
proto.humanize = humanize;
|
||||
proto.toISOString = toISOString;
|
||||
proto.toString = toISOString;
|
||||
proto.toJSON = toISOString;
|
||||
proto.locale = locale;
|
||||
proto.localeData = localeData;
|
||||
|
||||
// Deprecations
|
||||
import { deprecate } from '../utils/deprecate';
|
||||
|
||||
proto.toIsoString = deprecate(
|
||||
'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',
|
||||
toISOString
|
||||
);
|
||||
proto.lang = lang;
|
||||
55
node_modules/moment/src/lib/duration/valid.js
generated
vendored
Normal file
55
node_modules/moment/src/lib/duration/valid.js
generated
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
import hasOwnProp from '../utils/has-own-prop';
|
||||
import toInt from '../utils/to-int';
|
||||
import indexOf from '../utils/index-of';
|
||||
import { createDuration } from './create';
|
||||
|
||||
var ordering = [
|
||||
'year',
|
||||
'quarter',
|
||||
'month',
|
||||
'week',
|
||||
'day',
|
||||
'hour',
|
||||
'minute',
|
||||
'second',
|
||||
'millisecond',
|
||||
];
|
||||
|
||||
export default function isDurationValid(m) {
|
||||
var key,
|
||||
unitHasDecimal = false,
|
||||
i,
|
||||
orderLen = ordering.length;
|
||||
for (key in m) {
|
||||
if (
|
||||
hasOwnProp(m, key) &&
|
||||
!(
|
||||
indexOf.call(ordering, key) !== -1 &&
|
||||
(m[key] == null || !isNaN(m[key]))
|
||||
)
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < orderLen; ++i) {
|
||||
if (m[ordering[i]]) {
|
||||
if (unitHasDecimal) {
|
||||
return false; // only allow non-integers for smallest unit
|
||||
}
|
||||
if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
|
||||
unitHasDecimal = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
export function isValid() {
|
||||
return this._isValid;
|
||||
}
|
||||
|
||||
export function createInvalid() {
|
||||
return createDuration(NaN);
|
||||
}
|
||||
Reference in New Issue
Block a user