diff --git a/dist/index.es.js b/dist/index.es.js
index 321596c..7e2a617 100644
--- a/dist/index.es.js
+++ b/dist/index.es.js
@@ -232,6 +232,12 @@ CheckBox.defaultProps = {
onChangeValue: function onChangeValue(checked) {}
};
+var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
+
+function commonjsRequire () {
+ throw new Error('Dynamic requires are not currently supported by rollup-plugin-commonjs');
+}
+
function unwrapExports (x) {
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x.default : x;
}
@@ -3348,6 +3354,4606 @@ TextArea.defaultProps = {
onChangeValue: function onChangeValue(text) {}
};
+var moment = createCommonjsModule(function (module, exports) {
+(function (global, factory) {
+ module.exports = factory();
+}(commonjsGlobal, (function () {
+ var hookCallback;
+
+ function hooks () {
+ return hookCallback.apply(null, arguments);
+ }
+
+ // This is done to register the method called with moment()
+ // without creating circular dependencies.
+ function setHookCallback (callback) {
+ hookCallback = callback;
+ }
+
+ function isArray(input) {
+ return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';
+ }
+
+ function isObject(input) {
+ // IE8 will treat undefined and null as object if it wasn't for
+ // input != null
+ return input != null && Object.prototype.toString.call(input) === '[object Object]';
+ }
+
+ function isObjectEmpty(obj) {
+ if (Object.getOwnPropertyNames) {
+ return (Object.getOwnPropertyNames(obj).length === 0);
+ } else {
+ var k;
+ for (k in obj) {
+ if (obj.hasOwnProperty(k)) {
+ return false;
+ }
+ }
+ return true;
+ }
+ }
+
+ function isUndefined(input) {
+ return input === void 0;
+ }
+
+ function isNumber(input) {
+ return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';
+ }
+
+ function isDate(input) {
+ return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
+ }
+
+ function map(arr, fn) {
+ var res = [], i;
+ for (i = 0; i < arr.length; ++i) {
+ res.push(fn(arr[i], i));
+ }
+ return res;
+ }
+
+ function hasOwnProp(a, b) {
+ return Object.prototype.hasOwnProperty.call(a, b);
+ }
+
+ function extend(a, b) {
+ for (var i in b) {
+ if (hasOwnProp(b, i)) {
+ a[i] = b[i];
+ }
+ }
+
+ if (hasOwnProp(b, 'toString')) {
+ a.toString = b.toString;
+ }
+
+ if (hasOwnProp(b, 'valueOf')) {
+ a.valueOf = b.valueOf;
+ }
+
+ return a;
+ }
+
+ function createUTC (input, format, locale, strict) {
+ return createLocalOrUTC(input, format, locale, strict, true).utc();
+ }
+
+ function defaultParsingFlags() {
+ // We need to deep clone this object.
+ return {
+ empty : false,
+ unusedTokens : [],
+ unusedInput : [],
+ overflow : -2,
+ charsLeftOver : 0,
+ nullInput : false,
+ invalidMonth : null,
+ invalidFormat : false,
+ userInvalidated : false,
+ iso : false,
+ parsedDateParts : [],
+ meridiem : null,
+ rfc2822 : false,
+ weekdayMismatch : false
+ };
+ }
+
+ function getParsingFlags(m) {
+ if (m._pf == null) {
+ m._pf = defaultParsingFlags();
+ }
+ return m._pf;
+ }
+
+ var some;
+ if (Array.prototype.some) {
+ some = Array.prototype.some;
+ } else {
+ some = function (fun) {
+ var t = Object(this);
+ var len = t.length >>> 0;
+
+ for (var i = 0; i < len; i++) {
+ if (i in t && fun.call(this, t[i], i, t)) {
+ return true;
+ }
+ }
+
+ return false;
+ };
+ }
+
+ function isValid(m) {
+ if (m._isValid == null) {
+ var flags = getParsingFlags(m);
+ var parsedParts = some.call(flags.parsedDateParts, function (i) {
+ return i != null;
+ });
+ var isNowValid = !isNaN(m._d.getTime()) &&
+ flags.overflow < 0 &&
+ !flags.empty &&
+ !flags.invalidMonth &&
+ !flags.invalidWeekday &&
+ !flags.weekdayMismatch &&
+ !flags.nullInput &&
+ !flags.invalidFormat &&
+ !flags.userInvalidated &&
+ (!flags.meridiem || (flags.meridiem && parsedParts));
+
+ if (m._strict) {
+ isNowValid = isNowValid &&
+ flags.charsLeftOver === 0 &&
+ flags.unusedTokens.length === 0 &&
+ flags.bigHour === undefined;
+ }
+
+ if (Object.isFrozen == null || !Object.isFrozen(m)) {
+ m._isValid = isNowValid;
+ }
+ else {
+ return isNowValid;
+ }
+ }
+ return m._isValid;
+ }
+
+ function createInvalid (flags) {
+ var m = createUTC(NaN);
+ if (flags != null) {
+ extend(getParsingFlags(m), flags);
+ }
+ else {
+ getParsingFlags(m).userInvalidated = true;
+ }
+
+ return m;
+ }
+
+ // Plugins that add properties should also add the key here (null value),
+ // so we can properly clone ourselves.
+ var momentProperties = hooks.momentProperties = [];
+
+ function copyConfig(to, from) {
+ var i, prop, val;
+
+ if (!isUndefined(from._isAMomentObject)) {
+ to._isAMomentObject = from._isAMomentObject;
+ }
+ if (!isUndefined(from._i)) {
+ to._i = from._i;
+ }
+ if (!isUndefined(from._f)) {
+ to._f = from._f;
+ }
+ if (!isUndefined(from._l)) {
+ to._l = from._l;
+ }
+ if (!isUndefined(from._strict)) {
+ to._strict = from._strict;
+ }
+ if (!isUndefined(from._tzm)) {
+ to._tzm = from._tzm;
+ }
+ if (!isUndefined(from._isUTC)) {
+ to._isUTC = from._isUTC;
+ }
+ if (!isUndefined(from._offset)) {
+ to._offset = from._offset;
+ }
+ if (!isUndefined(from._pf)) {
+ to._pf = getParsingFlags(from);
+ }
+ if (!isUndefined(from._locale)) {
+ to._locale = from._locale;
+ }
+
+ if (momentProperties.length > 0) {
+ for (i = 0; i < momentProperties.length; i++) {
+ prop = momentProperties[i];
+ val = from[prop];
+ if (!isUndefined(val)) {
+ to[prop] = val;
+ }
+ }
+ }
+
+ return to;
+ }
+
+ var updateInProgress = false;
+
+ // Moment prototype object
+ function Moment(config) {
+ copyConfig(this, config);
+ this._d = new Date(config._d != null ? config._d.getTime() : NaN);
+ if (!this.isValid()) {
+ this._d = new Date(NaN);
+ }
+ // Prevent infinite loop in case updateOffset creates new moment
+ // objects.
+ if (updateInProgress === false) {
+ updateInProgress = true;
+ hooks.updateOffset(this);
+ updateInProgress = false;
+ }
+ }
+
+ function isMoment (obj) {
+ return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);
+ }
+
+ function absFloor (number) {
+ if (number < 0) {
+ // -0 -> 0
+ return Math.ceil(number) || 0;
+ } else {
+ return Math.floor(number);
+ }
+ }
+
+ function toInt(argumentForCoercion) {
+ var coercedNumber = +argumentForCoercion,
+ value = 0;
+
+ if (coercedNumber !== 0 && isFinite(coercedNumber)) {
+ value = absFloor(coercedNumber);
+ }
+
+ return value;
+ }
+
+ // compare two arrays, return the number of differences
+ function compareArrays(array1, array2, dontConvert) {
+ var len = Math.min(array1.length, array2.length),
+ lengthDiff = Math.abs(array1.length - array2.length),
+ diffs = 0,
+ i;
+ for (i = 0; i < len; i++) {
+ if ((dontConvert && array1[i] !== array2[i]) ||
+ (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
+ diffs++;
+ }
+ }
+ return diffs + lengthDiff;
+ }
+
+ function warn(msg) {
+ if (hooks.suppressDeprecationWarnings === false &&
+ (typeof console !== 'undefined') && console.warn) {
+ console.warn('Deprecation warning: ' + msg);
+ }
+ }
+
+ function deprecate(msg, fn) {
+ var firstTime = true;
+
+ return extend(function () {
+ if (hooks.deprecationHandler != null) {
+ hooks.deprecationHandler(null, msg);
+ }
+ if (firstTime) {
+ var args = [];
+ var arg;
+ for (var i = 0; i < arguments.length; i++) {
+ arg = '';
+ if (typeof arguments[i] === 'object') {
+ arg += '\n[' + i + '] ';
+ for (var key in arguments[0]) {
+ arg += key + ': ' + arguments[0][key] + ', ';
+ }
+ arg = arg.slice(0, -2); // Remove trailing comma and space
+ } else {
+ arg = arguments[i];
+ }
+ args.push(arg);
+ }
+ warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack);
+ firstTime = false;
+ }
+ return fn.apply(this, arguments);
+ }, fn);
+ }
+
+ var deprecations = {};
+
+ function deprecateSimple(name, msg) {
+ if (hooks.deprecationHandler != null) {
+ hooks.deprecationHandler(name, msg);
+ }
+ if (!deprecations[name]) {
+ warn(msg);
+ deprecations[name] = true;
+ }
+ }
+
+ hooks.suppressDeprecationWarnings = false;
+ hooks.deprecationHandler = null;
+
+ function isFunction(input) {
+ return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
+ }
+
+ function set (config) {
+ var prop, i;
+ for (i in config) {
+ prop = config[i];
+ if (isFunction(prop)) {
+ this[i] = prop;
+ } else {
+ this['_' + i] = prop;
+ }
+ }
+ this._config = config;
+ // Lenient ordinal parsing accepts just a number in addition to
+ // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
+ // TODO: Remove "ordinalParse" fallback in next major release.
+ this._dayOfMonthOrdinalParseLenient = new RegExp(
+ (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
+ '|' + (/\d{1,2}/).source);
+ }
+
+ function mergeConfigs(parentConfig, childConfig) {
+ var res = extend({}, parentConfig), prop;
+ for (prop in childConfig) {
+ if (hasOwnProp(childConfig, prop)) {
+ if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
+ res[prop] = {};
+ extend(res[prop], parentConfig[prop]);
+ extend(res[prop], childConfig[prop]);
+ } else if (childConfig[prop] != null) {
+ res[prop] = childConfig[prop];
+ } else {
+ delete res[prop];
+ }
+ }
+ }
+ for (prop in parentConfig) {
+ if (hasOwnProp(parentConfig, prop) &&
+ !hasOwnProp(childConfig, prop) &&
+ isObject(parentConfig[prop])) {
+ // make sure changes to properties don't modify parent config
+ res[prop] = extend({}, res[prop]);
+ }
+ }
+ return res;
+ }
+
+ function Locale(config) {
+ if (config != null) {
+ this.set(config);
+ }
+ }
+
+ var keys;
+
+ if (Object.keys) {
+ keys = Object.keys;
+ } else {
+ keys = function (obj) {
+ var i, res = [];
+ for (i in obj) {
+ if (hasOwnProp(obj, i)) {
+ res.push(i);
+ }
+ }
+ return res;
+ };
+ }
+
+ var defaultCalendar = {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ };
+
+ function calendar (key, mom, now) {
+ var output = this._calendar[key] || this._calendar['sameElse'];
+ return isFunction(output) ? output.call(mom, now) : output;
+ }
+
+ var defaultLongDateFormat = {
+ LTS : 'h:mm:ss A',
+ LT : 'h:mm A',
+ L : 'MM/DD/YYYY',
+ LL : 'MMMM D, YYYY',
+ LLL : 'MMMM D, YYYY h:mm A',
+ LLLL : 'dddd, MMMM D, YYYY h:mm A'
+ };
+
+ function longDateFormat (key) {
+ var format = this._longDateFormat[key],
+ formatUpper = this._longDateFormat[key.toUpperCase()];
+
+ if (format || !formatUpper) {
+ return format;
+ }
+
+ this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {
+ return val.slice(1);
+ });
+
+ return this._longDateFormat[key];
+ }
+
+ var defaultInvalidDate = 'Invalid date';
+
+ function invalidDate () {
+ return this._invalidDate;
+ }
+
+ var defaultOrdinal = '%d';
+ var defaultDayOfMonthOrdinalParse = /\d{1,2}/;
+
+ function ordinal (number) {
+ return this._ordinal.replace('%d', number);
+ }
+
+ var defaultRelativeTime = {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ ss : '%d seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ };
+
+ function relativeTime (number, withoutSuffix, string, isFuture) {
+ var output = this._relativeTime[string];
+ return (isFunction(output)) ?
+ output(number, withoutSuffix, string, isFuture) :
+ output.replace(/%d/i, number);
+ }
+
+ function pastFuture (diff, output) {
+ var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
+ return isFunction(format) ? format(output) : format.replace(/%s/i, output);
+ }
+
+ var aliases = {};
+
+ function addUnitAlias (unit, shorthand) {
+ var lowerCase = unit.toLowerCase();
+ aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
+ }
+
+ function normalizeUnits(units) {
+ return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;
+ }
+
+ function normalizeObjectUnits(inputObject) {
+ var normalizedInput = {},
+ normalizedProp,
+ prop;
+
+ for (prop in inputObject) {
+ if (hasOwnProp(inputObject, prop)) {
+ normalizedProp = normalizeUnits(prop);
+ if (normalizedProp) {
+ normalizedInput[normalizedProp] = inputObject[prop];
+ }
+ }
+ }
+
+ return normalizedInput;
+ }
+
+ var priorities = {};
+
+ function addUnitPriority(unit, priority) {
+ priorities[unit] = priority;
+ }
+
+ function getPrioritizedUnits(unitsObj) {
+ var units = [];
+ for (var u in unitsObj) {
+ units.push({unit: u, priority: priorities[u]});
+ }
+ units.sort(function (a, b) {
+ return a.priority - b.priority;
+ });
+ return units;
+ }
+
+ function zeroFill(number, targetLength, forceSign) {
+ var absNumber = '' + Math.abs(number),
+ zerosToFill = targetLength - absNumber.length,
+ sign = number >= 0;
+ return (sign ? (forceSign ? '+' : '') : '-') +
+ Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
+ }
+
+ var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;
+
+ var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
+
+ var formatFunctions = {};
+
+ var formatTokenFunctions = {};
+
+ // token: 'M'
+ // padded: ['MM', 2]
+ // ordinal: 'Mo'
+ // callback: function () { this.month() + 1 }
+ function addFormatToken (token, padded, ordinal, callback) {
+ var func = callback;
+ if (typeof callback === 'string') {
+ func = function () {
+ return this[callback]();
+ };
+ }
+ if (token) {
+ formatTokenFunctions[token] = func;
+ }
+ if (padded) {
+ formatTokenFunctions[padded[0]] = function () {
+ return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
+ };
+ }
+ if (ordinal) {
+ formatTokenFunctions[ordinal] = function () {
+ return this.localeData().ordinal(func.apply(this, arguments), token);
+ };
+ }
+ }
+
+ function removeFormattingTokens(input) {
+ if (input.match(/\[[\s\S]/)) {
+ return input.replace(/^\[|\]$/g, '');
+ }
+ return input.replace(/\\/g, '');
+ }
+
+ function makeFormatFunction(format) {
+ var array = format.match(formattingTokens), i, length;
+
+ for (i = 0, length = array.length; i < length; i++) {
+ if (formatTokenFunctions[array[i]]) {
+ array[i] = formatTokenFunctions[array[i]];
+ } else {
+ array[i] = removeFormattingTokens(array[i]);
+ }
+ }
+
+ return function (mom) {
+ var output = '', i;
+ for (i = 0; i < length; i++) {
+ output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];
+ }
+ return output;
+ };
+ }
+
+ // format date using native date object
+ function formatMoment(m, format) {
+ if (!m.isValid()) {
+ return m.localeData().invalidDate();
+ }
+
+ format = expandFormat(format, m.localeData());
+ formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);
+
+ return formatFunctions[format](m);
+ }
+
+ function expandFormat(format, locale) {
+ var i = 5;
+
+ function replaceLongDateFormatTokens(input) {
+ return locale.longDateFormat(input) || input;
+ }
+
+ localFormattingTokens.lastIndex = 0;
+ while (i >= 0 && localFormattingTokens.test(format)) {
+ format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
+ localFormattingTokens.lastIndex = 0;
+ i -= 1;
+ }
+
+ return format;
+ }
+
+ var match1 = /\d/; // 0 - 9
+ var match2 = /\d\d/; // 00 - 99
+ var match3 = /\d{3}/; // 000 - 999
+ var match4 = /\d{4}/; // 0000 - 9999
+ var match6 = /[+-]?\d{6}/; // -999999 - 999999
+ var match1to2 = /\d\d?/; // 0 - 99
+ var match3to4 = /\d\d\d\d?/; // 999 - 9999
+ var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999
+ var match1to3 = /\d{1,3}/; // 0 - 999
+ var match1to4 = /\d{1,4}/; // 0 - 9999
+ var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999
+
+ var matchUnsigned = /\d+/; // 0 - inf
+ var matchSigned = /[+-]?\d+/; // -inf - inf
+
+ var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z
+ var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z
+
+ var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123
+
+ // any word (or two) characters or numbers including two/three word month in arabic.
+ // includes scottish gaelic two word and hyphenated months
+ var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;
+
+ var regexes = {};
+
+ function addRegexToken (token, regex, strictRegex) {
+ regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {
+ return (isStrict && strictRegex) ? strictRegex : regex;
+ };
+ }
+
+ function getParseRegexForToken (token, config) {
+ if (!hasOwnProp(regexes, token)) {
+ return new RegExp(unescapeFormat(token));
+ }
+
+ return regexes[token](config._strict, config._locale);
+ }
+
+ // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
+ function unescapeFormat(s) {
+ return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
+ return p1 || p2 || p3 || p4;
+ }));
+ }
+
+ function regexEscape(s) {
+ return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
+ }
+
+ var tokens = {};
+
+ function addParseToken (token, callback) {
+ var i, func = callback;
+ if (typeof token === 'string') {
+ token = [token];
+ }
+ if (isNumber(callback)) {
+ func = function (input, array) {
+ array[callback] = toInt(input);
+ };
+ }
+ for (i = 0; i < token.length; i++) {
+ tokens[token[i]] = func;
+ }
+ }
+
+ function addWeekParseToken (token, callback) {
+ addParseToken(token, function (input, array, config, token) {
+ config._w = config._w || {};
+ callback(input, config._w, config, token);
+ });
+ }
+
+ function addTimeToArrayFromToken(token, input, config) {
+ if (input != null && hasOwnProp(tokens, token)) {
+ tokens[token](input, config._a, config, token);
+ }
+ }
+
+ var YEAR = 0;
+ var MONTH = 1;
+ var DATE = 2;
+ var HOUR = 3;
+ var MINUTE = 4;
+ var SECOND = 5;
+ var MILLISECOND = 6;
+ var WEEK = 7;
+ var WEEKDAY = 8;
+
+ // FORMATTING
+
+ addFormatToken('Y', 0, 0, function () {
+ var y = this.year();
+ return y <= 9999 ? '' + y : '+' + y;
+ });
+
+ addFormatToken(0, ['YY', 2], 0, function () {
+ return this.year() % 100;
+ });
+
+ addFormatToken(0, ['YYYY', 4], 0, 'year');
+ addFormatToken(0, ['YYYYY', 5], 0, 'year');
+ addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
+
+ // ALIASES
+
+ addUnitAlias('year', 'y');
+
+ // PRIORITIES
+
+ addUnitPriority('year', 1);
+
+ // PARSING
+
+ addRegexToken('Y', matchSigned);
+ addRegexToken('YY', match1to2, match2);
+ addRegexToken('YYYY', match1to4, match4);
+ addRegexToken('YYYYY', match1to6, match6);
+ addRegexToken('YYYYYY', match1to6, match6);
+
+ addParseToken(['YYYYY', 'YYYYYY'], YEAR);
+ addParseToken('YYYY', function (input, array) {
+ array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
+ });
+ addParseToken('YY', function (input, array) {
+ array[YEAR] = hooks.parseTwoDigitYear(input);
+ });
+ addParseToken('Y', function (input, array) {
+ array[YEAR] = parseInt(input, 10);
+ });
+
+ // HELPERS
+
+ function daysInYear(year) {
+ return isLeapYear(year) ? 366 : 365;
+ }
+
+ function isLeapYear(year) {
+ return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
+ }
+
+ // HOOKS
+
+ hooks.parseTwoDigitYear = function (input) {
+ return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
+ };
+
+ // MOMENTS
+
+ var getSetYear = makeGetSet('FullYear', true);
+
+ function getIsLeapYear () {
+ return isLeapYear(this.year());
+ }
+
+ function makeGetSet (unit, keepTime) {
+ return function (value) {
+ if (value != null) {
+ set$1(this, unit, value);
+ hooks.updateOffset(this, keepTime);
+ return this;
+ } else {
+ return get(this, unit);
+ }
+ };
+ }
+
+ function get (mom, unit) {
+ return mom.isValid() ?
+ mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;
+ }
+
+ function set$1 (mom, unit, value) {
+ if (mom.isValid() && !isNaN(value)) {
+ if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {
+ mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));
+ }
+ else {
+ mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
+ }
+ }
+ }
+
+ // MOMENTS
+
+ function stringGet (units) {
+ units = normalizeUnits(units);
+ if (isFunction(this[units])) {
+ return this[units]();
+ }
+ return this;
+ }
+
+
+ function stringSet (units, value) {
+ if (typeof units === 'object') {
+ units = normalizeObjectUnits(units);
+ var prioritized = getPrioritizedUnits(units);
+ for (var i = 0; i < prioritized.length; i++) {
+ this[prioritized[i].unit](units[prioritized[i].unit]);
+ }
+ } else {
+ units = normalizeUnits(units);
+ if (isFunction(this[units])) {
+ return this[units](value);
+ }
+ }
+ return this;
+ }
+
+ function mod(n, x) {
+ return ((n % x) + x) % x;
+ }
+
+ var indexOf;
+
+ if (Array.prototype.indexOf) {
+ indexOf = Array.prototype.indexOf;
+ } else {
+ indexOf = function (o) {
+ // I know
+ var i;
+ for (i = 0; i < this.length; ++i) {
+ if (this[i] === o) {
+ return i;
+ }
+ }
+ return -1;
+ };
+ }
+
+ function daysInMonth(year, month) {
+ if (isNaN(year) || isNaN(month)) {
+ return NaN;
+ }
+ var modMonth = mod(month, 12);
+ year += (month - modMonth) / 12;
+ return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);
+ }
+
+ // FORMATTING
+
+ addFormatToken('M', ['MM', 2], 'Mo', function () {
+ return this.month() + 1;
+ });
+
+ addFormatToken('MMM', 0, 0, function (format) {
+ return this.localeData().monthsShort(this, format);
+ });
+
+ addFormatToken('MMMM', 0, 0, function (format) {
+ return this.localeData().months(this, format);
+ });
+
+ // ALIASES
+
+ addUnitAlias('month', 'M');
+
+ // PRIORITY
+
+ addUnitPriority('month', 8);
+
+ // PARSING
+
+ addRegexToken('M', match1to2);
+ addRegexToken('MM', match1to2, match2);
+ addRegexToken('MMM', function (isStrict, locale) {
+ return locale.monthsShortRegex(isStrict);
+ });
+ addRegexToken('MMMM', function (isStrict, locale) {
+ return locale.monthsRegex(isStrict);
+ });
+
+ addParseToken(['M', 'MM'], function (input, array) {
+ array[MONTH] = toInt(input) - 1;
+ });
+
+ addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
+ var month = config._locale.monthsParse(input, token, config._strict);
+ // if we didn't find a month name, mark the date as invalid.
+ if (month != null) {
+ array[MONTH] = month;
+ } else {
+ getParsingFlags(config).invalidMonth = input;
+ }
+ });
+
+ // LOCALES
+
+ var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/;
+ var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');
+ function localeMonths (m, format) {
+ if (!m) {
+ return isArray(this._months) ? this._months :
+ this._months['standalone'];
+ }
+ return isArray(this._months) ? this._months[m.month()] :
+ this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];
+ }
+
+ var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');
+ function localeMonthsShort (m, format) {
+ if (!m) {
+ return isArray(this._monthsShort) ? this._monthsShort :
+ this._monthsShort['standalone'];
+ }
+ return isArray(this._monthsShort) ? this._monthsShort[m.month()] :
+ this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];
+ }
+
+ function handleStrictParse(monthName, format, strict) {
+ var i, ii, mom, llc = monthName.toLocaleLowerCase();
+ if (!this._monthsParse) {
+ // this is not used
+ this._monthsParse = [];
+ this._longMonthsParse = [];
+ this._shortMonthsParse = [];
+ for (i = 0; i < 12; ++i) {
+ mom = createUTC([2000, i]);
+ this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();
+ this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
+ }
+ }
+
+ if (strict) {
+ if (format === 'MMM') {
+ ii = indexOf.call(this._shortMonthsParse, llc);
+ return ii !== -1 ? ii : null;
+ } else {
+ ii = indexOf.call(this._longMonthsParse, llc);
+ return ii !== -1 ? ii : null;
+ }
+ } else {
+ if (format === 'MMM') {
+ ii = indexOf.call(this._shortMonthsParse, llc);
+ if (ii !== -1) {
+ return ii;
+ }
+ ii = indexOf.call(this._longMonthsParse, llc);
+ return ii !== -1 ? ii : null;
+ } else {
+ ii = indexOf.call(this._longMonthsParse, llc);
+ if (ii !== -1) {
+ return ii;
+ }
+ ii = indexOf.call(this._shortMonthsParse, llc);
+ return ii !== -1 ? ii : null;
+ }
+ }
+ }
+
+ function localeMonthsParse (monthName, format, strict) {
+ var i, mom, regex;
+
+ if (this._monthsParseExact) {
+ return handleStrictParse.call(this, monthName, format, strict);
+ }
+
+ if (!this._monthsParse) {
+ this._monthsParse = [];
+ this._longMonthsParse = [];
+ this._shortMonthsParse = [];
+ }
+
+ // TODO: add sorting
+ // Sorting makes sure if one month (or abbr) is a prefix of another
+ // see sorting in computeMonthsParse
+ for (i = 0; i < 12; i++) {
+ // make the regex if we don't have it already
+ mom = createUTC([2000, i]);
+ if (strict && !this._longMonthsParse[i]) {
+ this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');
+ this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');
+ }
+ if (!strict && !this._monthsParse[i]) {
+ regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
+ this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
+ }
+ // test the regex
+ if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {
+ return i;
+ } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {
+ return i;
+ } else if (!strict && this._monthsParse[i].test(monthName)) {
+ return i;
+ }
+ }
+ }
+
+ // MOMENTS
+
+ function setMonth (mom, value) {
+ var dayOfMonth;
+
+ if (!mom.isValid()) {
+ // No op
+ return mom;
+ }
+
+ if (typeof value === 'string') {
+ if (/^\d+$/.test(value)) {
+ value = toInt(value);
+ } else {
+ value = mom.localeData().monthsParse(value);
+ // TODO: Another silent failure?
+ if (!isNumber(value)) {
+ return mom;
+ }
+ }
+ }
+
+ dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));
+ mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
+ return mom;
+ }
+
+ function getSetMonth (value) {
+ if (value != null) {
+ setMonth(this, value);
+ hooks.updateOffset(this, true);
+ return this;
+ } else {
+ return get(this, 'Month');
+ }
+ }
+
+ function getDaysInMonth () {
+ return daysInMonth(this.year(), this.month());
+ }
+
+ var defaultMonthsShortRegex = matchWord;
+ function monthsShortRegex (isStrict) {
+ if (this._monthsParseExact) {
+ if (!hasOwnProp(this, '_monthsRegex')) {
+ computeMonthsParse.call(this);
+ }
+ if (isStrict) {
+ return this._monthsShortStrictRegex;
+ } else {
+ return this._monthsShortRegex;
+ }
+ } else {
+ if (!hasOwnProp(this, '_monthsShortRegex')) {
+ this._monthsShortRegex = defaultMonthsShortRegex;
+ }
+ return this._monthsShortStrictRegex && isStrict ?
+ this._monthsShortStrictRegex : this._monthsShortRegex;
+ }
+ }
+
+ var defaultMonthsRegex = matchWord;
+ function monthsRegex (isStrict) {
+ if (this._monthsParseExact) {
+ if (!hasOwnProp(this, '_monthsRegex')) {
+ computeMonthsParse.call(this);
+ }
+ if (isStrict) {
+ return this._monthsStrictRegex;
+ } else {
+ return this._monthsRegex;
+ }
+ } else {
+ if (!hasOwnProp(this, '_monthsRegex')) {
+ this._monthsRegex = defaultMonthsRegex;
+ }
+ return this._monthsStrictRegex && isStrict ?
+ this._monthsStrictRegex : this._monthsRegex;
+ }
+ }
+
+ function computeMonthsParse () {
+ function cmpLenRev(a, b) {
+ return b.length - a.length;
+ }
+
+ var shortPieces = [], longPieces = [], mixedPieces = [],
+ i, mom;
+ for (i = 0; i < 12; i++) {
+ // make the regex if we don't have it already
+ mom = createUTC([2000, i]);
+ shortPieces.push(this.monthsShort(mom, ''));
+ longPieces.push(this.months(mom, ''));
+ mixedPieces.push(this.months(mom, ''));
+ mixedPieces.push(this.monthsShort(mom, ''));
+ }
+ // Sorting makes sure if one month (or abbr) is a prefix of another it
+ // will match the longer piece.
+ shortPieces.sort(cmpLenRev);
+ longPieces.sort(cmpLenRev);
+ mixedPieces.sort(cmpLenRev);
+ for (i = 0; i < 12; i++) {
+ shortPieces[i] = regexEscape(shortPieces[i]);
+ longPieces[i] = regexEscape(longPieces[i]);
+ }
+ for (i = 0; i < 24; i++) {
+ mixedPieces[i] = regexEscape(mixedPieces[i]);
+ }
+
+ this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
+ this._monthsShortRegex = this._monthsRegex;
+ this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
+ this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
+ }
+
+ function createDate (y, m, d, h, M, s, ms) {
+ // can't just apply() to create a date:
+ // https://stackoverflow.com/q/181348
+ var date;
+ // the date constructor remaps years 0-99 to 1900-1999
+ if (y < 100 && y >= 0) {
+ // preserve leap years using a full 400 year cycle, then reset
+ date = new Date(y + 400, m, d, h, M, s, ms);
+ if (isFinite(date.getFullYear())) {
+ date.setFullYear(y);
+ }
+ } else {
+ date = new Date(y, m, d, h, M, s, ms);
+ }
+
+ return date;
+ }
+
+ function createUTCDate (y) {
+ var date;
+ // the Date.UTC function remaps years 0-99 to 1900-1999
+ if (y < 100 && y >= 0) {
+ var args = Array.prototype.slice.call(arguments);
+ // preserve leap years using a full 400 year cycle, then reset
+ args[0] = y + 400;
+ date = new Date(Date.UTC.apply(null, args));
+ if (isFinite(date.getUTCFullYear())) {
+ date.setUTCFullYear(y);
+ }
+ } else {
+ date = new Date(Date.UTC.apply(null, arguments));
+ }
+
+ return date;
+ }
+
+ // start-of-first-week - start-of-year
+ function firstWeekOffset(year, dow, doy) {
+ var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
+ fwd = 7 + dow - doy,
+ // first-week day local weekday -- which local weekday is fwd
+ fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
+
+ return -fwdlw + fwd - 1;
+ }
+
+ // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
+ function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
+ var localWeekday = (7 + weekday - dow) % 7,
+ weekOffset = firstWeekOffset(year, dow, doy),
+ dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
+ resYear, resDayOfYear;
+
+ if (dayOfYear <= 0) {
+ resYear = year - 1;
+ resDayOfYear = daysInYear(resYear) + dayOfYear;
+ } else if (dayOfYear > daysInYear(year)) {
+ resYear = year + 1;
+ resDayOfYear = dayOfYear - daysInYear(year);
+ } else {
+ resYear = year;
+ resDayOfYear = dayOfYear;
+ }
+
+ return {
+ year: resYear,
+ dayOfYear: resDayOfYear
+ };
+ }
+
+ function weekOfYear(mom, dow, doy) {
+ var weekOffset = firstWeekOffset(mom.year(), dow, doy),
+ week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
+ resWeek, resYear;
+
+ if (week < 1) {
+ resYear = mom.year() - 1;
+ resWeek = week + weeksInYear(resYear, dow, doy);
+ } else if (week > weeksInYear(mom.year(), dow, doy)) {
+ resWeek = week - weeksInYear(mom.year(), dow, doy);
+ resYear = mom.year() + 1;
+ } else {
+ resYear = mom.year();
+ resWeek = week;
+ }
+
+ return {
+ week: resWeek,
+ year: resYear
+ };
+ }
+
+ function weeksInYear(year, dow, doy) {
+ var weekOffset = firstWeekOffset(year, dow, doy),
+ weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
+ return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
+ }
+
+ // FORMATTING
+
+ addFormatToken('w', ['ww', 2], 'wo', 'week');
+ addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
+
+ // ALIASES
+
+ addUnitAlias('week', 'w');
+ addUnitAlias('isoWeek', 'W');
+
+ // PRIORITIES
+
+ addUnitPriority('week', 5);
+ addUnitPriority('isoWeek', 5);
+
+ // PARSING
+
+ addRegexToken('w', match1to2);
+ addRegexToken('ww', match1to2, match2);
+ addRegexToken('W', match1to2);
+ addRegexToken('WW', match1to2, match2);
+
+ addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {
+ week[token.substr(0, 1)] = toInt(input);
+ });
+
+ // HELPERS
+
+ // LOCALES
+
+ function localeWeek (mom) {
+ return weekOfYear(mom, this._week.dow, this._week.doy).week;
+ }
+
+ var defaultLocaleWeek = {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 6th is the first week of the year.
+ };
+
+ function localeFirstDayOfWeek () {
+ return this._week.dow;
+ }
+
+ function localeFirstDayOfYear () {
+ return this._week.doy;
+ }
+
+ // MOMENTS
+
+ function getSetWeek (input) {
+ var week = this.localeData().week(this);
+ return input == null ? week : this.add((input - week) * 7, 'd');
+ }
+
+ function getSetISOWeek (input) {
+ var week = weekOfYear(this, 1, 4).week;
+ return input == null ? week : this.add((input - week) * 7, 'd');
+ }
+
+ // FORMATTING
+
+ addFormatToken('d', 0, 'do', 'day');
+
+ addFormatToken('dd', 0, 0, function (format) {
+ return this.localeData().weekdaysMin(this, format);
+ });
+
+ addFormatToken('ddd', 0, 0, function (format) {
+ return this.localeData().weekdaysShort(this, format);
+ });
+
+ addFormatToken('dddd', 0, 0, function (format) {
+ return this.localeData().weekdays(this, format);
+ });
+
+ addFormatToken('e', 0, 0, 'weekday');
+ addFormatToken('E', 0, 0, 'isoWeekday');
+
+ // ALIASES
+
+ addUnitAlias('day', 'd');
+ addUnitAlias('weekday', 'e');
+ addUnitAlias('isoWeekday', 'E');
+
+ // PRIORITY
+ addUnitPriority('day', 11);
+ addUnitPriority('weekday', 11);
+ addUnitPriority('isoWeekday', 11);
+
+ // PARSING
+
+ addRegexToken('d', match1to2);
+ addRegexToken('e', match1to2);
+ addRegexToken('E', match1to2);
+ addRegexToken('dd', function (isStrict, locale) {
+ return locale.weekdaysMinRegex(isStrict);
+ });
+ addRegexToken('ddd', function (isStrict, locale) {
+ return locale.weekdaysShortRegex(isStrict);
+ });
+ addRegexToken('dddd', function (isStrict, locale) {
+ return locale.weekdaysRegex(isStrict);
+ });
+
+ addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
+ var weekday = config._locale.weekdaysParse(input, token, config._strict);
+ // if we didn't get a weekday name, mark the date as invalid
+ if (weekday != null) {
+ week.d = weekday;
+ } else {
+ getParsingFlags(config).invalidWeekday = input;
+ }
+ });
+
+ addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
+ week[token] = toInt(input);
+ });
+
+ // HELPERS
+
+ function parseWeekday(input, locale) {
+ if (typeof input !== 'string') {
+ return input;
+ }
+
+ if (!isNaN(input)) {
+ return parseInt(input, 10);
+ }
+
+ input = locale.weekdaysParse(input);
+ if (typeof input === 'number') {
+ return input;
+ }
+
+ return null;
+ }
+
+ function parseIsoWeekday(input, locale) {
+ if (typeof input === 'string') {
+ return locale.weekdaysParse(input) % 7 || 7;
+ }
+ return isNaN(input) ? null : input;
+ }
+
+ // LOCALES
+ function shiftWeekdays (ws, n) {
+ return ws.slice(n, 7).concat(ws.slice(0, n));
+ }
+
+ var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');
+ function localeWeekdays (m, format) {
+ var weekdays = isArray(this._weekdays) ? this._weekdays :
+ this._weekdays[(m && m !== true && this._weekdays.isFormat.test(format)) ? 'format' : 'standalone'];
+ return (m === true) ? shiftWeekdays(weekdays, this._week.dow)
+ : (m) ? weekdays[m.day()] : weekdays;
+ }
+
+ var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');
+ function localeWeekdaysShort (m) {
+ return (m === true) ? shiftWeekdays(this._weekdaysShort, this._week.dow)
+ : (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;
+ }
+
+ var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');
+ function localeWeekdaysMin (m) {
+ return (m === true) ? shiftWeekdays(this._weekdaysMin, this._week.dow)
+ : (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;
+ }
+
+ function handleStrictParse$1(weekdayName, format, strict) {
+ var i, ii, mom, llc = weekdayName.toLocaleLowerCase();
+ if (!this._weekdaysParse) {
+ this._weekdaysParse = [];
+ this._shortWeekdaysParse = [];
+ this._minWeekdaysParse = [];
+
+ for (i = 0; i < 7; ++i) {
+ mom = createUTC([2000, 1]).day(i);
+ this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();
+ this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();
+ this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
+ }
+ }
+
+ if (strict) {
+ if (format === 'dddd') {
+ ii = indexOf.call(this._weekdaysParse, llc);
+ return ii !== -1 ? ii : null;
+ } else if (format === 'ddd') {
+ ii = indexOf.call(this._shortWeekdaysParse, llc);
+ return ii !== -1 ? ii : null;
+ } else {
+ ii = indexOf.call(this._minWeekdaysParse, llc);
+ return ii !== -1 ? ii : null;
+ }
+ } else {
+ if (format === 'dddd') {
+ ii = indexOf.call(this._weekdaysParse, llc);
+ if (ii !== -1) {
+ return ii;
+ }
+ ii = indexOf.call(this._shortWeekdaysParse, llc);
+ if (ii !== -1) {
+ return ii;
+ }
+ ii = indexOf.call(this._minWeekdaysParse, llc);
+ return ii !== -1 ? ii : null;
+ } else if (format === 'ddd') {
+ ii = indexOf.call(this._shortWeekdaysParse, llc);
+ if (ii !== -1) {
+ return ii;
+ }
+ ii = indexOf.call(this._weekdaysParse, llc);
+ if (ii !== -1) {
+ return ii;
+ }
+ ii = indexOf.call(this._minWeekdaysParse, llc);
+ return ii !== -1 ? ii : null;
+ } else {
+ ii = indexOf.call(this._minWeekdaysParse, llc);
+ if (ii !== -1) {
+ return ii;
+ }
+ ii = indexOf.call(this._weekdaysParse, llc);
+ if (ii !== -1) {
+ return ii;
+ }
+ ii = indexOf.call(this._shortWeekdaysParse, llc);
+ return ii !== -1 ? ii : null;
+ }
+ }
+ }
+
+ function localeWeekdaysParse (weekdayName, format, strict) {
+ var i, mom, regex;
+
+ if (this._weekdaysParseExact) {
+ return handleStrictParse$1.call(this, weekdayName, format, strict);
+ }
+
+ if (!this._weekdaysParse) {
+ this._weekdaysParse = [];
+ this._minWeekdaysParse = [];
+ this._shortWeekdaysParse = [];
+ this._fullWeekdaysParse = [];
+ }
+
+ for (i = 0; i < 7; i++) {
+ // make the regex if we don't have it already
+
+ mom = createUTC([2000, 1]).day(i);
+ if (strict && !this._fullWeekdaysParse[i]) {
+ this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i');
+ this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i');
+ this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i');
+ }
+ if (!this._weekdaysParse[i]) {
+ regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
+ this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
+ }
+ // test the regex
+ if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {
+ return i;
+ } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {
+ return i;
+ } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {
+ return i;
+ } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
+ return i;
+ }
+ }
+ }
+
+ // MOMENTS
+
+ function getSetDayOfWeek (input) {
+ if (!this.isValid()) {
+ return input != null ? this : NaN;
+ }
+ var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
+ if (input != null) {
+ input = parseWeekday(input, this.localeData());
+ return this.add(input - day, 'd');
+ } else {
+ return day;
+ }
+ }
+
+ function getSetLocaleDayOfWeek (input) {
+ if (!this.isValid()) {
+ return input != null ? this : NaN;
+ }
+ var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
+ return input == null ? weekday : this.add(input - weekday, 'd');
+ }
+
+ function getSetISODayOfWeek (input) {
+ if (!this.isValid()) {
+ return input != null ? this : NaN;
+ }
+
+ // behaves the same as moment#day except
+ // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
+ // as a setter, sunday should belong to the previous week.
+
+ if (input != null) {
+ var weekday = parseIsoWeekday(input, this.localeData());
+ return this.day(this.day() % 7 ? weekday : weekday - 7);
+ } else {
+ return this.day() || 7;
+ }
+ }
+
+ var defaultWeekdaysRegex = matchWord;
+ function weekdaysRegex (isStrict) {
+ if (this._weekdaysParseExact) {
+ if (!hasOwnProp(this, '_weekdaysRegex')) {
+ computeWeekdaysParse.call(this);
+ }
+ if (isStrict) {
+ return this._weekdaysStrictRegex;
+ } else {
+ return this._weekdaysRegex;
+ }
+ } else {
+ if (!hasOwnProp(this, '_weekdaysRegex')) {
+ this._weekdaysRegex = defaultWeekdaysRegex;
+ }
+ return this._weekdaysStrictRegex && isStrict ?
+ this._weekdaysStrictRegex : this._weekdaysRegex;
+ }
+ }
+
+ var defaultWeekdaysShortRegex = matchWord;
+ function weekdaysShortRegex (isStrict) {
+ if (this._weekdaysParseExact) {
+ if (!hasOwnProp(this, '_weekdaysRegex')) {
+ computeWeekdaysParse.call(this);
+ }
+ if (isStrict) {
+ return this._weekdaysShortStrictRegex;
+ } else {
+ return this._weekdaysShortRegex;
+ }
+ } else {
+ if (!hasOwnProp(this, '_weekdaysShortRegex')) {
+ this._weekdaysShortRegex = defaultWeekdaysShortRegex;
+ }
+ return this._weekdaysShortStrictRegex && isStrict ?
+ this._weekdaysShortStrictRegex : this._weekdaysShortRegex;
+ }
+ }
+
+ var defaultWeekdaysMinRegex = matchWord;
+ function weekdaysMinRegex (isStrict) {
+ if (this._weekdaysParseExact) {
+ if (!hasOwnProp(this, '_weekdaysRegex')) {
+ computeWeekdaysParse.call(this);
+ }
+ if (isStrict) {
+ return this._weekdaysMinStrictRegex;
+ } else {
+ return this._weekdaysMinRegex;
+ }
+ } else {
+ if (!hasOwnProp(this, '_weekdaysMinRegex')) {
+ this._weekdaysMinRegex = defaultWeekdaysMinRegex;
+ }
+ return this._weekdaysMinStrictRegex && isStrict ?
+ this._weekdaysMinStrictRegex : this._weekdaysMinRegex;
+ }
+ }
+
+
+ function computeWeekdaysParse () {
+ function cmpLenRev(a, b) {
+ return b.length - a.length;
+ }
+
+ var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],
+ i, mom, minp, shortp, longp;
+ for (i = 0; i < 7; i++) {
+ // make the regex if we don't have it already
+ mom = createUTC([2000, 1]).day(i);
+ minp = this.weekdaysMin(mom, '');
+ shortp = this.weekdaysShort(mom, '');
+ longp = this.weekdays(mom, '');
+ minPieces.push(minp);
+ shortPieces.push(shortp);
+ longPieces.push(longp);
+ mixedPieces.push(minp);
+ mixedPieces.push(shortp);
+ mixedPieces.push(longp);
+ }
+ // Sorting makes sure if one weekday (or abbr) is a prefix of another it
+ // will match the longer piece.
+ minPieces.sort(cmpLenRev);
+ shortPieces.sort(cmpLenRev);
+ longPieces.sort(cmpLenRev);
+ mixedPieces.sort(cmpLenRev);
+ for (i = 0; i < 7; i++) {
+ shortPieces[i] = regexEscape(shortPieces[i]);
+ longPieces[i] = regexEscape(longPieces[i]);
+ mixedPieces[i] = regexEscape(mixedPieces[i]);
+ }
+
+ this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
+ this._weekdaysShortRegex = this._weekdaysRegex;
+ this._weekdaysMinRegex = this._weekdaysRegex;
+
+ this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
+ this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
+ this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');
+ }
+
+ // FORMATTING
+
+ function hFormat() {
+ return this.hours() % 12 || 12;
+ }
+
+ function kFormat() {
+ return this.hours() || 24;
+ }
+
+ addFormatToken('H', ['HH', 2], 0, 'hour');
+ addFormatToken('h', ['hh', 2], 0, hFormat);
+ addFormatToken('k', ['kk', 2], 0, kFormat);
+
+ addFormatToken('hmm', 0, 0, function () {
+ return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
+ });
+
+ addFormatToken('hmmss', 0, 0, function () {
+ return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +
+ zeroFill(this.seconds(), 2);
+ });
+
+ addFormatToken('Hmm', 0, 0, function () {
+ return '' + this.hours() + zeroFill(this.minutes(), 2);
+ });
+
+ addFormatToken('Hmmss', 0, 0, function () {
+ return '' + this.hours() + zeroFill(this.minutes(), 2) +
+ zeroFill(this.seconds(), 2);
+ });
+
+ function meridiem (token, lowercase) {
+ addFormatToken(token, 0, 0, function () {
+ return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);
+ });
+ }
+
+ meridiem('a', true);
+ meridiem('A', false);
+
+ // ALIASES
+
+ addUnitAlias('hour', 'h');
+
+ // PRIORITY
+ addUnitPriority('hour', 13);
+
+ // PARSING
+
+ function matchMeridiem (isStrict, locale) {
+ return locale._meridiemParse;
+ }
+
+ addRegexToken('a', matchMeridiem);
+ addRegexToken('A', matchMeridiem);
+ addRegexToken('H', match1to2);
+ addRegexToken('h', match1to2);
+ addRegexToken('k', match1to2);
+ addRegexToken('HH', match1to2, match2);
+ addRegexToken('hh', match1to2, match2);
+ addRegexToken('kk', match1to2, match2);
+
+ addRegexToken('hmm', match3to4);
+ addRegexToken('hmmss', match5to6);
+ addRegexToken('Hmm', match3to4);
+ addRegexToken('Hmmss', match5to6);
+
+ addParseToken(['H', 'HH'], HOUR);
+ addParseToken(['k', 'kk'], function (input, array, config) {
+ var kInput = toInt(input);
+ array[HOUR] = kInput === 24 ? 0 : kInput;
+ });
+ addParseToken(['a', 'A'], function (input, array, config) {
+ config._isPm = config._locale.isPM(input);
+ config._meridiem = input;
+ });
+ addParseToken(['h', 'hh'], function (input, array, config) {
+ array[HOUR] = toInt(input);
+ getParsingFlags(config).bigHour = true;
+ });
+ addParseToken('hmm', function (input, array, config) {
+ var pos = input.length - 2;
+ array[HOUR] = toInt(input.substr(0, pos));
+ array[MINUTE] = toInt(input.substr(pos));
+ getParsingFlags(config).bigHour = true;
+ });
+ addParseToken('hmmss', function (input, array, config) {
+ var pos1 = input.length - 4;
+ var pos2 = input.length - 2;
+ array[HOUR] = toInt(input.substr(0, pos1));
+ array[MINUTE] = toInt(input.substr(pos1, 2));
+ array[SECOND] = toInt(input.substr(pos2));
+ getParsingFlags(config).bigHour = true;
+ });
+ addParseToken('Hmm', function (input, array, config) {
+ var pos = input.length - 2;
+ array[HOUR] = toInt(input.substr(0, pos));
+ array[MINUTE] = toInt(input.substr(pos));
+ });
+ addParseToken('Hmmss', function (input, array, config) {
+ var pos1 = input.length - 4;
+ var pos2 = input.length - 2;
+ array[HOUR] = toInt(input.substr(0, pos1));
+ array[MINUTE] = toInt(input.substr(pos1, 2));
+ array[SECOND] = toInt(input.substr(pos2));
+ });
+
+ // LOCALES
+
+ function localeIsPM (input) {
+ // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
+ // Using charAt should be more compatible.
+ return ((input + '').toLowerCase().charAt(0) === 'p');
+ }
+
+ var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i;
+ function localeMeridiem (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'pm' : 'PM';
+ } else {
+ return isLower ? 'am' : 'AM';
+ }
+ }
+
+
+ // MOMENTS
+
+ // Setting the hour should keep the time, because the user explicitly
+ // specified which hour they want. So trying to maintain the same hour (in
+ // a new timezone) makes sense. Adding/subtracting hours does not follow
+ // this rule.
+ var getSetHour = makeGetSet('Hours', true);
+
+ var baseConfig = {
+ calendar: defaultCalendar,
+ longDateFormat: defaultLongDateFormat,
+ invalidDate: defaultInvalidDate,
+ ordinal: defaultOrdinal,
+ dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
+ relativeTime: defaultRelativeTime,
+
+ months: defaultLocaleMonths,
+ monthsShort: defaultLocaleMonthsShort,
+
+ week: defaultLocaleWeek,
+
+ weekdays: defaultLocaleWeekdays,
+ weekdaysMin: defaultLocaleWeekdaysMin,
+ weekdaysShort: defaultLocaleWeekdaysShort,
+
+ meridiemParse: defaultLocaleMeridiemParse
+ };
+
+ // internal storage for locale config files
+ var locales = {};
+ var localeFamilies = {};
+ var globalLocale;
+
+ function normalizeLocale(key) {
+ return key ? key.toLowerCase().replace('_', '-') : key;
+ }
+
+ // pick the locale from the array
+ // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
+ // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
+ function chooseLocale(names) {
+ var i = 0, j, next, locale, split;
+
+ while (i < names.length) {
+ split = normalizeLocale(names[i]).split('-');
+ j = split.length;
+ next = normalizeLocale(names[i + 1]);
+ next = next ? next.split('-') : null;
+ while (j > 0) {
+ locale = loadLocale(split.slice(0, j).join('-'));
+ if (locale) {
+ return locale;
+ }
+ if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
+ //the next array item is better than a shallower substring of this one
+ break;
+ }
+ j--;
+ }
+ i++;
+ }
+ return globalLocale;
+ }
+
+ function loadLocale(name) {
+ var oldLocale = null;
+ // TODO: Find a better way to register and load all the locales in Node
+ if (!locales[name] && ('object' !== 'undefined') &&
+ module && module.exports) {
+ try {
+ oldLocale = globalLocale._abbr;
+ var aliasedRequire = commonjsRequire;
+ aliasedRequire('./locale/' + name);
+ getSetGlobalLocale(oldLocale);
+ } catch (e) {}
+ }
+ return locales[name];
+ }
+
+ // This function will load locale and then set the global locale. If
+ // no arguments are passed in, it will simply return the current global
+ // locale key.
+ function getSetGlobalLocale (key, values) {
+ var data;
+ if (key) {
+ if (isUndefined(values)) {
+ data = getLocale(key);
+ }
+ else {
+ data = defineLocale(key, values);
+ }
+
+ if (data) {
+ // moment.duration._locale = moment._locale = data;
+ globalLocale = data;
+ }
+ else {
+ if ((typeof console !== 'undefined') && console.warn) {
+ //warn user if arguments are passed but the locale could not be set
+ console.warn('Locale ' + key + ' not found. Did you forget to load it?');
+ }
+ }
+ }
+
+ return globalLocale._abbr;
+ }
+
+ function defineLocale (name, config) {
+ if (config !== null) {
+ var locale, parentConfig = baseConfig;
+ config.abbr = name;
+ if (locales[name] != null) {
+ deprecateSimple('defineLocaleOverride',
+ 'use moment.updateLocale(localeName, config) to change ' +
+ 'an existing locale. moment.defineLocale(localeName, ' +
+ 'config) should only be used for creating a new locale ' +
+ 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');
+ parentConfig = locales[name]._config;
+ } else if (config.parentLocale != null) {
+ if (locales[config.parentLocale] != null) {
+ parentConfig = locales[config.parentLocale]._config;
+ } else {
+ locale = loadLocale(config.parentLocale);
+ if (locale != null) {
+ parentConfig = locale._config;
+ } else {
+ if (!localeFamilies[config.parentLocale]) {
+ localeFamilies[config.parentLocale] = [];
+ }
+ localeFamilies[config.parentLocale].push({
+ name: name,
+ config: config
+ });
+ return null;
+ }
+ }
+ }
+ locales[name] = new Locale(mergeConfigs(parentConfig, config));
+
+ if (localeFamilies[name]) {
+ localeFamilies[name].forEach(function (x) {
+ defineLocale(x.name, x.config);
+ });
+ }
+
+ // backwards compat for now: also set the locale
+ // make sure we set the locale AFTER all child locales have been
+ // created, so we won't end up with the child locale set.
+ getSetGlobalLocale(name);
+
+
+ return locales[name];
+ } else {
+ // useful for testing
+ delete locales[name];
+ return null;
+ }
+ }
+
+ function updateLocale(name, config) {
+ if (config != null) {
+ var locale, tmpLocale, parentConfig = baseConfig;
+ // MERGE
+ tmpLocale = loadLocale(name);
+ if (tmpLocale != null) {
+ parentConfig = tmpLocale._config;
+ }
+ config = mergeConfigs(parentConfig, config);
+ locale = new Locale(config);
+ locale.parentLocale = locales[name];
+ locales[name] = locale;
+
+ // backwards compat for now: also set the locale
+ getSetGlobalLocale(name);
+ } else {
+ // pass null for config to unupdate, useful for tests
+ if (locales[name] != null) {
+ if (locales[name].parentLocale != null) {
+ locales[name] = locales[name].parentLocale;
+ } else if (locales[name] != null) {
+ delete locales[name];
+ }
+ }
+ }
+ return locales[name];
+ }
+
+ // returns locale data
+ function getLocale (key) {
+ var locale;
+
+ if (key && key._locale && key._locale._abbr) {
+ key = key._locale._abbr;
+ }
+
+ if (!key) {
+ return globalLocale;
+ }
+
+ if (!isArray(key)) {
+ //short-circuit everything else
+ locale = loadLocale(key);
+ if (locale) {
+ return locale;
+ }
+ key = [key];
+ }
+
+ return chooseLocale(key);
+ }
+
+ function listLocales() {
+ return keys(locales);
+ }
+
+ function checkOverflow (m) {
+ var overflow;
+ var a = m._a;
+
+ if (a && getParsingFlags(m).overflow === -2) {
+ overflow =
+ a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :
+ a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :
+ a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :
+ a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :
+ a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :
+ a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :
+ -1;
+
+ if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
+ overflow = DATE;
+ }
+ if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
+ overflow = WEEK;
+ }
+ if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
+ overflow = WEEKDAY;
+ }
+
+ getParsingFlags(m).overflow = overflow;
+ }
+
+ return m;
+ }
+
+ // Pick the first defined of two or three arguments.
+ function defaults(a, b, c) {
+ if (a != null) {
+ return a;
+ }
+ if (b != null) {
+ return b;
+ }
+ return c;
+ }
+
+ function currentDateArray(config) {
+ // hooks is actually the exported moment object
+ var nowValue = new Date(hooks.now());
+ if (config._useUTC) {
+ return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];
+ }
+ return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
+ }
+
+ // convert an array to a date.
+ // the array should mirror the parameters below
+ // note: all values past the year are optional and will default to the lowest possible value.
+ // [year, month, day , hour, minute, second, millisecond]
+ function configFromArray (config) {
+ var i, date, input = [], currentDate, expectedWeekday, yearToUse;
+
+ if (config._d) {
+ return;
+ }
+
+ currentDate = currentDateArray(config);
+
+ //compute day of the year from weeks and weekdays
+ if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
+ dayOfYearFromWeekInfo(config);
+ }
+
+ //if the day of the year is set, figure out what it is
+ if (config._dayOfYear != null) {
+ yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
+
+ if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {
+ getParsingFlags(config)._overflowDayOfYear = true;
+ }
+
+ date = createUTCDate(yearToUse, 0, config._dayOfYear);
+ config._a[MONTH] = date.getUTCMonth();
+ config._a[DATE] = date.getUTCDate();
+ }
+
+ // Default to current date.
+ // * if no year, month, day of month are given, default to today
+ // * if day of month is given, default month and year
+ // * if month is given, default only year
+ // * if year is given, don't default anything
+ for (i = 0; i < 3 && config._a[i] == null; ++i) {
+ config._a[i] = input[i] = currentDate[i];
+ }
+
+ // Zero out whatever was not defaulted, including time
+ for (; i < 7; i++) {
+ config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
+ }
+
+ // Check for 24:00:00.000
+ if (config._a[HOUR] === 24 &&
+ config._a[MINUTE] === 0 &&
+ config._a[SECOND] === 0 &&
+ config._a[MILLISECOND] === 0) {
+ config._nextDay = true;
+ config._a[HOUR] = 0;
+ }
+
+ config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);
+ expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();
+
+ // Apply timezone offset from input. The actual utcOffset can be changed
+ // with parseZone.
+ if (config._tzm != null) {
+ config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
+ }
+
+ if (config._nextDay) {
+ config._a[HOUR] = 24;
+ }
+
+ // check for mismatching day of week
+ if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {
+ getParsingFlags(config).weekdayMismatch = true;
+ }
+ }
+
+ function dayOfYearFromWeekInfo(config) {
+ var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;
+
+ w = config._w;
+ if (w.GG != null || w.W != null || w.E != null) {
+ dow = 1;
+ doy = 4;
+
+ // TODO: We need to take the current isoWeekYear, but that depends on
+ // how we interpret now (local, utc, fixed offset). So create
+ // a now version of current config (take local/utc/offset flags, and
+ // create now).
+ weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);
+ week = defaults(w.W, 1);
+ weekday = defaults(w.E, 1);
+ if (weekday < 1 || weekday > 7) {
+ weekdayOverflow = true;
+ }
+ } else {
+ dow = config._locale._week.dow;
+ doy = config._locale._week.doy;
+
+ var curWeek = weekOfYear(createLocal(), dow, doy);
+
+ weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
+
+ // Default to current week.
+ week = defaults(w.w, curWeek.week);
+
+ if (w.d != null) {
+ // weekday -- low day numbers are considered next week
+ weekday = w.d;
+ if (weekday < 0 || weekday > 6) {
+ weekdayOverflow = true;
+ }
+ } else if (w.e != null) {
+ // local weekday -- counting starts from beginning of week
+ weekday = w.e + dow;
+ if (w.e < 0 || w.e > 6) {
+ weekdayOverflow = true;
+ }
+ } else {
+ // default to beginning of week
+ weekday = dow;
+ }
+ }
+ if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
+ getParsingFlags(config)._overflowWeeks = true;
+ } else if (weekdayOverflow != null) {
+ getParsingFlags(config)._overflowWeekday = true;
+ } else {
+ temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
+ config._a[YEAR] = temp.year;
+ config._dayOfYear = temp.dayOfYear;
+ }
+ }
+
+ // iso 8601 regex
+ // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
+ var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
+ var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
+
+ var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/;
+
+ var isoDates = [
+ ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
+ ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
+ ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
+ ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
+ ['YYYY-DDD', /\d{4}-\d{3}/],
+ ['YYYY-MM', /\d{4}-\d\d/, false],
+ ['YYYYYYMMDD', /[+-]\d{10}/],
+ ['YYYYMMDD', /\d{8}/],
+ // YYYYMM is NOT allowed by the standard
+ ['GGGG[W]WWE', /\d{4}W\d{3}/],
+ ['GGGG[W]WW', /\d{4}W\d{2}/, false],
+ ['YYYYDDD', /\d{7}/]
+ ];
+
+ // iso time formats and regexes
+ var isoTimes = [
+ ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
+ ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
+ ['HH:mm:ss', /\d\d:\d\d:\d\d/],
+ ['HH:mm', /\d\d:\d\d/],
+ ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
+ ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
+ ['HHmmss', /\d\d\d\d\d\d/],
+ ['HHmm', /\d\d\d\d/],
+ ['HH', /\d\d/]
+ ];
+
+ var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i;
+
+ // date from iso format
+ function configFromISO(config) {
+ var i, l,
+ string = config._i,
+ match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
+ allowTime, dateFormat, timeFormat, tzFormat;
+
+ if (match) {
+ getParsingFlags(config).iso = true;
+
+ for (i = 0, l = isoDates.length; i < l; i++) {
+ if (isoDates[i][1].exec(match[1])) {
+ dateFormat = isoDates[i][0];
+ allowTime = isoDates[i][2] !== false;
+ break;
+ }
+ }
+ if (dateFormat == null) {
+ config._isValid = false;
+ return;
+ }
+ if (match[3]) {
+ for (i = 0, l = isoTimes.length; i < l; i++) {
+ if (isoTimes[i][1].exec(match[3])) {
+ // match[2] should be 'T' or space
+ timeFormat = (match[2] || ' ') + isoTimes[i][0];
+ break;
+ }
+ }
+ if (timeFormat == null) {
+ config._isValid = false;
+ return;
+ }
+ }
+ if (!allowTime && timeFormat != null) {
+ config._isValid = false;
+ return;
+ }
+ if (match[4]) {
+ if (tzRegex.exec(match[4])) {
+ tzFormat = 'Z';
+ } else {
+ config._isValid = false;
+ return;
+ }
+ }
+ config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
+ configFromStringAndFormat(config);
+ } else {
+ config._isValid = false;
+ }
+ }
+
+ // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
+ var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;
+
+ function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {
+ var result = [
+ untruncateYear(yearStr),
+ defaultLocaleMonthsShort.indexOf(monthStr),
+ parseInt(dayStr, 10),
+ parseInt(hourStr, 10),
+ parseInt(minuteStr, 10)
+ ];
+
+ if (secondStr) {
+ result.push(parseInt(secondStr, 10));
+ }
+
+ return result;
+ }
+
+ function untruncateYear(yearStr) {
+ var year = parseInt(yearStr, 10);
+ if (year <= 49) {
+ return 2000 + year;
+ } else if (year <= 999) {
+ return 1900 + year;
+ }
+ return year;
+ }
+
+ function preprocessRFC2822(s) {
+ // Remove comments and folding whitespace and replace multiple-spaces with a single space
+ return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').replace(/^\s\s*/, '').replace(/\s\s*$/, '');
+ }
+
+ function checkWeekday(weekdayStr, parsedInput, config) {
+ if (weekdayStr) {
+ // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.
+ var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
+ weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();
+ if (weekdayProvided !== weekdayActual) {
+ getParsingFlags(config).weekdayMismatch = true;
+ config._isValid = false;
+ return false;
+ }
+ }
+ return true;
+ }
+
+ var obsOffsets = {
+ UT: 0,
+ GMT: 0,
+ EDT: -4 * 60,
+ EST: -5 * 60,
+ CDT: -5 * 60,
+ CST: -6 * 60,
+ MDT: -6 * 60,
+ MST: -7 * 60,
+ PDT: -7 * 60,
+ PST: -8 * 60
+ };
+
+ function calculateOffset(obsOffset, militaryOffset, numOffset) {
+ if (obsOffset) {
+ return obsOffsets[obsOffset];
+ } else if (militaryOffset) {
+ // the only allowed military tz is Z
+ return 0;
+ } else {
+ var hm = parseInt(numOffset, 10);
+ var m = hm % 100, h = (hm - m) / 100;
+ return h * 60 + m;
+ }
+ }
+
+ // date and time from ref 2822 format
+ function configFromRFC2822(config) {
+ var match = rfc2822.exec(preprocessRFC2822(config._i));
+ if (match) {
+ var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);
+ if (!checkWeekday(match[1], parsedArray, config)) {
+ return;
+ }
+
+ config._a = parsedArray;
+ config._tzm = calculateOffset(match[8], match[9], match[10]);
+
+ config._d = createUTCDate.apply(null, config._a);
+ config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
+
+ getParsingFlags(config).rfc2822 = true;
+ } else {
+ config._isValid = false;
+ }
+ }
+
+ // date from iso format or fallback
+ function configFromString(config) {
+ var matched = aspNetJsonRegex.exec(config._i);
+
+ if (matched !== null) {
+ config._d = new Date(+matched[1]);
+ return;
+ }
+
+ configFromISO(config);
+ if (config._isValid === false) {
+ delete config._isValid;
+ } else {
+ return;
+ }
+
+ configFromRFC2822(config);
+ if (config._isValid === false) {
+ delete config._isValid;
+ } else {
+ return;
+ }
+
+ // Final attempt, use Input Fallback
+ hooks.createFromInputFallback(config);
+ }
+
+ hooks.createFromInputFallback = deprecate(
+ 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
+ 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
+ 'discouraged and will be removed in an upcoming major release. Please refer to ' +
+ 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',
+ function (config) {
+ config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
+ }
+ );
+
+ // constant that refers to the ISO standard
+ hooks.ISO_8601 = function () {};
+
+ // constant that refers to the RFC 2822 form
+ hooks.RFC_2822 = function () {};
+
+ // date from string and format string
+ function configFromStringAndFormat(config) {
+ // TODO: Move this to another part of the creation flow to prevent circular deps
+ if (config._f === hooks.ISO_8601) {
+ configFromISO(config);
+ return;
+ }
+ if (config._f === hooks.RFC_2822) {
+ configFromRFC2822(config);
+ return;
+ }
+ config._a = [];
+ getParsingFlags(config).empty = true;
+
+ // This array is used to make a Date, either with `new Date` or `Date.UTC`
+ var string = '' + config._i,
+ i, parsedInput, tokens, token, skipped,
+ stringLength = string.length,
+ totalParsedInputLength = 0;
+
+ tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];
+
+ for (i = 0; i < tokens.length; i++) {
+ token = tokens[i];
+ parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
+ // console.log('token', token, 'parsedInput', parsedInput,
+ // 'regex', getParseRegexForToken(token, config));
+ if (parsedInput) {
+ skipped = string.substr(0, string.indexOf(parsedInput));
+ if (skipped.length > 0) {
+ getParsingFlags(config).unusedInput.push(skipped);
+ }
+ string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
+ totalParsedInputLength += parsedInput.length;
+ }
+ // don't parse if it's not a known token
+ if (formatTokenFunctions[token]) {
+ if (parsedInput) {
+ getParsingFlags(config).empty = false;
+ }
+ else {
+ getParsingFlags(config).unusedTokens.push(token);
+ }
+ addTimeToArrayFromToken(token, parsedInput, config);
+ }
+ else if (config._strict && !parsedInput) {
+ getParsingFlags(config).unusedTokens.push(token);
+ }
+ }
+
+ // add remaining unparsed input length to the string
+ getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;
+ if (string.length > 0) {
+ getParsingFlags(config).unusedInput.push(string);
+ }
+
+ // clear _12h flag if hour is <= 12
+ if (config._a[HOUR] <= 12 &&
+ getParsingFlags(config).bigHour === true &&
+ config._a[HOUR] > 0) {
+ getParsingFlags(config).bigHour = undefined;
+ }
+
+ getParsingFlags(config).parsedDateParts = config._a.slice(0);
+ getParsingFlags(config).meridiem = config._meridiem;
+ // handle meridiem
+ config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);
+
+ configFromArray(config);
+ checkOverflow(config);
+ }
+
+
+ function meridiemFixWrap (locale, hour, meridiem) {
+ var isPm;
+
+ if (meridiem == null) {
+ // nothing to do
+ return hour;
+ }
+ if (locale.meridiemHour != null) {
+ return locale.meridiemHour(hour, meridiem);
+ } else if (locale.isPM != null) {
+ // Fallback
+ isPm = locale.isPM(meridiem);
+ if (isPm && hour < 12) {
+ hour += 12;
+ }
+ if (!isPm && hour === 12) {
+ hour = 0;
+ }
+ return hour;
+ } else {
+ // this is not supposed to happen
+ return hour;
+ }
+ }
+
+ // date from string and array of format strings
+ function configFromStringAndArray(config) {
+ var tempConfig,
+ bestMoment,
+
+ scoreToBeat,
+ i,
+ currentScore;
+
+ if (config._f.length === 0) {
+ getParsingFlags(config).invalidFormat = true;
+ config._d = new Date(NaN);
+ return;
+ }
+
+ for (i = 0; i < config._f.length; i++) {
+ currentScore = 0;
+ tempConfig = copyConfig({}, config);
+ if (config._useUTC != null) {
+ tempConfig._useUTC = config._useUTC;
+ }
+ tempConfig._f = config._f[i];
+ configFromStringAndFormat(tempConfig);
+
+ if (!isValid(tempConfig)) {
+ continue;
+ }
+
+ // if there is any input that was not parsed add a penalty for that format
+ currentScore += getParsingFlags(tempConfig).charsLeftOver;
+
+ //or tokens
+ currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
+
+ getParsingFlags(tempConfig).score = currentScore;
+
+ if (scoreToBeat == null || currentScore < scoreToBeat) {
+ scoreToBeat = currentScore;
+ bestMoment = tempConfig;
+ }
+ }
+
+ extend(config, bestMoment || tempConfig);
+ }
+
+ function configFromObject(config) {
+ if (config._d) {
+ return;
+ }
+
+ var i = normalizeObjectUnits(config._i);
+ config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {
+ return obj && parseInt(obj, 10);
+ });
+
+ configFromArray(config);
+ }
+
+ function createFromConfig (config) {
+ var res = new Moment(checkOverflow(prepareConfig(config)));
+ if (res._nextDay) {
+ // Adding is smart enough around DST
+ res.add(1, 'd');
+ res._nextDay = undefined;
+ }
+
+ return res;
+ }
+
+ function prepareConfig (config) {
+ var input = config._i,
+ format = config._f;
+
+ config._locale = config._locale || getLocale(config._l);
+
+ if (input === null || (format === undefined && input === '')) {
+ return createInvalid({nullInput: true});
+ }
+
+ if (typeof input === 'string') {
+ config._i = input = config._locale.preparse(input);
+ }
+
+ if (isMoment(input)) {
+ return new Moment(checkOverflow(input));
+ } else if (isDate(input)) {
+ config._d = input;
+ } else if (isArray(format)) {
+ configFromStringAndArray(config);
+ } else if (format) {
+ configFromStringAndFormat(config);
+ } else {
+ configFromInput(config);
+ }
+
+ if (!isValid(config)) {
+ config._d = null;
+ }
+
+ return config;
+ }
+
+ function configFromInput(config) {
+ var input = config._i;
+ if (isUndefined(input)) {
+ config._d = new Date(hooks.now());
+ } else if (isDate(input)) {
+ config._d = new Date(input.valueOf());
+ } else if (typeof input === 'string') {
+ configFromString(config);
+ } else if (isArray(input)) {
+ config._a = map(input.slice(0), function (obj) {
+ return parseInt(obj, 10);
+ });
+ configFromArray(config);
+ } else if (isObject(input)) {
+ configFromObject(config);
+ } else if (isNumber(input)) {
+ // from milliseconds
+ config._d = new Date(input);
+ } else {
+ hooks.createFromInputFallback(config);
+ }
+ }
+
+ function createLocalOrUTC (input, format, locale, strict, isUTC) {
+ var c = {};
+
+ if (locale === true || locale === false) {
+ strict = locale;
+ locale = undefined;
+ }
+
+ if ((isObject(input) && isObjectEmpty(input)) ||
+ (isArray(input) && input.length === 0)) {
+ input = undefined;
+ }
+ // object construction must be done this way.
+ // https://github.com/moment/moment/issues/1423
+ c._isAMomentObject = true;
+ c._useUTC = c._isUTC = isUTC;
+ c._l = locale;
+ c._i = input;
+ c._f = format;
+ c._strict = strict;
+
+ return createFromConfig(c);
+ }
+
+ function createLocal (input, format, locale, strict) {
+ return createLocalOrUTC(input, format, locale, strict, false);
+ }
+
+ var prototypeMin = deprecate(
+ 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
+ function () {
+ var other = createLocal.apply(null, arguments);
+ if (this.isValid() && other.isValid()) {
+ return other < this ? this : other;
+ } else {
+ return createInvalid();
+ }
+ }
+ );
+
+ var prototypeMax = deprecate(
+ 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
+ function () {
+ var other = createLocal.apply(null, arguments);
+ if (this.isValid() && other.isValid()) {
+ return other > this ? this : other;
+ } else {
+ return createInvalid();
+ }
+ }
+ );
+
+ // Pick a moment m from moments so that m[fn](other) is true for all
+ // other. This relies on the function fn to be transitive.
+ //
+ // moments should either be an array of moment objects or an array, whose
+ // first element is an array of moment objects.
+ function pickBy(fn, moments) {
+ var res, i;
+ if (moments.length === 1 && isArray(moments[0])) {
+ moments = moments[0];
+ }
+ if (!moments.length) {
+ return createLocal();
+ }
+ res = moments[0];
+ for (i = 1; i < moments.length; ++i) {
+ if (!moments[i].isValid() || moments[i][fn](res)) {
+ res = moments[i];
+ }
+ }
+ return res;
+ }
+
+ // TODO: Use [].sort instead?
+ function min () {
+ var args = [].slice.call(arguments, 0);
+
+ return pickBy('isBefore', args);
+ }
+
+ function max () {
+ var args = [].slice.call(arguments, 0);
+
+ return pickBy('isAfter', args);
+ }
+
+ var now = function () {
+ return Date.now ? Date.now() : +(new Date());
+ };
+
+ var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];
+
+ function isDurationValid(m) {
+ for (var key in m) {
+ if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {
+ return false;
+ }
+ }
+
+ var unitHasDecimal = false;
+ for (var i = 0; i < ordering.length; ++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;
+ }
+
+ function isValid$1() {
+ return this._isValid;
+ }
+
+ function createInvalid$1() {
+ return createDuration(NaN);
+ }
+
+ 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();
+ }
+
+ function isDuration (obj) {
+ return obj instanceof Duration;
+ }
+
+ function absRound (number) {
+ if (number < 0) {
+ return Math.round(-1 * number) * -1;
+ } else {
+ return Math.round(number);
+ }
+ }
+
+ // FORMATTING
+
+ function offset (token, separator) {
+ addFormatToken(token, 0, 0, function () {
+ var offset = this.utcOffset();
+ var sign = '+';
+ if (offset < 0) {
+ offset = -offset;
+ sign = '-';
+ }
+ return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);
+ });
+ }
+
+ offset('Z', ':');
+ offset('ZZ', '');
+
+ // PARSING
+
+ addRegexToken('Z', matchShortOffset);
+ addRegexToken('ZZ', matchShortOffset);
+ addParseToken(['Z', 'ZZ'], function (input, array, config) {
+ config._useUTC = true;
+ config._tzm = offsetFromString(matchShortOffset, input);
+ });
+
+ // HELPERS
+
+ // timezone chunker
+ // '+10:00' > ['10', '00']
+ // '-1530' > ['-15', '30']
+ var chunkOffset = /([\+\-]|\d\d)/gi;
+
+ function offsetFromString(matcher, string) {
+ var matches = (string || '').match(matcher);
+
+ if (matches === null) {
+ return null;
+ }
+
+ var chunk = matches[matches.length - 1] || [];
+ var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];
+ var minutes = +(parts[1] * 60) + toInt(parts[2]);
+
+ return minutes === 0 ?
+ 0 :
+ parts[0] === '+' ? minutes : -minutes;
+ }
+
+ // Return a moment from input, that is local/utc/zone equivalent to model.
+ function cloneWithOffset(input, model) {
+ var res, diff;
+ if (model._isUTC) {
+ res = model.clone();
+ diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();
+ // Use low-level api, because this fn is low-level api.
+ res._d.setTime(res._d.valueOf() + diff);
+ hooks.updateOffset(res, false);
+ return res;
+ } else {
+ return createLocal(input).local();
+ }
+ }
+
+ function getDateOffset (m) {
+ // On Firefox.24 Date#getTimezoneOffset returns a floating point.
+ // https://github.com/moment/moment/pull/1871
+ return -Math.round(m._d.getTimezoneOffset() / 15) * 15;
+ }
+
+ // HOOKS
+
+ // This function will be called whenever a moment is mutated.
+ // It is intended to keep the offset in sync with the timezone.
+ hooks.updateOffset = function () {};
+
+ // MOMENTS
+
+ // keepLocalTime = true means only change the timezone, without
+ // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
+ // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
+ // +0200, so we adjust the time as needed, to be valid.
+ //
+ // Keeping the time actually adds/subtracts (one hour)
+ // from the actual represented time. That is why we call updateOffset
+ // a second time. In case it wants us to change the offset again
+ // _changeInProgress == true case, then we have to adjust, because
+ // there is no such time in the given timezone.
+ function getSetOffset (input, keepLocalTime, keepMinutes) {
+ var offset = this._offset || 0,
+ localAdjust;
+ if (!this.isValid()) {
+ return input != null ? this : NaN;
+ }
+ if (input != null) {
+ if (typeof input === 'string') {
+ input = offsetFromString(matchShortOffset, input);
+ if (input === null) {
+ return this;
+ }
+ } else if (Math.abs(input) < 16 && !keepMinutes) {
+ input = input * 60;
+ }
+ if (!this._isUTC && keepLocalTime) {
+ localAdjust = getDateOffset(this);
+ }
+ this._offset = input;
+ this._isUTC = true;
+ if (localAdjust != null) {
+ this.add(localAdjust, 'm');
+ }
+ if (offset !== input) {
+ if (!keepLocalTime || this._changeInProgress) {
+ addSubtract(this, createDuration(input - offset, 'm'), 1, false);
+ } else if (!this._changeInProgress) {
+ this._changeInProgress = true;
+ hooks.updateOffset(this, true);
+ this._changeInProgress = null;
+ }
+ }
+ return this;
+ } else {
+ return this._isUTC ? offset : getDateOffset(this);
+ }
+ }
+
+ function getSetZone (input, keepLocalTime) {
+ if (input != null) {
+ if (typeof input !== 'string') {
+ input = -input;
+ }
+
+ this.utcOffset(input, keepLocalTime);
+
+ return this;
+ } else {
+ return -this.utcOffset();
+ }
+ }
+
+ function setOffsetToUTC (keepLocalTime) {
+ return this.utcOffset(0, keepLocalTime);
+ }
+
+ function setOffsetToLocal (keepLocalTime) {
+ if (this._isUTC) {
+ this.utcOffset(0, keepLocalTime);
+ this._isUTC = false;
+
+ if (keepLocalTime) {
+ this.subtract(getDateOffset(this), 'm');
+ }
+ }
+ return this;
+ }
+
+ function setOffsetToParsedOffset () {
+ if (this._tzm != null) {
+ this.utcOffset(this._tzm, false, true);
+ } else if (typeof this._i === 'string') {
+ var tZone = offsetFromString(matchOffset, this._i);
+ if (tZone != null) {
+ this.utcOffset(tZone);
+ }
+ else {
+ this.utcOffset(0, true);
+ }
+ }
+ return this;
+ }
+
+ function hasAlignedHourOffset (input) {
+ if (!this.isValid()) {
+ return false;
+ }
+ input = input ? createLocal(input).utcOffset() : 0;
+
+ return (this.utcOffset() - input) % 60 === 0;
+ }
+
+ function isDaylightSavingTime () {
+ return (
+ this.utcOffset() > this.clone().month(0).utcOffset() ||
+ this.utcOffset() > this.clone().month(5).utcOffset()
+ );
+ }
+
+ function isDaylightSavingTimeShifted () {
+ if (!isUndefined(this._isDSTShifted)) {
+ return this._isDSTShifted;
+ }
+
+ var c = {};
+
+ copyConfig(c, this);
+ c = prepareConfig(c);
+
+ if (c._a) {
+ var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
+ this._isDSTShifted = this.isValid() &&
+ compareArrays(c._a, other.toArray()) > 0;
+ } else {
+ this._isDSTShifted = false;
+ }
+
+ return this._isDSTShifted;
+ }
+
+ function isLocal () {
+ return this.isValid() ? !this._isUTC : false;
+ }
+
+ function isUtcOffset () {
+ return this.isValid() ? this._isUTC : false;
+ }
+
+ function isUtc () {
+ return this.isValid() ? this._isUTC && this._offset === 0 : false;
+ }
+
+ // 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
+ var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
+
+ 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)) {
+ 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;
+ }
+
+ return ret;
+ }
+
+ createDuration.fn = Duration.prototype;
+ createDuration.invalid = createInvalid$1;
+
+ 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;
+ }
+
+ // TODO: remove 'name' arg after deprecation is removed
+ function createAdder(direction, name) {
+ return function (val, period) {
+ var dur, tmp;
+ //invert the arguments, but complain about it
+ if (period !== null && !isNaN(+period)) {
+ deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +
+ 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');
+ tmp = val; val = period; period = tmp;
+ }
+
+ val = typeof val === 'string' ? +val : val;
+ dur = createDuration(val, period);
+ addSubtract(this, dur, direction);
+ return this;
+ };
+ }
+
+ function addSubtract (mom, duration, isAdding, updateOffset) {
+ var milliseconds = duration._milliseconds,
+ days = absRound(duration._days),
+ months = absRound(duration._months);
+
+ if (!mom.isValid()) {
+ // No op
+ return;
+ }
+
+ updateOffset = updateOffset == null ? true : updateOffset;
+
+ if (months) {
+ setMonth(mom, get(mom, 'Month') + months * isAdding);
+ }
+ if (days) {
+ set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
+ }
+ if (milliseconds) {
+ mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
+ }
+ if (updateOffset) {
+ hooks.updateOffset(mom, days || months);
+ }
+ }
+
+ var add = createAdder(1, 'add');
+ var subtract = createAdder(-1, 'subtract');
+
+ function getCalendarFormat(myMoment, now) {
+ var diff = myMoment.diff(now, 'days', true);
+ return diff < -6 ? 'sameElse' :
+ diff < -1 ? 'lastWeek' :
+ diff < 0 ? 'lastDay' :
+ diff < 1 ? 'sameDay' :
+ diff < 2 ? 'nextDay' :
+ diff < 7 ? 'nextWeek' : 'sameElse';
+ }
+
+ function calendar$1 (time, formats) {
+ // We want to compare the start of today, vs this.
+ // Getting start-of-today depends on whether we're local/utc/offset or not.
+ var now = time || createLocal(),
+ sod = cloneWithOffset(now, this).startOf('day'),
+ format = hooks.calendarFormat(this, sod) || 'sameElse';
+
+ var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);
+
+ return this.format(output || this.localeData().calendar(format, this, createLocal(now)));
+ }
+
+ function clone () {
+ return new Moment(this);
+ }
+
+ function isAfter (input, units) {
+ var localInput = isMoment(input) ? input : createLocal(input);
+ if (!(this.isValid() && localInput.isValid())) {
+ return false;
+ }
+ units = normalizeUnits(units) || 'millisecond';
+ if (units === 'millisecond') {
+ return this.valueOf() > localInput.valueOf();
+ } else {
+ return localInput.valueOf() < this.clone().startOf(units).valueOf();
+ }
+ }
+
+ function isBefore (input, units) {
+ var localInput = isMoment(input) ? input : createLocal(input);
+ if (!(this.isValid() && localInput.isValid())) {
+ return false;
+ }
+ units = normalizeUnits(units) || 'millisecond';
+ if (units === 'millisecond') {
+ return this.valueOf() < localInput.valueOf();
+ } else {
+ return this.clone().endOf(units).valueOf() < localInput.valueOf();
+ }
+ }
+
+ function isBetween (from, to, units, inclusivity) {
+ var localFrom = isMoment(from) ? from : createLocal(from),
+ localTo = isMoment(to) ? to : createLocal(to);
+ if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {
+ return false;
+ }
+ inclusivity = inclusivity || '()';
+ return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) &&
+ (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));
+ }
+
+ function isSame (input, units) {
+ var localInput = isMoment(input) ? input : createLocal(input),
+ inputMs;
+ if (!(this.isValid() && localInput.isValid())) {
+ return false;
+ }
+ units = normalizeUnits(units) || 'millisecond';
+ if (units === 'millisecond') {
+ return this.valueOf() === localInput.valueOf();
+ } else {
+ inputMs = localInput.valueOf();
+ return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();
+ }
+ }
+
+ function isSameOrAfter (input, units) {
+ return this.isSame(input, units) || this.isAfter(input, units);
+ }
+
+ function isSameOrBefore (input, units) {
+ return this.isSame(input, units) || this.isBefore(input, units);
+ }
+
+ function diff (input, units, asFloat) {
+ var that,
+ zoneDelta,
+ output;
+
+ if (!this.isValid()) {
+ return NaN;
+ }
+
+ that = cloneWithOffset(input, this);
+
+ if (!that.isValid()) {
+ return NaN;
+ }
+
+ zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
+
+ units = normalizeUnits(units);
+
+ switch (units) {
+ case 'year': output = monthDiff(this, that) / 12; break;
+ case 'month': output = monthDiff(this, that); break;
+ case 'quarter': output = monthDiff(this, that) / 3; break;
+ case 'second': output = (this - that) / 1e3; break; // 1000
+ case 'minute': output = (this - that) / 6e4; break; // 1000 * 60
+ case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60
+ case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst
+ case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst
+ default: output = this - that;
+ }
+
+ return asFloat ? output : absFloor(output);
+ }
+
+ function monthDiff (a, b) {
+ // difference in months
+ var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),
+ // b is in (anchor - 1 month, anchor + 1 month)
+ anchor = a.clone().add(wholeMonthDiff, 'months'),
+ anchor2, adjust;
+
+ if (b - anchor < 0) {
+ anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
+ // linear across the month
+ adjust = (b - anchor) / (anchor - anchor2);
+ } else {
+ anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
+ // linear across the month
+ adjust = (b - anchor) / (anchor2 - anchor);
+ }
+
+ //check for negative zero, return zero if negative zero
+ return -(wholeMonthDiff + adjust) || 0;
+ }
+
+ hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
+ hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
+
+ function toString () {
+ return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
+ }
+
+ function toISOString(keepOffset) {
+ if (!this.isValid()) {
+ return null;
+ }
+ var utc = keepOffset !== true;
+ var m = utc ? this.clone().utc() : this;
+ if (m.year() < 0 || m.year() > 9999) {
+ return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');
+ }
+ if (isFunction(Date.prototype.toISOString)) {
+ // native implementation is ~50x faster, use it when we can
+ if (utc) {
+ return this.toDate().toISOString();
+ } else {
+ return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));
+ }
+ }
+ return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');
+ }
+
+ /**
+ * Return a human readable representation of a moment that can
+ * also be evaluated to get a new moment which is the same
+ *
+ * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
+ */
+ function inspect () {
+ if (!this.isValid()) {
+ return 'moment.invalid(/* ' + this._i + ' */)';
+ }
+ var func = 'moment';
+ var zone = '';
+ if (!this.isLocal()) {
+ func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
+ zone = 'Z';
+ }
+ var prefix = '[' + func + '("]';
+ var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';
+ var datetime = '-MM-DD[T]HH:mm:ss.SSS';
+ var suffix = zone + '[")]';
+
+ return this.format(prefix + year + datetime + suffix);
+ }
+
+ function format (inputString) {
+ if (!inputString) {
+ inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;
+ }
+ var output = formatMoment(this, inputString);
+ return this.localeData().postformat(output);
+ }
+
+ function from (time, withoutSuffix) {
+ if (this.isValid() &&
+ ((isMoment(time) && time.isValid()) ||
+ createLocal(time).isValid())) {
+ return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
+ } else {
+ return this.localeData().invalidDate();
+ }
+ }
+
+ function fromNow (withoutSuffix) {
+ return this.from(createLocal(), withoutSuffix);
+ }
+
+ function to (time, withoutSuffix) {
+ if (this.isValid() &&
+ ((isMoment(time) && time.isValid()) ||
+ createLocal(time).isValid())) {
+ return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);
+ } else {
+ return this.localeData().invalidDate();
+ }
+ }
+
+ function toNow (withoutSuffix) {
+ return this.to(createLocal(), withoutSuffix);
+ }
+
+ // If passed a locale key, it will set the locale for this
+ // instance. Otherwise, it will return the locale configuration
+ // variables for this instance.
+ function locale (key) {
+ var newLocaleData;
+
+ if (key === undefined) {
+ return this._locale._abbr;
+ } else {
+ newLocaleData = getLocale(key);
+ if (newLocaleData != null) {
+ this._locale = newLocaleData;
+ }
+ return this;
+ }
+ }
+
+ var lang = deprecate(
+ 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
+ function (key) {
+ if (key === undefined) {
+ return this.localeData();
+ } else {
+ return this.locale(key);
+ }
+ }
+ );
+
+ function localeData () {
+ return this._locale;
+ }
+
+ var MS_PER_SECOND = 1000;
+ var MS_PER_MINUTE = 60 * MS_PER_SECOND;
+ var MS_PER_HOUR = 60 * MS_PER_MINUTE;
+ var MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;
+
+ // actual modulo - handles negative numbers (for dates before 1970):
+ function mod$1(dividend, divisor) {
+ return (dividend % divisor + divisor) % divisor;
+ }
+
+ function localStartOfDate(y, m, d) {
+ // the date constructor remaps years 0-99 to 1900-1999
+ if (y < 100 && y >= 0) {
+ // preserve leap years using a full 400 year cycle, then reset
+ return new Date(y + 400, m, d) - MS_PER_400_YEARS;
+ } else {
+ return new Date(y, m, d).valueOf();
+ }
+ }
+
+ function utcStartOfDate(y, m, d) {
+ // Date.UTC remaps years 0-99 to 1900-1999
+ if (y < 100 && y >= 0) {
+ // preserve leap years using a full 400 year cycle, then reset
+ return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;
+ } else {
+ return Date.UTC(y, m, d);
+ }
+ }
+
+ function startOf (units) {
+ var time;
+ units = normalizeUnits(units);
+ if (units === undefined || units === 'millisecond' || !this.isValid()) {
+ return this;
+ }
+
+ var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
+
+ switch (units) {
+ case 'year':
+ time = startOfDate(this.year(), 0, 1);
+ break;
+ case 'quarter':
+ time = startOfDate(this.year(), this.month() - this.month() % 3, 1);
+ break;
+ case 'month':
+ time = startOfDate(this.year(), this.month(), 1);
+ break;
+ case 'week':
+ time = startOfDate(this.year(), this.month(), this.date() - this.weekday());
+ break;
+ case 'isoWeek':
+ time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));
+ break;
+ case 'day':
+ case 'date':
+ time = startOfDate(this.year(), this.month(), this.date());
+ break;
+ case 'hour':
+ time = this._d.valueOf();
+ time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);
+ break;
+ case 'minute':
+ time = this._d.valueOf();
+ time -= mod$1(time, MS_PER_MINUTE);
+ break;
+ case 'second':
+ time = this._d.valueOf();
+ time -= mod$1(time, MS_PER_SECOND);
+ break;
+ }
+
+ this._d.setTime(time);
+ hooks.updateOffset(this, true);
+ return this;
+ }
+
+ function endOf (units) {
+ var time;
+ units = normalizeUnits(units);
+ if (units === undefined || units === 'millisecond' || !this.isValid()) {
+ return this;
+ }
+
+ var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
+
+ switch (units) {
+ case 'year':
+ time = startOfDate(this.year() + 1, 0, 1) - 1;
+ break;
+ case 'quarter':
+ time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;
+ break;
+ case 'month':
+ time = startOfDate(this.year(), this.month() + 1, 1) - 1;
+ break;
+ case 'week':
+ time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;
+ break;
+ case 'isoWeek':
+ time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;
+ break;
+ case 'day':
+ case 'date':
+ time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;
+ break;
+ case 'hour':
+ time = this._d.valueOf();
+ time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;
+ break;
+ case 'minute':
+ time = this._d.valueOf();
+ time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;
+ break;
+ case 'second':
+ time = this._d.valueOf();
+ time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;
+ break;
+ }
+
+ this._d.setTime(time);
+ hooks.updateOffset(this, true);
+ return this;
+ }
+
+ function valueOf () {
+ return this._d.valueOf() - ((this._offset || 0) * 60000);
+ }
+
+ function unix () {
+ return Math.floor(this.valueOf() / 1000);
+ }
+
+ function toDate () {
+ return new Date(this.valueOf());
+ }
+
+ function toArray () {
+ var m = this;
+ return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];
+ }
+
+ function toObject () {
+ var m = this;
+ return {
+ years: m.year(),
+ months: m.month(),
+ date: m.date(),
+ hours: m.hours(),
+ minutes: m.minutes(),
+ seconds: m.seconds(),
+ milliseconds: m.milliseconds()
+ };
+ }
+
+ function toJSON () {
+ // new Date(NaN).toJSON() === null
+ return this.isValid() ? this.toISOString() : null;
+ }
+
+ function isValid$2 () {
+ return isValid(this);
+ }
+
+ function parsingFlags () {
+ return extend({}, getParsingFlags(this));
+ }
+
+ function invalidAt () {
+ return getParsingFlags(this).overflow;
+ }
+
+ function creationData() {
+ return {
+ input: this._i,
+ format: this._f,
+ locale: this._locale,
+ isUTC: this._isUTC,
+ strict: this._strict
+ };
+ }
+
+ // FORMATTING
+
+ addFormatToken(0, ['gg', 2], 0, function () {
+ return this.weekYear() % 100;
+ });
+
+ addFormatToken(0, ['GG', 2], 0, function () {
+ return this.isoWeekYear() % 100;
+ });
+
+ function addWeekYearFormatToken (token, getter) {
+ addFormatToken(0, [token, token.length], 0, getter);
+ }
+
+ addWeekYearFormatToken('gggg', 'weekYear');
+ addWeekYearFormatToken('ggggg', 'weekYear');
+ addWeekYearFormatToken('GGGG', 'isoWeekYear');
+ addWeekYearFormatToken('GGGGG', 'isoWeekYear');
+
+ // ALIASES
+
+ addUnitAlias('weekYear', 'gg');
+ addUnitAlias('isoWeekYear', 'GG');
+
+ // PRIORITY
+
+ addUnitPriority('weekYear', 1);
+ addUnitPriority('isoWeekYear', 1);
+
+
+ // PARSING
+
+ addRegexToken('G', matchSigned);
+ addRegexToken('g', matchSigned);
+ addRegexToken('GG', match1to2, match2);
+ addRegexToken('gg', match1to2, match2);
+ addRegexToken('GGGG', match1to4, match4);
+ addRegexToken('gggg', match1to4, match4);
+ addRegexToken('GGGGG', match1to6, match6);
+ addRegexToken('ggggg', match1to6, match6);
+
+ addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {
+ week[token.substr(0, 2)] = toInt(input);
+ });
+
+ addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
+ week[token] = hooks.parseTwoDigitYear(input);
+ });
+
+ // MOMENTS
+
+ function getSetWeekYear (input) {
+ return getSetWeekYearHelper.call(this,
+ input,
+ this.week(),
+ this.weekday(),
+ this.localeData()._week.dow,
+ this.localeData()._week.doy);
+ }
+
+ function getSetISOWeekYear (input) {
+ return getSetWeekYearHelper.call(this,
+ input, this.isoWeek(), this.isoWeekday(), 1, 4);
+ }
+
+ function getISOWeeksInYear () {
+ return weeksInYear(this.year(), 1, 4);
+ }
+
+ function getWeeksInYear () {
+ var weekInfo = this.localeData()._week;
+ return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
+ }
+
+ function getSetWeekYearHelper(input, week, weekday, dow, doy) {
+ var weeksTarget;
+ if (input == null) {
+ return weekOfYear(this, dow, doy).year;
+ } else {
+ weeksTarget = weeksInYear(input, dow, doy);
+ if (week > weeksTarget) {
+ week = weeksTarget;
+ }
+ return setWeekAll.call(this, input, week, weekday, dow, doy);
+ }
+ }
+
+ function setWeekAll(weekYear, week, weekday, dow, doy) {
+ var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
+ date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
+
+ this.year(date.getUTCFullYear());
+ this.month(date.getUTCMonth());
+ this.date(date.getUTCDate());
+ return this;
+ }
+
+ // FORMATTING
+
+ addFormatToken('Q', 0, 'Qo', 'quarter');
+
+ // ALIASES
+
+ addUnitAlias('quarter', 'Q');
+
+ // PRIORITY
+
+ addUnitPriority('quarter', 7);
+
+ // PARSING
+
+ addRegexToken('Q', match1);
+ addParseToken('Q', function (input, array) {
+ array[MONTH] = (toInt(input) - 1) * 3;
+ });
+
+ // MOMENTS
+
+ function getSetQuarter (input) {
+ return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
+ }
+
+ // FORMATTING
+
+ addFormatToken('D', ['DD', 2], 'Do', 'date');
+
+ // ALIASES
+
+ addUnitAlias('date', 'D');
+
+ // PRIORITY
+ addUnitPriority('date', 9);
+
+ // PARSING
+
+ addRegexToken('D', match1to2);
+ addRegexToken('DD', match1to2, match2);
+ addRegexToken('Do', function (isStrict, locale) {
+ // TODO: Remove "ordinalParse" fallback in next major release.
+ return isStrict ?
+ (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :
+ locale._dayOfMonthOrdinalParseLenient;
+ });
+
+ addParseToken(['D', 'DD'], DATE);
+ addParseToken('Do', function (input, array) {
+ array[DATE] = toInt(input.match(match1to2)[0]);
+ });
+
+ // MOMENTS
+
+ var getSetDayOfMonth = makeGetSet('Date', true);
+
+ // FORMATTING
+
+ addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
+
+ // ALIASES
+
+ addUnitAlias('dayOfYear', 'DDD');
+
+ // PRIORITY
+ addUnitPriority('dayOfYear', 4);
+
+ // PARSING
+
+ addRegexToken('DDD', match1to3);
+ addRegexToken('DDDD', match3);
+ addParseToken(['DDD', 'DDDD'], function (input, array, config) {
+ config._dayOfYear = toInt(input);
+ });
+
+ // HELPERS
+
+ // MOMENTS
+
+ function getSetDayOfYear (input) {
+ var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;
+ return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
+ }
+
+ // FORMATTING
+
+ addFormatToken('m', ['mm', 2], 0, 'minute');
+
+ // ALIASES
+
+ addUnitAlias('minute', 'm');
+
+ // PRIORITY
+
+ addUnitPriority('minute', 14);
+
+ // PARSING
+
+ addRegexToken('m', match1to2);
+ addRegexToken('mm', match1to2, match2);
+ addParseToken(['m', 'mm'], MINUTE);
+
+ // MOMENTS
+
+ var getSetMinute = makeGetSet('Minutes', false);
+
+ // FORMATTING
+
+ addFormatToken('s', ['ss', 2], 0, 'second');
+
+ // ALIASES
+
+ addUnitAlias('second', 's');
+
+ // PRIORITY
+
+ addUnitPriority('second', 15);
+
+ // PARSING
+
+ addRegexToken('s', match1to2);
+ addRegexToken('ss', match1to2, match2);
+ addParseToken(['s', 'ss'], SECOND);
+
+ // MOMENTS
+
+ var getSetSecond = makeGetSet('Seconds', false);
+
+ // FORMATTING
+
+ addFormatToken('S', 0, 0, function () {
+ return ~~(this.millisecond() / 100);
+ });
+
+ addFormatToken(0, ['SS', 2], 0, function () {
+ return ~~(this.millisecond() / 10);
+ });
+
+ addFormatToken(0, ['SSS', 3], 0, 'millisecond');
+ addFormatToken(0, ['SSSS', 4], 0, function () {
+ return this.millisecond() * 10;
+ });
+ addFormatToken(0, ['SSSSS', 5], 0, function () {
+ return this.millisecond() * 100;
+ });
+ addFormatToken(0, ['SSSSSS', 6], 0, function () {
+ return this.millisecond() * 1000;
+ });
+ addFormatToken(0, ['SSSSSSS', 7], 0, function () {
+ return this.millisecond() * 10000;
+ });
+ addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
+ return this.millisecond() * 100000;
+ });
+ addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
+ return this.millisecond() * 1000000;
+ });
+
+
+ // ALIASES
+
+ addUnitAlias('millisecond', 'ms');
+
+ // PRIORITY
+
+ addUnitPriority('millisecond', 16);
+
+ // PARSING
+
+ addRegexToken('S', match1to3, match1);
+ addRegexToken('SS', match1to3, match2);
+ addRegexToken('SSS', match1to3, match3);
+
+ var token;
+ for (token = 'SSSS'; token.length <= 9; token += 'S') {
+ addRegexToken(token, matchUnsigned);
+ }
+
+ function parseMs(input, array) {
+ array[MILLISECOND] = toInt(('0.' + input) * 1000);
+ }
+
+ for (token = 'S'; token.length <= 9; token += 'S') {
+ addParseToken(token, parseMs);
+ }
+ // MOMENTS
+
+ var getSetMillisecond = makeGetSet('Milliseconds', false);
+
+ // FORMATTING
+
+ addFormatToken('z', 0, 0, 'zoneAbbr');
+ addFormatToken('zz', 0, 0, 'zoneName');
+
+ // MOMENTS
+
+ function getZoneAbbr () {
+ return this._isUTC ? 'UTC' : '';
+ }
+
+ function getZoneName () {
+ return this._isUTC ? 'Coordinated Universal Time' : '';
+ }
+
+ var proto = Moment.prototype;
+
+ proto.add = add;
+ proto.calendar = calendar$1;
+ proto.clone = clone;
+ proto.diff = diff;
+ proto.endOf = endOf;
+ proto.format = format;
+ proto.from = from;
+ proto.fromNow = fromNow;
+ proto.to = to;
+ proto.toNow = toNow;
+ proto.get = stringGet;
+ proto.invalidAt = invalidAt;
+ proto.isAfter = isAfter;
+ proto.isBefore = isBefore;
+ proto.isBetween = isBetween;
+ proto.isSame = isSame;
+ proto.isSameOrAfter = isSameOrAfter;
+ proto.isSameOrBefore = isSameOrBefore;
+ proto.isValid = isValid$2;
+ proto.lang = lang;
+ proto.locale = locale;
+ proto.localeData = localeData;
+ proto.max = prototypeMax;
+ proto.min = prototypeMin;
+ proto.parsingFlags = parsingFlags;
+ proto.set = stringSet;
+ proto.startOf = startOf;
+ proto.subtract = subtract;
+ proto.toArray = toArray;
+ proto.toObject = toObject;
+ proto.toDate = toDate;
+ proto.toISOString = toISOString;
+ proto.inspect = inspect;
+ proto.toJSON = toJSON;
+ proto.toString = toString;
+ proto.unix = unix;
+ proto.valueOf = valueOf;
+ proto.creationData = creationData;
+ proto.year = getSetYear;
+ proto.isLeapYear = getIsLeapYear;
+ proto.weekYear = getSetWeekYear;
+ proto.isoWeekYear = getSetISOWeekYear;
+ proto.quarter = proto.quarters = getSetQuarter;
+ proto.month = getSetMonth;
+ proto.daysInMonth = getDaysInMonth;
+ proto.week = proto.weeks = getSetWeek;
+ proto.isoWeek = proto.isoWeeks = getSetISOWeek;
+ proto.weeksInYear = getWeeksInYear;
+ proto.isoWeeksInYear = getISOWeeksInYear;
+ proto.date = getSetDayOfMonth;
+ proto.day = proto.days = getSetDayOfWeek;
+ proto.weekday = getSetLocaleDayOfWeek;
+ proto.isoWeekday = getSetISODayOfWeek;
+ proto.dayOfYear = getSetDayOfYear;
+ proto.hour = proto.hours = getSetHour;
+ proto.minute = proto.minutes = getSetMinute;
+ proto.second = proto.seconds = getSetSecond;
+ proto.millisecond = proto.milliseconds = getSetMillisecond;
+ proto.utcOffset = getSetOffset;
+ proto.utc = setOffsetToUTC;
+ proto.local = setOffsetToLocal;
+ proto.parseZone = setOffsetToParsedOffset;
+ proto.hasAlignedHourOffset = hasAlignedHourOffset;
+ proto.isDST = isDaylightSavingTime;
+ proto.isLocal = isLocal;
+ proto.isUtcOffset = isUtcOffset;
+ proto.isUtc = isUtc;
+ proto.isUTC = isUtc;
+ proto.zoneAbbr = getZoneAbbr;
+ proto.zoneName = getZoneName;
+ proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);
+ proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);
+ proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);
+ proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);
+ proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);
+
+ function createUnix (input) {
+ return createLocal(input * 1000);
+ }
+
+ function createInZone () {
+ return createLocal.apply(null, arguments).parseZone();
+ }
+
+ function preParsePostFormat (string) {
+ return string;
+ }
+
+ var proto$1 = Locale.prototype;
+
+ proto$1.calendar = calendar;
+ proto$1.longDateFormat = longDateFormat;
+ proto$1.invalidDate = invalidDate;
+ proto$1.ordinal = ordinal;
+ proto$1.preparse = preParsePostFormat;
+ proto$1.postformat = preParsePostFormat;
+ proto$1.relativeTime = relativeTime;
+ proto$1.pastFuture = pastFuture;
+ proto$1.set = set;
+
+ proto$1.months = localeMonths;
+ proto$1.monthsShort = localeMonthsShort;
+ proto$1.monthsParse = localeMonthsParse;
+ proto$1.monthsRegex = monthsRegex;
+ proto$1.monthsShortRegex = monthsShortRegex;
+ proto$1.week = localeWeek;
+ proto$1.firstDayOfYear = localeFirstDayOfYear;
+ proto$1.firstDayOfWeek = localeFirstDayOfWeek;
+
+ proto$1.weekdays = localeWeekdays;
+ proto$1.weekdaysMin = localeWeekdaysMin;
+ proto$1.weekdaysShort = localeWeekdaysShort;
+ proto$1.weekdaysParse = localeWeekdaysParse;
+
+ proto$1.weekdaysRegex = weekdaysRegex;
+ proto$1.weekdaysShortRegex = weekdaysShortRegex;
+ proto$1.weekdaysMinRegex = weekdaysMinRegex;
+
+ proto$1.isPM = localeIsPM;
+ proto$1.meridiem = localeMeridiem;
+
+ function get$1 (format, index, field, setter) {
+ var locale = getLocale();
+ var utc = createUTC().set(setter, index);
+ return locale[field](utc, format);
+ }
+
+ function listMonthsImpl (format, index, field) {
+ if (isNumber(format)) {
+ index = format;
+ format = undefined;
+ }
+
+ format = format || '';
+
+ if (index != null) {
+ return get$1(format, index, field, 'month');
+ }
+
+ var i;
+ var out = [];
+ for (i = 0; i < 12; i++) {
+ out[i] = get$1(format, i, field, 'month');
+ }
+ return out;
+ }
+
+ // ()
+ // (5)
+ // (fmt, 5)
+ // (fmt)
+ // (true)
+ // (true, 5)
+ // (true, fmt, 5)
+ // (true, fmt)
+ function listWeekdaysImpl (localeSorted, format, index, field) {
+ if (typeof localeSorted === 'boolean') {
+ if (isNumber(format)) {
+ index = format;
+ format = undefined;
+ }
+
+ format = format || '';
+ } else {
+ format = localeSorted;
+ index = format;
+ localeSorted = false;
+
+ if (isNumber(format)) {
+ index = format;
+ format = undefined;
+ }
+
+ format = format || '';
+ }
+
+ var locale = getLocale(),
+ shift = localeSorted ? locale._week.dow : 0;
+
+ if (index != null) {
+ return get$1(format, (index + shift) % 7, field, 'day');
+ }
+
+ var i;
+ var out = [];
+ for (i = 0; i < 7; i++) {
+ out[i] = get$1(format, (i + shift) % 7, field, 'day');
+ }
+ return out;
+ }
+
+ function listMonths (format, index) {
+ return listMonthsImpl(format, index, 'months');
+ }
+
+ function listMonthsShort (format, index) {
+ return listMonthsImpl(format, index, 'monthsShort');
+ }
+
+ function listWeekdays (localeSorted, format, index) {
+ return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
+ }
+
+ function listWeekdaysShort (localeSorted, format, index) {
+ return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
+ }
+
+ function listWeekdaysMin (localeSorted, format, index) {
+ return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
+ }
+
+ getSetGlobalLocale('en', {
+ dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (toInt(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ }
+ });
+
+ // Side effect imports
+
+ hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);
+ hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);
+
+ var mathAbs = Math.abs;
+
+ 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;
+ }
+
+ function addSubtract$1 (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)
+ function add$1 (input, value) {
+ return addSubtract$1(this, input, value, 1);
+ }
+
+ // supports only 2.0-style subtract(1, 's') or subtract(duration)
+ function subtract$1 (input, value) {
+ return addSubtract$1(this, input, value, -1);
+ }
+
+ function absCeil (number) {
+ if (number < 0) {
+ return Math.floor(number);
+ } else {
+ return Math.ceil(number);
+ }
+ }
+
+ function bubble () {
+ var milliseconds = this._milliseconds;
+ var days = this._days;
+ var months = this._months;
+ var data = this._data;
+ var 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;
+ }
+
+ function daysToMonths (days) {
+ // 400 years have 146097 days (taking into account leap year rules)
+ // 400 years have 12 months === 4800
+ return days * 4800 / 146097;
+ }
+
+ function monthsToDays (months) {
+ // the reverse of daysToMonths
+ return months * 146097 / 4800;
+ }
+
+ function as (units) {
+ if (!this.isValid()) {
+ return NaN;
+ }
+ var days;
+ var months;
+ var 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);
+ }
+ }
+ }
+
+ // TODO: Use this.as('ms')?
+ function valueOf$1 () {
+ if (!this.isValid()) {
+ return NaN;
+ }
+ return (
+ this._milliseconds +
+ this._days * 864e5 +
+ (this._months % 12) * 2592e6 +
+ toInt(this._months / 12) * 31536e6
+ );
+ }
+
+ function makeAs (alias) {
+ return function () {
+ return this.as(alias);
+ };
+ }
+
+ var asMilliseconds = makeAs('ms');
+ var asSeconds = makeAs('s');
+ var asMinutes = makeAs('m');
+ var asHours = makeAs('h');
+ var asDays = makeAs('d');
+ var asWeeks = makeAs('w');
+ var asMonths = makeAs('M');
+ var asQuarters = makeAs('Q');
+ var asYears = makeAs('y');
+
+ function clone$1 () {
+ return createDuration(this);
+ }
+
+ function get$2 (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');
+ var seconds = makeGetter('seconds');
+ var minutes = makeGetter('minutes');
+ var hours = makeGetter('hours');
+ var days = makeGetter('days');
+ var months = makeGetter('months');
+ var years = makeGetter('years');
+
+ function weeks () {
+ return absFloor(this.days() / 7);
+ }
+
+ var round = Math.round;
+ var 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
+ 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$1 (posNegDuration, withoutSuffix, locale) {
+ var duration = createDuration(posNegDuration).abs();
+ var seconds = round(duration.as('s'));
+ var minutes = round(duration.as('m'));
+ var hours = round(duration.as('h'));
+ var days = round(duration.as('d'));
+ var months = round(duration.as('M'));
+ var years = round(duration.as('y'));
+
+ var 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] ||
+ 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
+ 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
+ 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;
+ }
+
+ function humanize (withSuffix) {
+ if (!this.isValid()) {
+ return this.localeData().invalidDate();
+ }
+
+ var locale = this.localeData();
+ var output = relativeTime$1(this, !withSuffix, locale);
+
+ if (withSuffix) {
+ output = locale.pastFuture(+this, output);
+ }
+
+ return locale.postformat(output);
+ }
+
+ var abs$1 = Math.abs;
+
+ function sign(x) {
+ return ((x > 0) - (x < 0)) || +x;
+ }
+
+ function toISOString$1() {
+ // 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$1(this._milliseconds) / 1000;
+ var days = abs$1(this._days);
+ var months = abs$1(this._months);
+ var minutes, hours, years;
+
+ // 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
+ var Y = years;
+ var M = months;
+ var D = days;
+ var h = hours;
+ var m = minutes;
+ var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
+ var total = this.asSeconds();
+
+ if (!total) {
+ // this is the same as C#'s (Noda) and python (isodate)...
+ // but not other JS (goog.date)
+ return 'P0D';
+ }
+
+ var totalSign = total < 0 ? '-' : '';
+ var ymSign = sign(this._months) !== sign(total) ? '-' : '';
+ var daysSign = sign(this._days) !== sign(total) ? '-' : '';
+ var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
+
+ return totalSign + 'P' +
+ (Y ? ymSign + Y + 'Y' : '') +
+ (M ? ymSign + M + 'M' : '') +
+ (D ? daysSign + D + 'D' : '') +
+ ((h || m || s) ? 'T' : '') +
+ (h ? hmsSign + h + 'H' : '') +
+ (m ? hmsSign + m + 'M' : '') +
+ (s ? hmsSign + s + 'S' : '');
+ }
+
+ var proto$2 = Duration.prototype;
+
+ proto$2.isValid = isValid$1;
+ proto$2.abs = abs;
+ proto$2.add = add$1;
+ proto$2.subtract = subtract$1;
+ proto$2.as = as;
+ proto$2.asMilliseconds = asMilliseconds;
+ proto$2.asSeconds = asSeconds;
+ proto$2.asMinutes = asMinutes;
+ proto$2.asHours = asHours;
+ proto$2.asDays = asDays;
+ proto$2.asWeeks = asWeeks;
+ proto$2.asMonths = asMonths;
+ proto$2.asQuarters = asQuarters;
+ proto$2.asYears = asYears;
+ proto$2.valueOf = valueOf$1;
+ proto$2._bubble = bubble;
+ proto$2.clone = clone$1;
+ proto$2.get = get$2;
+ proto$2.milliseconds = milliseconds;
+ proto$2.seconds = seconds;
+ proto$2.minutes = minutes;
+ proto$2.hours = hours;
+ proto$2.days = days;
+ proto$2.weeks = weeks;
+ proto$2.months = months;
+ proto$2.years = years;
+ proto$2.humanize = humanize;
+ proto$2.toISOString = toISOString$1;
+ proto$2.toString = toISOString$1;
+ proto$2.toJSON = toISOString$1;
+ proto$2.locale = locale;
+ proto$2.localeData = localeData;
+
+ proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);
+ proto$2.lang = lang;
+
+ // Side effect imports
+
+ // FORMATTING
+
+ addFormatToken('X', 0, 0, 'unix');
+ addFormatToken('x', 0, 0, 'valueOf');
+
+ // PARSING
+
+ addRegexToken('x', matchSigned);
+ addRegexToken('X', matchTimestamp);
+ addParseToken('X', function (input, array, config) {
+ config._d = new Date(parseFloat(input, 10) * 1000);
+ });
+ addParseToken('x', function (input, array, config) {
+ config._d = new Date(toInt(input));
+ });
+
+ // Side effect imports
+
+
+ hooks.version = '2.24.0';
+
+ setHookCallback(createLocal);
+
+ hooks.fn = proto;
+ hooks.min = min;
+ hooks.max = max;
+ hooks.now = now;
+ hooks.utc = createUTC;
+ hooks.unix = createUnix;
+ hooks.months = listMonths;
+ hooks.isDate = isDate;
+ hooks.locale = getSetGlobalLocale;
+ hooks.invalid = createInvalid;
+ hooks.duration = createDuration;
+ hooks.isMoment = isMoment;
+ hooks.weekdays = listWeekdays;
+ hooks.parseZone = createInZone;
+ hooks.localeData = getLocale;
+ hooks.isDuration = isDuration;
+ hooks.monthsShort = listMonthsShort;
+ hooks.weekdaysMin = listWeekdaysMin;
+ hooks.defineLocale = defineLocale;
+ hooks.updateLocale = updateLocale;
+ hooks.locales = listLocales;
+ hooks.weekdaysShort = listWeekdaysShort;
+ hooks.normalizeUnits = normalizeUnits;
+ hooks.relativeTimeRounding = getSetRelativeTimeRounding;
+ hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
+ hooks.calendarFormat = getCalendarFormat;
+ hooks.prototype = proto;
+
+ // currently HTML5 input type only supports 24-hour formats
+ hooks.HTML5_FMT = {
+ DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', //
+ DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', //
+ DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', //
+ DATE: 'YYYY-MM-DD', //
+ TIME: 'HH:mm', //
+ TIME_SECONDS: 'HH:mm:ss', //
+ TIME_MS: 'HH:mm:ss.SSS', //
+ WEEK: 'GGGG-[W]WW', //
+ MONTH: 'YYYY-MM' //
+ };
+
+ return hooks;
+
+})));
+});
+
var DatePicker = function (_Component) {
inherits(DatePicker, _Component);
@@ -3357,7 +7963,7 @@ var DatePicker = function (_Component) {
}
createClass(DatePicker, [{
- key: "render",
+ key: 'render',
value: function render() {
var _this2 = this;
@@ -3370,35 +7976,46 @@ var DatePicker = function (_Component) {
);
}
}, {
- key: "renderDatePicker",
+ key: 'renderDatePicker',
value: function renderDatePicker(data) {
var _this3 = this;
+ var value = this.props.value;
var props = _extends({}, this.props);
if (props.children) delete props.children;
+ if (props.value) delete props.value;
if (props.onChangeValue) delete props.onChangeValue;
return React.createElement(
- "div",
- { className: "form-group" },
+ 'div',
+ { className: 'form-group' },
this.renderLabel(data),
- React.createElement("input", _extends({ onChange: function onChange(e) {
- return _this3.props.onChangeValue(e.target.value);
+ React.createElement('input', _extends({
+ value: this.parseValue(value),
+ onChange: function onChange(e) {
+ return _this3.props.onChangeValue(moment(e.target.value));
} }, props)),
React.createElement(
- "p",
- { className: "text-muted" },
- "DatePicker ",
+ 'p',
+ { className: 'text-muted' },
+ 'DatePicker ',
this.props.type
),
React.createElement(FormItemError, { name: this.props.name, data: data })
);
}
}, {
- key: "renderLabel",
+ key: 'parseValue',
+ value: function parseValue(value) {
+ if (this.props.type == 'date') return moment(value).format('YYYY-MM-DD');
+ if (this.props.type == 'time') return moment(value).format('HH:mm:ss');
+ return moment(value).format('YYYY-MM-DDTHH:mm');
+ }
+ }, {
+ key: 'renderLabel',
value: function renderLabel(data) {
if (this.props.label) {
return React.createElement(
- "label",
+ 'label',
{ htmlFor: this.props.id },
this.props.label
);
@@ -3414,6 +8031,7 @@ DatePicker.defaultProps = {
id: 'input',
className: 'form-control',
type: 'datetime-local',
+ value: null,
onChangeValue: function onChangeValue(text) {}
};
@@ -3511,6 +8129,7 @@ FilePicker.defaultProps = {
name: 'file-picker',
id: 'file-picker',
className: 'form-control',
+ value: null,
onChangeValue: function onChangeValue(file) {}
};
diff --git a/dist/index.es.js.map b/dist/index.es.js.map
index 77de3be..57ccb0a 100644
--- a/dist/index.es.js.map
+++ b/dist/index.es.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.es.js","sources":["../src/FormContext.js","../src/FormTranslationContext.js","../src/FormItemError.js","../src/CheckBox.js","../node_modules/classnames/index.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/react-transition-group/TransitionGroup.js","../node_modules/react-toastify/lib/utils/constant.js","../node_modules/react-toastify/lib/utils/propValidator.js","../node_modules/react-toastify/lib/components/ProgressBar.js","../node_modules/react-toastify/lib/components/Toast.js","../node_modules/react-toastify/lib/components/CloseButton.js","../node_modules/react-transition-group/utils/PropTypes.js","../node_modules/react-transition-group/Transition.js","../node_modules/react-toastify/lib/utils/cssTransition.js","../node_modules/react-toastify/lib/components/Transitions.js","../node_modules/react-toastify/lib/utils/eventManager.js","../node_modules/react-toastify/lib/components/ToastContainer.js","../node_modules/react-toastify/lib/toast.js","../node_modules/react-toastify/lib/index.js","../src/Form.js","../src/Input.js","../src/OptionGroup.js","../src/Option.js","../src/RadioGroup.js","../src/Radio.js","../src/Submit.js","../src/TextArea.js","../src/DatePicker.js","../src/FilePicker.js"],"sourcesContent":["import React, { Component } from 'react'\n\nconst FormContext = React.createContext({ data: null });\n\nexport default FormContext\n\nexport class FormConsumer extends Component\n{\n render()\n {\n return (\n
{translator.renderText(data.errors[this.props.name].error)}
\n }\n}","import React, {Component} from 'react';\nimport {FormConsumer} from \"./FormContext\";\nimport FormItemError from \"./FormItemError\";\n\nexport default class CheckBox extends Component\n{\n render()\n {\n return (\n{this.props.translator.renderText(this.state.data.error)}
\n )\n }\n\n return null\n }\n}\n\nexport default class Form extends Component\n{\n render()\n {\n return (\n{this.props.label}
\n )\n }\n\n renderChildren()\n {\n return (\nDatePicker {this.props.type}
\n{value.name} {this.renderDeleteButton()}
\n\n if (value !== null)\n return{value} {this.renderDeleteButton()}
\n\n return null\n }\n\n renderDeleteButton()\n {\n return (\n {\n this.props.onChangeValue(null)\n }}/>\n );\n }\n\n renderLabel(data)\n {\n if (this.props.label) {\n return (\n \n )\n }\n }\n}\n\nFilePicker.defaultProps = {\n name: 'file-picker',\n id: 'file-picker',\n className: 'form-control',\n onChangeValue: (file) => {}\n}\n"],"names":["FormContext","React","createContext","data","FormConsumer","props","children","Component","FormTranslationContext","text","FormTranslationConsumer","FormItemError","errors","name","translator","renderError","renderText","error","CheckBox","renderCheckBox","onChangeValue","value","e","target","checked","renderLabel","length","id","defaultProps","_react","require$$0","require$$1","_ChildMapping","_reactLifecyclesCompat","require$$2","_propValidator","_constant","require$$3","PropTypes","_PropTypes","require$$4","require$$5","require$$6","_Transitions","ContextAwareForm","_onSubmit","preventDefault","onSubmit","displayError","state","handleError","setState","toast","ToastContainer","Form","log","Input","renderInput","label","OptionGroupContext","OptionGroupConsumer","OptionGroup","_onChange","multiple","options","i","l","selected","push","renderOptionGroup","renderChildren","Option","renderOption","RadioGroupContext","RadioGroupConsumer","RadioGroup","renderRadioGroup","Radio","renderRadio","Submit","TextArea","renderTextArea","DatePicker","renderDatePicker","type","FilePicker","renderFilePicker","babelHelpers.typeof","File","renderValue","renderDeleteButton","file"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.es.js","sources":["../src/FormContext.js","../src/FormTranslationContext.js","../src/FormItemError.js","../src/CheckBox.js","../node_modules/classnames/index.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/react-transition-group/TransitionGroup.js","../node_modules/react-toastify/lib/utils/constant.js","../node_modules/react-toastify/lib/utils/propValidator.js","../node_modules/react-toastify/lib/components/ProgressBar.js","../node_modules/react-toastify/lib/components/Toast.js","../node_modules/react-toastify/lib/components/CloseButton.js","../node_modules/react-transition-group/utils/PropTypes.js","../node_modules/react-transition-group/Transition.js","../node_modules/react-toastify/lib/utils/cssTransition.js","../node_modules/react-toastify/lib/components/Transitions.js","../node_modules/react-toastify/lib/utils/eventManager.js","../node_modules/react-toastify/lib/components/ToastContainer.js","../node_modules/react-toastify/lib/toast.js","../node_modules/react-toastify/lib/index.js","../src/Form.js","../src/Input.js","../src/OptionGroup.js","../src/Option.js","../src/RadioGroup.js","../src/Radio.js","../src/Submit.js","../src/TextArea.js","../node_modules/moment/moment.js","../src/DatePicker.js","../src/FilePicker.js"],"sourcesContent":["import React, { Component } from 'react'\n\nconst FormContext = React.createContext({ data: null });\n\nexport default FormContext\n\nexport class FormConsumer extends Component\n{\n render()\n {\n return (\n{translator.renderText(data.errors[this.props.name].error)}
\n }\n}","import React, {Component} from 'react';\nimport {FormConsumer} from \"./FormContext\";\nimport FormItemError from \"./FormItemError\";\n\nexport default class CheckBox extends Component\n{\n render()\n {\n return (\n{this.props.translator.renderText(this.state.data.error)}
\n )\n }\n\n return null\n }\n}\n\nexport default class Form extends Component\n{\n render()\n {\n return (\n{this.props.label}
\n )\n }\n\n renderChildren()\n {\n return (\nDatePicker {this.props.type}
\n{value.name} {this.renderDeleteButton()}
\n\n if (value !== null)\n return{value} {this.renderDeleteButton()}
\n\n return null\n }\n\n renderDeleteButton()\n {\n return (\n {\n this.props.onChangeValue(null)\n }}/>\n );\n }\n\n renderLabel(data)\n {\n if (this.props.label) {\n return (\n \n )\n }\n }\n}\n\nFilePicker.defaultProps = {\n name: 'file-picker',\n id: 'file-picker',\n className: 'form-control',\n value: null,\n onChangeValue: (file) => {}\n}\n"],"names":["FormContext","React","createContext","data","FormConsumer","props","children","Component","FormTranslationContext","text","FormTranslationConsumer","FormItemError","errors","name","translator","renderError","renderText","error","CheckBox","renderCheckBox","onChangeValue","value","e","target","checked","renderLabel","length","id","defaultProps","_react","require$$0","require$$1","_ChildMapping","_reactLifecyclesCompat","require$$2","_propValidator","_constant","require$$3","PropTypes","_PropTypes","require$$4","require$$5","require$$6","_Transitions","ContextAwareForm","_onSubmit","preventDefault","onSubmit","displayError","state","handleError","setState","toast","ToastContainer","Form","log","Input","renderInput","label","OptionGroupContext","OptionGroupConsumer","OptionGroup","_onChange","multiple","options","i","l","selected","push","renderOptionGroup","renderChildren","Option","renderOption","RadioGroupContext","RadioGroupConsumer","RadioGroup","renderRadioGroup","Radio","renderRadio","Submit","TextArea","renderTextArea","this","require","DatePicker","renderDatePicker","parseValue","moment","type","format","FilePicker","renderFilePicker","babelHelpers.typeof","File","renderValue","renderDeleteButton","file"],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 8fb8794..e02af6b 100644 --- a/dist/index.js +++ b/dist/index.js @@ -239,6 +239,12 @@ CheckBox.defaultProps = { onChangeValue: function onChangeValue(checked) {} }; +var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by rollup-plugin-commonjs'); +} + function unwrapExports (x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x.default : x; } @@ -3355,6 +3361,4606 @@ TextArea.defaultProps = { onChangeValue: function onChangeValue(text) {} }; +var moment = createCommonjsModule(function (module, exports) { +(function (global, factory) { + module.exports = factory(); +}(commonjsGlobal, (function () { + var hookCallback; + + function hooks () { + return hookCallback.apply(null, arguments); + } + + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback (callback) { + hookCallback = callback; + } + + function isArray(input) { + return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; + } + + function isObject(input) { + // IE8 will treat undefined and null as object if it wasn't for + // input != null + return input != null && Object.prototype.toString.call(input) === '[object Object]'; + } + + function isObjectEmpty(obj) { + if (Object.getOwnPropertyNames) { + return (Object.getOwnPropertyNames(obj).length === 0); + } else { + var k; + for (k in obj) { + if (obj.hasOwnProperty(k)) { + return false; + } + } + return true; + } + } + + function isUndefined(input) { + return input === void 0; + } + + function isNumber(input) { + return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]'; + } + + function isDate(input) { + return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; + } + + function map(arr, fn) { + var res = [], i; + for (i = 0; i < arr.length; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; + } + + function createUTC (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); + } + + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty : false, + unusedTokens : [], + unusedInput : [], + overflow : -2, + charsLeftOver : 0, + nullInput : false, + invalidMonth : null, + invalidFormat : false, + userInvalidated : false, + iso : false, + parsedDateParts : [], + meridiem : null, + rfc2822 : false, + weekdayMismatch : false + }; + } + + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } + + var some; + if (Array.prototype.some) { + some = Array.prototype.some; + } else { + some = function (fun) { + var t = Object(this); + var len = t.length >>> 0; + + for (var i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return true; + } + } + + return false; + }; + } + + function isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m); + var parsedParts = some.call(flags.parsedDateParts, function (i) { + return i != null; + }); + var isNowValid = !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.weekdayMismatch && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); + + if (m._strict) { + isNowValid = isNowValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } + else { + return isNowValid; + } + } + return m._isValid; + } + + function createInvalid (flags) { + var m = createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } + else { + getParsingFlags(m).userInvalidated = true; + } + + return m; + } + + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + var momentProperties = hooks.momentProperties = []; + + function copyConfig(to, from) { + var i, prop, val; + + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + + if (momentProperties.length > 0) { + for (i = 0; i < momentProperties.length; i++) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + + return to; + } + + var updateInProgress = false; + + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + if (!this.isValid()) { + this._d = new Date(NaN); + } + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + hooks.updateOffset(this); + updateInProgress = false; + } + } + + function isMoment (obj) { + return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); + } + + function absFloor (number) { + if (number < 0) { + // -0 -> 0 + return Math.ceil(number) || 0; + } else { + return Math.floor(number); + } + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; + } + + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ((dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { + diffs++; + } + } + return diffs + lengthDiff; + } + + function warn(msg) { + if (hooks.suppressDeprecationWarnings === false && + (typeof console !== 'undefined') && console.warn) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(null, msg); + } + if (firstTime) { + var args = []; + var arg; + for (var i = 0; i < arguments.length; i++) { + arg = ''; + if (typeof arguments[i] === 'object') { + arg += '\n[' + i + '] '; + for (var key in arguments[0]) { + arg += key + ': ' + arguments[0][key] + ', '; + } + arg = arg.slice(0, -2); // Remove trailing comma and space + } else { + arg = arguments[i]; + } + args.push(arg); + } + warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + hooks.suppressDeprecationWarnings = false; + hooks.deprecationHandler = null; + + function isFunction(input) { + return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; + } + + function set (config) { + var prop, i; + for (i in config) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. + // TODO: Remove "ordinalParse" fallback in next major release. + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + + '|' + (/\d{1,2}/).source); + } + + function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } + } + for (prop in parentConfig) { + if (hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop])) { + // make sure changes to properties don't modify parent config + res[prop] = extend({}, res[prop]); + } + } + return res; + } + + function Locale(config) { + if (config != null) { + this.set(config); + } + } + + var keys; + + if (Object.keys) { + keys = Object.keys; + } else { + keys = function (obj) { + var i, res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } + } + return res; + }; + } + + var defaultCalendar = { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }; + + function calendar (key, mom, now) { + var output = this._calendar[key] || this._calendar['sameElse']; + return isFunction(output) ? output.call(mom, now) : output; + } + + var defaultLongDateFormat = { + LTS : 'h:mm:ss A', + LT : 'h:mm A', + L : 'MM/DD/YYYY', + LL : 'MMMM D, YYYY', + LLL : 'MMMM D, YYYY h:mm A', + LLLL : 'dddd, MMMM D, YYYY h:mm A' + }; + + function longDateFormat (key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { + return val.slice(1); + }); + + return this._longDateFormat[key]; + } + + var defaultInvalidDate = 'Invalid date'; + + function invalidDate () { + return this._invalidDate; + } + + var defaultOrdinal = '%d'; + var defaultDayOfMonthOrdinalParse = /\d{1,2}/; + + function ordinal (number) { + return this._ordinal.replace('%d', number); + } + + var defaultRelativeTime = { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + ss : '%d seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }; + + function relativeTime (number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return (isFunction(output)) ? + output(number, withoutSuffix, string, isFuture) : + output.replace(/%d/i, number); + } + + function pastFuture (diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); + } + + var aliases = {}; + + function addUnitAlias (unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } + + function normalizeUnits(units) { + return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + var priorities = {}; + + function addUnitPriority(unit, priority) { + priorities[unit] = priority; + } + + function getPrioritizedUnits(unitsObj) { + var units = []; + for (var u in unitsObj) { + units.push({unit: u, priority: priorities[u]}); + } + units.sort(function (a, b) { + return a.priority - b.priority; + }); + return units; + } + + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; + } + + var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; + + var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; + + var formatFunctions = {}; + + var formatTokenFunctions = {}; + + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken (token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal(func.apply(this, arguments), token); + }; + } + } + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), i, length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = '', i; + for (i = 0; i < length; i++) { + output += isFunction(array[i]) ? array[i].call(mom, format) : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + var match1 = /\d/; // 0 - 9 + var match2 = /\d\d/; // 00 - 99 + var match3 = /\d{3}/; // 000 - 999 + var match4 = /\d{4}/; // 0000 - 9999 + var match6 = /[+-]?\d{6}/; // -999999 - 999999 + var match1to2 = /\d\d?/; // 0 - 99 + var match3to4 = /\d\d\d\d?/; // 999 - 9999 + var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 + var match1to3 = /\d{1,3}/; // 0 - 999 + var match1to4 = /\d{1,4}/; // 0 - 9999 + var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 + + var matchUnsigned = /\d+/; // 0 - inf + var matchSigned = /[+-]?\d+/; // -inf - inf + + var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z + var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z + + var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 + + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i; + + var regexes = {}; + + function addRegexToken (token, regex, strictRegex) { + regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { + return (isStrict && strictRegex) ? strictRegex : regex; + }; + } + + function getParseRegexForToken (token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + })); + } + + function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + var tokens = {}; + + function addParseToken (token, callback) { + var i, func = callback; + if (typeof token === 'string') { + token = [token]; + } + if (isNumber(callback)) { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + for (i = 0; i < token.length; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken (token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + + var YEAR = 0; + var MONTH = 1; + var DATE = 2; + var HOUR = 3; + var MINUTE = 4; + var SECOND = 5; + var MILLISECOND = 6; + var WEEK = 7; + var WEEKDAY = 8; + + // FORMATTING + + addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? '' + y : '+' + y; + }); + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); + + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // ALIASES + + addUnitAlias('year', 'y'); + + // PRIORITIES + + addUnitPriority('year', 1); + + // PARSING + + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); + + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = hooks.parseTwoDigitYear(input); + }); + addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); + }); + + // HELPERS + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + // HOOKS + + hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + // MOMENTS + + var getSetYear = makeGetSet('FullYear', true); + + function getIsLeapYear () { + return isLeapYear(this.year()); + } + + function makeGetSet (unit, keepTime) { + return function (value) { + if (value != null) { + set$1(this, unit, value); + hooks.updateOffset(this, keepTime); + return this; + } else { + return get(this, unit); + } + }; + } + + function get (mom, unit) { + return mom.isValid() ? + mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; + } + + function set$1 (mom, unit, value) { + if (mom.isValid() && !isNaN(value)) { + if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month())); + } + else { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + } + } + + // MOMENTS + + function stringGet (units) { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](); + } + return this; + } + + + function stringSet (units, value) { + if (typeof units === 'object') { + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units); + for (var i = 0; i < prioritized.length; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; + } + + function mod(n, x) { + return ((n % x) + x) % x; + } + + var indexOf; + + if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; + } else { + indexOf = function (o) { + // I know + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; + } + } + return -1; + }; + } + + function daysInMonth(year, month) { + if (isNaN(year) || isNaN(month)) { + return NaN; + } + var modMonth = mod(month, 12); + year += (month - modMonth) / 12; + return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); + + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); + + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + + // ALIASES + + addUnitAlias('month', 'M'); + + // PRIORITY + + addUnitPriority('month', 8); + + // PARSING + + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); + }); + addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); + }); + + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + + // LOCALES + + var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/; + var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); + function localeMonths (m, format) { + if (!m) { + return isArray(this._months) ? this._months : + this._months['standalone']; + } + return isArray(this._months) ? this._months[m.month()] : + this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()]; + } + + var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); + function localeMonthsShort (m, format) { + if (!m) { + return isArray(this._monthsShort) ? this._monthsShort : + this._monthsShort['standalone']; + } + return isArray(this._monthsShort) ? this._monthsShort[m.month()] : + this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; + } + + function handleStrictParse(monthName, format, strict) { + var i, ii, mom, llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + // this is not used + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase(); + this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeMonthsParse (monthName, format, strict) { + var i, mom, regex; + + if (this._monthsParseExact) { + return handleStrictParse.call(this, monthName, format, strict); + } + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + // TODO: add sorting + // Sorting makes sure if one month (or abbr) is a prefix of another + // see sorting in computeMonthsParse + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); + this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); + } + if (!strict && !this._monthsParse[i]) { + regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { + return i; + } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } + } + + // MOMENTS + + function setMonth (mom, value) { + var dayOfMonth; + + if (!mom.isValid()) { + // No op + return mom; + } + + if (typeof value === 'string') { + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (!isNumber(value)) { + return mom; + } + } + } + + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } + + function getSetMonth (value) { + if (value != null) { + setMonth(this, value); + hooks.updateOffset(this, true); + return this; + } else { + return get(this, 'Month'); + } + } + + function getDaysInMonth () { + return daysInMonth(this.year(), this.month()); + } + + var defaultMonthsShortRegex = matchWord; + function monthsShortRegex (isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + if (!hasOwnProp(this, '_monthsShortRegex')) { + this._monthsShortRegex = defaultMonthsShortRegex; + } + return this._monthsShortStrictRegex && isStrict ? + this._monthsShortStrictRegex : this._monthsShortRegex; + } + } + + var defaultMonthsRegex = matchWord; + function monthsRegex (isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + if (!hasOwnProp(this, '_monthsRegex')) { + this._monthsRegex = defaultMonthsRegex; + } + return this._monthsStrictRegex && isStrict ? + this._monthsStrictRegex : this._monthsRegex; + } + } + + function computeMonthsParse () { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], longPieces = [], mixedPieces = [], + i, mom; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + shortPieces.push(this.monthsShort(mom, '')); + longPieces.push(this.months(mom, '')); + mixedPieces.push(this.months(mom, '')); + mixedPieces.push(this.monthsShort(mom, '')); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 12; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + } + for (i = 0; i < 24; i++) { + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); + this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); + } + + function createDate (y, m, d, h, M, s, ms) { + // can't just apply() to create a date: + // https://stackoverflow.com/q/181348 + var date; + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + date = new Date(y + 400, m, d, h, M, s, ms); + if (isFinite(date.getFullYear())) { + date.setFullYear(y); + } + } else { + date = new Date(y, m, d, h, M, s, ms); + } + + return date; + } + + function createUTCDate (y) { + var date; + // the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + var args = Array.prototype.slice.call(arguments); + // preserve leap years using a full 400 year cycle, then reset + args[0] = y + 400; + date = new Date(Date.UTC.apply(null, args)); + if (isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + } else { + date = new Date(Date.UTC.apply(null, arguments)); + } + + return date; + } + + // start-of-first-week - start-of-year + function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + + return -fwdlw + fwd - 1; + } + + // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear + }; + } + + function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, resYear; + + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear + }; + } + + function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + } + + // FORMATTING + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // ALIASES + + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); + + // PRIORITIES + + addUnitPriority('week', 5); + addUnitPriority('isoWeek', 5); + + // PARSING + + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + }); + + // HELPERS + + // LOCALES + + function localeWeek (mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 6th is the first week of the year. + }; + + function localeFirstDayOfWeek () { + return this._week.dow; + } + + function localeFirstDayOfYear () { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek (input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek (input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + // FORMATTING + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // ALIASES + + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); + + // PRIORITY + addUnitPriority('day', 11); + addUnitPriority('weekday', 11); + addUnitPriority('isoWeekday', 11); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); + }); + addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); + }); + addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); + }); + + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + + // HELPERS + + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; + } + + function parseIsoWeekday(input, locale) { + if (typeof input === 'string') { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; + } + + // LOCALES + function shiftWeekdays (ws, n) { + return ws.slice(n, 7).concat(ws.slice(0, n)); + } + + var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); + function localeWeekdays (m, format) { + var weekdays = isArray(this._weekdays) ? this._weekdays : + this._weekdays[(m && m !== true && this._weekdays.isFormat.test(format)) ? 'format' : 'standalone']; + return (m === true) ? shiftWeekdays(weekdays, this._week.dow) + : (m) ? weekdays[m.day()] : weekdays; + } + + var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); + function localeWeekdaysShort (m) { + return (m === true) ? shiftWeekdays(this._weekdaysShort, this._week.dow) + : (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort; + } + + var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); + function localeWeekdaysMin (m) { + return (m === true) ? shiftWeekdays(this._weekdaysMin, this._week.dow) + : (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin; + } + + function handleStrictParse$1(weekdayName, format, strict) { + var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; + + for (i = 0; i < 7; ++i) { + mom = createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeWeekdaysParse (weekdayName, format, strict) { + var i, mom, regex; + + if (this._weekdaysParseExact) { + return handleStrictParse$1.call(this, weekdayName, format, strict); + } + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i'); + this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i'); + this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i'); + } + if (!this._weekdaysParse[i]) { + regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } + } + + var defaultWeekdaysRegex = matchWord; + function weekdaysRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysRegex')) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict ? + this._weekdaysStrictRegex : this._weekdaysRegex; + } + } + + var defaultWeekdaysShortRegex = matchWord; + function weekdaysShortRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysShortRegex')) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict ? + this._weekdaysShortStrictRegex : this._weekdaysShortRegex; + } + } + + var defaultWeekdaysMinRegex = matchWord; + function weekdaysMinRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysMinRegex')) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict ? + this._weekdaysMinStrictRegex : this._weekdaysMinRegex; + } + } + + + function computeWeekdaysParse () { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], + i, mom, minp, shortp, longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, 1]).day(i); + minp = this.weekdaysMin(mom, ''); + shortp = this.weekdaysShort(mom, ''); + longp = this.weekdays(mom, ''); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 7; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; + + this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); + this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); + this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); + } + + // FORMATTING + + function hFormat() { + return this.hours() % 12 || 12; + } + + function kFormat() { + return this.hours() || 24; + } + + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, hFormat); + addFormatToken('k', ['kk', 2], 0, kFormat); + + addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); + }); + + addFormatToken('hmmss', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); + + addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); + }); + + addFormatToken('Hmmss', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); + + function meridiem (token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); + }); + } + + meridiem('a', true); + meridiem('A', false); + + // ALIASES + + addUnitAlias('hour', 'h'); + + // PRIORITY + addUnitPriority('hour', 13); + + // PARSING + + function matchMeridiem (isStrict, locale) { + return locale._meridiemParse; + } + + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('k', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + addRegexToken('kk', match1to2, match2); + + addRegexToken('hmm', match3to4); + addRegexToken('hmmss', match5to6); + addRegexToken('Hmm', match3to4); + addRegexToken('Hmmss', match5to6); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['k', 'kk'], function (input, array, config) { + var kInput = toInt(input); + array[HOUR] = kInput === 24 ? 0 : kInput; + }); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + }); + + // LOCALES + + function localeIsPM (input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return ((input + '').toLowerCase().charAt(0) === 'p'); + } + + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; + function localeMeridiem (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } + + + // MOMENTS + + // Setting the hour should keep the time, because the user explicitly + // specified which hour they want. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + var getSetHour = makeGetSet('Hours', true); + + var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, + relativeTime: defaultRelativeTime, + + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, + + week: defaultLocaleWeek, + + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, + + meridiemParse: defaultLocaleMeridiemParse + }; + + // internal storage for locale config files + var locales = {}; + var localeFamilies = {}; + var globalLocale; + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, j, next, locale, split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return globalLocale; + } + + function loadLocale(name) { + var oldLocale = null; + // TODO: Find a better way to register and load all the locales in Node + if (!locales[name] && ('object' !== 'undefined') && + module && module.exports) { + try { + oldLocale = globalLocale._abbr; + var aliasedRequire = commonjsRequire; + aliasedRequire('./locale/' + name); + getSetGlobalLocale(oldLocale); + } catch (e) {} + } + return locales[name]; + } + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function getSetGlobalLocale (key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = getLocale(key); + } + else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } + else { + if ((typeof console !== 'undefined') && console.warn) { + //warn user if arguments are passed but the locale could not be set + console.warn('Locale ' + key + ' not found. Did you forget to load it?'); + } + } + } + + return globalLocale._abbr; + } + + function defineLocale (name, config) { + if (config !== null) { + var locale, parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple('defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale ' + + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + locale = loadLocale(config.parentLocale); + if (locale != null) { + parentConfig = locale._config; + } else { + if (!localeFamilies[config.parentLocale]) { + localeFamilies[config.parentLocale] = []; + } + localeFamilies[config.parentLocale].push({ + name: name, + config: config + }); + return null; + } + } + } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); + + if (localeFamilies[name]) { + localeFamilies[name].forEach(function (x) { + defineLocale(x.name, x.config); + }); + } + + // backwards compat for now: also set the locale + // make sure we set the locale AFTER all child locales have been + // created, so we won't end up with the child locale set. + getSetGlobalLocale(name); + + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } + + function updateLocale(name, config) { + if (config != null) { + var locale, tmpLocale, parentConfig = baseConfig; + // MERGE + tmpLocale = loadLocale(name); + if (tmpLocale != null) { + parentConfig = tmpLocale._config; + } + config = mergeConfigs(parentConfig, config); + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; + + // backwards compat for now: also set the locale + getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + } else if (locales[name] != null) { + delete locales[name]; + } + } + } + return locales[name]; + } + + // returns locale data + function getLocale (key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + } + + function listLocales() { + return keys(locales); + } + + function checkOverflow (m) { + var overflow; + var a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : + a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : + a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : + a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : + a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : + a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : + -1; + + if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; + } + + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } + + function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(hooks.now()); + if (config._useUTC) { + return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray (config) { + var i, date, input = [], currentDate, expectedWeekday, yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear != null) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; + } + + // Check for 24:00:00.000 + if (config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0) { + config._nextDay = true; + config._a[HOUR] = 0; + } + + config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); + expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); + + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + + // check for mismatching day of week + if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) { + getParsingFlags(config).weekdayMismatch = true; + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + var curWeek = weekOfYear(createLocal(), dow, doy); + + weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); + + // Default to current week. + week = defaults(w.w, curWeek.week); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from beginning of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to beginning of week + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + } + + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; + var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; + + var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; + + var isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + // YYYYMM is NOT allowed by the standard + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/] + ]; + + // iso time formats and regexes + var isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/] + ]; + + var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; + + // date from iso format + function configFromISO(config) { + var i, l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, dateFormat, timeFormat, tzFormat; + + if (match) { + getParsingFlags(config).iso = true; + + for (i = 0, l = isoDates.length; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimes.length; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 + var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/; + + function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { + var result = [ + untruncateYear(yearStr), + defaultLocaleMonthsShort.indexOf(monthStr), + parseInt(dayStr, 10), + parseInt(hourStr, 10), + parseInt(minuteStr, 10) + ]; + + if (secondStr) { + result.push(parseInt(secondStr, 10)); + } + + return result; + } + + function untruncateYear(yearStr) { + var year = parseInt(yearStr, 10); + if (year <= 49) { + return 2000 + year; + } else if (year <= 999) { + return 1900 + year; + } + return year; + } + + function preprocessRFC2822(s) { + // Remove comments and folding whitespace and replace multiple-spaces with a single space + return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').replace(/^\s\s*/, '').replace(/\s\s*$/, ''); + } + + function checkWeekday(weekdayStr, parsedInput, config) { + if (weekdayStr) { + // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check. + var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), + weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay(); + if (weekdayProvided !== weekdayActual) { + getParsingFlags(config).weekdayMismatch = true; + config._isValid = false; + return false; + } + } + return true; + } + + var obsOffsets = { + UT: 0, + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60 + }; + + function calculateOffset(obsOffset, militaryOffset, numOffset) { + if (obsOffset) { + return obsOffsets[obsOffset]; + } else if (militaryOffset) { + // the only allowed military tz is Z + return 0; + } else { + var hm = parseInt(numOffset, 10); + var m = hm % 100, h = (hm - m) / 100; + return h * 60 + m; + } + } + + // date and time from ref 2822 format + function configFromRFC2822(config) { + var match = rfc2822.exec(preprocessRFC2822(config._i)); + if (match) { + var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]); + if (!checkWeekday(match[1], parsedArray, config)) { + return; + } + + config._a = parsedArray; + config._tzm = calculateOffset(match[8], match[9], match[10]); + + config._d = createUTCDate.apply(null, config._a); + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + + getParsingFlags(config).rfc2822 = true; + } else { + config._isValid = false; + } + } + + // date from iso format or fallback + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + configFromRFC2822(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + // Final attempt, use Input Fallback + hooks.createFromInputFallback(config); + } + + hooks.createFromInputFallback = deprecate( + 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + + 'discouraged and will be removed in an upcoming major release. Please refer to ' + + 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + + // constant that refers to the ISO standard + hooks.ISO_8601 = function () {}; + + // constant that refers to the RFC 2822 form + hooks.RFC_2822 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === hooks.ISO_8601) { + configFromISO(config); + return; + } + if (config._f === hooks.RFC_2822) { + configFromRFC2822(config); + return; + } + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, parsedInput, tokens, token, skipped, + stringLength = string.length, + totalParsedInputLength = 0; + + tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; + + for (i = 0; i < tokens.length; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; + // console.log('token', token, 'parsedInput', parsedInput, + // 'regex', getParseRegexForToken(token, config)); + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice(string.indexOf(parsedInput) + parsedInput.length); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } + else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } + else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if (config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === true && + config._a[HOUR] > 0) { + getParsingFlags(config).bigHour = undefined; + } + + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; + // handle meridiem + config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); + + configFromArray(config); + checkOverflow(config); + } + + + function meridiemFixWrap (locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } + } + + // date from string and array of format strings + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + + scoreToBeat, + i, + currentScore; + + if (config._f.length === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < config._f.length; i++) { + currentScore = 0; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (!isValid(tempConfig)) { + continue; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (scoreToBeat == null || currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + + extend(config, bestMoment || tempConfig); + } + + function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i); + config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { + return obj && parseInt(obj, 10); + }); + + configFromArray(config); + } + + function createFromConfig (config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; + } + + function prepareConfig (config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return createInvalid({nullInput: true}); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isDate(input)) { + config._d = input; + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } + + if (!isValid(config)) { + config._d = null; + } + + return config; + } + + function configFromInput(config) { + var input = config._i; + if (isUndefined(input)) { + config._d = new Date(hooks.now()); + } else if (isDate(input)) { + config._d = new Date(input.valueOf()); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (isObject(input)) { + configFromObject(config); + } else if (isNumber(input)) { + // from milliseconds + config._d = new Date(input); + } else { + hooks.createFromInputFallback(config); + } + } + + function createLocalOrUTC (input, format, locale, strict, isUTC) { + var c = {}; + + if (locale === true || locale === false) { + strict = locale; + locale = undefined; + } + + if ((isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0)) { + input = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); + } + + function createLocal (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } + + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return createInvalid(); + } + } + ); + + var prototypeMax = deprecate( + 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return createInvalid(); + } + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + // TODO: Use [].sort instead? + function min () { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + } + + function max () { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + } + + var now = function () { + return Date.now ? Date.now() : +(new Date()); + }; + + var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; + + function isDurationValid(m) { + for (var key in m) { + if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) { + return false; + } + } + + var unitHasDecimal = false; + for (var i = 0; i < ordering.length; ++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; + } + + function isValid$1() { + return this._isValid; + } + + function createInvalid$1() { + return createDuration(NaN); + } + + 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(); + } + + function isDuration (obj) { + return obj instanceof Duration; + } + + function absRound (number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); + } + } + + // FORMATTING + + function offset (token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(); + var sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); + }); + } + + offset('Z', ':'); + offset('ZZ', ''); + + // PARSING + + addRegexToken('Z', matchShortOffset); + addRegexToken('ZZ', matchShortOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); + }); + + // HELPERS + + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; + + function offsetFromString(matcher, string) { + var matches = (string || '').match(matcher); + + if (matches === null) { + return null; + } + + var chunk = matches[matches.length - 1] || []; + var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + var minutes = +(parts[1] * 60) + toInt(parts[2]); + + return minutes === 0 ? + 0 : + parts[0] === '+' ? minutes : -minutes; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); + // Use low-level api, because this fn is low-level api. + res._d.setTime(res._d.valueOf() + diff); + hooks.updateOffset(res, false); + return res; + } else { + return createLocal(input).local(); + } + } + + function getDateOffset (m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset() / 15) * 15; + } + + // HOOKS + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + hooks.updateOffset = function () {}; + + // MOMENTS + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset (input, keepLocalTime, keepMinutes) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + if (input === null) { + return this; + } + } else if (Math.abs(input) < 16 && !keepMinutes) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addSubtract(this, createDuration(input - offset, 'm'), 1, false); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + + function getSetZone (input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } + } + + function setOffsetToUTC (keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } + + function setOffsetToLocal (keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; + } + + function setOffsetToParsedOffset () { + if (this._tzm != null) { + this.utcOffset(this._tzm, false, true); + } else if (typeof this._i === 'string') { + var tZone = offsetFromString(matchOffset, this._i); + if (tZone != null) { + this.utcOffset(tZone); + } + else { + this.utcOffset(0, true); + } + } + return this; + } + + function hasAlignedHourOffset (input) { + if (!this.isValid()) { + return false; + } + input = input ? createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; + } + + function isDaylightSavingTime () { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } + + function isDaylightSavingTimeShifted () { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + + var c = {}; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + var other = c._isUTC ? createUTC(c._a) : createLocal(c._a); + this._isDSTShifted = this.isValid() && + compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; + } + + function isLocal () { + return this.isValid() ? !this._isUTC : false; + } + + function isUtcOffset () { + return this.isValid() ? this._isUTC : false; + } + + function isUtc () { + return this.isValid() ? this._isUTC && this._offset === 0 : false; + } + + // 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 + var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + + 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)) { + 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; + } + + return ret; + } + + createDuration.fn = Duration.prototype; + createDuration.invalid = createInvalid$1; + + 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; + } + + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); + tmp = val; val = period; period = tmp; + } + + val = typeof val === 'string' ? +val : val; + dur = createDuration(val, period); + addSubtract(this, dur, direction); + return this; + }; + } + + function addSubtract (mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = absRound(duration._days), + months = absRound(duration._months); + + if (!mom.isValid()) { + // No op + return; + } + + updateOffset = updateOffset == null ? true : updateOffset; + + if (months) { + setMonth(mom, get(mom, 'Month') + months * isAdding); + } + if (days) { + set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); + } + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + } + if (updateOffset) { + hooks.updateOffset(mom, days || months); + } + } + + var add = createAdder(1, 'add'); + var subtract = createAdder(-1, 'subtract'); + + function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, 'days', true); + return diff < -6 ? 'sameElse' : + diff < -1 ? 'lastWeek' : + diff < 0 ? 'lastDay' : + diff < 1 ? 'sameDay' : + diff < 2 ? 'nextDay' : + diff < 7 ? 'nextWeek' : 'sameElse'; + } + + function calendar$1 (time, formats) { + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + format = hooks.calendarFormat(this, sod) || 'sameElse'; + + var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); + + return this.format(output || this.localeData().calendar(format, this, createLocal(now))); + } + + function clone () { + return new Moment(this); + } + + function isAfter (input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() > localInput.valueOf(); + } else { + return localInput.valueOf() < this.clone().startOf(units).valueOf(); + } + } + + function isBefore (input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() < localInput.valueOf(); + } else { + return this.clone().endOf(units).valueOf() < localInput.valueOf(); + } + } + + function isBetween (from, to, units, inclusivity) { + var localFrom = isMoment(from) ? from : createLocal(from), + localTo = isMoment(to) ? to : createLocal(to); + if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { + return false; + } + inclusivity = inclusivity || '()'; + return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && + (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units)); + } + + function isSame (input, units) { + var localInput = isMoment(input) ? input : createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() === localInput.valueOf(); + } else { + inputMs = localInput.valueOf(); + return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); + } + } + + function isSameOrAfter (input, units) { + return this.isSame(input, units) || this.isAfter(input, units); + } + + function isSameOrBefore (input, units) { + return this.isSame(input, units) || this.isBefore(input, units); + } + + function diff (input, units, asFloat) { + var that, + zoneDelta, + output; + + if (!this.isValid()) { + return NaN; + } + + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; + } + + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + switch (units) { + case 'year': output = monthDiff(this, that) / 12; break; + case 'month': output = monthDiff(this, that); break; + case 'quarter': output = monthDiff(this, that) / 3; break; + case 'second': output = (this - that) / 1e3; break; // 1000 + case 'minute': output = (this - that) / 6e4; break; // 1000 * 60 + case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60 + case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst + case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst + default: output = this - that; + } + + return asFloat ? output : absFloor(output); + } + + function monthDiff (a, b) { + // difference in months + var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + //check for negative zero, return zero if negative zero + return -(wholeMonthDiff + adjust) || 0; + } + + hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; + + function toString () { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + function toISOString(keepOffset) { + if (!this.isValid()) { + return null; + } + var utc = keepOffset !== true; + var m = utc ? this.clone().utc() : this; + if (m.year() < 0 || m.year() > 9999) { + return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'); + } + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + if (utc) { + return this.toDate().toISOString(); + } else { + return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z')); + } + } + return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'); + } + + /** + * Return a human readable representation of a moment that can + * also be evaluated to get a new moment which is the same + * + * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects + */ + function inspect () { + if (!this.isValid()) { + return 'moment.invalid(/* ' + this._i + ' */)'; + } + var func = 'moment'; + var zone = ''; + if (!this.isLocal()) { + func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; + zone = 'Z'; + } + var prefix = '[' + func + '("]'; + var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY'; + var datetime = '-MM-DD[T]HH:mm:ss.SSS'; + var suffix = zone + '[")]'; + + return this.format(prefix + year + datetime + suffix); + } + + function format (inputString) { + if (!inputString) { + inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; + } + var output = formatMoment(this, inputString); + return this.localeData().postformat(output); + } + + function from (time, withoutSuffix) { + if (this.isValid() && + ((isMoment(time) && time.isValid()) || + createLocal(time).isValid())) { + return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function fromNow (withoutSuffix) { + return this.from(createLocal(), withoutSuffix); + } + + function to (time, withoutSuffix) { + if (this.isValid() && + ((isMoment(time) && time.isValid()) || + createLocal(time).isValid())) { + return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function toNow (withoutSuffix) { + return this.to(createLocal(), withoutSuffix); + } + + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + function locale (key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } + + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ); + + function localeData () { + return this._locale; + } + + var MS_PER_SECOND = 1000; + var MS_PER_MINUTE = 60 * MS_PER_SECOND; + var MS_PER_HOUR = 60 * MS_PER_MINUTE; + var MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; + + // actual modulo - handles negative numbers (for dates before 1970): + function mod$1(dividend, divisor) { + return (dividend % divisor + divisor) % divisor; + } + + function localStartOfDate(y, m, d) { + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return new Date(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return new Date(y, m, d).valueOf(); + } + } + + function utcStartOfDate(y, m, d) { + // Date.UTC remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return Date.UTC(y, m, d); + } + } + + function startOf (units) { + var time; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year(), 0, 1); + break; + case 'quarter': + time = startOfDate(this.year(), this.month() - this.month() % 3, 1); + break; + case 'month': + time = startOfDate(this.year(), this.month(), 1); + break; + case 'week': + time = startOfDate(this.year(), this.month(), this.date() - this.weekday()); + break; + case 'isoWeek': + time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1)); + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date()); + break; + case 'hour': + time = this._d.valueOf(); + time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR); + break; + case 'minute': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_MINUTE); + break; + case 'second': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_SECOND); + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } + + function endOf (units) { + var time; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year() + 1, 0, 1) - 1; + break; + case 'quarter': + time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1; + break; + case 'month': + time = startOfDate(this.year(), this.month() + 1, 1) - 1; + break; + case 'week': + time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1; + break; + case 'isoWeek': + time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1; + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; + break; + case 'hour': + time = this._d.valueOf(); + time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1; + break; + case 'minute': + time = this._d.valueOf(); + time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; + break; + case 'second': + time = this._d.valueOf(); + time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } + + function valueOf () { + return this._d.valueOf() - ((this._offset || 0) * 60000); + } + + function unix () { + return Math.floor(this.valueOf() / 1000); + } + + function toDate () { + return new Date(this.valueOf()); + } + + function toArray () { + var m = this; + return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; + } + + function toObject () { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds() + }; + } + + function toJSON () { + // new Date(NaN).toJSON() === null + return this.isValid() ? this.toISOString() : null; + } + + function isValid$2 () { + return isValid(this); + } + + function parsingFlags () { + return extend({}, getParsingFlags(this)); + } + + function invalidAt () { + return getParsingFlags(this).overflow; + } + + function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict + }; + } + + // FORMATTING + + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); + + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + + function addWeekYearFormatToken (token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } + + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + + // ALIASES + + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); + + // PRIORITY + + addUnitPriority('weekYear', 1); + addUnitPriority('isoWeekYear', 1); + + + // PARSING + + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + }); + + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = hooks.parseTwoDigitYear(input); + }); + + // MOMENTS + + function getSetWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy); + } + + function getSetISOWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, this.isoWeek(), this.isoWeekday(), 1, 4); + } + + function getISOWeeksInYear () { + return weeksInYear(this.year(), 1, 4); + } + + function getWeeksInYear () { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } + + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } + } + + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; + } + + // FORMATTING + + addFormatToken('Q', 0, 'Qo', 'quarter'); + + // ALIASES + + addUnitAlias('quarter', 'Q'); + + // PRIORITY + + addUnitPriority('quarter', 7); + + // PARSING + + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); + + // MOMENTS + + function getSetQuarter (input) { + return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); + } + + // FORMATTING + + addFormatToken('D', ['DD', 2], 'Do', 'date'); + + // ALIASES + + addUnitAlias('date', 'D'); + + // PRIORITY + addUnitPriority('date', 9); + + // PARSING + + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + // TODO: Remove "ordinalParse" fallback in next major release. + return isStrict ? + (locale._dayOfMonthOrdinalParse || locale._ordinalParse) : + locale._dayOfMonthOrdinalParseLenient; + }); + + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0]); + }); + + // MOMENTS + + var getSetDayOfMonth = makeGetSet('Date', true); + + // FORMATTING + + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + + // ALIASES + + addUnitAlias('dayOfYear', 'DDD'); + + // PRIORITY + addUnitPriority('dayOfYear', 4); + + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + // MOMENTS + + function getSetDayOfYear (input) { + var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; + return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); + } + + // FORMATTING + + addFormatToken('m', ['mm', 2], 0, 'minute'); + + // ALIASES + + addUnitAlias('minute', 'm'); + + // PRIORITY + + addUnitPriority('minute', 14); + + // PARSING + + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); + + // MOMENTS + + var getSetMinute = makeGetSet('Minutes', false); + + // FORMATTING + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // ALIASES + + addUnitAlias('second', 's'); + + // PRIORITY + + addUnitPriority('second', 15); + + // PARSING + + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + // FORMATTING + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); + + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); + + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + + + // ALIASES + + addUnitAlias('millisecond', 'ms'); + + // PRIORITY + + addUnitPriority('millisecond', 16); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + // MOMENTS + + var getSetMillisecond = makeGetSet('Milliseconds', false); + + // FORMATTING + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr () { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName () { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var proto = Moment.prototype; + + proto.add = add; + proto.calendar = calendar$1; + proto.clone = clone; + proto.diff = diff; + proto.endOf = endOf; + proto.format = format; + proto.from = from; + proto.fromNow = fromNow; + proto.to = to; + proto.toNow = toNow; + proto.get = stringGet; + proto.invalidAt = invalidAt; + proto.isAfter = isAfter; + proto.isBefore = isBefore; + proto.isBetween = isBetween; + proto.isSame = isSame; + proto.isSameOrAfter = isSameOrAfter; + proto.isSameOrBefore = isSameOrBefore; + proto.isValid = isValid$2; + proto.lang = lang; + proto.locale = locale; + proto.localeData = localeData; + proto.max = prototypeMax; + proto.min = prototypeMin; + proto.parsingFlags = parsingFlags; + proto.set = stringSet; + proto.startOf = startOf; + proto.subtract = subtract; + proto.toArray = toArray; + proto.toObject = toObject; + proto.toDate = toDate; + proto.toISOString = toISOString; + proto.inspect = inspect; + proto.toJSON = toJSON; + proto.toString = toString; + proto.unix = unix; + proto.valueOf = valueOf; + proto.creationData = creationData; + proto.year = getSetYear; + proto.isLeapYear = getIsLeapYear; + proto.weekYear = getSetWeekYear; + proto.isoWeekYear = getSetISOWeekYear; + proto.quarter = proto.quarters = getSetQuarter; + proto.month = getSetMonth; + proto.daysInMonth = getDaysInMonth; + proto.week = proto.weeks = getSetWeek; + proto.isoWeek = proto.isoWeeks = getSetISOWeek; + proto.weeksInYear = getWeeksInYear; + proto.isoWeeksInYear = getISOWeeksInYear; + proto.date = getSetDayOfMonth; + proto.day = proto.days = getSetDayOfWeek; + proto.weekday = getSetLocaleDayOfWeek; + proto.isoWeekday = getSetISODayOfWeek; + proto.dayOfYear = getSetDayOfYear; + proto.hour = proto.hours = getSetHour; + proto.minute = proto.minutes = getSetMinute; + proto.second = proto.seconds = getSetSecond; + proto.millisecond = proto.milliseconds = getSetMillisecond; + proto.utcOffset = getSetOffset; + proto.utc = setOffsetToUTC; + proto.local = setOffsetToLocal; + proto.parseZone = setOffsetToParsedOffset; + proto.hasAlignedHourOffset = hasAlignedHourOffset; + proto.isDST = isDaylightSavingTime; + proto.isLocal = isLocal; + proto.isUtcOffset = isUtcOffset; + proto.isUtc = isUtc; + proto.isUTC = isUtc; + proto.zoneAbbr = getZoneAbbr; + proto.zoneName = getZoneName; + proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); + proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); + proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); + proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone); + proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted); + + function createUnix (input) { + return createLocal(input * 1000); + } + + function createInZone () { + return createLocal.apply(null, arguments).parseZone(); + } + + function preParsePostFormat (string) { + return string; + } + + var proto$1 = Locale.prototype; + + proto$1.calendar = calendar; + proto$1.longDateFormat = longDateFormat; + proto$1.invalidDate = invalidDate; + proto$1.ordinal = ordinal; + proto$1.preparse = preParsePostFormat; + proto$1.postformat = preParsePostFormat; + proto$1.relativeTime = relativeTime; + proto$1.pastFuture = pastFuture; + proto$1.set = set; + + proto$1.months = localeMonths; + proto$1.monthsShort = localeMonthsShort; + proto$1.monthsParse = localeMonthsParse; + proto$1.monthsRegex = monthsRegex; + proto$1.monthsShortRegex = monthsShortRegex; + proto$1.week = localeWeek; + proto$1.firstDayOfYear = localeFirstDayOfYear; + proto$1.firstDayOfWeek = localeFirstDayOfWeek; + + proto$1.weekdays = localeWeekdays; + proto$1.weekdaysMin = localeWeekdaysMin; + proto$1.weekdaysShort = localeWeekdaysShort; + proto$1.weekdaysParse = localeWeekdaysParse; + + proto$1.weekdaysRegex = weekdaysRegex; + proto$1.weekdaysShortRegex = weekdaysShortRegex; + proto$1.weekdaysMinRegex = weekdaysMinRegex; + + proto$1.isPM = localeIsPM; + proto$1.meridiem = localeMeridiem; + + function get$1 (format, index, field, setter) { + var locale = getLocale(); + var utc = createUTC().set(setter, index); + return locale[field](utc, format); + } + + function listMonthsImpl (format, index, field) { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return get$1(format, index, field, 'month'); + } + + var i; + var out = []; + for (i = 0; i < 12; i++) { + out[i] = get$1(format, i, field, 'month'); + } + return out; + } + + // () + // (5) + // (fmt, 5) + // (fmt) + // (true) + // (true, 5) + // (true, fmt, 5) + // (true, fmt) + function listWeekdaysImpl (localeSorted, format, index, field) { + if (typeof localeSorted === 'boolean') { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } else { + format = localeSorted; + index = format; + localeSorted = false; + + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } + + var locale = getLocale(), + shift = localeSorted ? locale._week.dow : 0; + + if (index != null) { + return get$1(format, (index + shift) % 7, field, 'day'); + } + + var i; + var out = []; + for (i = 0; i < 7; i++) { + out[i] = get$1(format, (i + shift) % 7, field, 'day'); + } + return out; + } + + function listMonths (format, index) { + return listMonthsImpl(format, index, 'months'); + } + + function listMonthsShort (format, index) { + return listMonthsImpl(format, index, 'monthsShort'); + } + + function listWeekdays (localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); + } + + function listWeekdaysShort (localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); + } + + function listWeekdaysMin (localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); + } + + getSetGlobalLocale('en', { + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal : function (number) { + var b = number % 10, + output = (toInt(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + } + }); + + // Side effect imports + + hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale); + hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale); + + var mathAbs = Math.abs; + + 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; + } + + function addSubtract$1 (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) + function add$1 (input, value) { + return addSubtract$1(this, input, value, 1); + } + + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function subtract$1 (input, value) { + return addSubtract$1(this, input, value, -1); + } + + function absCeil (number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } + + function bubble () { + var milliseconds = this._milliseconds; + var days = this._days; + var months = this._months; + var data = this._data; + var 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; + } + + function daysToMonths (days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return days * 4800 / 146097; + } + + function monthsToDays (months) { + // the reverse of daysToMonths + return months * 146097 / 4800; + } + + function as (units) { + if (!this.isValid()) { + return NaN; + } + var days; + var months; + var 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); + } + } + } + + // TODO: Use this.as('ms')? + function valueOf$1 () { + if (!this.isValid()) { + return NaN; + } + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } + + function makeAs (alias) { + return function () { + return this.as(alias); + }; + } + + var asMilliseconds = makeAs('ms'); + var asSeconds = makeAs('s'); + var asMinutes = makeAs('m'); + var asHours = makeAs('h'); + var asDays = makeAs('d'); + var asWeeks = makeAs('w'); + var asMonths = makeAs('M'); + var asQuarters = makeAs('Q'); + var asYears = makeAs('y'); + + function clone$1 () { + return createDuration(this); + } + + function get$2 (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'); + var seconds = makeGetter('seconds'); + var minutes = makeGetter('minutes'); + var hours = makeGetter('hours'); + var days = makeGetter('days'); + var months = makeGetter('months'); + var years = makeGetter('years'); + + function weeks () { + return absFloor(this.days() / 7); + } + + var round = Math.round; + var 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 + 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$1 (posNegDuration, withoutSuffix, locale) { + var duration = createDuration(posNegDuration).abs(); + var seconds = round(duration.as('s')); + var minutes = round(duration.as('m')); + var hours = round(duration.as('h')); + var days = round(duration.as('d')); + var months = round(duration.as('M')); + var years = round(duration.as('y')); + + var 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] || + 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 + 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 + 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; + } + + function humanize (withSuffix) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var locale = this.localeData(); + var output = relativeTime$1(this, !withSuffix, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var abs$1 = Math.abs; + + function sign(x) { + return ((x > 0) - (x < 0)) || +x; + } + + function toISOString$1() { + // 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$1(this._milliseconds) / 1000; + var days = abs$1(this._days); + var months = abs$1(this._months); + var minutes, hours, years; + + // 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 + var Y = years; + var M = months; + var D = days; + var h = hours; + var m = minutes; + var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; + var total = this.asSeconds(); + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + var totalSign = total < 0 ? '-' : ''; + var ymSign = sign(this._months) !== sign(total) ? '-' : ''; + var daysSign = sign(this._days) !== sign(total) ? '-' : ''; + var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; + + return totalSign + 'P' + + (Y ? ymSign + Y + 'Y' : '') + + (M ? ymSign + M + 'M' : '') + + (D ? daysSign + D + 'D' : '') + + ((h || m || s) ? 'T' : '') + + (h ? hmsSign + h + 'H' : '') + + (m ? hmsSign + m + 'M' : '') + + (s ? hmsSign + s + 'S' : ''); + } + + var proto$2 = Duration.prototype; + + proto$2.isValid = isValid$1; + proto$2.abs = abs; + proto$2.add = add$1; + proto$2.subtract = subtract$1; + proto$2.as = as; + proto$2.asMilliseconds = asMilliseconds; + proto$2.asSeconds = asSeconds; + proto$2.asMinutes = asMinutes; + proto$2.asHours = asHours; + proto$2.asDays = asDays; + proto$2.asWeeks = asWeeks; + proto$2.asMonths = asMonths; + proto$2.asQuarters = asQuarters; + proto$2.asYears = asYears; + proto$2.valueOf = valueOf$1; + proto$2._bubble = bubble; + proto$2.clone = clone$1; + proto$2.get = get$2; + proto$2.milliseconds = milliseconds; + proto$2.seconds = seconds; + proto$2.minutes = minutes; + proto$2.hours = hours; + proto$2.days = days; + proto$2.weeks = weeks; + proto$2.months = months; + proto$2.years = years; + proto$2.humanize = humanize; + proto$2.toISOString = toISOString$1; + proto$2.toString = toISOString$1; + proto$2.toJSON = toISOString$1; + proto$2.locale = locale; + proto$2.localeData = localeData; + + proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1); + proto$2.lang = lang; + + // Side effect imports + + // FORMATTING + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input, 10) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); + + // Side effect imports + + + hooks.version = '2.24.0'; + + setHookCallback(createLocal); + + hooks.fn = proto; + hooks.min = min; + hooks.max = max; + hooks.now = now; + hooks.utc = createUTC; + hooks.unix = createUnix; + hooks.months = listMonths; + hooks.isDate = isDate; + hooks.locale = getSetGlobalLocale; + hooks.invalid = createInvalid; + hooks.duration = createDuration; + hooks.isMoment = isMoment; + hooks.weekdays = listWeekdays; + hooks.parseZone = createInZone; + hooks.localeData = getLocale; + hooks.isDuration = isDuration; + hooks.monthsShort = listMonthsShort; + hooks.weekdaysMin = listWeekdaysMin; + hooks.defineLocale = defineLocale; + hooks.updateLocale = updateLocale; + hooks.locales = listLocales; + hooks.weekdaysShort = listWeekdaysShort; + hooks.normalizeUnits = normalizeUnits; + hooks.relativeTimeRounding = getSetRelativeTimeRounding; + hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; + hooks.calendarFormat = getCalendarFormat; + hooks.prototype = proto; + + // currently HTML5 input type only supports 24-hour formats + hooks.HTML5_FMT = { + DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // + DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // + DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // + DATE: 'YYYY-MM-DD', // + TIME: 'HH:mm', // + TIME_SECONDS: 'HH:mm:ss', // + TIME_MS: 'HH:mm:ss.SSS', // + WEEK: 'GGGG-[W]WW', // + MONTH: 'YYYY-MM' // + }; + + return hooks; + +}))); +}); + var DatePicker = function (_Component) { inherits(DatePicker, _Component); @@ -3364,7 +7970,7 @@ var DatePicker = function (_Component) { } createClass(DatePicker, [{ - key: "render", + key: 'render', value: function render() { var _this2 = this; @@ -3377,35 +7983,46 @@ var DatePicker = function (_Component) { ); } }, { - key: "renderDatePicker", + key: 'renderDatePicker', value: function renderDatePicker(data) { var _this3 = this; + var value = this.props.value; var props = _extends({}, this.props); if (props.children) delete props.children; + if (props.value) delete props.value; if (props.onChangeValue) delete props.onChangeValue; return React__default.createElement( - "div", - { className: "form-group" }, + 'div', + { className: 'form-group' }, this.renderLabel(data), - React__default.createElement("input", _extends({ onChange: function onChange(e) { - return _this3.props.onChangeValue(e.target.value); + React__default.createElement('input', _extends({ + value: this.parseValue(value), + onChange: function onChange(e) { + return _this3.props.onChangeValue(moment(e.target.value)); } }, props)), React__default.createElement( - "p", - { className: "text-muted" }, - "DatePicker ", + 'p', + { className: 'text-muted' }, + 'DatePicker ', this.props.type ), React__default.createElement(FormItemError, { name: this.props.name, data: data }) ); } }, { - key: "renderLabel", + key: 'parseValue', + value: function parseValue(value) { + if (this.props.type == 'date') return moment(value).format('YYYY-MM-DD'); + if (this.props.type == 'time') return moment(value).format('HH:mm:ss'); + return moment(value).format('YYYY-MM-DDTHH:mm'); + } + }, { + key: 'renderLabel', value: function renderLabel(data) { if (this.props.label) { return React__default.createElement( - "label", + 'label', { htmlFor: this.props.id }, this.props.label ); @@ -3421,6 +8038,7 @@ DatePicker.defaultProps = { id: 'input', className: 'form-control', type: 'datetime-local', + value: null, onChangeValue: function onChangeValue(text) {} }; @@ -3518,6 +8136,7 @@ FilePicker.defaultProps = { name: 'file-picker', id: 'file-picker', className: 'form-control', + value: null, onChangeValue: function onChangeValue(file) {} }; diff --git a/dist/index.js.map b/dist/index.js.map index 02f2965..33ce25c 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../src/FormContext.js","../src/FormTranslationContext.js","../src/FormItemError.js","../src/CheckBox.js","../node_modules/classnames/index.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/react-transition-group/TransitionGroup.js","../node_modules/react-toastify/lib/utils/constant.js","../node_modules/react-toastify/lib/utils/propValidator.js","../node_modules/react-toastify/lib/components/ProgressBar.js","../node_modules/react-toastify/lib/components/Toast.js","../node_modules/react-toastify/lib/components/CloseButton.js","../node_modules/react-transition-group/utils/PropTypes.js","../node_modules/react-transition-group/Transition.js","../node_modules/react-toastify/lib/utils/cssTransition.js","../node_modules/react-toastify/lib/components/Transitions.js","../node_modules/react-toastify/lib/utils/eventManager.js","../node_modules/react-toastify/lib/components/ToastContainer.js","../node_modules/react-toastify/lib/toast.js","../node_modules/react-toastify/lib/index.js","../src/Form.js","../src/Input.js","../src/OptionGroup.js","../src/Option.js","../src/RadioGroup.js","../src/Radio.js","../src/Submit.js","../src/TextArea.js","../src/DatePicker.js","../src/FilePicker.js"],"sourcesContent":["import React, { Component } from 'react'\n\nconst FormContext = React.createContext({ data: null });\n\nexport default FormContext\n\nexport class FormConsumer extends Component\n{\n render()\n {\n return (\n{translator.renderText(data.errors[this.props.name].error)}
\n }\n}","import React, {Component} from 'react';\nimport {FormConsumer} from \"./FormContext\";\nimport FormItemError from \"./FormItemError\";\n\nexport default class CheckBox extends Component\n{\n render()\n {\n return (\n{this.props.translator.renderText(this.state.data.error)}
\n )\n }\n\n return null\n }\n}\n\nexport default class Form extends Component\n{\n render()\n {\n return (\n{this.props.label}
\n )\n }\n\n renderChildren()\n {\n return (\nDatePicker {this.props.type}
\n{value.name} {this.renderDeleteButton()}
\n\n if (value !== null)\n return{value} {this.renderDeleteButton()}
\n\n return null\n }\n\n renderDeleteButton()\n {\n return (\n {\n this.props.onChangeValue(null)\n }}/>\n );\n }\n\n renderLabel(data)\n {\n if (this.props.label) {\n return (\n \n )\n }\n }\n}\n\nFilePicker.defaultProps = {\n name: 'file-picker',\n id: 'file-picker',\n className: 'form-control',\n onChangeValue: (file) => {}\n}\n"],"names":["FormContext","React","createContext","data","FormConsumer","props","children","Component","FormTranslationContext","text","FormTranslationConsumer","FormItemError","errors","name","translator","renderError","renderText","error","CheckBox","renderCheckBox","onChangeValue","value","e","target","checked","renderLabel","length","id","defaultProps","_react","require$$0","require$$1","_ChildMapping","_reactLifecyclesCompat","require$$2","_propValidator","_constant","require$$3","PropTypes","_PropTypes","require$$4","require$$5","require$$6","_Transitions","ContextAwareForm","_onSubmit","preventDefault","onSubmit","displayError","state","handleError","setState","toast","ToastContainer","Form","log","Input","renderInput","label","OptionGroupContext","OptionGroupConsumer","OptionGroup","_onChange","multiple","options","i","l","selected","push","renderOptionGroup","renderChildren","Option","renderOption","RadioGroupContext","RadioGroupConsumer","RadioGroup","renderRadioGroup","Radio","renderRadio","Submit","TextArea","renderTextArea","DatePicker","renderDatePicker","type","FilePicker","renderFilePicker","babelHelpers.typeof","File","renderValue","renderDeleteButton","file"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../src/FormContext.js","../src/FormTranslationContext.js","../src/FormItemError.js","../src/CheckBox.js","../node_modules/classnames/index.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/react-transition-group/TransitionGroup.js","../node_modules/react-toastify/lib/utils/constant.js","../node_modules/react-toastify/lib/utils/propValidator.js","../node_modules/react-toastify/lib/components/ProgressBar.js","../node_modules/react-toastify/lib/components/Toast.js","../node_modules/react-toastify/lib/components/CloseButton.js","../node_modules/react-transition-group/utils/PropTypes.js","../node_modules/react-transition-group/Transition.js","../node_modules/react-toastify/lib/utils/cssTransition.js","../node_modules/react-toastify/lib/components/Transitions.js","../node_modules/react-toastify/lib/utils/eventManager.js","../node_modules/react-toastify/lib/components/ToastContainer.js","../node_modules/react-toastify/lib/toast.js","../node_modules/react-toastify/lib/index.js","../src/Form.js","../src/Input.js","../src/OptionGroup.js","../src/Option.js","../src/RadioGroup.js","../src/Radio.js","../src/Submit.js","../src/TextArea.js","../node_modules/moment/moment.js","../src/DatePicker.js","../src/FilePicker.js"],"sourcesContent":["import React, { Component } from 'react'\n\nconst FormContext = React.createContext({ data: null });\n\nexport default FormContext\n\nexport class FormConsumer extends Component\n{\n render()\n {\n return (\n{translator.renderText(data.errors[this.props.name].error)}
\n }\n}","import React, {Component} from 'react';\nimport {FormConsumer} from \"./FormContext\";\nimport FormItemError from \"./FormItemError\";\n\nexport default class CheckBox extends Component\n{\n render()\n {\n return (\n{this.props.translator.renderText(this.state.data.error)}
\n )\n }\n\n return null\n }\n}\n\nexport default class Form extends Component\n{\n render()\n {\n return (\n{this.props.label}
\n )\n }\n\n renderChildren()\n {\n return (\nDatePicker {this.props.type}
\n{value.name} {this.renderDeleteButton()}
\n\n if (value !== null)\n return{value} {this.renderDeleteButton()}
\n\n return null\n }\n\n renderDeleteButton()\n {\n return (\n {\n this.props.onChangeValue(null)\n }}/>\n );\n }\n\n renderLabel(data)\n {\n if (this.props.label) {\n return (\n \n )\n }\n }\n}\n\nFilePicker.defaultProps = {\n name: 'file-picker',\n id: 'file-picker',\n className: 'form-control',\n value: null,\n onChangeValue: (file) => {}\n}\n"],"names":["FormContext","React","createContext","data","FormConsumer","props","children","Component","FormTranslationContext","text","FormTranslationConsumer","FormItemError","errors","name","translator","renderError","renderText","error","CheckBox","renderCheckBox","onChangeValue","value","e","target","checked","renderLabel","length","id","defaultProps","_react","require$$0","require$$1","_ChildMapping","_reactLifecyclesCompat","require$$2","_propValidator","_constant","require$$3","PropTypes","_PropTypes","require$$4","require$$5","require$$6","_Transitions","ContextAwareForm","_onSubmit","preventDefault","onSubmit","displayError","state","handleError","setState","toast","ToastContainer","Form","log","Input","renderInput","label","OptionGroupContext","OptionGroupConsumer","OptionGroup","_onChange","multiple","options","i","l","selected","push","renderOptionGroup","renderChildren","Option","renderOption","RadioGroupContext","RadioGroupConsumer","RadioGroup","renderRadioGroup","Radio","renderRadio","Submit","TextArea","renderTextArea","this","require","DatePicker","renderDatePicker","parseValue","moment","type","format","FilePicker","renderFilePicker","babelHelpers.typeof","File","renderValue","renderDeleteButton","file"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 9f96967..26e541a 100644 --- a/package.json +++ b/package.json @@ -59,6 +59,7 @@ "dist" ], "dependencies": { + "moment": "^2.24.0", "react-toastify": "^4.5.2" } } diff --git a/src/DatePicker.js b/src/DatePicker.js index 3de0d75..bae7453 100644 --- a/src/DatePicker.js +++ b/src/DatePicker.js @@ -1,4 +1,5 @@ import React, {Component} from 'react'; +import moment from 'moment'; import {FormConsumer} from "./FormContext"; import FormItemError from "./FormItemError"; @@ -15,19 +16,30 @@ export default class DatePicker extends Component renderDatePicker(data) { + const value = this.props.value let props = {...this.props} if (props.children) delete props.children + if (props.value) delete props.value if (props.onChangeValue) delete props.onChangeValue return (DatePicker {this.props.type}