b977ad6f7c3913d1648823df84a1387f05e61d22
[lhc/web/www.git] / www / plugins-dist / organiseur / lib / moment / moment-with-locales.js
1 ;(function (global, factory) {
2 typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
3 typeof define === 'function' && define.amd ? define(factory) :
4 global.moment = factory()
5 }(this, (function () { 'use strict';
6
7 var hookCallback;
8
9 function hooks() {
10 return hookCallback.apply(null, arguments);
11 }
12
13 // This is done to register the method called with moment()
14 // without creating circular dependencies.
15 function setHookCallback(callback) {
16 hookCallback = callback;
17 }
18
19 function isArray(input) {
20 return (
21 input instanceof Array ||
22 Object.prototype.toString.call(input) === '[object Array]'
23 );
24 }
25
26 function isObject(input) {
27 // IE8 will treat undefined and null as object if it wasn't for
28 // input != null
29 return (
30 input != null &&
31 Object.prototype.toString.call(input) === '[object Object]'
32 );
33 }
34
35 function hasOwnProp(a, b) {
36 return Object.prototype.hasOwnProperty.call(a, b);
37 }
38
39 function isObjectEmpty(obj) {
40 if (Object.getOwnPropertyNames) {
41 return Object.getOwnPropertyNames(obj).length === 0;
42 } else {
43 var k;
44 for (k in obj) {
45 if (hasOwnProp(obj, k)) {
46 return false;
47 }
48 }
49 return true;
50 }
51 }
52
53 function isUndefined(input) {
54 return input === void 0;
55 }
56
57 function isNumber(input) {
58 return (
59 typeof input === 'number' ||
60 Object.prototype.toString.call(input) === '[object Number]'
61 );
62 }
63
64 function isDate(input) {
65 return (
66 input instanceof Date ||
67 Object.prototype.toString.call(input) === '[object Date]'
68 );
69 }
70
71 function map(arr, fn) {
72 var res = [],
73 i;
74 for (i = 0; i < arr.length; ++i) {
75 res.push(fn(arr[i], i));
76 }
77 return res;
78 }
79
80 function extend(a, b) {
81 for (var i in b) {
82 if (hasOwnProp(b, i)) {
83 a[i] = b[i];
84 }
85 }
86
87 if (hasOwnProp(b, 'toString')) {
88 a.toString = b.toString;
89 }
90
91 if (hasOwnProp(b, 'valueOf')) {
92 a.valueOf = b.valueOf;
93 }
94
95 return a;
96 }
97
98 function createUTC(input, format, locale, strict) {
99 return createLocalOrUTC(input, format, locale, strict, true).utc();
100 }
101
102 function defaultParsingFlags() {
103 // We need to deep clone this object.
104 return {
105 empty: false,
106 unusedTokens: [],
107 unusedInput: [],
108 overflow: -2,
109 charsLeftOver: 0,
110 nullInput: false,
111 invalidEra: null,
112 invalidMonth: null,
113 invalidFormat: false,
114 userInvalidated: false,
115 iso: false,
116 parsedDateParts: [],
117 era: null,
118 meridiem: null,
119 rfc2822: false,
120 weekdayMismatch: false,
121 };
122 }
123
124 function getParsingFlags(m) {
125 if (m._pf == null) {
126 m._pf = defaultParsingFlags();
127 }
128 return m._pf;
129 }
130
131 var some;
132 if (Array.prototype.some) {
133 some = Array.prototype.some;
134 } else {
135 some = function (fun) {
136 var t = Object(this),
137 len = t.length >>> 0,
138 i;
139
140 for (i = 0; i < len; i++) {
141 if (i in t && fun.call(this, t[i], i, t)) {
142 return true;
143 }
144 }
145
146 return false;
147 };
148 }
149
150 function isValid(m) {
151 if (m._isValid == null) {
152 var flags = getParsingFlags(m),
153 parsedParts = some.call(flags.parsedDateParts, function (i) {
154 return i != null;
155 }),
156 isNowValid =
157 !isNaN(m._d.getTime()) &&
158 flags.overflow < 0 &&
159 !flags.empty &&
160 !flags.invalidEra &&
161 !flags.invalidMonth &&
162 !flags.invalidWeekday &&
163 !flags.weekdayMismatch &&
164 !flags.nullInput &&
165 !flags.invalidFormat &&
166 !flags.userInvalidated &&
167 (!flags.meridiem || (flags.meridiem && parsedParts));
168
169 if (m._strict) {
170 isNowValid =
171 isNowValid &&
172 flags.charsLeftOver === 0 &&
173 flags.unusedTokens.length === 0 &&
174 flags.bigHour === undefined;
175 }
176
177 if (Object.isFrozen == null || !Object.isFrozen(m)) {
178 m._isValid = isNowValid;
179 } else {
180 return isNowValid;
181 }
182 }
183 return m._isValid;
184 }
185
186 function createInvalid(flags) {
187 var m = createUTC(NaN);
188 if (flags != null) {
189 extend(getParsingFlags(m), flags);
190 } else {
191 getParsingFlags(m).userInvalidated = true;
192 }
193
194 return m;
195 }
196
197 // Plugins that add properties should also add the key here (null value),
198 // so we can properly clone ourselves.
199 var momentProperties = (hooks.momentProperties = []),
200 updateInProgress = false;
201
202 function copyConfig(to, from) {
203 var i, prop, val;
204
205 if (!isUndefined(from._isAMomentObject)) {
206 to._isAMomentObject = from._isAMomentObject;
207 }
208 if (!isUndefined(from._i)) {
209 to._i = from._i;
210 }
211 if (!isUndefined(from._f)) {
212 to._f = from._f;
213 }
214 if (!isUndefined(from._l)) {
215 to._l = from._l;
216 }
217 if (!isUndefined(from._strict)) {
218 to._strict = from._strict;
219 }
220 if (!isUndefined(from._tzm)) {
221 to._tzm = from._tzm;
222 }
223 if (!isUndefined(from._isUTC)) {
224 to._isUTC = from._isUTC;
225 }
226 if (!isUndefined(from._offset)) {
227 to._offset = from._offset;
228 }
229 if (!isUndefined(from._pf)) {
230 to._pf = getParsingFlags(from);
231 }
232 if (!isUndefined(from._locale)) {
233 to._locale = from._locale;
234 }
235
236 if (momentProperties.length > 0) {
237 for (i = 0; i < momentProperties.length; i++) {
238 prop = momentProperties[i];
239 val = from[prop];
240 if (!isUndefined(val)) {
241 to[prop] = val;
242 }
243 }
244 }
245
246 return to;
247 }
248
249 // Moment prototype object
250 function Moment(config) {
251 copyConfig(this, config);
252 this._d = new Date(config._d != null ? config._d.getTime() : NaN);
253 if (!this.isValid()) {
254 this._d = new Date(NaN);
255 }
256 // Prevent infinite loop in case updateOffset creates new moment
257 // objects.
258 if (updateInProgress === false) {
259 updateInProgress = true;
260 hooks.updateOffset(this);
261 updateInProgress = false;
262 }
263 }
264
265 function isMoment(obj) {
266 return (
267 obj instanceof Moment || (obj != null && obj._isAMomentObject != null)
268 );
269 }
270
271 function warn(msg) {
272 if (
273 hooks.suppressDeprecationWarnings === false &&
274 typeof console !== 'undefined' &&
275 console.warn
276 ) {
277 console.warn('Deprecation warning: ' + msg);
278 }
279 }
280
281 function deprecate(msg, fn) {
282 var firstTime = true;
283
284 return extend(function () {
285 if (hooks.deprecationHandler != null) {
286 hooks.deprecationHandler(null, msg);
287 }
288 if (firstTime) {
289 var args = [],
290 arg,
291 i,
292 key;
293 for (i = 0; i < arguments.length; i++) {
294 arg = '';
295 if (typeof arguments[i] === 'object') {
296 arg += '\n[' + i + '] ';
297 for (key in arguments[0]) {
298 if (hasOwnProp(arguments[0], key)) {
299 arg += key + ': ' + arguments[0][key] + ', ';
300 }
301 }
302 arg = arg.slice(0, -2); // Remove trailing comma and space
303 } else {
304 arg = arguments[i];
305 }
306 args.push(arg);
307 }
308 warn(
309 msg +
310 '\nArguments: ' +
311 Array.prototype.slice.call(args).join('') +
312 '\n' +
313 new Error().stack
314 );
315 firstTime = false;
316 }
317 return fn.apply(this, arguments);
318 }, fn);
319 }
320
321 var deprecations = {};
322
323 function deprecateSimple(name, msg) {
324 if (hooks.deprecationHandler != null) {
325 hooks.deprecationHandler(name, msg);
326 }
327 if (!deprecations[name]) {
328 warn(msg);
329 deprecations[name] = true;
330 }
331 }
332
333 hooks.suppressDeprecationWarnings = false;
334 hooks.deprecationHandler = null;
335
336 function isFunction(input) {
337 return (
338 (typeof Function !== 'undefined' && input instanceof Function) ||
339 Object.prototype.toString.call(input) === '[object Function]'
340 );
341 }
342
343 function set(config) {
344 var prop, i;
345 for (i in config) {
346 if (hasOwnProp(config, i)) {
347 prop = config[i];
348 if (isFunction(prop)) {
349 this[i] = prop;
350 } else {
351 this['_' + i] = prop;
352 }
353 }
354 }
355 this._config = config;
356 // Lenient ordinal parsing accepts just a number in addition to
357 // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
358 // TODO: Remove "ordinalParse" fallback in next major release.
359 this._dayOfMonthOrdinalParseLenient = new RegExp(
360 (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
361 '|' +
362 /\d{1,2}/.source
363 );
364 }
365
366 function mergeConfigs(parentConfig, childConfig) {
367 var res = extend({}, parentConfig),
368 prop;
369 for (prop in childConfig) {
370 if (hasOwnProp(childConfig, prop)) {
371 if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
372 res[prop] = {};
373 extend(res[prop], parentConfig[prop]);
374 extend(res[prop], childConfig[prop]);
375 } else if (childConfig[prop] != null) {
376 res[prop] = childConfig[prop];
377 } else {
378 delete res[prop];
379 }
380 }
381 }
382 for (prop in parentConfig) {
383 if (
384 hasOwnProp(parentConfig, prop) &&
385 !hasOwnProp(childConfig, prop) &&
386 isObject(parentConfig[prop])
387 ) {
388 // make sure changes to properties don't modify parent config
389 res[prop] = extend({}, res[prop]);
390 }
391 }
392 return res;
393 }
394
395 function Locale(config) {
396 if (config != null) {
397 this.set(config);
398 }
399 }
400
401 var keys;
402
403 if (Object.keys) {
404 keys = Object.keys;
405 } else {
406 keys = function (obj) {
407 var i,
408 res = [];
409 for (i in obj) {
410 if (hasOwnProp(obj, i)) {
411 res.push(i);
412 }
413 }
414 return res;
415 };
416 }
417
418 var defaultCalendar = {
419 sameDay: '[Today at] LT',
420 nextDay: '[Tomorrow at] LT',
421 nextWeek: 'dddd [at] LT',
422 lastDay: '[Yesterday at] LT',
423 lastWeek: '[Last] dddd [at] LT',
424 sameElse: 'L',
425 };
426
427 function calendar(key, mom, now) {
428 var output = this._calendar[key] || this._calendar['sameElse'];
429 return isFunction(output) ? output.call(mom, now) : output;
430 }
431
432 function zeroFill(number, targetLength, forceSign) {
433 var absNumber = '' + Math.abs(number),
434 zerosToFill = targetLength - absNumber.length,
435 sign = number >= 0;
436 return (
437 (sign ? (forceSign ? '+' : '') : '-') +
438 Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +
439 absNumber
440 );
441 }
442
443 var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,
444 localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
445 formatFunctions = {},
446 formatTokenFunctions = {};
447
448 // token: 'M'
449 // padded: ['MM', 2]
450 // ordinal: 'Mo'
451 // callback: function () { this.month() + 1 }
452 function addFormatToken(token, padded, ordinal, callback) {
453 var func = callback;
454 if (typeof callback === 'string') {
455 func = function () {
456 return this[callback]();
457 };
458 }
459 if (token) {
460 formatTokenFunctions[token] = func;
461 }
462 if (padded) {
463 formatTokenFunctions[padded[0]] = function () {
464 return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
465 };
466 }
467 if (ordinal) {
468 formatTokenFunctions[ordinal] = function () {
469 return this.localeData().ordinal(
470 func.apply(this, arguments),
471 token
472 );
473 };
474 }
475 }
476
477 function removeFormattingTokens(input) {
478 if (input.match(/\[[\s\S]/)) {
479 return input.replace(/^\[|\]$/g, '');
480 }
481 return input.replace(/\\/g, '');
482 }
483
484 function makeFormatFunction(format) {
485 var array = format.match(formattingTokens),
486 i,
487 length;
488
489 for (i = 0, length = array.length; i < length; i++) {
490 if (formatTokenFunctions[array[i]]) {
491 array[i] = formatTokenFunctions[array[i]];
492 } else {
493 array[i] = removeFormattingTokens(array[i]);
494 }
495 }
496
497 return function (mom) {
498 var output = '',
499 i;
500 for (i = 0; i < length; i++) {
501 output += isFunction(array[i])
502 ? array[i].call(mom, format)
503 : array[i];
504 }
505 return output;
506 };
507 }
508
509 // format date using native date object
510 function formatMoment(m, format) {
511 if (!m.isValid()) {
512 return m.localeData().invalidDate();
513 }
514
515 format = expandFormat(format, m.localeData());
516 formatFunctions[format] =
517 formatFunctions[format] || makeFormatFunction(format);
518
519 return formatFunctions[format](m);
520 }
521
522 function expandFormat(format, locale) {
523 var i = 5;
524
525 function replaceLongDateFormatTokens(input) {
526 return locale.longDateFormat(input) || input;
527 }
528
529 localFormattingTokens.lastIndex = 0;
530 while (i >= 0 && localFormattingTokens.test(format)) {
531 format = format.replace(
532 localFormattingTokens,
533 replaceLongDateFormatTokens
534 );
535 localFormattingTokens.lastIndex = 0;
536 i -= 1;
537 }
538
539 return format;
540 }
541
542 var defaultLongDateFormat = {
543 LTS: 'h:mm:ss A',
544 LT: 'h:mm A',
545 L: 'MM/DD/YYYY',
546 LL: 'MMMM D, YYYY',
547 LLL: 'MMMM D, YYYY h:mm A',
548 LLLL: 'dddd, MMMM D, YYYY h:mm A',
549 };
550
551 function longDateFormat(key) {
552 var format = this._longDateFormat[key],
553 formatUpper = this._longDateFormat[key.toUpperCase()];
554
555 if (format || !formatUpper) {
556 return format;
557 }
558
559 this._longDateFormat[key] = formatUpper
560 .match(formattingTokens)
561 .map(function (tok) {
562 if (
563 tok === 'MMMM' ||
564 tok === 'MM' ||
565 tok === 'DD' ||
566 tok === 'dddd'
567 ) {
568 return tok.slice(1);
569 }
570 return tok;
571 })
572 .join('');
573
574 return this._longDateFormat[key];
575 }
576
577 var defaultInvalidDate = 'Invalid date';
578
579 function invalidDate() {
580 return this._invalidDate;
581 }
582
583 var defaultOrdinal = '%d',
584 defaultDayOfMonthOrdinalParse = /\d{1,2}/;
585
586 function ordinal(number) {
587 return this._ordinal.replace('%d', number);
588 }
589
590 var defaultRelativeTime = {
591 future: 'in %s',
592 past: '%s ago',
593 s: 'a few seconds',
594 ss: '%d seconds',
595 m: 'a minute',
596 mm: '%d minutes',
597 h: 'an hour',
598 hh: '%d hours',
599 d: 'a day',
600 dd: '%d days',
601 w: 'a week',
602 ww: '%d weeks',
603 M: 'a month',
604 MM: '%d months',
605 y: 'a year',
606 yy: '%d years',
607 };
608
609 function relativeTime(number, withoutSuffix, string, isFuture) {
610 var output = this._relativeTime[string];
611 return isFunction(output)
612 ? output(number, withoutSuffix, string, isFuture)
613 : output.replace(/%d/i, number);
614 }
615
616 function pastFuture(diff, output) {
617 var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
618 return isFunction(format) ? format(output) : format.replace(/%s/i, output);
619 }
620
621 var aliases = {};
622
623 function addUnitAlias(unit, shorthand) {
624 var lowerCase = unit.toLowerCase();
625 aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
626 }
627
628 function normalizeUnits(units) {
629 return typeof units === 'string'
630 ? aliases[units] || aliases[units.toLowerCase()]
631 : undefined;
632 }
633
634 function normalizeObjectUnits(inputObject) {
635 var normalizedInput = {},
636 normalizedProp,
637 prop;
638
639 for (prop in inputObject) {
640 if (hasOwnProp(inputObject, prop)) {
641 normalizedProp = normalizeUnits(prop);
642 if (normalizedProp) {
643 normalizedInput[normalizedProp] = inputObject[prop];
644 }
645 }
646 }
647
648 return normalizedInput;
649 }
650
651 var priorities = {};
652
653 function addUnitPriority(unit, priority) {
654 priorities[unit] = priority;
655 }
656
657 function getPrioritizedUnits(unitsObj) {
658 var units = [],
659 u;
660 for (u in unitsObj) {
661 if (hasOwnProp(unitsObj, u)) {
662 units.push({ unit: u, priority: priorities[u] });
663 }
664 }
665 units.sort(function (a, b) {
666 return a.priority - b.priority;
667 });
668 return units;
669 }
670
671 function isLeapYear(year) {
672 return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
673 }
674
675 function absFloor(number) {
676 if (number < 0) {
677 // -0 -> 0
678 return Math.ceil(number) || 0;
679 } else {
680 return Math.floor(number);
681 }
682 }
683
684 function toInt(argumentForCoercion) {
685 var coercedNumber = +argumentForCoercion,
686 value = 0;
687
688 if (coercedNumber !== 0 && isFinite(coercedNumber)) {
689 value = absFloor(coercedNumber);
690 }
691
692 return value;
693 }
694
695 function makeGetSet(unit, keepTime) {
696 return function (value) {
697 if (value != null) {
698 set$1(this, unit, value);
699 hooks.updateOffset(this, keepTime);
700 return this;
701 } else {
702 return get(this, unit);
703 }
704 };
705 }
706
707 function get(mom, unit) {
708 return mom.isValid()
709 ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()
710 : NaN;
711 }
712
713 function set$1(mom, unit, value) {
714 if (mom.isValid() && !isNaN(value)) {
715 if (
716 unit === 'FullYear' &&
717 isLeapYear(mom.year()) &&
718 mom.month() === 1 &&
719 mom.date() === 29
720 ) {
721 value = toInt(value);
722 mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](
723 value,
724 mom.month(),
725 daysInMonth(value, mom.month())
726 );
727 } else {
728 mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
729 }
730 }
731 }
732
733 // MOMENTS
734
735 function stringGet(units) {
736 units = normalizeUnits(units);
737 if (isFunction(this[units])) {
738 return this[units]();
739 }
740 return this;
741 }
742
743 function stringSet(units, value) {
744 if (typeof units === 'object') {
745 units = normalizeObjectUnits(units);
746 var prioritized = getPrioritizedUnits(units),
747 i;
748 for (i = 0; i < prioritized.length; i++) {
749 this[prioritized[i].unit](units[prioritized[i].unit]);
750 }
751 } else {
752 units = normalizeUnits(units);
753 if (isFunction(this[units])) {
754 return this[units](value);
755 }
756 }
757 return this;
758 }
759
760 var match1 = /\d/, // 0 - 9
761 match2 = /\d\d/, // 00 - 99
762 match3 = /\d{3}/, // 000 - 999
763 match4 = /\d{4}/, // 0000 - 9999
764 match6 = /[+-]?\d{6}/, // -999999 - 999999
765 match1to2 = /\d\d?/, // 0 - 99
766 match3to4 = /\d\d\d\d?/, // 999 - 9999
767 match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999
768 match1to3 = /\d{1,3}/, // 0 - 999
769 match1to4 = /\d{1,4}/, // 0 - 9999
770 match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999
771 matchUnsigned = /\d+/, // 0 - inf
772 matchSigned = /[+-]?\d+/, // -inf - inf
773 matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z
774 matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z
775 matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123
776 // any word (or two) characters or numbers including two/three word month in arabic.
777 // includes scottish gaelic two word and hyphenated months
778 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,
779 regexes;
780
781 regexes = {};
782
783 function addRegexToken(token, regex, strictRegex) {
784 regexes[token] = isFunction(regex)
785 ? regex
786 : function (isStrict, localeData) {
787 return isStrict && strictRegex ? strictRegex : regex;
788 };
789 }
790
791 function getParseRegexForToken(token, config) {
792 if (!hasOwnProp(regexes, token)) {
793 return new RegExp(unescapeFormat(token));
794 }
795
796 return regexes[token](config._strict, config._locale);
797 }
798
799 // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
800 function unescapeFormat(s) {
801 return regexEscape(
802 s
803 .replace('\\', '')
804 .replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (
805 matched,
806 p1,
807 p2,
808 p3,
809 p4
810 ) {
811 return p1 || p2 || p3 || p4;
812 })
813 );
814 }
815
816 function regexEscape(s) {
817 return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
818 }
819
820 var tokens = {};
821
822 function addParseToken(token, callback) {
823 var i,
824 func = callback;
825 if (typeof token === 'string') {
826 token = [token];
827 }
828 if (isNumber(callback)) {
829 func = function (input, array) {
830 array[callback] = toInt(input);
831 };
832 }
833 for (i = 0; i < token.length; i++) {
834 tokens[token[i]] = func;
835 }
836 }
837
838 function addWeekParseToken(token, callback) {
839 addParseToken(token, function (input, array, config, token) {
840 config._w = config._w || {};
841 callback(input, config._w, config, token);
842 });
843 }
844
845 function addTimeToArrayFromToken(token, input, config) {
846 if (input != null && hasOwnProp(tokens, token)) {
847 tokens[token](input, config._a, config, token);
848 }
849 }
850
851 var YEAR = 0,
852 MONTH = 1,
853 DATE = 2,
854 HOUR = 3,
855 MINUTE = 4,
856 SECOND = 5,
857 MILLISECOND = 6,
858 WEEK = 7,
859 WEEKDAY = 8;
860
861 function mod(n, x) {
862 return ((n % x) + x) % x;
863 }
864
865 var indexOf;
866
867 if (Array.prototype.indexOf) {
868 indexOf = Array.prototype.indexOf;
869 } else {
870 indexOf = function (o) {
871 // I know
872 var i;
873 for (i = 0; i < this.length; ++i) {
874 if (this[i] === o) {
875 return i;
876 }
877 }
878 return -1;
879 };
880 }
881
882 function daysInMonth(year, month) {
883 if (isNaN(year) || isNaN(month)) {
884 return NaN;
885 }
886 var modMonth = mod(month, 12);
887 year += (month - modMonth) / 12;
888 return modMonth === 1
889 ? isLeapYear(year)
890 ? 29
891 : 28
892 : 31 - ((modMonth % 7) % 2);
893 }
894
895 // FORMATTING
896
897 addFormatToken('M', ['MM', 2], 'Mo', function () {
898 return this.month() + 1;
899 });
900
901 addFormatToken('MMM', 0, 0, function (format) {
902 return this.localeData().monthsShort(this, format);
903 });
904
905 addFormatToken('MMMM', 0, 0, function (format) {
906 return this.localeData().months(this, format);
907 });
908
909 // ALIASES
910
911 addUnitAlias('month', 'M');
912
913 // PRIORITY
914
915 addUnitPriority('month', 8);
916
917 // PARSING
918
919 addRegexToken('M', match1to2);
920 addRegexToken('MM', match1to2, match2);
921 addRegexToken('MMM', function (isStrict, locale) {
922 return locale.monthsShortRegex(isStrict);
923 });
924 addRegexToken('MMMM', function (isStrict, locale) {
925 return locale.monthsRegex(isStrict);
926 });
927
928 addParseToken(['M', 'MM'], function (input, array) {
929 array[MONTH] = toInt(input) - 1;
930 });
931
932 addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
933 var month = config._locale.monthsParse(input, token, config._strict);
934 // if we didn't find a month name, mark the date as invalid.
935 if (month != null) {
936 array[MONTH] = month;
937 } else {
938 getParsingFlags(config).invalidMonth = input;
939 }
940 });
941
942 // LOCALES
943
944 var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
945 '_'
946 ),
947 defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(
948 '_'
949 ),
950 MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,
951 defaultMonthsShortRegex = matchWord,
952 defaultMonthsRegex = matchWord;
953
954 function localeMonths(m, format) {
955 if (!m) {
956 return isArray(this._months)
957 ? this._months
958 : this._months['standalone'];
959 }
960 return isArray(this._months)
961 ? this._months[m.month()]
962 : this._months[
963 (this._months.isFormat || MONTHS_IN_FORMAT).test(format)
964 ? 'format'
965 : 'standalone'
966 ][m.month()];
967 }
968
969 function localeMonthsShort(m, format) {
970 if (!m) {
971 return isArray(this._monthsShort)
972 ? this._monthsShort
973 : this._monthsShort['standalone'];
974 }
975 return isArray(this._monthsShort)
976 ? this._monthsShort[m.month()]
977 : this._monthsShort[
978 MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'
979 ][m.month()];
980 }
981
982 function handleStrictParse(monthName, format, strict) {
983 var i,
984 ii,
985 mom,
986 llc = monthName.toLocaleLowerCase();
987 if (!this._monthsParse) {
988 // this is not used
989 this._monthsParse = [];
990 this._longMonthsParse = [];
991 this._shortMonthsParse = [];
992 for (i = 0; i < 12; ++i) {
993 mom = createUTC([2000, i]);
994 this._shortMonthsParse[i] = this.monthsShort(
995 mom,
996 ''
997 ).toLocaleLowerCase();
998 this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
999 }
1000 }
1001
1002 if (strict) {
1003 if (format === 'MMM') {
1004 ii = indexOf.call(this._shortMonthsParse, llc);
1005 return ii !== -1 ? ii : null;
1006 } else {
1007 ii = indexOf.call(this._longMonthsParse, llc);
1008 return ii !== -1 ? ii : null;
1009 }
1010 } else {
1011 if (format === 'MMM') {
1012 ii = indexOf.call(this._shortMonthsParse, llc);
1013 if (ii !== -1) {
1014 return ii;
1015 }
1016 ii = indexOf.call(this._longMonthsParse, llc);
1017 return ii !== -1 ? ii : null;
1018 } else {
1019 ii = indexOf.call(this._longMonthsParse, llc);
1020 if (ii !== -1) {
1021 return ii;
1022 }
1023 ii = indexOf.call(this._shortMonthsParse, llc);
1024 return ii !== -1 ? ii : null;
1025 }
1026 }
1027 }
1028
1029 function localeMonthsParse(monthName, format, strict) {
1030 var i, mom, regex;
1031
1032 if (this._monthsParseExact) {
1033 return handleStrictParse.call(this, monthName, format, strict);
1034 }
1035
1036 if (!this._monthsParse) {
1037 this._monthsParse = [];
1038 this._longMonthsParse = [];
1039 this._shortMonthsParse = [];
1040 }
1041
1042 // TODO: add sorting
1043 // Sorting makes sure if one month (or abbr) is a prefix of another
1044 // see sorting in computeMonthsParse
1045 for (i = 0; i < 12; i++) {
1046 // make the regex if we don't have it already
1047 mom = createUTC([2000, i]);
1048 if (strict && !this._longMonthsParse[i]) {
1049 this._longMonthsParse[i] = new RegExp(
1050 '^' + this.months(mom, '').replace('.', '') + '$',
1051 'i'
1052 );
1053 this._shortMonthsParse[i] = new RegExp(
1054 '^' + this.monthsShort(mom, '').replace('.', '') + '$',
1055 'i'
1056 );
1057 }
1058 if (!strict && !this._monthsParse[i]) {
1059 regex =
1060 '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
1061 this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
1062 }
1063 // test the regex
1064 if (
1065 strict &&
1066 format === 'MMMM' &&
1067 this._longMonthsParse[i].test(monthName)
1068 ) {
1069 return i;
1070 } else if (
1071 strict &&
1072 format === 'MMM' &&
1073 this._shortMonthsParse[i].test(monthName)
1074 ) {
1075 return i;
1076 } else if (!strict && this._monthsParse[i].test(monthName)) {
1077 return i;
1078 }
1079 }
1080 }
1081
1082 // MOMENTS
1083
1084 function setMonth(mom, value) {
1085 var dayOfMonth;
1086
1087 if (!mom.isValid()) {
1088 // No op
1089 return mom;
1090 }
1091
1092 if (typeof value === 'string') {
1093 if (/^\d+$/.test(value)) {
1094 value = toInt(value);
1095 } else {
1096 value = mom.localeData().monthsParse(value);
1097 // TODO: Another silent failure?
1098 if (!isNumber(value)) {
1099 return mom;
1100 }
1101 }
1102 }
1103
1104 dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));
1105 mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
1106 return mom;
1107 }
1108
1109 function getSetMonth(value) {
1110 if (value != null) {
1111 setMonth(this, value);
1112 hooks.updateOffset(this, true);
1113 return this;
1114 } else {
1115 return get(this, 'Month');
1116 }
1117 }
1118
1119 function getDaysInMonth() {
1120 return daysInMonth(this.year(), this.month());
1121 }
1122
1123 function monthsShortRegex(isStrict) {
1124 if (this._monthsParseExact) {
1125 if (!hasOwnProp(this, '_monthsRegex')) {
1126 computeMonthsParse.call(this);
1127 }
1128 if (isStrict) {
1129 return this._monthsShortStrictRegex;
1130 } else {
1131 return this._monthsShortRegex;
1132 }
1133 } else {
1134 if (!hasOwnProp(this, '_monthsShortRegex')) {
1135 this._monthsShortRegex = defaultMonthsShortRegex;
1136 }
1137 return this._monthsShortStrictRegex && isStrict
1138 ? this._monthsShortStrictRegex
1139 : this._monthsShortRegex;
1140 }
1141 }
1142
1143 function monthsRegex(isStrict) {
1144 if (this._monthsParseExact) {
1145 if (!hasOwnProp(this, '_monthsRegex')) {
1146 computeMonthsParse.call(this);
1147 }
1148 if (isStrict) {
1149 return this._monthsStrictRegex;
1150 } else {
1151 return this._monthsRegex;
1152 }
1153 } else {
1154 if (!hasOwnProp(this, '_monthsRegex')) {
1155 this._monthsRegex = defaultMonthsRegex;
1156 }
1157 return this._monthsStrictRegex && isStrict
1158 ? this._monthsStrictRegex
1159 : this._monthsRegex;
1160 }
1161 }
1162
1163 function computeMonthsParse() {
1164 function cmpLenRev(a, b) {
1165 return b.length - a.length;
1166 }
1167
1168 var shortPieces = [],
1169 longPieces = [],
1170 mixedPieces = [],
1171 i,
1172 mom;
1173 for (i = 0; i < 12; i++) {
1174 // make the regex if we don't have it already
1175 mom = createUTC([2000, i]);
1176 shortPieces.push(this.monthsShort(mom, ''));
1177 longPieces.push(this.months(mom, ''));
1178 mixedPieces.push(this.months(mom, ''));
1179 mixedPieces.push(this.monthsShort(mom, ''));
1180 }
1181 // Sorting makes sure if one month (or abbr) is a prefix of another it
1182 // will match the longer piece.
1183 shortPieces.sort(cmpLenRev);
1184 longPieces.sort(cmpLenRev);
1185 mixedPieces.sort(cmpLenRev);
1186 for (i = 0; i < 12; i++) {
1187 shortPieces[i] = regexEscape(shortPieces[i]);
1188 longPieces[i] = regexEscape(longPieces[i]);
1189 }
1190 for (i = 0; i < 24; i++) {
1191 mixedPieces[i] = regexEscape(mixedPieces[i]);
1192 }
1193
1194 this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
1195 this._monthsShortRegex = this._monthsRegex;
1196 this._monthsStrictRegex = new RegExp(
1197 '^(' + longPieces.join('|') + ')',
1198 'i'
1199 );
1200 this._monthsShortStrictRegex = new RegExp(
1201 '^(' + shortPieces.join('|') + ')',
1202 'i'
1203 );
1204 }
1205
1206 // FORMATTING
1207
1208 addFormatToken('Y', 0, 0, function () {
1209 var y = this.year();
1210 return y <= 9999 ? zeroFill(y, 4) : '+' + y;
1211 });
1212
1213 addFormatToken(0, ['YY', 2], 0, function () {
1214 return this.year() % 100;
1215 });
1216
1217 addFormatToken(0, ['YYYY', 4], 0, 'year');
1218 addFormatToken(0, ['YYYYY', 5], 0, 'year');
1219 addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
1220
1221 // ALIASES
1222
1223 addUnitAlias('year', 'y');
1224
1225 // PRIORITIES
1226
1227 addUnitPriority('year', 1);
1228
1229 // PARSING
1230
1231 addRegexToken('Y', matchSigned);
1232 addRegexToken('YY', match1to2, match2);
1233 addRegexToken('YYYY', match1to4, match4);
1234 addRegexToken('YYYYY', match1to6, match6);
1235 addRegexToken('YYYYYY', match1to6, match6);
1236
1237 addParseToken(['YYYYY', 'YYYYYY'], YEAR);
1238 addParseToken('YYYY', function (input, array) {
1239 array[YEAR] =
1240 input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
1241 });
1242 addParseToken('YY', function (input, array) {
1243 array[YEAR] = hooks.parseTwoDigitYear(input);
1244 });
1245 addParseToken('Y', function (input, array) {
1246 array[YEAR] = parseInt(input, 10);
1247 });
1248
1249 // HELPERS
1250
1251 function daysInYear(year) {
1252 return isLeapYear(year) ? 366 : 365;
1253 }
1254
1255 // HOOKS
1256
1257 hooks.parseTwoDigitYear = function (input) {
1258 return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
1259 };
1260
1261 // MOMENTS
1262
1263 var getSetYear = makeGetSet('FullYear', true);
1264
1265 function getIsLeapYear() {
1266 return isLeapYear(this.year());
1267 }
1268
1269 function createDate(y, m, d, h, M, s, ms) {
1270 // can't just apply() to create a date:
1271 // https://stackoverflow.com/q/181348
1272 var date;
1273 // the date constructor remaps years 0-99 to 1900-1999
1274 if (y < 100 && y >= 0) {
1275 // preserve leap years using a full 400 year cycle, then reset
1276 date = new Date(y + 400, m, d, h, M, s, ms);
1277 if (isFinite(date.getFullYear())) {
1278 date.setFullYear(y);
1279 }
1280 } else {
1281 date = new Date(y, m, d, h, M, s, ms);
1282 }
1283
1284 return date;
1285 }
1286
1287 function createUTCDate(y) {
1288 var date, args;
1289 // the Date.UTC function remaps years 0-99 to 1900-1999
1290 if (y < 100 && y >= 0) {
1291 args = Array.prototype.slice.call(arguments);
1292 // preserve leap years using a full 400 year cycle, then reset
1293 args[0] = y + 400;
1294 date = new Date(Date.UTC.apply(null, args));
1295 if (isFinite(date.getUTCFullYear())) {
1296 date.setUTCFullYear(y);
1297 }
1298 } else {
1299 date = new Date(Date.UTC.apply(null, arguments));
1300 }
1301
1302 return date;
1303 }
1304
1305 // start-of-first-week - start-of-year
1306 function firstWeekOffset(year, dow, doy) {
1307 var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
1308 fwd = 7 + dow - doy,
1309 // first-week day local weekday -- which local weekday is fwd
1310 fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
1311
1312 return -fwdlw + fwd - 1;
1313 }
1314
1315 // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
1316 function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
1317 var localWeekday = (7 + weekday - dow) % 7,
1318 weekOffset = firstWeekOffset(year, dow, doy),
1319 dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
1320 resYear,
1321 resDayOfYear;
1322
1323 if (dayOfYear <= 0) {
1324 resYear = year - 1;
1325 resDayOfYear = daysInYear(resYear) + dayOfYear;
1326 } else if (dayOfYear > daysInYear(year)) {
1327 resYear = year + 1;
1328 resDayOfYear = dayOfYear - daysInYear(year);
1329 } else {
1330 resYear = year;
1331 resDayOfYear = dayOfYear;
1332 }
1333
1334 return {
1335 year: resYear,
1336 dayOfYear: resDayOfYear,
1337 };
1338 }
1339
1340 function weekOfYear(mom, dow, doy) {
1341 var weekOffset = firstWeekOffset(mom.year(), dow, doy),
1342 week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
1343 resWeek,
1344 resYear;
1345
1346 if (week < 1) {
1347 resYear = mom.year() - 1;
1348 resWeek = week + weeksInYear(resYear, dow, doy);
1349 } else if (week > weeksInYear(mom.year(), dow, doy)) {
1350 resWeek = week - weeksInYear(mom.year(), dow, doy);
1351 resYear = mom.year() + 1;
1352 } else {
1353 resYear = mom.year();
1354 resWeek = week;
1355 }
1356
1357 return {
1358 week: resWeek,
1359 year: resYear,
1360 };
1361 }
1362
1363 function weeksInYear(year, dow, doy) {
1364 var weekOffset = firstWeekOffset(year, dow, doy),
1365 weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
1366 return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
1367 }
1368
1369 // FORMATTING
1370
1371 addFormatToken('w', ['ww', 2], 'wo', 'week');
1372 addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
1373
1374 // ALIASES
1375
1376 addUnitAlias('week', 'w');
1377 addUnitAlias('isoWeek', 'W');
1378
1379 // PRIORITIES
1380
1381 addUnitPriority('week', 5);
1382 addUnitPriority('isoWeek', 5);
1383
1384 // PARSING
1385
1386 addRegexToken('w', match1to2);
1387 addRegexToken('ww', match1to2, match2);
1388 addRegexToken('W', match1to2);
1389 addRegexToken('WW', match1to2, match2);
1390
1391 addWeekParseToken(['w', 'ww', 'W', 'WW'], function (
1392 input,
1393 week,
1394 config,
1395 token
1396 ) {
1397 week[token.substr(0, 1)] = toInt(input);
1398 });
1399
1400 // HELPERS
1401
1402 // LOCALES
1403
1404 function localeWeek(mom) {
1405 return weekOfYear(mom, this._week.dow, this._week.doy).week;
1406 }
1407
1408 var defaultLocaleWeek = {
1409 dow: 0, // Sunday is the first day of the week.
1410 doy: 6, // The week that contains Jan 6th is the first week of the year.
1411 };
1412
1413 function localeFirstDayOfWeek() {
1414 return this._week.dow;
1415 }
1416
1417 function localeFirstDayOfYear() {
1418 return this._week.doy;
1419 }
1420
1421 // MOMENTS
1422
1423 function getSetWeek(input) {
1424 var week = this.localeData().week(this);
1425 return input == null ? week : this.add((input - week) * 7, 'd');
1426 }
1427
1428 function getSetISOWeek(input) {
1429 var week = weekOfYear(this, 1, 4).week;
1430 return input == null ? week : this.add((input - week) * 7, 'd');
1431 }
1432
1433 // FORMATTING
1434
1435 addFormatToken('d', 0, 'do', 'day');
1436
1437 addFormatToken('dd', 0, 0, function (format) {
1438 return this.localeData().weekdaysMin(this, format);
1439 });
1440
1441 addFormatToken('ddd', 0, 0, function (format) {
1442 return this.localeData().weekdaysShort(this, format);
1443 });
1444
1445 addFormatToken('dddd', 0, 0, function (format) {
1446 return this.localeData().weekdays(this, format);
1447 });
1448
1449 addFormatToken('e', 0, 0, 'weekday');
1450 addFormatToken('E', 0, 0, 'isoWeekday');
1451
1452 // ALIASES
1453
1454 addUnitAlias('day', 'd');
1455 addUnitAlias('weekday', 'e');
1456 addUnitAlias('isoWeekday', 'E');
1457
1458 // PRIORITY
1459 addUnitPriority('day', 11);
1460 addUnitPriority('weekday', 11);
1461 addUnitPriority('isoWeekday', 11);
1462
1463 // PARSING
1464
1465 addRegexToken('d', match1to2);
1466 addRegexToken('e', match1to2);
1467 addRegexToken('E', match1to2);
1468 addRegexToken('dd', function (isStrict, locale) {
1469 return locale.weekdaysMinRegex(isStrict);
1470 });
1471 addRegexToken('ddd', function (isStrict, locale) {
1472 return locale.weekdaysShortRegex(isStrict);
1473 });
1474 addRegexToken('dddd', function (isStrict, locale) {
1475 return locale.weekdaysRegex(isStrict);
1476 });
1477
1478 addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
1479 var weekday = config._locale.weekdaysParse(input, token, config._strict);
1480 // if we didn't get a weekday name, mark the date as invalid
1481 if (weekday != null) {
1482 week.d = weekday;
1483 } else {
1484 getParsingFlags(config).invalidWeekday = input;
1485 }
1486 });
1487
1488 addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
1489 week[token] = toInt(input);
1490 });
1491
1492 // HELPERS
1493
1494 function parseWeekday(input, locale) {
1495 if (typeof input !== 'string') {
1496 return input;
1497 }
1498
1499 if (!isNaN(input)) {
1500 return parseInt(input, 10);
1501 }
1502
1503 input = locale.weekdaysParse(input);
1504 if (typeof input === 'number') {
1505 return input;
1506 }
1507
1508 return null;
1509 }
1510
1511 function parseIsoWeekday(input, locale) {
1512 if (typeof input === 'string') {
1513 return locale.weekdaysParse(input) % 7 || 7;
1514 }
1515 return isNaN(input) ? null : input;
1516 }
1517
1518 // LOCALES
1519 function shiftWeekdays(ws, n) {
1520 return ws.slice(n, 7).concat(ws.slice(0, n));
1521 }
1522
1523 var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
1524 '_'
1525 ),
1526 defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
1527 defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
1528 defaultWeekdaysRegex = matchWord,
1529 defaultWeekdaysShortRegex = matchWord,
1530 defaultWeekdaysMinRegex = matchWord;
1531
1532 function localeWeekdays(m, format) {
1533 var weekdays = isArray(this._weekdays)
1534 ? this._weekdays
1535 : this._weekdays[
1536 m && m !== true && this._weekdays.isFormat.test(format)
1537 ? 'format'
1538 : 'standalone'
1539 ];
1540 return m === true
1541 ? shiftWeekdays(weekdays, this._week.dow)
1542 : m
1543 ? weekdays[m.day()]
1544 : weekdays;
1545 }
1546
1547 function localeWeekdaysShort(m) {
1548 return m === true
1549 ? shiftWeekdays(this._weekdaysShort, this._week.dow)
1550 : m
1551 ? this._weekdaysShort[m.day()]
1552 : this._weekdaysShort;
1553 }
1554
1555 function localeWeekdaysMin(m) {
1556 return m === true
1557 ? shiftWeekdays(this._weekdaysMin, this._week.dow)
1558 : m
1559 ? this._weekdaysMin[m.day()]
1560 : this._weekdaysMin;
1561 }
1562
1563 function handleStrictParse$1(weekdayName, format, strict) {
1564 var i,
1565 ii,
1566 mom,
1567 llc = weekdayName.toLocaleLowerCase();
1568 if (!this._weekdaysParse) {
1569 this._weekdaysParse = [];
1570 this._shortWeekdaysParse = [];
1571 this._minWeekdaysParse = [];
1572
1573 for (i = 0; i < 7; ++i) {
1574 mom = createUTC([2000, 1]).day(i);
1575 this._minWeekdaysParse[i] = this.weekdaysMin(
1576 mom,
1577 ''
1578 ).toLocaleLowerCase();
1579 this._shortWeekdaysParse[i] = this.weekdaysShort(
1580 mom,
1581 ''
1582 ).toLocaleLowerCase();
1583 this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
1584 }
1585 }
1586
1587 if (strict) {
1588 if (format === 'dddd') {
1589 ii = indexOf.call(this._weekdaysParse, llc);
1590 return ii !== -1 ? ii : null;
1591 } else if (format === 'ddd') {
1592 ii = indexOf.call(this._shortWeekdaysParse, llc);
1593 return ii !== -1 ? ii : null;
1594 } else {
1595 ii = indexOf.call(this._minWeekdaysParse, llc);
1596 return ii !== -1 ? ii : null;
1597 }
1598 } else {
1599 if (format === 'dddd') {
1600 ii = indexOf.call(this._weekdaysParse, llc);
1601 if (ii !== -1) {
1602 return ii;
1603 }
1604 ii = indexOf.call(this._shortWeekdaysParse, llc);
1605 if (ii !== -1) {
1606 return ii;
1607 }
1608 ii = indexOf.call(this._minWeekdaysParse, llc);
1609 return ii !== -1 ? ii : null;
1610 } else if (format === 'ddd') {
1611 ii = indexOf.call(this._shortWeekdaysParse, llc);
1612 if (ii !== -1) {
1613 return ii;
1614 }
1615 ii = indexOf.call(this._weekdaysParse, llc);
1616 if (ii !== -1) {
1617 return ii;
1618 }
1619 ii = indexOf.call(this._minWeekdaysParse, llc);
1620 return ii !== -1 ? ii : null;
1621 } else {
1622 ii = indexOf.call(this._minWeekdaysParse, llc);
1623 if (ii !== -1) {
1624 return ii;
1625 }
1626 ii = indexOf.call(this._weekdaysParse, llc);
1627 if (ii !== -1) {
1628 return ii;
1629 }
1630 ii = indexOf.call(this._shortWeekdaysParse, llc);
1631 return ii !== -1 ? ii : null;
1632 }
1633 }
1634 }
1635
1636 function localeWeekdaysParse(weekdayName, format, strict) {
1637 var i, mom, regex;
1638
1639 if (this._weekdaysParseExact) {
1640 return handleStrictParse$1.call(this, weekdayName, format, strict);
1641 }
1642
1643 if (!this._weekdaysParse) {
1644 this._weekdaysParse = [];
1645 this._minWeekdaysParse = [];
1646 this._shortWeekdaysParse = [];
1647 this._fullWeekdaysParse = [];
1648 }
1649
1650 for (i = 0; i < 7; i++) {
1651 // make the regex if we don't have it already
1652
1653 mom = createUTC([2000, 1]).day(i);
1654 if (strict && !this._fullWeekdaysParse[i]) {
1655 this._fullWeekdaysParse[i] = new RegExp(
1656 '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$',
1657 'i'
1658 );
1659 this._shortWeekdaysParse[i] = new RegExp(
1660 '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$',
1661 'i'
1662 );
1663 this._minWeekdaysParse[i] = new RegExp(
1664 '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$',
1665 'i'
1666 );
1667 }
1668 if (!this._weekdaysParse[i]) {
1669 regex =
1670 '^' +
1671 this.weekdays(mom, '') +
1672 '|^' +
1673 this.weekdaysShort(mom, '') +
1674 '|^' +
1675 this.weekdaysMin(mom, '');
1676 this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
1677 }
1678 // test the regex
1679 if (
1680 strict &&
1681 format === 'dddd' &&
1682 this._fullWeekdaysParse[i].test(weekdayName)
1683 ) {
1684 return i;
1685 } else if (
1686 strict &&
1687 format === 'ddd' &&
1688 this._shortWeekdaysParse[i].test(weekdayName)
1689 ) {
1690 return i;
1691 } else if (
1692 strict &&
1693 format === 'dd' &&
1694 this._minWeekdaysParse[i].test(weekdayName)
1695 ) {
1696 return i;
1697 } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
1698 return i;
1699 }
1700 }
1701 }
1702
1703 // MOMENTS
1704
1705 function getSetDayOfWeek(input) {
1706 if (!this.isValid()) {
1707 return input != null ? this : NaN;
1708 }
1709 var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
1710 if (input != null) {
1711 input = parseWeekday(input, this.localeData());
1712 return this.add(input - day, 'd');
1713 } else {
1714 return day;
1715 }
1716 }
1717
1718 function getSetLocaleDayOfWeek(input) {
1719 if (!this.isValid()) {
1720 return input != null ? this : NaN;
1721 }
1722 var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
1723 return input == null ? weekday : this.add(input - weekday, 'd');
1724 }
1725
1726 function getSetISODayOfWeek(input) {
1727 if (!this.isValid()) {
1728 return input != null ? this : NaN;
1729 }
1730
1731 // behaves the same as moment#day except
1732 // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
1733 // as a setter, sunday should belong to the previous week.
1734
1735 if (input != null) {
1736 var weekday = parseIsoWeekday(input, this.localeData());
1737 return this.day(this.day() % 7 ? weekday : weekday - 7);
1738 } else {
1739 return this.day() || 7;
1740 }
1741 }
1742
1743 function weekdaysRegex(isStrict) {
1744 if (this._weekdaysParseExact) {
1745 if (!hasOwnProp(this, '_weekdaysRegex')) {
1746 computeWeekdaysParse.call(this);
1747 }
1748 if (isStrict) {
1749 return this._weekdaysStrictRegex;
1750 } else {
1751 return this._weekdaysRegex;
1752 }
1753 } else {
1754 if (!hasOwnProp(this, '_weekdaysRegex')) {
1755 this._weekdaysRegex = defaultWeekdaysRegex;
1756 }
1757 return this._weekdaysStrictRegex && isStrict
1758 ? this._weekdaysStrictRegex
1759 : this._weekdaysRegex;
1760 }
1761 }
1762
1763 function weekdaysShortRegex(isStrict) {
1764 if (this._weekdaysParseExact) {
1765 if (!hasOwnProp(this, '_weekdaysRegex')) {
1766 computeWeekdaysParse.call(this);
1767 }
1768 if (isStrict) {
1769 return this._weekdaysShortStrictRegex;
1770 } else {
1771 return this._weekdaysShortRegex;
1772 }
1773 } else {
1774 if (!hasOwnProp(this, '_weekdaysShortRegex')) {
1775 this._weekdaysShortRegex = defaultWeekdaysShortRegex;
1776 }
1777 return this._weekdaysShortStrictRegex && isStrict
1778 ? this._weekdaysShortStrictRegex
1779 : this._weekdaysShortRegex;
1780 }
1781 }
1782
1783 function weekdaysMinRegex(isStrict) {
1784 if (this._weekdaysParseExact) {
1785 if (!hasOwnProp(this, '_weekdaysRegex')) {
1786 computeWeekdaysParse.call(this);
1787 }
1788 if (isStrict) {
1789 return this._weekdaysMinStrictRegex;
1790 } else {
1791 return this._weekdaysMinRegex;
1792 }
1793 } else {
1794 if (!hasOwnProp(this, '_weekdaysMinRegex')) {
1795 this._weekdaysMinRegex = defaultWeekdaysMinRegex;
1796 }
1797 return this._weekdaysMinStrictRegex && isStrict
1798 ? this._weekdaysMinStrictRegex
1799 : this._weekdaysMinRegex;
1800 }
1801 }
1802
1803 function computeWeekdaysParse() {
1804 function cmpLenRev(a, b) {
1805 return b.length - a.length;
1806 }
1807
1808 var minPieces = [],
1809 shortPieces = [],
1810 longPieces = [],
1811 mixedPieces = [],
1812 i,
1813 mom,
1814 minp,
1815 shortp,
1816 longp;
1817 for (i = 0; i < 7; i++) {
1818 // make the regex if we don't have it already
1819 mom = createUTC([2000, 1]).day(i);
1820 minp = regexEscape(this.weekdaysMin(mom, ''));
1821 shortp = regexEscape(this.weekdaysShort(mom, ''));
1822 longp = regexEscape(this.weekdays(mom, ''));
1823 minPieces.push(minp);
1824 shortPieces.push(shortp);
1825 longPieces.push(longp);
1826 mixedPieces.push(minp);
1827 mixedPieces.push(shortp);
1828 mixedPieces.push(longp);
1829 }
1830 // Sorting makes sure if one weekday (or abbr) is a prefix of another it
1831 // will match the longer piece.
1832 minPieces.sort(cmpLenRev);
1833 shortPieces.sort(cmpLenRev);
1834 longPieces.sort(cmpLenRev);
1835 mixedPieces.sort(cmpLenRev);
1836
1837 this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
1838 this._weekdaysShortRegex = this._weekdaysRegex;
1839 this._weekdaysMinRegex = this._weekdaysRegex;
1840
1841 this._weekdaysStrictRegex = new RegExp(
1842 '^(' + longPieces.join('|') + ')',
1843 'i'
1844 );
1845 this._weekdaysShortStrictRegex = new RegExp(
1846 '^(' + shortPieces.join('|') + ')',
1847 'i'
1848 );
1849 this._weekdaysMinStrictRegex = new RegExp(
1850 '^(' + minPieces.join('|') + ')',
1851 'i'
1852 );
1853 }
1854
1855 // FORMATTING
1856
1857 function hFormat() {
1858 return this.hours() % 12 || 12;
1859 }
1860
1861 function kFormat() {
1862 return this.hours() || 24;
1863 }
1864
1865 addFormatToken('H', ['HH', 2], 0, 'hour');
1866 addFormatToken('h', ['hh', 2], 0, hFormat);
1867 addFormatToken('k', ['kk', 2], 0, kFormat);
1868
1869 addFormatToken('hmm', 0, 0, function () {
1870 return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
1871 });
1872
1873 addFormatToken('hmmss', 0, 0, function () {
1874 return (
1875 '' +
1876 hFormat.apply(this) +
1877 zeroFill(this.minutes(), 2) +
1878 zeroFill(this.seconds(), 2)
1879 );
1880 });
1881
1882 addFormatToken('Hmm', 0, 0, function () {
1883 return '' + this.hours() + zeroFill(this.minutes(), 2);
1884 });
1885
1886 addFormatToken('Hmmss', 0, 0, function () {
1887 return (
1888 '' +
1889 this.hours() +
1890 zeroFill(this.minutes(), 2) +
1891 zeroFill(this.seconds(), 2)
1892 );
1893 });
1894
1895 function meridiem(token, lowercase) {
1896 addFormatToken(token, 0, 0, function () {
1897 return this.localeData().meridiem(
1898 this.hours(),
1899 this.minutes(),
1900 lowercase
1901 );
1902 });
1903 }
1904
1905 meridiem('a', true);
1906 meridiem('A', false);
1907
1908 // ALIASES
1909
1910 addUnitAlias('hour', 'h');
1911
1912 // PRIORITY
1913 addUnitPriority('hour', 13);
1914
1915 // PARSING
1916
1917 function matchMeridiem(isStrict, locale) {
1918 return locale._meridiemParse;
1919 }
1920
1921 addRegexToken('a', matchMeridiem);
1922 addRegexToken('A', matchMeridiem);
1923 addRegexToken('H', match1to2);
1924 addRegexToken('h', match1to2);
1925 addRegexToken('k', match1to2);
1926 addRegexToken('HH', match1to2, match2);
1927 addRegexToken('hh', match1to2, match2);
1928 addRegexToken('kk', match1to2, match2);
1929
1930 addRegexToken('hmm', match3to4);
1931 addRegexToken('hmmss', match5to6);
1932 addRegexToken('Hmm', match3to4);
1933 addRegexToken('Hmmss', match5to6);
1934
1935 addParseToken(['H', 'HH'], HOUR);
1936 addParseToken(['k', 'kk'], function (input, array, config) {
1937 var kInput = toInt(input);
1938 array[HOUR] = kInput === 24 ? 0 : kInput;
1939 });
1940 addParseToken(['a', 'A'], function (input, array, config) {
1941 config._isPm = config._locale.isPM(input);
1942 config._meridiem = input;
1943 });
1944 addParseToken(['h', 'hh'], function (input, array, config) {
1945 array[HOUR] = toInt(input);
1946 getParsingFlags(config).bigHour = true;
1947 });
1948 addParseToken('hmm', function (input, array, config) {
1949 var pos = input.length - 2;
1950 array[HOUR] = toInt(input.substr(0, pos));
1951 array[MINUTE] = toInt(input.substr(pos));
1952 getParsingFlags(config).bigHour = true;
1953 });
1954 addParseToken('hmmss', function (input, array, config) {
1955 var pos1 = input.length - 4,
1956 pos2 = input.length - 2;
1957 array[HOUR] = toInt(input.substr(0, pos1));
1958 array[MINUTE] = toInt(input.substr(pos1, 2));
1959 array[SECOND] = toInt(input.substr(pos2));
1960 getParsingFlags(config).bigHour = true;
1961 });
1962 addParseToken('Hmm', function (input, array, config) {
1963 var pos = input.length - 2;
1964 array[HOUR] = toInt(input.substr(0, pos));
1965 array[MINUTE] = toInt(input.substr(pos));
1966 });
1967 addParseToken('Hmmss', function (input, array, config) {
1968 var pos1 = input.length - 4,
1969 pos2 = input.length - 2;
1970 array[HOUR] = toInt(input.substr(0, pos1));
1971 array[MINUTE] = toInt(input.substr(pos1, 2));
1972 array[SECOND] = toInt(input.substr(pos2));
1973 });
1974
1975 // LOCALES
1976
1977 function localeIsPM(input) {
1978 // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
1979 // Using charAt should be more compatible.
1980 return (input + '').toLowerCase().charAt(0) === 'p';
1981 }
1982
1983 var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i,
1984 // Setting the hour should keep the time, because the user explicitly
1985 // specified which hour they want. So trying to maintain the same hour (in
1986 // a new timezone) makes sense. Adding/subtracting hours does not follow
1987 // this rule.
1988 getSetHour = makeGetSet('Hours', true);
1989
1990 function localeMeridiem(hours, minutes, isLower) {
1991 if (hours > 11) {
1992 return isLower ? 'pm' : 'PM';
1993 } else {
1994 return isLower ? 'am' : 'AM';
1995 }
1996 }
1997
1998 var baseConfig = {
1999 calendar: defaultCalendar,
2000 longDateFormat: defaultLongDateFormat,
2001 invalidDate: defaultInvalidDate,
2002 ordinal: defaultOrdinal,
2003 dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
2004 relativeTime: defaultRelativeTime,
2005
2006 months: defaultLocaleMonths,
2007 monthsShort: defaultLocaleMonthsShort,
2008
2009 week: defaultLocaleWeek,
2010
2011 weekdays: defaultLocaleWeekdays,
2012 weekdaysMin: defaultLocaleWeekdaysMin,
2013 weekdaysShort: defaultLocaleWeekdaysShort,
2014
2015 meridiemParse: defaultLocaleMeridiemParse,
2016 };
2017
2018 // internal storage for locale config files
2019 var locales = {},
2020 localeFamilies = {},
2021 globalLocale;
2022
2023 function commonPrefix(arr1, arr2) {
2024 var i,
2025 minl = Math.min(arr1.length, arr2.length);
2026 for (i = 0; i < minl; i += 1) {
2027 if (arr1[i] !== arr2[i]) {
2028 return i;
2029 }
2030 }
2031 return minl;
2032 }
2033
2034 function normalizeLocale(key) {
2035 return key ? key.toLowerCase().replace('_', '-') : key;
2036 }
2037
2038 // pick the locale from the array
2039 // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
2040 // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
2041 function chooseLocale(names) {
2042 var i = 0,
2043 j,
2044 next,
2045 locale,
2046 split;
2047
2048 while (i < names.length) {
2049 split = normalizeLocale(names[i]).split('-');
2050 j = split.length;
2051 next = normalizeLocale(names[i + 1]);
2052 next = next ? next.split('-') : null;
2053 while (j > 0) {
2054 locale = loadLocale(split.slice(0, j).join('-'));
2055 if (locale) {
2056 return locale;
2057 }
2058 if (
2059 next &&
2060 next.length >= j &&
2061 commonPrefix(split, next) >= j - 1
2062 ) {
2063 //the next array item is better than a shallower substring of this one
2064 break;
2065 }
2066 j--;
2067 }
2068 i++;
2069 }
2070 return globalLocale;
2071 }
2072
2073 function loadLocale(name) {
2074 var oldLocale = null,
2075 aliasedRequire;
2076 // TODO: Find a better way to register and load all the locales in Node
2077 if (
2078 locales[name] === undefined &&
2079 typeof module !== 'undefined' &&
2080 module &&
2081 module.exports
2082 ) {
2083 try {
2084 oldLocale = globalLocale._abbr;
2085 aliasedRequire = require;
2086 aliasedRequire('./locale/' + name);
2087 getSetGlobalLocale(oldLocale);
2088 } catch (e) {
2089 // mark as not found to avoid repeating expensive file require call causing high CPU
2090 // when trying to find en-US, en_US, en-us for every format call
2091 locales[name] = null; // null means not found
2092 }
2093 }
2094 return locales[name];
2095 }
2096
2097 // This function will load locale and then set the global locale. If
2098 // no arguments are passed in, it will simply return the current global
2099 // locale key.
2100 function getSetGlobalLocale(key, values) {
2101 var data;
2102 if (key) {
2103 if (isUndefined(values)) {
2104 data = getLocale(key);
2105 } else {
2106 data = defineLocale(key, values);
2107 }
2108
2109 if (data) {
2110 // moment.duration._locale = moment._locale = data;
2111 globalLocale = data;
2112 } else {
2113 if (typeof console !== 'undefined' && console.warn) {
2114 //warn user if arguments are passed but the locale could not be set
2115 console.warn(
2116 'Locale ' + key + ' not found. Did you forget to load it?'
2117 );
2118 }
2119 }
2120 }
2121
2122 return globalLocale._abbr;
2123 }
2124
2125 function defineLocale(name, config) {
2126 if (config !== null) {
2127 var locale,
2128 parentConfig = baseConfig;
2129 config.abbr = name;
2130 if (locales[name] != null) {
2131 deprecateSimple(
2132 'defineLocaleOverride',
2133 'use moment.updateLocale(localeName, config) to change ' +
2134 'an existing locale. moment.defineLocale(localeName, ' +
2135 'config) should only be used for creating a new locale ' +
2136 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'
2137 );
2138 parentConfig = locales[name]._config;
2139 } else if (config.parentLocale != null) {
2140 if (locales[config.parentLocale] != null) {
2141 parentConfig = locales[config.parentLocale]._config;
2142 } else {
2143 locale = loadLocale(config.parentLocale);
2144 if (locale != null) {
2145 parentConfig = locale._config;
2146 } else {
2147 if (!localeFamilies[config.parentLocale]) {
2148 localeFamilies[config.parentLocale] = [];
2149 }
2150 localeFamilies[config.parentLocale].push({
2151 name: name,
2152 config: config,
2153 });
2154 return null;
2155 }
2156 }
2157 }
2158 locales[name] = new Locale(mergeConfigs(parentConfig, config));
2159
2160 if (localeFamilies[name]) {
2161 localeFamilies[name].forEach(function (x) {
2162 defineLocale(x.name, x.config);
2163 });
2164 }
2165
2166 // backwards compat for now: also set the locale
2167 // make sure we set the locale AFTER all child locales have been
2168 // created, so we won't end up with the child locale set.
2169 getSetGlobalLocale(name);
2170
2171 return locales[name];
2172 } else {
2173 // useful for testing
2174 delete locales[name];
2175 return null;
2176 }
2177 }
2178
2179 function updateLocale(name, config) {
2180 if (config != null) {
2181 var locale,
2182 tmpLocale,
2183 parentConfig = baseConfig;
2184
2185 if (locales[name] != null && locales[name].parentLocale != null) {
2186 // Update existing child locale in-place to avoid memory-leaks
2187 locales[name].set(mergeConfigs(locales[name]._config, config));
2188 } else {
2189 // MERGE
2190 tmpLocale = loadLocale(name);
2191 if (tmpLocale != null) {
2192 parentConfig = tmpLocale._config;
2193 }
2194 config = mergeConfigs(parentConfig, config);
2195 if (tmpLocale == null) {
2196 // updateLocale is called for creating a new locale
2197 // Set abbr so it will have a name (getters return
2198 // undefined otherwise).
2199 config.abbr = name;
2200 }
2201 locale = new Locale(config);
2202 locale.parentLocale = locales[name];
2203 locales[name] = locale;
2204 }
2205
2206 // backwards compat for now: also set the locale
2207 getSetGlobalLocale(name);
2208 } else {
2209 // pass null for config to unupdate, useful for tests
2210 if (locales[name] != null) {
2211 if (locales[name].parentLocale != null) {
2212 locales[name] = locales[name].parentLocale;
2213 if (name === getSetGlobalLocale()) {
2214 getSetGlobalLocale(name);
2215 }
2216 } else if (locales[name] != null) {
2217 delete locales[name];
2218 }
2219 }
2220 }
2221 return locales[name];
2222 }
2223
2224 // returns locale data
2225 function getLocale(key) {
2226 var locale;
2227
2228 if (key && key._locale && key._locale._abbr) {
2229 key = key._locale._abbr;
2230 }
2231
2232 if (!key) {
2233 return globalLocale;
2234 }
2235
2236 if (!isArray(key)) {
2237 //short-circuit everything else
2238 locale = loadLocale(key);
2239 if (locale) {
2240 return locale;
2241 }
2242 key = [key];
2243 }
2244
2245 return chooseLocale(key);
2246 }
2247
2248 function listLocales() {
2249 return keys(locales);
2250 }
2251
2252 function checkOverflow(m) {
2253 var overflow,
2254 a = m._a;
2255
2256 if (a && getParsingFlags(m).overflow === -2) {
2257 overflow =
2258 a[MONTH] < 0 || a[MONTH] > 11
2259 ? MONTH
2260 : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])
2261 ? DATE
2262 : a[HOUR] < 0 ||
2263 a[HOUR] > 24 ||
2264 (a[HOUR] === 24 &&
2265 (a[MINUTE] !== 0 ||
2266 a[SECOND] !== 0 ||
2267 a[MILLISECOND] !== 0))
2268 ? HOUR
2269 : a[MINUTE] < 0 || a[MINUTE] > 59
2270 ? MINUTE
2271 : a[SECOND] < 0 || a[SECOND] > 59
2272 ? SECOND
2273 : a[MILLISECOND] < 0 || a[MILLISECOND] > 999
2274 ? MILLISECOND
2275 : -1;
2276
2277 if (
2278 getParsingFlags(m)._overflowDayOfYear &&
2279 (overflow < YEAR || overflow > DATE)
2280 ) {
2281 overflow = DATE;
2282 }
2283 if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
2284 overflow = WEEK;
2285 }
2286 if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
2287 overflow = WEEKDAY;
2288 }
2289
2290 getParsingFlags(m).overflow = overflow;
2291 }
2292
2293 return m;
2294 }
2295
2296 // iso 8601 regex
2297 // 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)
2298 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)?)?$/,
2299 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)?)?$/,
2300 tzRegex = /Z|[+-]\d\d(?::?\d\d)?/,
2301 isoDates = [
2302 ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
2303 ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
2304 ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
2305 ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
2306 ['YYYY-DDD', /\d{4}-\d{3}/],
2307 ['YYYY-MM', /\d{4}-\d\d/, false],
2308 ['YYYYYYMMDD', /[+-]\d{10}/],
2309 ['YYYYMMDD', /\d{8}/],
2310 ['GGGG[W]WWE', /\d{4}W\d{3}/],
2311 ['GGGG[W]WW', /\d{4}W\d{2}/, false],
2312 ['YYYYDDD', /\d{7}/],
2313 ['YYYYMM', /\d{6}/, false],
2314 ['YYYY', /\d{4}/, false],
2315 ],
2316 // iso time formats and regexes
2317 isoTimes = [
2318 ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
2319 ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
2320 ['HH:mm:ss', /\d\d:\d\d:\d\d/],
2321 ['HH:mm', /\d\d:\d\d/],
2322 ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
2323 ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
2324 ['HHmmss', /\d\d\d\d\d\d/],
2325 ['HHmm', /\d\d\d\d/],
2326 ['HH', /\d\d/],
2327 ],
2328 aspNetJsonRegex = /^\/?Date\((-?\d+)/i,
2329 // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
2330 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}))$/,
2331 obsOffsets = {
2332 UT: 0,
2333 GMT: 0,
2334 EDT: -4 * 60,
2335 EST: -5 * 60,
2336 CDT: -5 * 60,
2337 CST: -6 * 60,
2338 MDT: -6 * 60,
2339 MST: -7 * 60,
2340 PDT: -7 * 60,
2341 PST: -8 * 60,
2342 };
2343
2344 // date from iso format
2345 function configFromISO(config) {
2346 var i,
2347 l,
2348 string = config._i,
2349 match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
2350 allowTime,
2351 dateFormat,
2352 timeFormat,
2353 tzFormat;
2354
2355 if (match) {
2356 getParsingFlags(config).iso = true;
2357
2358 for (i = 0, l = isoDates.length; i < l; i++) {
2359 if (isoDates[i][1].exec(match[1])) {
2360 dateFormat = isoDates[i][0];
2361 allowTime = isoDates[i][2] !== false;
2362 break;
2363 }
2364 }
2365 if (dateFormat == null) {
2366 config._isValid = false;
2367 return;
2368 }
2369 if (match[3]) {
2370 for (i = 0, l = isoTimes.length; i < l; i++) {
2371 if (isoTimes[i][1].exec(match[3])) {
2372 // match[2] should be 'T' or space
2373 timeFormat = (match[2] || ' ') + isoTimes[i][0];
2374 break;
2375 }
2376 }
2377 if (timeFormat == null) {
2378 config._isValid = false;
2379 return;
2380 }
2381 }
2382 if (!allowTime && timeFormat != null) {
2383 config._isValid = false;
2384 return;
2385 }
2386 if (match[4]) {
2387 if (tzRegex.exec(match[4])) {
2388 tzFormat = 'Z';
2389 } else {
2390 config._isValid = false;
2391 return;
2392 }
2393 }
2394 config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
2395 configFromStringAndFormat(config);
2396 } else {
2397 config._isValid = false;
2398 }
2399 }
2400
2401 function extractFromRFC2822Strings(
2402 yearStr,
2403 monthStr,
2404 dayStr,
2405 hourStr,
2406 minuteStr,
2407 secondStr
2408 ) {
2409 var result = [
2410 untruncateYear(yearStr),
2411 defaultLocaleMonthsShort.indexOf(monthStr),
2412 parseInt(dayStr, 10),
2413 parseInt(hourStr, 10),
2414 parseInt(minuteStr, 10),
2415 ];
2416
2417 if (secondStr) {
2418 result.push(parseInt(secondStr, 10));
2419 }
2420
2421 return result;
2422 }
2423
2424 function untruncateYear(yearStr) {
2425 var year = parseInt(yearStr, 10);
2426 if (year <= 49) {
2427 return 2000 + year;
2428 } else if (year <= 999) {
2429 return 1900 + year;
2430 }
2431 return year;
2432 }
2433
2434 function preprocessRFC2822(s) {
2435 // Remove comments and folding whitespace and replace multiple-spaces with a single space
2436 return s
2437 .replace(/\([^)]*\)|[\n\t]/g, ' ')
2438 .replace(/(\s\s+)/g, ' ')
2439 .replace(/^\s\s*/, '')
2440 .replace(/\s\s*$/, '');
2441 }
2442
2443 function checkWeekday(weekdayStr, parsedInput, config) {
2444 if (weekdayStr) {
2445 // TODO: Replace the vanilla JS Date object with an independent day-of-week check.
2446 var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
2447 weekdayActual = new Date(
2448 parsedInput[0],
2449 parsedInput[1],
2450 parsedInput[2]
2451 ).getDay();
2452 if (weekdayProvided !== weekdayActual) {
2453 getParsingFlags(config).weekdayMismatch = true;
2454 config._isValid = false;
2455 return false;
2456 }
2457 }
2458 return true;
2459 }
2460
2461 function calculateOffset(obsOffset, militaryOffset, numOffset) {
2462 if (obsOffset) {
2463 return obsOffsets[obsOffset];
2464 } else if (militaryOffset) {
2465 // the only allowed military tz is Z
2466 return 0;
2467 } else {
2468 var hm = parseInt(numOffset, 10),
2469 m = hm % 100,
2470 h = (hm - m) / 100;
2471 return h * 60 + m;
2472 }
2473 }
2474
2475 // date and time from ref 2822 format
2476 function configFromRFC2822(config) {
2477 var match = rfc2822.exec(preprocessRFC2822(config._i)),
2478 parsedArray;
2479 if (match) {
2480 parsedArray = extractFromRFC2822Strings(
2481 match[4],
2482 match[3],
2483 match[2],
2484 match[5],
2485 match[6],
2486 match[7]
2487 );
2488 if (!checkWeekday(match[1], parsedArray, config)) {
2489 return;
2490 }
2491
2492 config._a = parsedArray;
2493 config._tzm = calculateOffset(match[8], match[9], match[10]);
2494
2495 config._d = createUTCDate.apply(null, config._a);
2496 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
2497
2498 getParsingFlags(config).rfc2822 = true;
2499 } else {
2500 config._isValid = false;
2501 }
2502 }
2503
2504 // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict
2505 function configFromString(config) {
2506 var matched = aspNetJsonRegex.exec(config._i);
2507 if (matched !== null) {
2508 config._d = new Date(+matched[1]);
2509 return;
2510 }
2511
2512 configFromISO(config);
2513 if (config._isValid === false) {
2514 delete config._isValid;
2515 } else {
2516 return;
2517 }
2518
2519 configFromRFC2822(config);
2520 if (config._isValid === false) {
2521 delete config._isValid;
2522 } else {
2523 return;
2524 }
2525
2526 if (config._strict) {
2527 config._isValid = false;
2528 } else {
2529 // Final attempt, use Input Fallback
2530 hooks.createFromInputFallback(config);
2531 }
2532 }
2533
2534 hooks.createFromInputFallback = deprecate(
2535 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
2536 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
2537 'discouraged and will be removed in an upcoming major release. Please refer to ' +
2538 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',
2539 function (config) {
2540 config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
2541 }
2542 );
2543
2544 // Pick the first defined of two or three arguments.
2545 function defaults(a, b, c) {
2546 if (a != null) {
2547 return a;
2548 }
2549 if (b != null) {
2550 return b;
2551 }
2552 return c;
2553 }
2554
2555 function currentDateArray(config) {
2556 // hooks is actually the exported moment object
2557 var nowValue = new Date(hooks.now());
2558 if (config._useUTC) {
2559 return [
2560 nowValue.getUTCFullYear(),
2561 nowValue.getUTCMonth(),
2562 nowValue.getUTCDate(),
2563 ];
2564 }
2565 return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
2566 }
2567
2568 // convert an array to a date.
2569 // the array should mirror the parameters below
2570 // note: all values past the year are optional and will default to the lowest possible value.
2571 // [year, month, day , hour, minute, second, millisecond]
2572 function configFromArray(config) {
2573 var i,
2574 date,
2575 input = [],
2576 currentDate,
2577 expectedWeekday,
2578 yearToUse;
2579
2580 if (config._d) {
2581 return;
2582 }
2583
2584 currentDate = currentDateArray(config);
2585
2586 //compute day of the year from weeks and weekdays
2587 if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
2588 dayOfYearFromWeekInfo(config);
2589 }
2590
2591 //if the day of the year is set, figure out what it is
2592 if (config._dayOfYear != null) {
2593 yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
2594
2595 if (
2596 config._dayOfYear > daysInYear(yearToUse) ||
2597 config._dayOfYear === 0
2598 ) {
2599 getParsingFlags(config)._overflowDayOfYear = true;
2600 }
2601
2602 date = createUTCDate(yearToUse, 0, config._dayOfYear);
2603 config._a[MONTH] = date.getUTCMonth();
2604 config._a[DATE] = date.getUTCDate();
2605 }
2606
2607 // Default to current date.
2608 // * if no year, month, day of month are given, default to today
2609 // * if day of month is given, default month and year
2610 // * if month is given, default only year
2611 // * if year is given, don't default anything
2612 for (i = 0; i < 3 && config._a[i] == null; ++i) {
2613 config._a[i] = input[i] = currentDate[i];
2614 }
2615
2616 // Zero out whatever was not defaulted, including time
2617 for (; i < 7; i++) {
2618 config._a[i] = input[i] =
2619 config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];
2620 }
2621
2622 // Check for 24:00:00.000
2623 if (
2624 config._a[HOUR] === 24 &&
2625 config._a[MINUTE] === 0 &&
2626 config._a[SECOND] === 0 &&
2627 config._a[MILLISECOND] === 0
2628 ) {
2629 config._nextDay = true;
2630 config._a[HOUR] = 0;
2631 }
2632
2633 config._d = (config._useUTC ? createUTCDate : createDate).apply(
2634 null,
2635 input
2636 );
2637 expectedWeekday = config._useUTC
2638 ? config._d.getUTCDay()
2639 : config._d.getDay();
2640
2641 // Apply timezone offset from input. The actual utcOffset can be changed
2642 // with parseZone.
2643 if (config._tzm != null) {
2644 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
2645 }
2646
2647 if (config._nextDay) {
2648 config._a[HOUR] = 24;
2649 }
2650
2651 // check for mismatching day of week
2652 if (
2653 config._w &&
2654 typeof config._w.d !== 'undefined' &&
2655 config._w.d !== expectedWeekday
2656 ) {
2657 getParsingFlags(config).weekdayMismatch = true;
2658 }
2659 }
2660
2661 function dayOfYearFromWeekInfo(config) {
2662 var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;
2663
2664 w = config._w;
2665 if (w.GG != null || w.W != null || w.E != null) {
2666 dow = 1;
2667 doy = 4;
2668
2669 // TODO: We need to take the current isoWeekYear, but that depends on
2670 // how we interpret now (local, utc, fixed offset). So create
2671 // a now version of current config (take local/utc/offset flags, and
2672 // create now).
2673 weekYear = defaults(
2674 w.GG,
2675 config._a[YEAR],
2676 weekOfYear(createLocal(), 1, 4).year
2677 );
2678 week = defaults(w.W, 1);
2679 weekday = defaults(w.E, 1);
2680 if (weekday < 1 || weekday > 7) {
2681 weekdayOverflow = true;
2682 }
2683 } else {
2684 dow = config._locale._week.dow;
2685 doy = config._locale._week.doy;
2686
2687 curWeek = weekOfYear(createLocal(), dow, doy);
2688
2689 weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
2690
2691 // Default to current week.
2692 week = defaults(w.w, curWeek.week);
2693
2694 if (w.d != null) {
2695 // weekday -- low day numbers are considered next week
2696 weekday = w.d;
2697 if (weekday < 0 || weekday > 6) {
2698 weekdayOverflow = true;
2699 }
2700 } else if (w.e != null) {
2701 // local weekday -- counting starts from beginning of week
2702 weekday = w.e + dow;
2703 if (w.e < 0 || w.e > 6) {
2704 weekdayOverflow = true;
2705 }
2706 } else {
2707 // default to beginning of week
2708 weekday = dow;
2709 }
2710 }
2711 if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
2712 getParsingFlags(config)._overflowWeeks = true;
2713 } else if (weekdayOverflow != null) {
2714 getParsingFlags(config)._overflowWeekday = true;
2715 } else {
2716 temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
2717 config._a[YEAR] = temp.year;
2718 config._dayOfYear = temp.dayOfYear;
2719 }
2720 }
2721
2722 // constant that refers to the ISO standard
2723 hooks.ISO_8601 = function () {};
2724
2725 // constant that refers to the RFC 2822 form
2726 hooks.RFC_2822 = function () {};
2727
2728 // date from string and format string
2729 function configFromStringAndFormat(config) {
2730 // TODO: Move this to another part of the creation flow to prevent circular deps
2731 if (config._f === hooks.ISO_8601) {
2732 configFromISO(config);
2733 return;
2734 }
2735 if (config._f === hooks.RFC_2822) {
2736 configFromRFC2822(config);
2737 return;
2738 }
2739 config._a = [];
2740 getParsingFlags(config).empty = true;
2741
2742 // This array is used to make a Date, either with `new Date` or `Date.UTC`
2743 var string = '' + config._i,
2744 i,
2745 parsedInput,
2746 tokens,
2747 token,
2748 skipped,
2749 stringLength = string.length,
2750 totalParsedInputLength = 0,
2751 era;
2752
2753 tokens =
2754 expandFormat(config._f, config._locale).match(formattingTokens) || [];
2755
2756 for (i = 0; i < tokens.length; i++) {
2757 token = tokens[i];
2758 parsedInput = (string.match(getParseRegexForToken(token, config)) ||
2759 [])[0];
2760 if (parsedInput) {
2761 skipped = string.substr(0, string.indexOf(parsedInput));
2762 if (skipped.length > 0) {
2763 getParsingFlags(config).unusedInput.push(skipped);
2764 }
2765 string = string.slice(
2766 string.indexOf(parsedInput) + parsedInput.length
2767 );
2768 totalParsedInputLength += parsedInput.length;
2769 }
2770 // don't parse if it's not a known token
2771 if (formatTokenFunctions[token]) {
2772 if (parsedInput) {
2773 getParsingFlags(config).empty = false;
2774 } else {
2775 getParsingFlags(config).unusedTokens.push(token);
2776 }
2777 addTimeToArrayFromToken(token, parsedInput, config);
2778 } else if (config._strict && !parsedInput) {
2779 getParsingFlags(config).unusedTokens.push(token);
2780 }
2781 }
2782
2783 // add remaining unparsed input length to the string
2784 getParsingFlags(config).charsLeftOver =
2785 stringLength - totalParsedInputLength;
2786 if (string.length > 0) {
2787 getParsingFlags(config).unusedInput.push(string);
2788 }
2789
2790 // clear _12h flag if hour is <= 12
2791 if (
2792 config._a[HOUR] <= 12 &&
2793 getParsingFlags(config).bigHour === true &&
2794 config._a[HOUR] > 0
2795 ) {
2796 getParsingFlags(config).bigHour = undefined;
2797 }
2798
2799 getParsingFlags(config).parsedDateParts = config._a.slice(0);
2800 getParsingFlags(config).meridiem = config._meridiem;
2801 // handle meridiem
2802 config._a[HOUR] = meridiemFixWrap(
2803 config._locale,
2804 config._a[HOUR],
2805 config._meridiem
2806 );
2807
2808 // handle era
2809 era = getParsingFlags(config).era;
2810 if (era !== null) {
2811 config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);
2812 }
2813
2814 configFromArray(config);
2815 checkOverflow(config);
2816 }
2817
2818 function meridiemFixWrap(locale, hour, meridiem) {
2819 var isPm;
2820
2821 if (meridiem == null) {
2822 // nothing to do
2823 return hour;
2824 }
2825 if (locale.meridiemHour != null) {
2826 return locale.meridiemHour(hour, meridiem);
2827 } else if (locale.isPM != null) {
2828 // Fallback
2829 isPm = locale.isPM(meridiem);
2830 if (isPm && hour < 12) {
2831 hour += 12;
2832 }
2833 if (!isPm && hour === 12) {
2834 hour = 0;
2835 }
2836 return hour;
2837 } else {
2838 // this is not supposed to happen
2839 return hour;
2840 }
2841 }
2842
2843 // date from string and array of format strings
2844 function configFromStringAndArray(config) {
2845 var tempConfig,
2846 bestMoment,
2847 scoreToBeat,
2848 i,
2849 currentScore,
2850 validFormatFound,
2851 bestFormatIsValid = false;
2852
2853 if (config._f.length === 0) {
2854 getParsingFlags(config).invalidFormat = true;
2855 config._d = new Date(NaN);
2856 return;
2857 }
2858
2859 for (i = 0; i < config._f.length; i++) {
2860 currentScore = 0;
2861 validFormatFound = false;
2862 tempConfig = copyConfig({}, config);
2863 if (config._useUTC != null) {
2864 tempConfig._useUTC = config._useUTC;
2865 }
2866 tempConfig._f = config._f[i];
2867 configFromStringAndFormat(tempConfig);
2868
2869 if (isValid(tempConfig)) {
2870 validFormatFound = true;
2871 }
2872
2873 // if there is any input that was not parsed add a penalty for that format
2874 currentScore += getParsingFlags(tempConfig).charsLeftOver;
2875
2876 //or tokens
2877 currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
2878
2879 getParsingFlags(tempConfig).score = currentScore;
2880
2881 if (!bestFormatIsValid) {
2882 if (
2883 scoreToBeat == null ||
2884 currentScore < scoreToBeat ||
2885 validFormatFound
2886 ) {
2887 scoreToBeat = currentScore;
2888 bestMoment = tempConfig;
2889 if (validFormatFound) {
2890 bestFormatIsValid = true;
2891 }
2892 }
2893 } else {
2894 if (currentScore < scoreToBeat) {
2895 scoreToBeat = currentScore;
2896 bestMoment = tempConfig;
2897 }
2898 }
2899 }
2900
2901 extend(config, bestMoment || tempConfig);
2902 }
2903
2904 function configFromObject(config) {
2905 if (config._d) {
2906 return;
2907 }
2908
2909 var i = normalizeObjectUnits(config._i),
2910 dayOrDate = i.day === undefined ? i.date : i.day;
2911 config._a = map(
2912 [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],
2913 function (obj) {
2914 return obj && parseInt(obj, 10);
2915 }
2916 );
2917
2918 configFromArray(config);
2919 }
2920
2921 function createFromConfig(config) {
2922 var res = new Moment(checkOverflow(prepareConfig(config)));
2923 if (res._nextDay) {
2924 // Adding is smart enough around DST
2925 res.add(1, 'd');
2926 res._nextDay = undefined;
2927 }
2928
2929 return res;
2930 }
2931
2932 function prepareConfig(config) {
2933 var input = config._i,
2934 format = config._f;
2935
2936 config._locale = config._locale || getLocale(config._l);
2937
2938 if (input === null || (format === undefined && input === '')) {
2939 return createInvalid({ nullInput: true });
2940 }
2941
2942 if (typeof input === 'string') {
2943 config._i = input = config._locale.preparse(input);
2944 }
2945
2946 if (isMoment(input)) {
2947 return new Moment(checkOverflow(input));
2948 } else if (isDate(input)) {
2949 config._d = input;
2950 } else if (isArray(format)) {
2951 configFromStringAndArray(config);
2952 } else if (format) {
2953 configFromStringAndFormat(config);
2954 } else {
2955 configFromInput(config);
2956 }
2957
2958 if (!isValid(config)) {
2959 config._d = null;
2960 }
2961
2962 return config;
2963 }
2964
2965 function configFromInput(config) {
2966 var input = config._i;
2967 if (isUndefined(input)) {
2968 config._d = new Date(hooks.now());
2969 } else if (isDate(input)) {
2970 config._d = new Date(input.valueOf());
2971 } else if (typeof input === 'string') {
2972 configFromString(config);
2973 } else if (isArray(input)) {
2974 config._a = map(input.slice(0), function (obj) {
2975 return parseInt(obj, 10);
2976 });
2977 configFromArray(config);
2978 } else if (isObject(input)) {
2979 configFromObject(config);
2980 } else if (isNumber(input)) {
2981 // from milliseconds
2982 config._d = new Date(input);
2983 } else {
2984 hooks.createFromInputFallback(config);
2985 }
2986 }
2987
2988 function createLocalOrUTC(input, format, locale, strict, isUTC) {
2989 var c = {};
2990
2991 if (format === true || format === false) {
2992 strict = format;
2993 format = undefined;
2994 }
2995
2996 if (locale === true || locale === false) {
2997 strict = locale;
2998 locale = undefined;
2999 }
3000
3001 if (
3002 (isObject(input) && isObjectEmpty(input)) ||
3003 (isArray(input) && input.length === 0)
3004 ) {
3005 input = undefined;
3006 }
3007 // object construction must be done this way.
3008 // https://github.com/moment/moment/issues/1423
3009 c._isAMomentObject = true;
3010 c._useUTC = c._isUTC = isUTC;
3011 c._l = locale;
3012 c._i = input;
3013 c._f = format;
3014 c._strict = strict;
3015
3016 return createFromConfig(c);
3017 }
3018
3019 function createLocal(input, format, locale, strict) {
3020 return createLocalOrUTC(input, format, locale, strict, false);
3021 }
3022
3023 var prototypeMin = deprecate(
3024 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
3025 function () {
3026 var other = createLocal.apply(null, arguments);
3027 if (this.isValid() && other.isValid()) {
3028 return other < this ? this : other;
3029 } else {
3030 return createInvalid();
3031 }
3032 }
3033 ),
3034 prototypeMax = deprecate(
3035 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
3036 function () {
3037 var other = createLocal.apply(null, arguments);
3038 if (this.isValid() && other.isValid()) {
3039 return other > this ? this : other;
3040 } else {
3041 return createInvalid();
3042 }
3043 }
3044 );
3045
3046 // Pick a moment m from moments so that m[fn](other) is true for all
3047 // other. This relies on the function fn to be transitive.
3048 //
3049 // moments should either be an array of moment objects or an array, whose
3050 // first element is an array of moment objects.
3051 function pickBy(fn, moments) {
3052 var res, i;
3053 if (moments.length === 1 && isArray(moments[0])) {
3054 moments = moments[0];
3055 }
3056 if (!moments.length) {
3057 return createLocal();
3058 }
3059 res = moments[0];
3060 for (i = 1; i < moments.length; ++i) {
3061 if (!moments[i].isValid() || moments[i][fn](res)) {
3062 res = moments[i];
3063 }
3064 }
3065 return res;
3066 }
3067
3068 // TODO: Use [].sort instead?
3069 function min() {
3070 var args = [].slice.call(arguments, 0);
3071
3072 return pickBy('isBefore', args);
3073 }
3074
3075 function max() {
3076 var args = [].slice.call(arguments, 0);
3077
3078 return pickBy('isAfter', args);
3079 }
3080
3081 var now = function () {
3082 return Date.now ? Date.now() : +new Date();
3083 };
3084
3085 var ordering = [
3086 'year',
3087 'quarter',
3088 'month',
3089 'week',
3090 'day',
3091 'hour',
3092 'minute',
3093 'second',
3094 'millisecond',
3095 ];
3096
3097 function isDurationValid(m) {
3098 var key,
3099 unitHasDecimal = false,
3100 i;
3101 for (key in m) {
3102 if (
3103 hasOwnProp(m, key) &&
3104 !(
3105 indexOf.call(ordering, key) !== -1 &&
3106 (m[key] == null || !isNaN(m[key]))
3107 )
3108 ) {
3109 return false;
3110 }
3111 }
3112
3113 for (i = 0; i < ordering.length; ++i) {
3114 if (m[ordering[i]]) {
3115 if (unitHasDecimal) {
3116 return false; // only allow non-integers for smallest unit
3117 }
3118 if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
3119 unitHasDecimal = true;
3120 }
3121 }
3122 }
3123
3124 return true;
3125 }
3126
3127 function isValid$1() {
3128 return this._isValid;
3129 }
3130
3131 function createInvalid$1() {
3132 return createDuration(NaN);
3133 }
3134
3135 function Duration(duration) {
3136 var normalizedInput = normalizeObjectUnits(duration),
3137 years = normalizedInput.year || 0,
3138 quarters = normalizedInput.quarter || 0,
3139 months = normalizedInput.month || 0,
3140 weeks = normalizedInput.week || normalizedInput.isoWeek || 0,
3141 days = normalizedInput.day || 0,
3142 hours = normalizedInput.hour || 0,
3143 minutes = normalizedInput.minute || 0,
3144 seconds = normalizedInput.second || 0,
3145 milliseconds = normalizedInput.millisecond || 0;
3146
3147 this._isValid = isDurationValid(normalizedInput);
3148
3149 // representation for dateAddRemove
3150 this._milliseconds =
3151 +milliseconds +
3152 seconds * 1e3 + // 1000
3153 minutes * 6e4 + // 1000 * 60
3154 hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
3155 // Because of dateAddRemove treats 24 hours as different from a
3156 // day when working around DST, we need to store them separately
3157 this._days = +days + weeks * 7;
3158 // It is impossible to translate months into days without knowing
3159 // which months you are are talking about, so we have to store
3160 // it separately.
3161 this._months = +months + quarters * 3 + years * 12;
3162
3163 this._data = {};
3164
3165 this._locale = getLocale();
3166
3167 this._bubble();
3168 }
3169
3170 function isDuration(obj) {
3171 return obj instanceof Duration;
3172 }
3173
3174 function absRound(number) {
3175 if (number < 0) {
3176 return Math.round(-1 * number) * -1;
3177 } else {
3178 return Math.round(number);
3179 }
3180 }
3181
3182 // compare two arrays, return the number of differences
3183 function compareArrays(array1, array2, dontConvert) {
3184 var len = Math.min(array1.length, array2.length),
3185 lengthDiff = Math.abs(array1.length - array2.length),
3186 diffs = 0,
3187 i;
3188 for (i = 0; i < len; i++) {
3189 if (
3190 (dontConvert && array1[i] !== array2[i]) ||
3191 (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))
3192 ) {
3193 diffs++;
3194 }
3195 }
3196 return diffs + lengthDiff;
3197 }
3198
3199 // FORMATTING
3200
3201 function offset(token, separator) {
3202 addFormatToken(token, 0, 0, function () {
3203 var offset = this.utcOffset(),
3204 sign = '+';
3205 if (offset < 0) {
3206 offset = -offset;
3207 sign = '-';
3208 }
3209 return (
3210 sign +
3211 zeroFill(~~(offset / 60), 2) +
3212 separator +
3213 zeroFill(~~offset % 60, 2)
3214 );
3215 });
3216 }
3217
3218 offset('Z', ':');
3219 offset('ZZ', '');
3220
3221 // PARSING
3222
3223 addRegexToken('Z', matchShortOffset);
3224 addRegexToken('ZZ', matchShortOffset);
3225 addParseToken(['Z', 'ZZ'], function (input, array, config) {
3226 config._useUTC = true;
3227 config._tzm = offsetFromString(matchShortOffset, input);
3228 });
3229
3230 // HELPERS
3231
3232 // timezone chunker
3233 // '+10:00' > ['10', '00']
3234 // '-1530' > ['-15', '30']
3235 var chunkOffset = /([\+\-]|\d\d)/gi;
3236
3237 function offsetFromString(matcher, string) {
3238 var matches = (string || '').match(matcher),
3239 chunk,
3240 parts,
3241 minutes;
3242
3243 if (matches === null) {
3244 return null;
3245 }
3246
3247 chunk = matches[matches.length - 1] || [];
3248 parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];
3249 minutes = +(parts[1] * 60) + toInt(parts[2]);
3250
3251 return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;
3252 }
3253
3254 // Return a moment from input, that is local/utc/zone equivalent to model.
3255 function cloneWithOffset(input, model) {
3256 var res, diff;
3257 if (model._isUTC) {
3258 res = model.clone();
3259 diff =
3260 (isMoment(input) || isDate(input)
3261 ? input.valueOf()
3262 : createLocal(input).valueOf()) - res.valueOf();
3263 // Use low-level api, because this fn is low-level api.
3264 res._d.setTime(res._d.valueOf() + diff);
3265 hooks.updateOffset(res, false);
3266 return res;
3267 } else {
3268 return createLocal(input).local();
3269 }
3270 }
3271
3272 function getDateOffset(m) {
3273 // On Firefox.24 Date#getTimezoneOffset returns a floating point.
3274 // https://github.com/moment/moment/pull/1871
3275 return -Math.round(m._d.getTimezoneOffset());
3276 }
3277
3278 // HOOKS
3279
3280 // This function will be called whenever a moment is mutated.
3281 // It is intended to keep the offset in sync with the timezone.
3282 hooks.updateOffset = function () {};
3283
3284 // MOMENTS
3285
3286 // keepLocalTime = true means only change the timezone, without
3287 // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
3288 // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
3289 // +0200, so we adjust the time as needed, to be valid.
3290 //
3291 // Keeping the time actually adds/subtracts (one hour)
3292 // from the actual represented time. That is why we call updateOffset
3293 // a second time. In case it wants us to change the offset again
3294 // _changeInProgress == true case, then we have to adjust, because
3295 // there is no such time in the given timezone.
3296 function getSetOffset(input, keepLocalTime, keepMinutes) {
3297 var offset = this._offset || 0,
3298 localAdjust;
3299 if (!this.isValid()) {
3300 return input != null ? this : NaN;
3301 }
3302 if (input != null) {
3303 if (typeof input === 'string') {
3304 input = offsetFromString(matchShortOffset, input);
3305 if (input === null) {
3306 return this;
3307 }
3308 } else if (Math.abs(input) < 16 && !keepMinutes) {
3309 input = input * 60;
3310 }
3311 if (!this._isUTC && keepLocalTime) {
3312 localAdjust = getDateOffset(this);
3313 }
3314 this._offset = input;
3315 this._isUTC = true;
3316 if (localAdjust != null) {
3317 this.add(localAdjust, 'm');
3318 }
3319 if (offset !== input) {
3320 if (!keepLocalTime || this._changeInProgress) {
3321 addSubtract(
3322 this,
3323 createDuration(input - offset, 'm'),
3324 1,
3325 false
3326 );
3327 } else if (!this._changeInProgress) {
3328 this._changeInProgress = true;
3329 hooks.updateOffset(this, true);
3330 this._changeInProgress = null;
3331 }
3332 }
3333 return this;
3334 } else {
3335 return this._isUTC ? offset : getDateOffset(this);
3336 }
3337 }
3338
3339 function getSetZone(input, keepLocalTime) {
3340 if (input != null) {
3341 if (typeof input !== 'string') {
3342 input = -input;
3343 }
3344
3345 this.utcOffset(input, keepLocalTime);
3346
3347 return this;
3348 } else {
3349 return -this.utcOffset();
3350 }
3351 }
3352
3353 function setOffsetToUTC(keepLocalTime) {
3354 return this.utcOffset(0, keepLocalTime);
3355 }
3356
3357 function setOffsetToLocal(keepLocalTime) {
3358 if (this._isUTC) {
3359 this.utcOffset(0, keepLocalTime);
3360 this._isUTC = false;
3361
3362 if (keepLocalTime) {
3363 this.subtract(getDateOffset(this), 'm');
3364 }
3365 }
3366 return this;
3367 }
3368
3369 function setOffsetToParsedOffset() {
3370 if (this._tzm != null) {
3371 this.utcOffset(this._tzm, false, true);
3372 } else if (typeof this._i === 'string') {
3373 var tZone = offsetFromString(matchOffset, this._i);
3374 if (tZone != null) {
3375 this.utcOffset(tZone);
3376 } else {
3377 this.utcOffset(0, true);
3378 }
3379 }
3380 return this;
3381 }
3382
3383 function hasAlignedHourOffset(input) {
3384 if (!this.isValid()) {
3385 return false;
3386 }
3387 input = input ? createLocal(input).utcOffset() : 0;
3388
3389 return (this.utcOffset() - input) % 60 === 0;
3390 }
3391
3392 function isDaylightSavingTime() {
3393 return (
3394 this.utcOffset() > this.clone().month(0).utcOffset() ||
3395 this.utcOffset() > this.clone().month(5).utcOffset()
3396 );
3397 }
3398
3399 function isDaylightSavingTimeShifted() {
3400 if (!isUndefined(this._isDSTShifted)) {
3401 return this._isDSTShifted;
3402 }
3403
3404 var c = {},
3405 other;
3406
3407 copyConfig(c, this);
3408 c = prepareConfig(c);
3409
3410 if (c._a) {
3411 other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
3412 this._isDSTShifted =
3413 this.isValid() && compareArrays(c._a, other.toArray()) > 0;
3414 } else {
3415 this._isDSTShifted = false;
3416 }
3417
3418 return this._isDSTShifted;
3419 }
3420
3421 function isLocal() {
3422 return this.isValid() ? !this._isUTC : false;
3423 }
3424
3425 function isUtcOffset() {
3426 return this.isValid() ? this._isUTC : false;
3427 }
3428
3429 function isUtc() {
3430 return this.isValid() ? this._isUTC && this._offset === 0 : false;
3431 }
3432
3433 // ASP.NET json date format regex
3434 var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,
3435 // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
3436 // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
3437 // and further modified to allow for strings containing both week and day
3438 isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
3439
3440 function createDuration(input, key) {
3441 var duration = input,
3442 // matching against regexp is expensive, do it on demand
3443 match = null,
3444 sign,
3445 ret,
3446 diffRes;
3447
3448 if (isDuration(input)) {
3449 duration = {
3450 ms: input._milliseconds,
3451 d: input._days,
3452 M: input._months,
3453 };
3454 } else if (isNumber(input) || !isNaN(+input)) {
3455 duration = {};
3456 if (key) {
3457 duration[key] = +input;
3458 } else {
3459 duration.milliseconds = +input;
3460 }
3461 } else if ((match = aspNetRegex.exec(input))) {
3462 sign = match[1] === '-' ? -1 : 1;
3463 duration = {
3464 y: 0,
3465 d: toInt(match[DATE]) * sign,
3466 h: toInt(match[HOUR]) * sign,
3467 m: toInt(match[MINUTE]) * sign,
3468 s: toInt(match[SECOND]) * sign,
3469 ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match
3470 };
3471 } else if ((match = isoRegex.exec(input))) {
3472 sign = match[1] === '-' ? -1 : 1;
3473 duration = {
3474 y: parseIso(match[2], sign),
3475 M: parseIso(match[3], sign),
3476 w: parseIso(match[4], sign),
3477 d: parseIso(match[5], sign),
3478 h: parseIso(match[6], sign),
3479 m: parseIso(match[7], sign),
3480 s: parseIso(match[8], sign),
3481 };
3482 } else if (duration == null) {
3483 // checks for null or undefined
3484 duration = {};
3485 } else if (
3486 typeof duration === 'object' &&
3487 ('from' in duration || 'to' in duration)
3488 ) {
3489 diffRes = momentsDifference(
3490 createLocal(duration.from),
3491 createLocal(duration.to)
3492 );
3493
3494 duration = {};
3495 duration.ms = diffRes.milliseconds;
3496 duration.M = diffRes.months;
3497 }
3498
3499 ret = new Duration(duration);
3500
3501 if (isDuration(input) && hasOwnProp(input, '_locale')) {
3502 ret._locale = input._locale;
3503 }
3504
3505 if (isDuration(input) && hasOwnProp(input, '_isValid')) {
3506 ret._isValid = input._isValid;
3507 }
3508
3509 return ret;
3510 }
3511
3512 createDuration.fn = Duration.prototype;
3513 createDuration.invalid = createInvalid$1;
3514
3515 function parseIso(inp, sign) {
3516 // We'd normally use ~~inp for this, but unfortunately it also
3517 // converts floats to ints.
3518 // inp may be undefined, so careful calling replace on it.
3519 var res = inp && parseFloat(inp.replace(',', '.'));
3520 // apply sign while we're at it
3521 return (isNaN(res) ? 0 : res) * sign;
3522 }
3523
3524 function positiveMomentsDifference(base, other) {
3525 var res = {};
3526
3527 res.months =
3528 other.month() - base.month() + (other.year() - base.year()) * 12;
3529 if (base.clone().add(res.months, 'M').isAfter(other)) {
3530 --res.months;
3531 }
3532
3533 res.milliseconds = +other - +base.clone().add(res.months, 'M');
3534
3535 return res;
3536 }
3537
3538 function momentsDifference(base, other) {
3539 var res;
3540 if (!(base.isValid() && other.isValid())) {
3541 return { milliseconds: 0, months: 0 };
3542 }
3543
3544 other = cloneWithOffset(other, base);
3545 if (base.isBefore(other)) {
3546 res = positiveMomentsDifference(base, other);
3547 } else {
3548 res = positiveMomentsDifference(other, base);
3549 res.milliseconds = -res.milliseconds;
3550 res.months = -res.months;
3551 }
3552
3553 return res;
3554 }
3555
3556 // TODO: remove 'name' arg after deprecation is removed
3557 function createAdder(direction, name) {
3558 return function (val, period) {
3559 var dur, tmp;
3560 //invert the arguments, but complain about it
3561 if (period !== null && !isNaN(+period)) {
3562 deprecateSimple(
3563 name,
3564 'moment().' +
3565 name +
3566 '(period, number) is deprecated. Please use moment().' +
3567 name +
3568 '(number, period). ' +
3569 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'
3570 );
3571 tmp = val;
3572 val = period;
3573 period = tmp;
3574 }
3575
3576 dur = createDuration(val, period);
3577 addSubtract(this, dur, direction);
3578 return this;
3579 };
3580 }
3581
3582 function addSubtract(mom, duration, isAdding, updateOffset) {
3583 var milliseconds = duration._milliseconds,
3584 days = absRound(duration._days),
3585 months = absRound(duration._months);
3586
3587 if (!mom.isValid()) {
3588 // No op
3589 return;
3590 }
3591
3592 updateOffset = updateOffset == null ? true : updateOffset;
3593
3594 if (months) {
3595 setMonth(mom, get(mom, 'Month') + months * isAdding);
3596 }
3597 if (days) {
3598 set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
3599 }
3600 if (milliseconds) {
3601 mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
3602 }
3603 if (updateOffset) {
3604 hooks.updateOffset(mom, days || months);
3605 }
3606 }
3607
3608 var add = createAdder(1, 'add'),
3609 subtract = createAdder(-1, 'subtract');
3610
3611 function isString(input) {
3612 return typeof input === 'string' || input instanceof String;
3613 }
3614
3615 // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined
3616 function isMomentInput(input) {
3617 return (
3618 isMoment(input) ||
3619 isDate(input) ||
3620 isString(input) ||
3621 isNumber(input) ||
3622 isNumberOrStringArray(input) ||
3623 isMomentInputObject(input) ||
3624 input === null ||
3625 input === undefined
3626 );
3627 }
3628
3629 function isMomentInputObject(input) {
3630 var objectTest = isObject(input) && !isObjectEmpty(input),
3631 propertyTest = false,
3632 properties = [
3633 'years',
3634 'year',
3635 'y',
3636 'months',
3637 'month',
3638 'M',
3639 'days',
3640 'day',
3641 'd',
3642 'dates',
3643 'date',
3644 'D',
3645 'hours',
3646 'hour',
3647 'h',
3648 'minutes',
3649 'minute',
3650 'm',
3651 'seconds',
3652 'second',
3653 's',
3654 'milliseconds',
3655 'millisecond',
3656 'ms',
3657 ],
3658 i,
3659 property;
3660
3661 for (i = 0; i < properties.length; i += 1) {
3662 property = properties[i];
3663 propertyTest = propertyTest || hasOwnProp(input, property);
3664 }
3665
3666 return objectTest && propertyTest;
3667 }
3668
3669 function isNumberOrStringArray(input) {
3670 var arrayTest = isArray(input),
3671 dataTypeTest = false;
3672 if (arrayTest) {
3673 dataTypeTest =
3674 input.filter(function (item) {
3675 return !isNumber(item) && isString(input);
3676 }).length === 0;
3677 }
3678 return arrayTest && dataTypeTest;
3679 }
3680
3681 function isCalendarSpec(input) {
3682 var objectTest = isObject(input) && !isObjectEmpty(input),
3683 propertyTest = false,
3684 properties = [
3685 'sameDay',
3686 'nextDay',
3687 'lastDay',
3688 'nextWeek',
3689 'lastWeek',
3690 'sameElse',
3691 ],
3692 i,
3693 property;
3694
3695 for (i = 0; i < properties.length; i += 1) {
3696 property = properties[i];
3697 propertyTest = propertyTest || hasOwnProp(input, property);
3698 }
3699
3700 return objectTest && propertyTest;
3701 }
3702
3703 function getCalendarFormat(myMoment, now) {
3704 var diff = myMoment.diff(now, 'days', true);
3705 return diff < -6
3706 ? 'sameElse'
3707 : diff < -1
3708 ? 'lastWeek'
3709 : diff < 0
3710 ? 'lastDay'
3711 : diff < 1
3712 ? 'sameDay'
3713 : diff < 2
3714 ? 'nextDay'
3715 : diff < 7
3716 ? 'nextWeek'
3717 : 'sameElse';
3718 }
3719
3720 function calendar$1(time, formats) {
3721 // Support for single parameter, formats only overload to the calendar function
3722 if (arguments.length === 1) {
3723 if (!arguments[0]) {
3724 time = undefined;
3725 formats = undefined;
3726 } else if (isMomentInput(arguments[0])) {
3727 time = arguments[0];
3728 formats = undefined;
3729 } else if (isCalendarSpec(arguments[0])) {
3730 formats = arguments[0];
3731 time = undefined;
3732 }
3733 }
3734 // We want to compare the start of today, vs this.
3735 // Getting start-of-today depends on whether we're local/utc/offset or not.
3736 var now = time || createLocal(),
3737 sod = cloneWithOffset(now, this).startOf('day'),
3738 format = hooks.calendarFormat(this, sod) || 'sameElse',
3739 output =
3740 formats &&
3741 (isFunction(formats[format])
3742 ? formats[format].call(this, now)
3743 : formats[format]);
3744
3745 return this.format(
3746 output || this.localeData().calendar(format, this, createLocal(now))
3747 );
3748 }
3749
3750 function clone() {
3751 return new Moment(this);
3752 }
3753
3754 function isAfter(input, units) {
3755 var localInput = isMoment(input) ? input : createLocal(input);
3756 if (!(this.isValid() && localInput.isValid())) {
3757 return false;
3758 }
3759 units = normalizeUnits(units) || 'millisecond';
3760 if (units === 'millisecond') {
3761 return this.valueOf() > localInput.valueOf();
3762 } else {
3763 return localInput.valueOf() < this.clone().startOf(units).valueOf();
3764 }
3765 }
3766
3767 function isBefore(input, units) {
3768 var localInput = isMoment(input) ? input : createLocal(input);
3769 if (!(this.isValid() && localInput.isValid())) {
3770 return false;
3771 }
3772 units = normalizeUnits(units) || 'millisecond';
3773 if (units === 'millisecond') {
3774 return this.valueOf() < localInput.valueOf();
3775 } else {
3776 return this.clone().endOf(units).valueOf() < localInput.valueOf();
3777 }
3778 }
3779
3780 function isBetween(from, to, units, inclusivity) {
3781 var localFrom = isMoment(from) ? from : createLocal(from),
3782 localTo = isMoment(to) ? to : createLocal(to);
3783 if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {
3784 return false;
3785 }
3786 inclusivity = inclusivity || '()';
3787 return (
3788 (inclusivity[0] === '('
3789 ? this.isAfter(localFrom, units)
3790 : !this.isBefore(localFrom, units)) &&
3791 (inclusivity[1] === ')'
3792 ? this.isBefore(localTo, units)
3793 : !this.isAfter(localTo, units))
3794 );
3795 }
3796
3797 function isSame(input, units) {
3798 var localInput = isMoment(input) ? input : createLocal(input),
3799 inputMs;
3800 if (!(this.isValid() && localInput.isValid())) {
3801 return false;
3802 }
3803 units = normalizeUnits(units) || 'millisecond';
3804 if (units === 'millisecond') {
3805 return this.valueOf() === localInput.valueOf();
3806 } else {
3807 inputMs = localInput.valueOf();
3808 return (
3809 this.clone().startOf(units).valueOf() <= inputMs &&
3810 inputMs <= this.clone().endOf(units).valueOf()
3811 );
3812 }
3813 }
3814
3815 function isSameOrAfter(input, units) {
3816 return this.isSame(input, units) || this.isAfter(input, units);
3817 }
3818
3819 function isSameOrBefore(input, units) {
3820 return this.isSame(input, units) || this.isBefore(input, units);
3821 }
3822
3823 function diff(input, units, asFloat) {
3824 var that, zoneDelta, output;
3825
3826 if (!this.isValid()) {
3827 return NaN;
3828 }
3829
3830 that = cloneWithOffset(input, this);
3831
3832 if (!that.isValid()) {
3833 return NaN;
3834 }
3835
3836 zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
3837
3838 units = normalizeUnits(units);
3839
3840 switch (units) {
3841 case 'year':
3842 output = monthDiff(this, that) / 12;
3843 break;
3844 case 'month':
3845 output = monthDiff(this, that);
3846 break;
3847 case 'quarter':
3848 output = monthDiff(this, that) / 3;
3849 break;
3850 case 'second':
3851 output = (this - that) / 1e3;
3852 break; // 1000
3853 case 'minute':
3854 output = (this - that) / 6e4;
3855 break; // 1000 * 60
3856 case 'hour':
3857 output = (this - that) / 36e5;
3858 break; // 1000 * 60 * 60
3859 case 'day':
3860 output = (this - that - zoneDelta) / 864e5;
3861 break; // 1000 * 60 * 60 * 24, negate dst
3862 case 'week':
3863 output = (this - that - zoneDelta) / 6048e5;
3864 break; // 1000 * 60 * 60 * 24 * 7, negate dst
3865 default:
3866 output = this - that;
3867 }
3868
3869 return asFloat ? output : absFloor(output);
3870 }
3871
3872 function monthDiff(a, b) {
3873 if (a.date() < b.date()) {
3874 // end-of-month calculations work correct when the start month has more
3875 // days than the end month.
3876 return -monthDiff(b, a);
3877 }
3878 // difference in months
3879 var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),
3880 // b is in (anchor - 1 month, anchor + 1 month)
3881 anchor = a.clone().add(wholeMonthDiff, 'months'),
3882 anchor2,
3883 adjust;
3884
3885 if (b - anchor < 0) {
3886 anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
3887 // linear across the month
3888 adjust = (b - anchor) / (anchor - anchor2);
3889 } else {
3890 anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
3891 // linear across the month
3892 adjust = (b - anchor) / (anchor2 - anchor);
3893 }
3894
3895 //check for negative zero, return zero if negative zero
3896 return -(wholeMonthDiff + adjust) || 0;
3897 }
3898
3899 hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
3900 hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
3901
3902 function toString() {
3903 return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
3904 }
3905
3906 function toISOString(keepOffset) {
3907 if (!this.isValid()) {
3908 return null;
3909 }
3910 var utc = keepOffset !== true,
3911 m = utc ? this.clone().utc() : this;
3912 if (m.year() < 0 || m.year() > 9999) {
3913 return formatMoment(
3914 m,
3915 utc
3916 ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'
3917 : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'
3918 );
3919 }
3920 if (isFunction(Date.prototype.toISOString)) {
3921 // native implementation is ~50x faster, use it when we can
3922 if (utc) {
3923 return this.toDate().toISOString();
3924 } else {
3925 return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)
3926 .toISOString()
3927 .replace('Z', formatMoment(m, 'Z'));
3928 }
3929 }
3930 return formatMoment(
3931 m,
3932 utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'
3933 );
3934 }
3935
3936 /**
3937 * Return a human readable representation of a moment that can
3938 * also be evaluated to get a new moment which is the same
3939 *
3940 * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
3941 */
3942 function inspect() {
3943 if (!this.isValid()) {
3944 return 'moment.invalid(/* ' + this._i + ' */)';
3945 }
3946 var func = 'moment',
3947 zone = '',
3948 prefix,
3949 year,
3950 datetime,
3951 suffix;
3952 if (!this.isLocal()) {
3953 func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
3954 zone = 'Z';
3955 }
3956 prefix = '[' + func + '("]';
3957 year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';
3958 datetime = '-MM-DD[T]HH:mm:ss.SSS';
3959 suffix = zone + '[")]';
3960
3961 return this.format(prefix + year + datetime + suffix);
3962 }
3963
3964 function format(inputString) {
3965 if (!inputString) {
3966 inputString = this.isUtc()
3967 ? hooks.defaultFormatUtc
3968 : hooks.defaultFormat;
3969 }
3970 var output = formatMoment(this, inputString);
3971 return this.localeData().postformat(output);
3972 }
3973
3974 function from(time, withoutSuffix) {
3975 if (
3976 this.isValid() &&
3977 ((isMoment(time) && time.isValid()) || createLocal(time).isValid())
3978 ) {
3979 return createDuration({ to: this, from: time })
3980 .locale(this.locale())
3981 .humanize(!withoutSuffix);
3982 } else {
3983 return this.localeData().invalidDate();
3984 }
3985 }
3986
3987 function fromNow(withoutSuffix) {
3988 return this.from(createLocal(), withoutSuffix);
3989 }
3990
3991 function to(time, withoutSuffix) {
3992 if (
3993 this.isValid() &&
3994 ((isMoment(time) && time.isValid()) || createLocal(time).isValid())
3995 ) {
3996 return createDuration({ from: this, to: time })
3997 .locale(this.locale())
3998 .humanize(!withoutSuffix);
3999 } else {
4000 return this.localeData().invalidDate();
4001 }
4002 }
4003
4004 function toNow(withoutSuffix) {
4005 return this.to(createLocal(), withoutSuffix);
4006 }
4007
4008 // If passed a locale key, it will set the locale for this
4009 // instance. Otherwise, it will return the locale configuration
4010 // variables for this instance.
4011 function locale(key) {
4012 var newLocaleData;
4013
4014 if (key === undefined) {
4015 return this._locale._abbr;
4016 } else {
4017 newLocaleData = getLocale(key);
4018 if (newLocaleData != null) {
4019 this._locale = newLocaleData;
4020 }
4021 return this;
4022 }
4023 }
4024
4025 var lang = deprecate(
4026 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
4027 function (key) {
4028 if (key === undefined) {
4029 return this.localeData();
4030 } else {
4031 return this.locale(key);
4032 }
4033 }
4034 );
4035
4036 function localeData() {
4037 return this._locale;
4038 }
4039
4040 var MS_PER_SECOND = 1000,
4041 MS_PER_MINUTE = 60 * MS_PER_SECOND,
4042 MS_PER_HOUR = 60 * MS_PER_MINUTE,
4043 MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;
4044
4045 // actual modulo - handles negative numbers (for dates before 1970):
4046 function mod$1(dividend, divisor) {
4047 return ((dividend % divisor) + divisor) % divisor;
4048 }
4049
4050 function localStartOfDate(y, m, d) {
4051 // the date constructor remaps years 0-99 to 1900-1999
4052 if (y < 100 && y >= 0) {
4053 // preserve leap years using a full 400 year cycle, then reset
4054 return new Date(y + 400, m, d) - MS_PER_400_YEARS;
4055 } else {
4056 return new Date(y, m, d).valueOf();
4057 }
4058 }
4059
4060 function utcStartOfDate(y, m, d) {
4061 // Date.UTC remaps years 0-99 to 1900-1999
4062 if (y < 100 && y >= 0) {
4063 // preserve leap years using a full 400 year cycle, then reset
4064 return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;
4065 } else {
4066 return Date.UTC(y, m, d);
4067 }
4068 }
4069
4070 function startOf(units) {
4071 var time, startOfDate;
4072 units = normalizeUnits(units);
4073 if (units === undefined || units === 'millisecond' || !this.isValid()) {
4074 return this;
4075 }
4076
4077 startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
4078
4079 switch (units) {
4080 case 'year':
4081 time = startOfDate(this.year(), 0, 1);
4082 break;
4083 case 'quarter':
4084 time = startOfDate(
4085 this.year(),
4086 this.month() - (this.month() % 3),
4087 1
4088 );
4089 break;
4090 case 'month':
4091 time = startOfDate(this.year(), this.month(), 1);
4092 break;
4093 case 'week':
4094 time = startOfDate(
4095 this.year(),
4096 this.month(),
4097 this.date() - this.weekday()
4098 );
4099 break;
4100 case 'isoWeek':
4101 time = startOfDate(
4102 this.year(),
4103 this.month(),
4104 this.date() - (this.isoWeekday() - 1)
4105 );
4106 break;
4107 case 'day':
4108 case 'date':
4109 time = startOfDate(this.year(), this.month(), this.date());
4110 break;
4111 case 'hour':
4112 time = this._d.valueOf();
4113 time -= mod$1(
4114 time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),
4115 MS_PER_HOUR
4116 );
4117 break;
4118 case 'minute':
4119 time = this._d.valueOf();
4120 time -= mod$1(time, MS_PER_MINUTE);
4121 break;
4122 case 'second':
4123 time = this._d.valueOf();
4124 time -= mod$1(time, MS_PER_SECOND);
4125 break;
4126 }
4127
4128 this._d.setTime(time);
4129 hooks.updateOffset(this, true);
4130 return this;
4131 }
4132
4133 function endOf(units) {
4134 var time, startOfDate;
4135 units = normalizeUnits(units);
4136 if (units === undefined || units === 'millisecond' || !this.isValid()) {
4137 return this;
4138 }
4139
4140 startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
4141
4142 switch (units) {
4143 case 'year':
4144 time = startOfDate(this.year() + 1, 0, 1) - 1;
4145 break;
4146 case 'quarter':
4147 time =
4148 startOfDate(
4149 this.year(),
4150 this.month() - (this.month() % 3) + 3,
4151 1
4152 ) - 1;
4153 break;
4154 case 'month':
4155 time = startOfDate(this.year(), this.month() + 1, 1) - 1;
4156 break;
4157 case 'week':
4158 time =
4159 startOfDate(
4160 this.year(),
4161 this.month(),
4162 this.date() - this.weekday() + 7
4163 ) - 1;
4164 break;
4165 case 'isoWeek':
4166 time =
4167 startOfDate(
4168 this.year(),
4169 this.month(),
4170 this.date() - (this.isoWeekday() - 1) + 7
4171 ) - 1;
4172 break;
4173 case 'day':
4174 case 'date':
4175 time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;
4176 break;
4177 case 'hour':
4178 time = this._d.valueOf();
4179 time +=
4180 MS_PER_HOUR -
4181 mod$1(
4182 time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),
4183 MS_PER_HOUR
4184 ) -
4185 1;
4186 break;
4187 case 'minute':
4188 time = this._d.valueOf();
4189 time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;
4190 break;
4191 case 'second':
4192 time = this._d.valueOf();
4193 time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;
4194 break;
4195 }
4196
4197 this._d.setTime(time);
4198 hooks.updateOffset(this, true);
4199 return this;
4200 }
4201
4202 function valueOf() {
4203 return this._d.valueOf() - (this._offset || 0) * 60000;
4204 }
4205
4206 function unix() {
4207 return Math.floor(this.valueOf() / 1000);
4208 }
4209
4210 function toDate() {
4211 return new Date(this.valueOf());
4212 }
4213
4214 function toArray() {
4215 var m = this;
4216 return [
4217 m.year(),
4218 m.month(),
4219 m.date(),
4220 m.hour(),
4221 m.minute(),
4222 m.second(),
4223 m.millisecond(),
4224 ];
4225 }
4226
4227 function toObject() {
4228 var m = this;
4229 return {
4230 years: m.year(),
4231 months: m.month(),
4232 date: m.date(),
4233 hours: m.hours(),
4234 minutes: m.minutes(),
4235 seconds: m.seconds(),
4236 milliseconds: m.milliseconds(),
4237 };
4238 }
4239
4240 function toJSON() {
4241 // new Date(NaN).toJSON() === null
4242 return this.isValid() ? this.toISOString() : null;
4243 }
4244
4245 function isValid$2() {
4246 return isValid(this);
4247 }
4248
4249 function parsingFlags() {
4250 return extend({}, getParsingFlags(this));
4251 }
4252
4253 function invalidAt() {
4254 return getParsingFlags(this).overflow;
4255 }
4256
4257 function creationData() {
4258 return {
4259 input: this._i,
4260 format: this._f,
4261 locale: this._locale,
4262 isUTC: this._isUTC,
4263 strict: this._strict,
4264 };
4265 }
4266
4267 addFormatToken('N', 0, 0, 'eraAbbr');
4268 addFormatToken('NN', 0, 0, 'eraAbbr');
4269 addFormatToken('NNN', 0, 0, 'eraAbbr');
4270 addFormatToken('NNNN', 0, 0, 'eraName');
4271 addFormatToken('NNNNN', 0, 0, 'eraNarrow');
4272
4273 addFormatToken('y', ['y', 1], 'yo', 'eraYear');
4274 addFormatToken('y', ['yy', 2], 0, 'eraYear');
4275 addFormatToken('y', ['yyy', 3], 0, 'eraYear');
4276 addFormatToken('y', ['yyyy', 4], 0, 'eraYear');
4277
4278 addRegexToken('N', matchEraAbbr);
4279 addRegexToken('NN', matchEraAbbr);
4280 addRegexToken('NNN', matchEraAbbr);
4281 addRegexToken('NNNN', matchEraName);
4282 addRegexToken('NNNNN', matchEraNarrow);
4283
4284 addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (
4285 input,
4286 array,
4287 config,
4288 token
4289 ) {
4290 var era = config._locale.erasParse(input, token, config._strict);
4291 if (era) {
4292 getParsingFlags(config).era = era;
4293 } else {
4294 getParsingFlags(config).invalidEra = input;
4295 }
4296 });
4297
4298 addRegexToken('y', matchUnsigned);
4299 addRegexToken('yy', matchUnsigned);
4300 addRegexToken('yyy', matchUnsigned);
4301 addRegexToken('yyyy', matchUnsigned);
4302 addRegexToken('yo', matchEraYearOrdinal);
4303
4304 addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);
4305 addParseToken(['yo'], function (input, array, config, token) {
4306 var match;
4307 if (config._locale._eraYearOrdinalRegex) {
4308 match = input.match(config._locale._eraYearOrdinalRegex);
4309 }
4310
4311 if (config._locale.eraYearOrdinalParse) {
4312 array[YEAR] = config._locale.eraYearOrdinalParse(input, match);
4313 } else {
4314 array[YEAR] = parseInt(input, 10);
4315 }
4316 });
4317
4318 function localeEras(m, format) {
4319 var i,
4320 l,
4321 date,
4322 eras = this._eras || getLocale('en')._eras;
4323 for (i = 0, l = eras.length; i < l; ++i) {
4324 switch (typeof eras[i].since) {
4325 case 'string':
4326 // truncate time
4327 date = hooks(eras[i].since).startOf('day');
4328 eras[i].since = date.valueOf();
4329 break;
4330 }
4331
4332 switch (typeof eras[i].until) {
4333 case 'undefined':
4334 eras[i].until = +Infinity;
4335 break;
4336 case 'string':
4337 // truncate time
4338 date = hooks(eras[i].until).startOf('day').valueOf();
4339 eras[i].until = date.valueOf();
4340 break;
4341 }
4342 }
4343 return eras;
4344 }
4345
4346 function localeErasParse(eraName, format, strict) {
4347 var i,
4348 l,
4349 eras = this.eras(),
4350 name,
4351 abbr,
4352 narrow;
4353 eraName = eraName.toUpperCase();
4354
4355 for (i = 0, l = eras.length; i < l; ++i) {
4356 name = eras[i].name.toUpperCase();
4357 abbr = eras[i].abbr.toUpperCase();
4358 narrow = eras[i].narrow.toUpperCase();
4359
4360 if (strict) {
4361 switch (format) {
4362 case 'N':
4363 case 'NN':
4364 case 'NNN':
4365 if (abbr === eraName) {
4366 return eras[i];
4367 }
4368 break;
4369
4370 case 'NNNN':
4371 if (name === eraName) {
4372 return eras[i];
4373 }
4374 break;
4375
4376 case 'NNNNN':
4377 if (narrow === eraName) {
4378 return eras[i];
4379 }
4380 break;
4381 }
4382 } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {
4383 return eras[i];
4384 }
4385 }
4386 }
4387
4388 function localeErasConvertYear(era, year) {
4389 var dir = era.since <= era.until ? +1 : -1;
4390 if (year === undefined) {
4391 return hooks(era.since).year();
4392 } else {
4393 return hooks(era.since).year() + (year - era.offset) * dir;
4394 }
4395 }
4396
4397 function getEraName() {
4398 var i,
4399 l,
4400 val,
4401 eras = this.localeData().eras();
4402 for (i = 0, l = eras.length; i < l; ++i) {
4403 // truncate time
4404 val = this.clone().startOf('day').valueOf();
4405
4406 if (eras[i].since <= val && val <= eras[i].until) {
4407 return eras[i].name;
4408 }
4409 if (eras[i].until <= val && val <= eras[i].since) {
4410 return eras[i].name;
4411 }
4412 }
4413
4414 return '';
4415 }
4416
4417 function getEraNarrow() {
4418 var i,
4419 l,
4420 val,
4421 eras = this.localeData().eras();
4422 for (i = 0, l = eras.length; i < l; ++i) {
4423 // truncate time
4424 val = this.clone().startOf('day').valueOf();
4425
4426 if (eras[i].since <= val && val <= eras[i].until) {
4427 return eras[i].narrow;
4428 }
4429 if (eras[i].until <= val && val <= eras[i].since) {
4430 return eras[i].narrow;
4431 }
4432 }
4433
4434 return '';
4435 }
4436
4437 function getEraAbbr() {
4438 var i,
4439 l,
4440 val,
4441 eras = this.localeData().eras();
4442 for (i = 0, l = eras.length; i < l; ++i) {
4443 // truncate time
4444 val = this.clone().startOf('day').valueOf();
4445
4446 if (eras[i].since <= val && val <= eras[i].until) {
4447 return eras[i].abbr;
4448 }
4449 if (eras[i].until <= val && val <= eras[i].since) {
4450 return eras[i].abbr;
4451 }
4452 }
4453
4454 return '';
4455 }
4456
4457 function getEraYear() {
4458 var i,
4459 l,
4460 dir,
4461 val,
4462 eras = this.localeData().eras();
4463 for (i = 0, l = eras.length; i < l; ++i) {
4464 dir = eras[i].since <= eras[i].until ? +1 : -1;
4465
4466 // truncate time
4467 val = this.clone().startOf('day').valueOf();
4468
4469 if (
4470 (eras[i].since <= val && val <= eras[i].until) ||
4471 (eras[i].until <= val && val <= eras[i].since)
4472 ) {
4473 return (
4474 (this.year() - hooks(eras[i].since).year()) * dir +
4475 eras[i].offset
4476 );
4477 }
4478 }
4479
4480 return this.year();
4481 }
4482
4483 function erasNameRegex(isStrict) {
4484 if (!hasOwnProp(this, '_erasNameRegex')) {
4485 computeErasParse.call(this);
4486 }
4487 return isStrict ? this._erasNameRegex : this._erasRegex;
4488 }
4489
4490 function erasAbbrRegex(isStrict) {
4491 if (!hasOwnProp(this, '_erasAbbrRegex')) {
4492 computeErasParse.call(this);
4493 }
4494 return isStrict ? this._erasAbbrRegex : this._erasRegex;
4495 }
4496
4497 function erasNarrowRegex(isStrict) {
4498 if (!hasOwnProp(this, '_erasNarrowRegex')) {
4499 computeErasParse.call(this);
4500 }
4501 return isStrict ? this._erasNarrowRegex : this._erasRegex;
4502 }
4503
4504 function matchEraAbbr(isStrict, locale) {
4505 return locale.erasAbbrRegex(isStrict);
4506 }
4507
4508 function matchEraName(isStrict, locale) {
4509 return locale.erasNameRegex(isStrict);
4510 }
4511
4512 function matchEraNarrow(isStrict, locale) {
4513 return locale.erasNarrowRegex(isStrict);
4514 }
4515
4516 function matchEraYearOrdinal(isStrict, locale) {
4517 return locale._eraYearOrdinalRegex || matchUnsigned;
4518 }
4519
4520 function computeErasParse() {
4521 var abbrPieces = [],
4522 namePieces = [],
4523 narrowPieces = [],
4524 mixedPieces = [],
4525 i,
4526 l,
4527 eras = this.eras();
4528
4529 for (i = 0, l = eras.length; i < l; ++i) {
4530 namePieces.push(regexEscape(eras[i].name));
4531 abbrPieces.push(regexEscape(eras[i].abbr));
4532 narrowPieces.push(regexEscape(eras[i].narrow));
4533
4534 mixedPieces.push(regexEscape(eras[i].name));
4535 mixedPieces.push(regexEscape(eras[i].abbr));
4536 mixedPieces.push(regexEscape(eras[i].narrow));
4537 }
4538
4539 this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
4540 this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');
4541 this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');
4542 this._erasNarrowRegex = new RegExp(
4543 '^(' + narrowPieces.join('|') + ')',
4544 'i'
4545 );
4546 }
4547
4548 // FORMATTING
4549
4550 addFormatToken(0, ['gg', 2], 0, function () {
4551 return this.weekYear() % 100;
4552 });
4553
4554 addFormatToken(0, ['GG', 2], 0, function () {
4555 return this.isoWeekYear() % 100;
4556 });
4557
4558 function addWeekYearFormatToken(token, getter) {
4559 addFormatToken(0, [token, token.length], 0, getter);
4560 }
4561
4562 addWeekYearFormatToken('gggg', 'weekYear');
4563 addWeekYearFormatToken('ggggg', 'weekYear');
4564 addWeekYearFormatToken('GGGG', 'isoWeekYear');
4565 addWeekYearFormatToken('GGGGG', 'isoWeekYear');
4566
4567 // ALIASES
4568
4569 addUnitAlias('weekYear', 'gg');
4570 addUnitAlias('isoWeekYear', 'GG');
4571
4572 // PRIORITY
4573
4574 addUnitPriority('weekYear', 1);
4575 addUnitPriority('isoWeekYear', 1);
4576
4577 // PARSING
4578
4579 addRegexToken('G', matchSigned);
4580 addRegexToken('g', matchSigned);
4581 addRegexToken('GG', match1to2, match2);
4582 addRegexToken('gg', match1to2, match2);
4583 addRegexToken('GGGG', match1to4, match4);
4584 addRegexToken('gggg', match1to4, match4);
4585 addRegexToken('GGGGG', match1to6, match6);
4586 addRegexToken('ggggg', match1to6, match6);
4587
4588 addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (
4589 input,
4590 week,
4591 config,
4592 token
4593 ) {
4594 week[token.substr(0, 2)] = toInt(input);
4595 });
4596
4597 addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
4598 week[token] = hooks.parseTwoDigitYear(input);
4599 });
4600
4601 // MOMENTS
4602
4603 function getSetWeekYear(input) {
4604 return getSetWeekYearHelper.call(
4605 this,
4606 input,
4607 this.week(),
4608 this.weekday(),
4609 this.localeData()._week.dow,
4610 this.localeData()._week.doy
4611 );
4612 }
4613
4614 function getSetISOWeekYear(input) {
4615 return getSetWeekYearHelper.call(
4616 this,
4617 input,
4618 this.isoWeek(),
4619 this.isoWeekday(),
4620 1,
4621 4
4622 );
4623 }
4624
4625 function getISOWeeksInYear() {
4626 return weeksInYear(this.year(), 1, 4);
4627 }
4628
4629 function getISOWeeksInISOWeekYear() {
4630 return weeksInYear(this.isoWeekYear(), 1, 4);
4631 }
4632
4633 function getWeeksInYear() {
4634 var weekInfo = this.localeData()._week;
4635 return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
4636 }
4637
4638 function getWeeksInWeekYear() {
4639 var weekInfo = this.localeData()._week;
4640 return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);
4641 }
4642
4643 function getSetWeekYearHelper(input, week, weekday, dow, doy) {
4644 var weeksTarget;
4645 if (input == null) {
4646 return weekOfYear(this, dow, doy).year;
4647 } else {
4648 weeksTarget = weeksInYear(input, dow, doy);
4649 if (week > weeksTarget) {
4650 week = weeksTarget;
4651 }
4652 return setWeekAll.call(this, input, week, weekday, dow, doy);
4653 }
4654 }
4655
4656 function setWeekAll(weekYear, week, weekday, dow, doy) {
4657 var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
4658 date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
4659
4660 this.year(date.getUTCFullYear());
4661 this.month(date.getUTCMonth());
4662 this.date(date.getUTCDate());
4663 return this;
4664 }
4665
4666 // FORMATTING
4667
4668 addFormatToken('Q', 0, 'Qo', 'quarter');
4669
4670 // ALIASES
4671
4672 addUnitAlias('quarter', 'Q');
4673
4674 // PRIORITY
4675
4676 addUnitPriority('quarter', 7);
4677
4678 // PARSING
4679
4680 addRegexToken('Q', match1);
4681 addParseToken('Q', function (input, array) {
4682 array[MONTH] = (toInt(input) - 1) * 3;
4683 });
4684
4685 // MOMENTS
4686
4687 function getSetQuarter(input) {
4688 return input == null
4689 ? Math.ceil((this.month() + 1) / 3)
4690 : this.month((input - 1) * 3 + (this.month() % 3));
4691 }
4692
4693 // FORMATTING
4694
4695 addFormatToken('D', ['DD', 2], 'Do', 'date');
4696
4697 // ALIASES
4698
4699 addUnitAlias('date', 'D');
4700
4701 // PRIORITY
4702 addUnitPriority('date', 9);
4703
4704 // PARSING
4705
4706 addRegexToken('D', match1to2);
4707 addRegexToken('DD', match1to2, match2);
4708 addRegexToken('Do', function (isStrict, locale) {
4709 // TODO: Remove "ordinalParse" fallback in next major release.
4710 return isStrict
4711 ? locale._dayOfMonthOrdinalParse || locale._ordinalParse
4712 : locale._dayOfMonthOrdinalParseLenient;
4713 });
4714
4715 addParseToken(['D', 'DD'], DATE);
4716 addParseToken('Do', function (input, array) {
4717 array[DATE] = toInt(input.match(match1to2)[0]);
4718 });
4719
4720 // MOMENTS
4721
4722 var getSetDayOfMonth = makeGetSet('Date', true);
4723
4724 // FORMATTING
4725
4726 addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
4727
4728 // ALIASES
4729
4730 addUnitAlias('dayOfYear', 'DDD');
4731
4732 // PRIORITY
4733 addUnitPriority('dayOfYear', 4);
4734
4735 // PARSING
4736
4737 addRegexToken('DDD', match1to3);
4738 addRegexToken('DDDD', match3);
4739 addParseToken(['DDD', 'DDDD'], function (input, array, config) {
4740 config._dayOfYear = toInt(input);
4741 });
4742
4743 // HELPERS
4744
4745 // MOMENTS
4746
4747 function getSetDayOfYear(input) {
4748 var dayOfYear =
4749 Math.round(
4750 (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5
4751 ) + 1;
4752 return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');
4753 }
4754
4755 // FORMATTING
4756
4757 addFormatToken('m', ['mm', 2], 0, 'minute');
4758
4759 // ALIASES
4760
4761 addUnitAlias('minute', 'm');
4762
4763 // PRIORITY
4764
4765 addUnitPriority('minute', 14);
4766
4767 // PARSING
4768
4769 addRegexToken('m', match1to2);
4770 addRegexToken('mm', match1to2, match2);
4771 addParseToken(['m', 'mm'], MINUTE);
4772
4773 // MOMENTS
4774
4775 var getSetMinute = makeGetSet('Minutes', false);
4776
4777 // FORMATTING
4778
4779 addFormatToken('s', ['ss', 2], 0, 'second');
4780
4781 // ALIASES
4782
4783 addUnitAlias('second', 's');
4784
4785 // PRIORITY
4786
4787 addUnitPriority('second', 15);
4788
4789 // PARSING
4790
4791 addRegexToken('s', match1to2);
4792 addRegexToken('ss', match1to2, match2);
4793 addParseToken(['s', 'ss'], SECOND);
4794
4795 // MOMENTS
4796
4797 var getSetSecond = makeGetSet('Seconds', false);
4798
4799 // FORMATTING
4800
4801 addFormatToken('S', 0, 0, function () {
4802 return ~~(this.millisecond() / 100);
4803 });
4804
4805 addFormatToken(0, ['SS', 2], 0, function () {
4806 return ~~(this.millisecond() / 10);
4807 });
4808
4809 addFormatToken(0, ['SSS', 3], 0, 'millisecond');
4810 addFormatToken(0, ['SSSS', 4], 0, function () {
4811 return this.millisecond() * 10;
4812 });
4813 addFormatToken(0, ['SSSSS', 5], 0, function () {
4814 return this.millisecond() * 100;
4815 });
4816 addFormatToken(0, ['SSSSSS', 6], 0, function () {
4817 return this.millisecond() * 1000;
4818 });
4819 addFormatToken(0, ['SSSSSSS', 7], 0, function () {
4820 return this.millisecond() * 10000;
4821 });
4822 addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
4823 return this.millisecond() * 100000;
4824 });
4825 addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
4826 return this.millisecond() * 1000000;
4827 });
4828
4829 // ALIASES
4830
4831 addUnitAlias('millisecond', 'ms');
4832
4833 // PRIORITY
4834
4835 addUnitPriority('millisecond', 16);
4836
4837 // PARSING
4838
4839 addRegexToken('S', match1to3, match1);
4840 addRegexToken('SS', match1to3, match2);
4841 addRegexToken('SSS', match1to3, match3);
4842
4843 var token, getSetMillisecond;
4844 for (token = 'SSSS'; token.length <= 9; token += 'S') {
4845 addRegexToken(token, matchUnsigned);
4846 }
4847
4848 function parseMs(input, array) {
4849 array[MILLISECOND] = toInt(('0.' + input) * 1000);
4850 }
4851
4852 for (token = 'S'; token.length <= 9; token += 'S') {
4853 addParseToken(token, parseMs);
4854 }
4855
4856 getSetMillisecond = makeGetSet('Milliseconds', false);
4857
4858 // FORMATTING
4859
4860 addFormatToken('z', 0, 0, 'zoneAbbr');
4861 addFormatToken('zz', 0, 0, 'zoneName');
4862
4863 // MOMENTS
4864
4865 function getZoneAbbr() {
4866 return this._isUTC ? 'UTC' : '';
4867 }
4868
4869 function getZoneName() {
4870 return this._isUTC ? 'Coordinated Universal Time' : '';
4871 }
4872
4873 var proto = Moment.prototype;
4874
4875 proto.add = add;
4876 proto.calendar = calendar$1;
4877 proto.clone = clone;
4878 proto.diff = diff;
4879 proto.endOf = endOf;
4880 proto.format = format;
4881 proto.from = from;
4882 proto.fromNow = fromNow;
4883 proto.to = to;
4884 proto.toNow = toNow;
4885 proto.get = stringGet;
4886 proto.invalidAt = invalidAt;
4887 proto.isAfter = isAfter;
4888 proto.isBefore = isBefore;
4889 proto.isBetween = isBetween;
4890 proto.isSame = isSame;
4891 proto.isSameOrAfter = isSameOrAfter;
4892 proto.isSameOrBefore = isSameOrBefore;
4893 proto.isValid = isValid$2;
4894 proto.lang = lang;
4895 proto.locale = locale;
4896 proto.localeData = localeData;
4897 proto.max = prototypeMax;
4898 proto.min = prototypeMin;
4899 proto.parsingFlags = parsingFlags;
4900 proto.set = stringSet;
4901 proto.startOf = startOf;
4902 proto.subtract = subtract;
4903 proto.toArray = toArray;
4904 proto.toObject = toObject;
4905 proto.toDate = toDate;
4906 proto.toISOString = toISOString;
4907 proto.inspect = inspect;
4908 if (typeof Symbol !== 'undefined' && Symbol.for != null) {
4909 proto[Symbol.for('nodejs.util.inspect.custom')] = function () {
4910 return 'Moment<' + this.format() + '>';
4911 };
4912 }
4913 proto.toJSON = toJSON;
4914 proto.toString = toString;
4915 proto.unix = unix;
4916 proto.valueOf = valueOf;
4917 proto.creationData = creationData;
4918 proto.eraName = getEraName;
4919 proto.eraNarrow = getEraNarrow;
4920 proto.eraAbbr = getEraAbbr;
4921 proto.eraYear = getEraYear;
4922 proto.year = getSetYear;
4923 proto.isLeapYear = getIsLeapYear;
4924 proto.weekYear = getSetWeekYear;
4925 proto.isoWeekYear = getSetISOWeekYear;
4926 proto.quarter = proto.quarters = getSetQuarter;
4927 proto.month = getSetMonth;
4928 proto.daysInMonth = getDaysInMonth;
4929 proto.week = proto.weeks = getSetWeek;
4930 proto.isoWeek = proto.isoWeeks = getSetISOWeek;
4931 proto.weeksInYear = getWeeksInYear;
4932 proto.weeksInWeekYear = getWeeksInWeekYear;
4933 proto.isoWeeksInYear = getISOWeeksInYear;
4934 proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;
4935 proto.date = getSetDayOfMonth;
4936 proto.day = proto.days = getSetDayOfWeek;
4937 proto.weekday = getSetLocaleDayOfWeek;
4938 proto.isoWeekday = getSetISODayOfWeek;
4939 proto.dayOfYear = getSetDayOfYear;
4940 proto.hour = proto.hours = getSetHour;
4941 proto.minute = proto.minutes = getSetMinute;
4942 proto.second = proto.seconds = getSetSecond;
4943 proto.millisecond = proto.milliseconds = getSetMillisecond;
4944 proto.utcOffset = getSetOffset;
4945 proto.utc = setOffsetToUTC;
4946 proto.local = setOffsetToLocal;
4947 proto.parseZone = setOffsetToParsedOffset;
4948 proto.hasAlignedHourOffset = hasAlignedHourOffset;
4949 proto.isDST = isDaylightSavingTime;
4950 proto.isLocal = isLocal;
4951 proto.isUtcOffset = isUtcOffset;
4952 proto.isUtc = isUtc;
4953 proto.isUTC = isUtc;
4954 proto.zoneAbbr = getZoneAbbr;
4955 proto.zoneName = getZoneName;
4956 proto.dates = deprecate(
4957 'dates accessor is deprecated. Use date instead.',
4958 getSetDayOfMonth
4959 );
4960 proto.months = deprecate(
4961 'months accessor is deprecated. Use month instead',
4962 getSetMonth
4963 );
4964 proto.years = deprecate(
4965 'years accessor is deprecated. Use year instead',
4966 getSetYear
4967 );
4968 proto.zone = deprecate(
4969 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',
4970 getSetZone
4971 );
4972 proto.isDSTShifted = deprecate(
4973 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',
4974 isDaylightSavingTimeShifted
4975 );
4976
4977 function createUnix(input) {
4978 return createLocal(input * 1000);
4979 }
4980
4981 function createInZone() {
4982 return createLocal.apply(null, arguments).parseZone();
4983 }
4984
4985 function preParsePostFormat(string) {
4986 return string;
4987 }
4988
4989 var proto$1 = Locale.prototype;
4990
4991 proto$1.calendar = calendar;
4992 proto$1.longDateFormat = longDateFormat;
4993 proto$1.invalidDate = invalidDate;
4994 proto$1.ordinal = ordinal;
4995 proto$1.preparse = preParsePostFormat;
4996 proto$1.postformat = preParsePostFormat;
4997 proto$1.relativeTime = relativeTime;
4998 proto$1.pastFuture = pastFuture;
4999 proto$1.set = set;
5000 proto$1.eras = localeEras;
5001 proto$1.erasParse = localeErasParse;
5002 proto$1.erasConvertYear = localeErasConvertYear;
5003 proto$1.erasAbbrRegex = erasAbbrRegex;
5004 proto$1.erasNameRegex = erasNameRegex;
5005 proto$1.erasNarrowRegex = erasNarrowRegex;
5006
5007 proto$1.months = localeMonths;
5008 proto$1.monthsShort = localeMonthsShort;
5009 proto$1.monthsParse = localeMonthsParse;
5010 proto$1.monthsRegex = monthsRegex;
5011 proto$1.monthsShortRegex = monthsShortRegex;
5012 proto$1.week = localeWeek;
5013 proto$1.firstDayOfYear = localeFirstDayOfYear;
5014 proto$1.firstDayOfWeek = localeFirstDayOfWeek;
5015
5016 proto$1.weekdays = localeWeekdays;
5017 proto$1.weekdaysMin = localeWeekdaysMin;
5018 proto$1.weekdaysShort = localeWeekdaysShort;
5019 proto$1.weekdaysParse = localeWeekdaysParse;
5020
5021 proto$1.weekdaysRegex = weekdaysRegex;
5022 proto$1.weekdaysShortRegex = weekdaysShortRegex;
5023 proto$1.weekdaysMinRegex = weekdaysMinRegex;
5024
5025 proto$1.isPM = localeIsPM;
5026 proto$1.meridiem = localeMeridiem;
5027
5028 function get$1(format, index, field, setter) {
5029 var locale = getLocale(),
5030 utc = createUTC().set(setter, index);
5031 return locale[field](utc, format);
5032 }
5033
5034 function listMonthsImpl(format, index, field) {
5035 if (isNumber(format)) {
5036 index = format;
5037 format = undefined;
5038 }
5039
5040 format = format || '';
5041
5042 if (index != null) {
5043 return get$1(format, index, field, 'month');
5044 }
5045
5046 var i,
5047 out = [];
5048 for (i = 0; i < 12; i++) {
5049 out[i] = get$1(format, i, field, 'month');
5050 }
5051 return out;
5052 }
5053
5054 // ()
5055 // (5)
5056 // (fmt, 5)
5057 // (fmt)
5058 // (true)
5059 // (true, 5)
5060 // (true, fmt, 5)
5061 // (true, fmt)
5062 function listWeekdaysImpl(localeSorted, format, index, field) {
5063 if (typeof localeSorted === 'boolean') {
5064 if (isNumber(format)) {
5065 index = format;
5066 format = undefined;
5067 }
5068
5069 format = format || '';
5070 } else {
5071 format = localeSorted;
5072 index = format;
5073 localeSorted = false;
5074
5075 if (isNumber(format)) {
5076 index = format;
5077 format = undefined;
5078 }
5079
5080 format = format || '';
5081 }
5082
5083 var locale = getLocale(),
5084 shift = localeSorted ? locale._week.dow : 0,
5085 i,
5086 out = [];
5087
5088 if (index != null) {
5089 return get$1(format, (index + shift) % 7, field, 'day');
5090 }
5091
5092 for (i = 0; i < 7; i++) {
5093 out[i] = get$1(format, (i + shift) % 7, field, 'day');
5094 }
5095 return out;
5096 }
5097
5098 function listMonths(format, index) {
5099 return listMonthsImpl(format, index, 'months');
5100 }
5101
5102 function listMonthsShort(format, index) {
5103 return listMonthsImpl(format, index, 'monthsShort');
5104 }
5105
5106 function listWeekdays(localeSorted, format, index) {
5107 return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
5108 }
5109
5110 function listWeekdaysShort(localeSorted, format, index) {
5111 return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
5112 }
5113
5114 function listWeekdaysMin(localeSorted, format, index) {
5115 return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
5116 }
5117
5118 getSetGlobalLocale('en', {
5119 eras: [
5120 {
5121 since: '0001-01-01',
5122 until: +Infinity,
5123 offset: 1,
5124 name: 'Anno Domini',
5125 narrow: 'AD',
5126 abbr: 'AD',
5127 },
5128 {
5129 since: '0000-12-31',
5130 until: -Infinity,
5131 offset: 1,
5132 name: 'Before Christ',
5133 narrow: 'BC',
5134 abbr: 'BC',
5135 },
5136 ],
5137 dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
5138 ordinal: function (number) {
5139 var b = number % 10,
5140 output =
5141 toInt((number % 100) / 10) === 1
5142 ? 'th'
5143 : b === 1
5144 ? 'st'
5145 : b === 2
5146 ? 'nd'
5147 : b === 3
5148 ? 'rd'
5149 : 'th';
5150 return number + output;
5151 },
5152 });
5153
5154 // Side effect imports
5155
5156 hooks.lang = deprecate(
5157 'moment.lang is deprecated. Use moment.locale instead.',
5158 getSetGlobalLocale
5159 );
5160 hooks.langData = deprecate(
5161 'moment.langData is deprecated. Use moment.localeData instead.',
5162 getLocale
5163 );
5164
5165 var mathAbs = Math.abs;
5166
5167 function abs() {
5168 var data = this._data;
5169
5170 this._milliseconds = mathAbs(this._milliseconds);
5171 this._days = mathAbs(this._days);
5172 this._months = mathAbs(this._months);
5173
5174 data.milliseconds = mathAbs(data.milliseconds);
5175 data.seconds = mathAbs(data.seconds);
5176 data.minutes = mathAbs(data.minutes);
5177 data.hours = mathAbs(data.hours);
5178 data.months = mathAbs(data.months);
5179 data.years = mathAbs(data.years);
5180
5181 return this;
5182 }
5183
5184 function addSubtract$1(duration, input, value, direction) {
5185 var other = createDuration(input, value);
5186
5187 duration._milliseconds += direction * other._milliseconds;
5188 duration._days += direction * other._days;
5189 duration._months += direction * other._months;
5190
5191 return duration._bubble();
5192 }
5193
5194 // supports only 2.0-style add(1, 's') or add(duration)
5195 function add$1(input, value) {
5196 return addSubtract$1(this, input, value, 1);
5197 }
5198
5199 // supports only 2.0-style subtract(1, 's') or subtract(duration)
5200 function subtract$1(input, value) {
5201 return addSubtract$1(this, input, value, -1);
5202 }
5203
5204 function absCeil(number) {
5205 if (number < 0) {
5206 return Math.floor(number);
5207 } else {
5208 return Math.ceil(number);
5209 }
5210 }
5211
5212 function bubble() {
5213 var milliseconds = this._milliseconds,
5214 days = this._days,
5215 months = this._months,
5216 data = this._data,
5217 seconds,
5218 minutes,
5219 hours,
5220 years,
5221 monthsFromDays;
5222
5223 // if we have a mix of positive and negative values, bubble down first
5224 // check: https://github.com/moment/moment/issues/2166
5225 if (
5226 !(
5227 (milliseconds >= 0 && days >= 0 && months >= 0) ||
5228 (milliseconds <= 0 && days <= 0 && months <= 0)
5229 )
5230 ) {
5231 milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
5232 days = 0;
5233 months = 0;
5234 }
5235
5236 // The following code bubbles up values, see the tests for
5237 // examples of what that means.
5238 data.milliseconds = milliseconds % 1000;
5239
5240 seconds = absFloor(milliseconds / 1000);
5241 data.seconds = seconds % 60;
5242
5243 minutes = absFloor(seconds / 60);
5244 data.minutes = minutes % 60;
5245
5246 hours = absFloor(minutes / 60);
5247 data.hours = hours % 24;
5248
5249 days += absFloor(hours / 24);
5250
5251 // convert days to months
5252 monthsFromDays = absFloor(daysToMonths(days));
5253 months += monthsFromDays;
5254 days -= absCeil(monthsToDays(monthsFromDays));
5255
5256 // 12 months -> 1 year
5257 years = absFloor(months / 12);
5258 months %= 12;
5259
5260 data.days = days;
5261 data.months = months;
5262 data.years = years;
5263
5264 return this;
5265 }
5266
5267 function daysToMonths(days) {
5268 // 400 years have 146097 days (taking into account leap year rules)
5269 // 400 years have 12 months === 4800
5270 return (days * 4800) / 146097;
5271 }
5272
5273 function monthsToDays(months) {
5274 // the reverse of daysToMonths
5275 return (months * 146097) / 4800;
5276 }
5277
5278 function as(units) {
5279 if (!this.isValid()) {
5280 return NaN;
5281 }
5282 var days,
5283 months,
5284 milliseconds = this._milliseconds;
5285
5286 units = normalizeUnits(units);
5287
5288 if (units === 'month' || units === 'quarter' || units === 'year') {
5289 days = this._days + milliseconds / 864e5;
5290 months = this._months + daysToMonths(days);
5291 switch (units) {
5292 case 'month':
5293 return months;
5294 case 'quarter':
5295 return months / 3;
5296 case 'year':
5297 return months / 12;
5298 }
5299 } else {
5300 // handle milliseconds separately because of floating point math errors (issue #1867)
5301 days = this._days + Math.round(monthsToDays(this._months));
5302 switch (units) {
5303 case 'week':
5304 return days / 7 + milliseconds / 6048e5;
5305 case 'day':
5306 return days + milliseconds / 864e5;
5307 case 'hour':
5308 return days * 24 + milliseconds / 36e5;
5309 case 'minute':
5310 return days * 1440 + milliseconds / 6e4;
5311 case 'second':
5312 return days * 86400 + milliseconds / 1000;
5313 // Math.floor prevents floating point math errors here
5314 case 'millisecond':
5315 return Math.floor(days * 864e5) + milliseconds;
5316 default:
5317 throw new Error('Unknown unit ' + units);
5318 }
5319 }
5320 }
5321
5322 // TODO: Use this.as('ms')?
5323 function valueOf$1() {
5324 if (!this.isValid()) {
5325 return NaN;
5326 }
5327 return (
5328 this._milliseconds +
5329 this._days * 864e5 +
5330 (this._months % 12) * 2592e6 +
5331 toInt(this._months / 12) * 31536e6
5332 );
5333 }
5334
5335 function makeAs(alias) {
5336 return function () {
5337 return this.as(alias);
5338 };
5339 }
5340
5341 var asMilliseconds = makeAs('ms'),
5342 asSeconds = makeAs('s'),
5343 asMinutes = makeAs('m'),
5344 asHours = makeAs('h'),
5345 asDays = makeAs('d'),
5346 asWeeks = makeAs('w'),
5347 asMonths = makeAs('M'),
5348 asQuarters = makeAs('Q'),
5349 asYears = makeAs('y');
5350
5351 function clone$1() {
5352 return createDuration(this);
5353 }
5354
5355 function get$2(units) {
5356 units = normalizeUnits(units);
5357 return this.isValid() ? this[units + 's']() : NaN;
5358 }
5359
5360 function makeGetter(name) {
5361 return function () {
5362 return this.isValid() ? this._data[name] : NaN;
5363 };
5364 }
5365
5366 var milliseconds = makeGetter('milliseconds'),
5367 seconds = makeGetter('seconds'),
5368 minutes = makeGetter('minutes'),
5369 hours = makeGetter('hours'),
5370 days = makeGetter('days'),
5371 months = makeGetter('months'),
5372 years = makeGetter('years');
5373
5374 function weeks() {
5375 return absFloor(this.days() / 7);
5376 }
5377
5378 var round = Math.round,
5379 thresholds = {
5380 ss: 44, // a few seconds to seconds
5381 s: 45, // seconds to minute
5382 m: 45, // minutes to hour
5383 h: 22, // hours to day
5384 d: 26, // days to month/week
5385 w: null, // weeks to month
5386 M: 11, // months to year
5387 };
5388
5389 // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
5390 function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
5391 return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
5392 }
5393
5394 function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {
5395 var duration = createDuration(posNegDuration).abs(),
5396 seconds = round(duration.as('s')),
5397 minutes = round(duration.as('m')),
5398 hours = round(duration.as('h')),
5399 days = round(duration.as('d')),
5400 months = round(duration.as('M')),
5401 weeks = round(duration.as('w')),
5402 years = round(duration.as('y')),
5403 a =
5404 (seconds <= thresholds.ss && ['s', seconds]) ||
5405 (seconds < thresholds.s && ['ss', seconds]) ||
5406 (minutes <= 1 && ['m']) ||
5407 (minutes < thresholds.m && ['mm', minutes]) ||
5408 (hours <= 1 && ['h']) ||
5409 (hours < thresholds.h && ['hh', hours]) ||
5410 (days <= 1 && ['d']) ||
5411 (days < thresholds.d && ['dd', days]);
5412
5413 if (thresholds.w != null) {
5414 a =
5415 a ||
5416 (weeks <= 1 && ['w']) ||
5417 (weeks < thresholds.w && ['ww', weeks]);
5418 }
5419 a = a ||
5420 (months <= 1 && ['M']) ||
5421 (months < thresholds.M && ['MM', months]) ||
5422 (years <= 1 && ['y']) || ['yy', years];
5423
5424 a[2] = withoutSuffix;
5425 a[3] = +posNegDuration > 0;
5426 a[4] = locale;
5427 return substituteTimeAgo.apply(null, a);
5428 }
5429
5430 // This function allows you to set the rounding function for relative time strings
5431 function getSetRelativeTimeRounding(roundingFunction) {
5432 if (roundingFunction === undefined) {
5433 return round;
5434 }
5435 if (typeof roundingFunction === 'function') {
5436 round = roundingFunction;
5437 return true;
5438 }
5439 return false;
5440 }
5441
5442 // This function allows you to set a threshold for relative time strings
5443 function getSetRelativeTimeThreshold(threshold, limit) {
5444 if (thresholds[threshold] === undefined) {
5445 return false;
5446 }
5447 if (limit === undefined) {
5448 return thresholds[threshold];
5449 }
5450 thresholds[threshold] = limit;
5451 if (threshold === 's') {
5452 thresholds.ss = limit - 1;
5453 }
5454 return true;
5455 }
5456
5457 function humanize(argWithSuffix, argThresholds) {
5458 if (!this.isValid()) {
5459 return this.localeData().invalidDate();
5460 }
5461
5462 var withSuffix = false,
5463 th = thresholds,
5464 locale,
5465 output;
5466
5467 if (typeof argWithSuffix === 'object') {
5468 argThresholds = argWithSuffix;
5469 argWithSuffix = false;
5470 }
5471 if (typeof argWithSuffix === 'boolean') {
5472 withSuffix = argWithSuffix;
5473 }
5474 if (typeof argThresholds === 'object') {
5475 th = Object.assign({}, thresholds, argThresholds);
5476 if (argThresholds.s != null && argThresholds.ss == null) {
5477 th.ss = argThresholds.s - 1;
5478 }
5479 }
5480
5481 locale = this.localeData();
5482 output = relativeTime$1(this, !withSuffix, th, locale);
5483
5484 if (withSuffix) {
5485 output = locale.pastFuture(+this, output);
5486 }
5487
5488 return locale.postformat(output);
5489 }
5490
5491 var abs$1 = Math.abs;
5492
5493 function sign(x) {
5494 return (x > 0) - (x < 0) || +x;
5495 }
5496
5497 function toISOString$1() {
5498 // for ISO strings we do not use the normal bubbling rules:
5499 // * milliseconds bubble up until they become hours
5500 // * days do not bubble at all
5501 // * months bubble up until they become years
5502 // This is because there is no context-free conversion between hours and days
5503 // (think of clock changes)
5504 // and also not between days and months (28-31 days per month)
5505 if (!this.isValid()) {
5506 return this.localeData().invalidDate();
5507 }
5508
5509 var seconds = abs$1(this._milliseconds) / 1000,
5510 days = abs$1(this._days),
5511 months = abs$1(this._months),
5512 minutes,
5513 hours,
5514 years,
5515 s,
5516 total = this.asSeconds(),
5517 totalSign,
5518 ymSign,
5519 daysSign,
5520 hmsSign;
5521
5522 if (!total) {
5523 // this is the same as C#'s (Noda) and python (isodate)...
5524 // but not other JS (goog.date)
5525 return 'P0D';
5526 }
5527
5528 // 3600 seconds -> 60 minutes -> 1 hour
5529 minutes = absFloor(seconds / 60);
5530 hours = absFloor(minutes / 60);
5531 seconds %= 60;
5532 minutes %= 60;
5533
5534 // 12 months -> 1 year
5535 years = absFloor(months / 12);
5536 months %= 12;
5537
5538 // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
5539 s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
5540
5541 totalSign = total < 0 ? '-' : '';
5542 ymSign = sign(this._months) !== sign(total) ? '-' : '';
5543 daysSign = sign(this._days) !== sign(total) ? '-' : '';
5544 hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
5545
5546 return (
5547 totalSign +
5548 'P' +
5549 (years ? ymSign + years + 'Y' : '') +
5550 (months ? ymSign + months + 'M' : '') +
5551 (days ? daysSign + days + 'D' : '') +
5552 (hours || minutes || seconds ? 'T' : '') +
5553 (hours ? hmsSign + hours + 'H' : '') +
5554 (minutes ? hmsSign + minutes + 'M' : '') +
5555 (seconds ? hmsSign + s + 'S' : '')
5556 );
5557 }
5558
5559 var proto$2 = Duration.prototype;
5560
5561 proto$2.isValid = isValid$1;
5562 proto$2.abs = abs;
5563 proto$2.add = add$1;
5564 proto$2.subtract = subtract$1;
5565 proto$2.as = as;
5566 proto$2.asMilliseconds = asMilliseconds;
5567 proto$2.asSeconds = asSeconds;
5568 proto$2.asMinutes = asMinutes;
5569 proto$2.asHours = asHours;
5570 proto$2.asDays = asDays;
5571 proto$2.asWeeks = asWeeks;
5572 proto$2.asMonths = asMonths;
5573 proto$2.asQuarters = asQuarters;
5574 proto$2.asYears = asYears;
5575 proto$2.valueOf = valueOf$1;
5576 proto$2._bubble = bubble;
5577 proto$2.clone = clone$1;
5578 proto$2.get = get$2;
5579 proto$2.milliseconds = milliseconds;
5580 proto$2.seconds = seconds;
5581 proto$2.minutes = minutes;
5582 proto$2.hours = hours;
5583 proto$2.days = days;
5584 proto$2.weeks = weeks;
5585 proto$2.months = months;
5586 proto$2.years = years;
5587 proto$2.humanize = humanize;
5588 proto$2.toISOString = toISOString$1;
5589 proto$2.toString = toISOString$1;
5590 proto$2.toJSON = toISOString$1;
5591 proto$2.locale = locale;
5592 proto$2.localeData = localeData;
5593
5594 proto$2.toIsoString = deprecate(
5595 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',
5596 toISOString$1
5597 );
5598 proto$2.lang = lang;
5599
5600 // FORMATTING
5601
5602 addFormatToken('X', 0, 0, 'unix');
5603 addFormatToken('x', 0, 0, 'valueOf');
5604
5605 // PARSING
5606
5607 addRegexToken('x', matchSigned);
5608 addRegexToken('X', matchTimestamp);
5609 addParseToken('X', function (input, array, config) {
5610 config._d = new Date(parseFloat(input) * 1000);
5611 });
5612 addParseToken('x', function (input, array, config) {
5613 config._d = new Date(toInt(input));
5614 });
5615
5616 //! moment.js
5617
5618 hooks.version = '2.29.0';
5619
5620 setHookCallback(createLocal);
5621
5622 hooks.fn = proto;
5623 hooks.min = min;
5624 hooks.max = max;
5625 hooks.now = now;
5626 hooks.utc = createUTC;
5627 hooks.unix = createUnix;
5628 hooks.months = listMonths;
5629 hooks.isDate = isDate;
5630 hooks.locale = getSetGlobalLocale;
5631 hooks.invalid = createInvalid;
5632 hooks.duration = createDuration;
5633 hooks.isMoment = isMoment;
5634 hooks.weekdays = listWeekdays;
5635 hooks.parseZone = createInZone;
5636 hooks.localeData = getLocale;
5637 hooks.isDuration = isDuration;
5638 hooks.monthsShort = listMonthsShort;
5639 hooks.weekdaysMin = listWeekdaysMin;
5640 hooks.defineLocale = defineLocale;
5641 hooks.updateLocale = updateLocale;
5642 hooks.locales = listLocales;
5643 hooks.weekdaysShort = listWeekdaysShort;
5644 hooks.normalizeUnits = normalizeUnits;
5645 hooks.relativeTimeRounding = getSetRelativeTimeRounding;
5646 hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
5647 hooks.calendarFormat = getCalendarFormat;
5648 hooks.prototype = proto;
5649
5650 // currently HTML5 input type only supports 24-hour formats
5651 hooks.HTML5_FMT = {
5652 DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" />
5653 DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" />
5654 DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" />
5655 DATE: 'YYYY-MM-DD', // <input type="date" />
5656 TIME: 'HH:mm', // <input type="time" />
5657 TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" />
5658 TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" />
5659 WEEK: 'GGGG-[W]WW', // <input type="week" />
5660 MONTH: 'YYYY-MM', // <input type="month" />
5661 };
5662
5663 //! moment.js locale configuration
5664
5665 hooks.defineLocale('af', {
5666 months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(
5667 '_'
5668 ),
5669 monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
5670 weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(
5671 '_'
5672 ),
5673 weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
5674 weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
5675 meridiemParse: /vm|nm/i,
5676 isPM: function (input) {
5677 return /^nm$/i.test(input);
5678 },
5679 meridiem: function (hours, minutes, isLower) {
5680 if (hours < 12) {
5681 return isLower ? 'vm' : 'VM';
5682 } else {
5683 return isLower ? 'nm' : 'NM';
5684 }
5685 },
5686 longDateFormat: {
5687 LT: 'HH:mm',
5688 LTS: 'HH:mm:ss',
5689 L: 'DD/MM/YYYY',
5690 LL: 'D MMMM YYYY',
5691 LLL: 'D MMMM YYYY HH:mm',
5692 LLLL: 'dddd, D MMMM YYYY HH:mm',
5693 },
5694 calendar: {
5695 sameDay: '[Vandag om] LT',
5696 nextDay: '[Môre om] LT',
5697 nextWeek: 'dddd [om] LT',
5698 lastDay: '[Gister om] LT',
5699 lastWeek: '[Laas] dddd [om] LT',
5700 sameElse: 'L',
5701 },
5702 relativeTime: {
5703 future: 'oor %s',
5704 past: '%s gelede',
5705 s: "'n paar sekondes",
5706 ss: '%d sekondes',
5707 m: "'n minuut",
5708 mm: '%d minute',
5709 h: "'n uur",
5710 hh: '%d ure',
5711 d: "'n dag",
5712 dd: '%d dae',
5713 M: "'n maand",
5714 MM: '%d maande',
5715 y: "'n jaar",
5716 yy: '%d jaar',
5717 },
5718 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
5719 ordinal: function (number) {
5720 return (
5721 number +
5722 (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
5723 ); // Thanks to Joris Röling : https://github.com/jjupiter
5724 },
5725 week: {
5726 dow: 1, // Maandag is die eerste dag van die week.
5727 doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
5728 },
5729 });
5730
5731 //! moment.js locale configuration
5732
5733 var pluralForm = function (n) {
5734 return n === 0
5735 ? 0
5736 : n === 1
5737 ? 1
5738 : n === 2
5739 ? 2
5740 : n % 100 >= 3 && n % 100 <= 10
5741 ? 3
5742 : n % 100 >= 11
5743 ? 4
5744 : 5;
5745 },
5746 plurals = {
5747 s: [
5748 'أقل من ثانية',
5749 'ثانية واحدة',
5750 ['ثانيتان', 'ثانيتين'],
5751 '%d ثوان',
5752 '%d ثانية',
5753 '%d ثانية',
5754 ],
5755 m: [
5756 'أقل من دقيقة',
5757 'دقيقة واحدة',
5758 ['دقيقتان', 'دقيقتين'],
5759 '%d دقائق',
5760 '%d دقيقة',
5761 '%d دقيقة',
5762 ],
5763 h: [
5764 'أقل من ساعة',
5765 'ساعة واحدة',
5766 ['ساعتان', 'ساعتين'],
5767 '%d ساعات',
5768 '%d ساعة',
5769 '%d ساعة',
5770 ],
5771 d: [
5772 'أقل من يوم',
5773 'يوم واحد',
5774 ['يومان', 'يومين'],
5775 '%d أيام',
5776 '%d يومًا',
5777 '%d يوم',
5778 ],
5779 M: [
5780 'أقل من شهر',
5781 'شهر واحد',
5782 ['شهران', 'شهرين'],
5783 '%d أشهر',
5784 '%d شهرا',
5785 '%d شهر',
5786 ],
5787 y: [
5788 'أقل من عام',
5789 'عام واحد',
5790 ['عامان', 'عامين'],
5791 '%d أعوام',
5792 '%d عامًا',
5793 '%d عام',
5794 ],
5795 },
5796 pluralize = function (u) {
5797 return function (number, withoutSuffix, string, isFuture) {
5798 var f = pluralForm(number),
5799 str = plurals[u][pluralForm(number)];
5800 if (f === 2) {
5801 str = str[withoutSuffix ? 0 : 1];
5802 }
5803 return str.replace(/%d/i, number);
5804 };
5805 },
5806 months$1 = [
5807 'جانفي',
5808 'فيفري',
5809 'مارس',
5810 'أفريل',
5811 'ماي',
5812 'جوان',
5813 'جويلية',
5814 'أوت',
5815 'سبتمبر',
5816 'أكتوبر',
5817 'نوفمبر',
5818 'ديسمبر',
5819 ];
5820
5821 hooks.defineLocale('ar-dz', {
5822 months: months$1,
5823 monthsShort: months$1,
5824 weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
5825 weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
5826 weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
5827 weekdaysParseExact: true,
5828 longDateFormat: {
5829 LT: 'HH:mm',
5830 LTS: 'HH:mm:ss',
5831 L: 'D/\u200FM/\u200FYYYY',
5832 LL: 'D MMMM YYYY',
5833 LLL: 'D MMMM YYYY HH:mm',
5834 LLLL: 'dddd D MMMM YYYY HH:mm',
5835 },
5836 meridiemParse: /ص|م/,
5837 isPM: function (input) {
5838 return 'م' === input;
5839 },
5840 meridiem: function (hour, minute, isLower) {
5841 if (hour < 12) {
5842 return 'ص';
5843 } else {
5844 return 'م';
5845 }
5846 },
5847 calendar: {
5848 sameDay: '[اليوم عند الساعة] LT',
5849 nextDay: '[غدًا عند الساعة] LT',
5850 nextWeek: 'dddd [عند الساعة] LT',
5851 lastDay: '[أمس عند الساعة] LT',
5852 lastWeek: 'dddd [عند الساعة] LT',
5853 sameElse: 'L',
5854 },
5855 relativeTime: {
5856 future: 'بعد %s',
5857 past: 'منذ %s',
5858 s: pluralize('s'),
5859 ss: pluralize('s'),
5860 m: pluralize('m'),
5861 mm: pluralize('m'),
5862 h: pluralize('h'),
5863 hh: pluralize('h'),
5864 d: pluralize('d'),
5865 dd: pluralize('d'),
5866 M: pluralize('M'),
5867 MM: pluralize('M'),
5868 y: pluralize('y'),
5869 yy: pluralize('y'),
5870 },
5871 postformat: function (string) {
5872 return string.replace(/,/g, '،');
5873 },
5874 week: {
5875 dow: 0, // Sunday is the first day of the week.
5876 doy: 4, // The week that contains Jan 4th is the first week of the year.
5877 },
5878 });
5879
5880 //! moment.js locale configuration
5881
5882 hooks.defineLocale('ar-kw', {
5883 months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
5884 '_'
5885 ),
5886 monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
5887 '_'
5888 ),
5889 weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
5890 weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
5891 weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
5892 weekdaysParseExact: true,
5893 longDateFormat: {
5894 LT: 'HH:mm',
5895 LTS: 'HH:mm:ss',
5896 L: 'DD/MM/YYYY',
5897 LL: 'D MMMM YYYY',
5898 LLL: 'D MMMM YYYY HH:mm',
5899 LLLL: 'dddd D MMMM YYYY HH:mm',
5900 },
5901 calendar: {
5902 sameDay: '[اليوم على الساعة] LT',
5903 nextDay: '[غدا على الساعة] LT',
5904 nextWeek: 'dddd [على الساعة] LT',
5905 lastDay: '[أمس على الساعة] LT',
5906 lastWeek: 'dddd [على الساعة] LT',
5907 sameElse: 'L',
5908 },
5909 relativeTime: {
5910 future: 'في %s',
5911 past: 'منذ %s',
5912 s: 'ثوان',
5913 ss: '%d ثانية',
5914 m: 'دقيقة',
5915 mm: '%d دقائق',
5916 h: 'ساعة',
5917 hh: '%d ساعات',
5918 d: 'يوم',
5919 dd: '%d أيام',
5920 M: 'شهر',
5921 MM: '%d أشهر',
5922 y: 'سنة',
5923 yy: '%d سنوات',
5924 },
5925 week: {
5926 dow: 0, // Sunday is the first day of the week.
5927 doy: 12, // The week that contains Jan 12th is the first week of the year.
5928 },
5929 });
5930
5931 //! moment.js locale configuration
5932
5933 var symbolMap = {
5934 1: '1',
5935 2: '2',
5936 3: '3',
5937 4: '4',
5938 5: '5',
5939 6: '6',
5940 7: '7',
5941 8: '8',
5942 9: '9',
5943 0: '0',
5944 },
5945 pluralForm$1 = function (n) {
5946 return n === 0
5947 ? 0
5948 : n === 1
5949 ? 1
5950 : n === 2
5951 ? 2
5952 : n % 100 >= 3 && n % 100 <= 10
5953 ? 3
5954 : n % 100 >= 11
5955 ? 4
5956 : 5;
5957 },
5958 plurals$1 = {
5959 s: [
5960 'أقل من ثانية',
5961 'ثانية واحدة',
5962 ['ثانيتان', 'ثانيتين'],
5963 '%d ثوان',
5964 '%d ثانية',
5965 '%d ثانية',
5966 ],
5967 m: [
5968 'أقل من دقيقة',
5969 'دقيقة واحدة',
5970 ['دقيقتان', 'دقيقتين'],
5971 '%d دقائق',
5972 '%d دقيقة',
5973 '%d دقيقة',
5974 ],
5975 h: [
5976 'أقل من ساعة',
5977 'ساعة واحدة',
5978 ['ساعتان', 'ساعتين'],
5979 '%d ساعات',
5980 '%d ساعة',
5981 '%d ساعة',
5982 ],
5983 d: [
5984 'أقل من يوم',
5985 'يوم واحد',
5986 ['يومان', 'يومين'],
5987 '%d أيام',
5988 '%d يومًا',
5989 '%d يوم',
5990 ],
5991 M: [
5992 'أقل من شهر',
5993 'شهر واحد',
5994 ['شهران', 'شهرين'],
5995 '%d أشهر',
5996 '%d شهرا',
5997 '%d شهر',
5998 ],
5999 y: [
6000 'أقل من عام',
6001 'عام واحد',
6002 ['عامان', 'عامين'],
6003 '%d أعوام',
6004 '%d عامًا',
6005 '%d عام',
6006 ],
6007 },
6008 pluralize$1 = function (u) {
6009 return function (number, withoutSuffix, string, isFuture) {
6010 var f = pluralForm$1(number),
6011 str = plurals$1[u][pluralForm$1(number)];
6012 if (f === 2) {
6013 str = str[withoutSuffix ? 0 : 1];
6014 }
6015 return str.replace(/%d/i, number);
6016 };
6017 },
6018 months$2 = [
6019 'يناير',
6020 'فبراير',
6021 'مارس',
6022 'أبريل',
6023 'مايو',
6024 'يونيو',
6025 'يوليو',
6026 'أغسطس',
6027 'سبتمبر',
6028 'أكتوبر',
6029 'نوفمبر',
6030 'ديسمبر',
6031 ];
6032
6033 hooks.defineLocale('ar-ly', {
6034 months: months$2,
6035 monthsShort: months$2,
6036 weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
6037 weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
6038 weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
6039 weekdaysParseExact: true,
6040 longDateFormat: {
6041 LT: 'HH:mm',
6042 LTS: 'HH:mm:ss',
6043 L: 'D/\u200FM/\u200FYYYY',
6044 LL: 'D MMMM YYYY',
6045 LLL: 'D MMMM YYYY HH:mm',
6046 LLLL: 'dddd D MMMM YYYY HH:mm',
6047 },
6048 meridiemParse: /ص|م/,
6049 isPM: function (input) {
6050 return 'م' === input;
6051 },
6052 meridiem: function (hour, minute, isLower) {
6053 if (hour < 12) {
6054 return 'ص';
6055 } else {
6056 return 'م';
6057 }
6058 },
6059 calendar: {
6060 sameDay: '[اليوم عند الساعة] LT',
6061 nextDay: '[غدًا عند الساعة] LT',
6062 nextWeek: 'dddd [عند الساعة] LT',
6063 lastDay: '[أمس عند الساعة] LT',
6064 lastWeek: 'dddd [عند الساعة] LT',
6065 sameElse: 'L',
6066 },
6067 relativeTime: {
6068 future: 'بعد %s',
6069 past: 'منذ %s',
6070 s: pluralize$1('s'),
6071 ss: pluralize$1('s'),
6072 m: pluralize$1('m'),
6073 mm: pluralize$1('m'),
6074 h: pluralize$1('h'),
6075 hh: pluralize$1('h'),
6076 d: pluralize$1('d'),
6077 dd: pluralize$1('d'),
6078 M: pluralize$1('M'),
6079 MM: pluralize$1('M'),
6080 y: pluralize$1('y'),
6081 yy: pluralize$1('y'),
6082 },
6083 preparse: function (string) {
6084 return string.replace(/،/g, ',');
6085 },
6086 postformat: function (string) {
6087 return string
6088 .replace(/\d/g, function (match) {
6089 return symbolMap[match];
6090 })
6091 .replace(/,/g, '،');
6092 },
6093 week: {
6094 dow: 6, // Saturday is the first day of the week.
6095 doy: 12, // The week that contains Jan 12th is the first week of the year.
6096 },
6097 });
6098
6099 //! moment.js locale configuration
6100
6101 hooks.defineLocale('ar-ma', {
6102 months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
6103 '_'
6104 ),
6105 monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
6106 '_'
6107 ),
6108 weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
6109 weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
6110 weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
6111 weekdaysParseExact: true,
6112 longDateFormat: {
6113 LT: 'HH:mm',
6114 LTS: 'HH:mm:ss',
6115 L: 'DD/MM/YYYY',
6116 LL: 'D MMMM YYYY',
6117 LLL: 'D MMMM YYYY HH:mm',
6118 LLLL: 'dddd D MMMM YYYY HH:mm',
6119 },
6120 calendar: {
6121 sameDay: '[اليوم على الساعة] LT',
6122 nextDay: '[غدا على الساعة] LT',
6123 nextWeek: 'dddd [على الساعة] LT',
6124 lastDay: '[أمس على الساعة] LT',
6125 lastWeek: 'dddd [على الساعة] LT',
6126 sameElse: 'L',
6127 },
6128 relativeTime: {
6129 future: 'في %s',
6130 past: 'منذ %s',
6131 s: 'ثوان',
6132 ss: '%d ثانية',
6133 m: 'دقيقة',
6134 mm: '%d دقائق',
6135 h: 'ساعة',
6136 hh: '%d ساعات',
6137 d: 'يوم',
6138 dd: '%d أيام',
6139 M: 'شهر',
6140 MM: '%d أشهر',
6141 y: 'سنة',
6142 yy: '%d سنوات',
6143 },
6144 week: {
6145 dow: 1, // Monday is the first day of the week.
6146 doy: 4, // The week that contains Jan 4th is the first week of the year.
6147 },
6148 });
6149
6150 //! moment.js locale configuration
6151
6152 var symbolMap$1 = {
6153 1: '١',
6154 2: '٢',
6155 3: '٣',
6156 4: '٤',
6157 5: '٥',
6158 6: '٦',
6159 7: '٧',
6160 8: '٨',
6161 9: '٩',
6162 0: '٠',
6163 },
6164 numberMap = {
6165 '١': '1',
6166 '٢': '2',
6167 '٣': '3',
6168 '٤': '4',
6169 '٥': '5',
6170 '٦': '6',
6171 '٧': '7',
6172 '٨': '8',
6173 '٩': '9',
6174 '٠': '0',
6175 };
6176
6177 hooks.defineLocale('ar-sa', {
6178 months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
6179 '_'
6180 ),
6181 monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
6182 '_'
6183 ),
6184 weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
6185 weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
6186 weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
6187 weekdaysParseExact: true,
6188 longDateFormat: {
6189 LT: 'HH:mm',
6190 LTS: 'HH:mm:ss',
6191 L: 'DD/MM/YYYY',
6192 LL: 'D MMMM YYYY',
6193 LLL: 'D MMMM YYYY HH:mm',
6194 LLLL: 'dddd D MMMM YYYY HH:mm',
6195 },
6196 meridiemParse: /ص|م/,
6197 isPM: function (input) {
6198 return 'م' === input;
6199 },
6200 meridiem: function (hour, minute, isLower) {
6201 if (hour < 12) {
6202 return 'ص';
6203 } else {
6204 return 'م';
6205 }
6206 },
6207 calendar: {
6208 sameDay: '[اليوم على الساعة] LT',
6209 nextDay: '[غدا على الساعة] LT',
6210 nextWeek: 'dddd [على الساعة] LT',
6211 lastDay: '[أمس على الساعة] LT',
6212 lastWeek: 'dddd [على الساعة] LT',
6213 sameElse: 'L',
6214 },
6215 relativeTime: {
6216 future: 'في %s',
6217 past: 'منذ %s',
6218 s: 'ثوان',
6219 ss: '%d ثانية',
6220 m: 'دقيقة',
6221 mm: '%d دقائق',
6222 h: 'ساعة',
6223 hh: '%d ساعات',
6224 d: 'يوم',
6225 dd: '%d أيام',
6226 M: 'شهر',
6227 MM: '%d أشهر',
6228 y: 'سنة',
6229 yy: '%d سنوات',
6230 },
6231 preparse: function (string) {
6232 return string
6233 .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
6234 return numberMap[match];
6235 })
6236 .replace(/،/g, ',');
6237 },
6238 postformat: function (string) {
6239 return string
6240 .replace(/\d/g, function (match) {
6241 return symbolMap$1[match];
6242 })
6243 .replace(/,/g, '،');
6244 },
6245 week: {
6246 dow: 0, // Sunday is the first day of the week.
6247 doy: 6, // The week that contains Jan 6th is the first week of the year.
6248 },
6249 });
6250
6251 //! moment.js locale configuration
6252
6253 hooks.defineLocale('ar-tn', {
6254 months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
6255 '_'
6256 ),
6257 monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
6258 '_'
6259 ),
6260 weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
6261 weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
6262 weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
6263 weekdaysParseExact: true,
6264 longDateFormat: {
6265 LT: 'HH:mm',
6266 LTS: 'HH:mm:ss',
6267 L: 'DD/MM/YYYY',
6268 LL: 'D MMMM YYYY',
6269 LLL: 'D MMMM YYYY HH:mm',
6270 LLLL: 'dddd D MMMM YYYY HH:mm',
6271 },
6272 calendar: {
6273 sameDay: '[اليوم على الساعة] LT',
6274 nextDay: '[غدا على الساعة] LT',
6275 nextWeek: 'dddd [على الساعة] LT',
6276 lastDay: '[أمس على الساعة] LT',
6277 lastWeek: 'dddd [على الساعة] LT',
6278 sameElse: 'L',
6279 },
6280 relativeTime: {
6281 future: 'في %s',
6282 past: 'منذ %s',
6283 s: 'ثوان',
6284 ss: '%d ثانية',
6285 m: 'دقيقة',
6286 mm: '%d دقائق',
6287 h: 'ساعة',
6288 hh: '%d ساعات',
6289 d: 'يوم',
6290 dd: '%d أيام',
6291 M: 'شهر',
6292 MM: '%d أشهر',
6293 y: 'سنة',
6294 yy: '%d سنوات',
6295 },
6296 week: {
6297 dow: 1, // Monday is the first day of the week.
6298 doy: 4, // The week that contains Jan 4th is the first week of the year.
6299 },
6300 });
6301
6302 //! moment.js locale configuration
6303
6304 var symbolMap$2 = {
6305 1: '١',
6306 2: '٢',
6307 3: '٣',
6308 4: '٤',
6309 5: '٥',
6310 6: '٦',
6311 7: '٧',
6312 8: '٨',
6313 9: '٩',
6314 0: '٠',
6315 },
6316 numberMap$1 = {
6317 '١': '1',
6318 '٢': '2',
6319 '٣': '3',
6320 '٤': '4',
6321 '٥': '5',
6322 '٦': '6',
6323 '٧': '7',
6324 '٨': '8',
6325 '٩': '9',
6326 '٠': '0',
6327 },
6328 pluralForm$2 = function (n) {
6329 return n === 0
6330 ? 0
6331 : n === 1
6332 ? 1
6333 : n === 2
6334 ? 2
6335 : n % 100 >= 3 && n % 100 <= 10
6336 ? 3
6337 : n % 100 >= 11
6338 ? 4
6339 : 5;
6340 },
6341 plurals$2 = {
6342 s: [
6343 'أقل من ثانية',
6344 'ثانية واحدة',
6345 ['ثانيتان', 'ثانيتين'],
6346 '%d ثوان',
6347 '%d ثانية',
6348 '%d ثانية',
6349 ],
6350 m: [
6351 'أقل من دقيقة',
6352 'دقيقة واحدة',
6353 ['دقيقتان', 'دقيقتين'],
6354 '%d دقائق',
6355 '%d دقيقة',
6356 '%d دقيقة',
6357 ],
6358 h: [
6359 'أقل من ساعة',
6360 'ساعة واحدة',
6361 ['ساعتان', 'ساعتين'],
6362 '%d ساعات',
6363 '%d ساعة',
6364 '%d ساعة',
6365 ],
6366 d: [
6367 'أقل من يوم',
6368 'يوم واحد',
6369 ['يومان', 'يومين'],
6370 '%d أيام',
6371 '%d يومًا',
6372 '%d يوم',
6373 ],
6374 M: [
6375 'أقل من شهر',
6376 'شهر واحد',
6377 ['شهران', 'شهرين'],
6378 '%d أشهر',
6379 '%d شهرا',
6380 '%d شهر',
6381 ],
6382 y: [
6383 'أقل من عام',
6384 'عام واحد',
6385 ['عامان', 'عامين'],
6386 '%d أعوام',
6387 '%d عامًا',
6388 '%d عام',
6389 ],
6390 },
6391 pluralize$2 = function (u) {
6392 return function (number, withoutSuffix, string, isFuture) {
6393 var f = pluralForm$2(number),
6394 str = plurals$2[u][pluralForm$2(number)];
6395 if (f === 2) {
6396 str = str[withoutSuffix ? 0 : 1];
6397 }
6398 return str.replace(/%d/i, number);
6399 };
6400 },
6401 months$3 = [
6402 'يناير',
6403 'فبراير',
6404 'مارس',
6405 'أبريل',
6406 'مايو',
6407 'يونيو',
6408 'يوليو',
6409 'أغسطس',
6410 'سبتمبر',
6411 'أكتوبر',
6412 'نوفمبر',
6413 'ديسمبر',
6414 ];
6415
6416 hooks.defineLocale('ar', {
6417 months: months$3,
6418 monthsShort: months$3,
6419 weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
6420 weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
6421 weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
6422 weekdaysParseExact: true,
6423 longDateFormat: {
6424 LT: 'HH:mm',
6425 LTS: 'HH:mm:ss',
6426 L: 'D/\u200FM/\u200FYYYY',
6427 LL: 'D MMMM YYYY',
6428 LLL: 'D MMMM YYYY HH:mm',
6429 LLLL: 'dddd D MMMM YYYY HH:mm',
6430 },
6431 meridiemParse: /ص|م/,
6432 isPM: function (input) {
6433 return 'م' === input;
6434 },
6435 meridiem: function (hour, minute, isLower) {
6436 if (hour < 12) {
6437 return 'ص';
6438 } else {
6439 return 'م';
6440 }
6441 },
6442 calendar: {
6443 sameDay: '[اليوم عند الساعة] LT',
6444 nextDay: '[غدًا عند الساعة] LT',
6445 nextWeek: 'dddd [عند الساعة] LT',
6446 lastDay: '[أمس عند الساعة] LT',
6447 lastWeek: 'dddd [عند الساعة] LT',
6448 sameElse: 'L',
6449 },
6450 relativeTime: {
6451 future: 'بعد %s',
6452 past: 'منذ %s',
6453 s: pluralize$2('s'),
6454 ss: pluralize$2('s'),
6455 m: pluralize$2('m'),
6456 mm: pluralize$2('m'),
6457 h: pluralize$2('h'),
6458 hh: pluralize$2('h'),
6459 d: pluralize$2('d'),
6460 dd: pluralize$2('d'),
6461 M: pluralize$2('M'),
6462 MM: pluralize$2('M'),
6463 y: pluralize$2('y'),
6464 yy: pluralize$2('y'),
6465 },
6466 preparse: function (string) {
6467 return string
6468 .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
6469 return numberMap$1[match];
6470 })
6471 .replace(/،/g, ',');
6472 },
6473 postformat: function (string) {
6474 return string
6475 .replace(/\d/g, function (match) {
6476 return symbolMap$2[match];
6477 })
6478 .replace(/,/g, '،');
6479 },
6480 week: {
6481 dow: 6, // Saturday is the first day of the week.
6482 doy: 12, // The week that contains Jan 12th is the first week of the year.
6483 },
6484 });
6485
6486 //! moment.js locale configuration
6487
6488 var suffixes = {
6489 1: '-inci',
6490 5: '-inci',
6491 8: '-inci',
6492 70: '-inci',
6493 80: '-inci',
6494 2: '-nci',
6495 7: '-nci',
6496 20: '-nci',
6497 50: '-nci',
6498 3: '-üncü',
6499 4: '-üncü',
6500 100: '-üncü',
6501 6: '-ncı',
6502 9: '-uncu',
6503 10: '-uncu',
6504 30: '-uncu',
6505 60: '-ıncı',
6506 90: '-ıncı',
6507 };
6508
6509 hooks.defineLocale('az', {
6510 months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(
6511 '_'
6512 ),
6513 monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
6514 weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(
6515 '_'
6516 ),
6517 weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
6518 weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
6519 weekdaysParseExact: true,
6520 longDateFormat: {
6521 LT: 'HH:mm',
6522 LTS: 'HH:mm:ss',
6523 L: 'DD.MM.YYYY',
6524 LL: 'D MMMM YYYY',
6525 LLL: 'D MMMM YYYY HH:mm',
6526 LLLL: 'dddd, D MMMM YYYY HH:mm',
6527 },
6528 calendar: {
6529 sameDay: '[bugün saat] LT',
6530 nextDay: '[sabah saat] LT',
6531 nextWeek: '[gələn həftə] dddd [saat] LT',
6532 lastDay: '[dünən] LT',
6533 lastWeek: '[keçən həftə] dddd [saat] LT',
6534 sameElse: 'L',
6535 },
6536 relativeTime: {
6537 future: '%s sonra',
6538 past: '%s əvvəl',
6539 s: 'bir neçə saniyə',
6540 ss: '%d saniyə',
6541 m: 'bir dəqiqə',
6542 mm: '%d dəqiqə',
6543 h: 'bir saat',
6544 hh: '%d saat',
6545 d: 'bir gün',
6546 dd: '%d gün',
6547 M: 'bir ay',
6548 MM: '%d ay',
6549 y: 'bir il',
6550 yy: '%d il',
6551 },
6552 meridiemParse: /gecə|səhər|gündüz|axşam/,
6553 isPM: function (input) {
6554 return /^(gündüz|axşam)$/.test(input);
6555 },
6556 meridiem: function (hour, minute, isLower) {
6557 if (hour < 4) {
6558 return 'gecə';
6559 } else if (hour < 12) {
6560 return 'səhər';
6561 } else if (hour < 17) {
6562 return 'gündüz';
6563 } else {
6564 return 'axşam';
6565 }
6566 },
6567 dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
6568 ordinal: function (number) {
6569 if (number === 0) {
6570 // special case for zero
6571 return number + '-ıncı';
6572 }
6573 var a = number % 10,
6574 b = (number % 100) - a,
6575 c = number >= 100 ? 100 : null;
6576 return number + (suffixes[a] || suffixes[b] || suffixes[c]);
6577 },
6578 week: {
6579 dow: 1, // Monday is the first day of the week.
6580 doy: 7, // The week that contains Jan 7th is the first week of the year.
6581 },
6582 });
6583
6584 //! moment.js locale configuration
6585
6586 function plural(word, num) {
6587 var forms = word.split('_');
6588 return num % 10 === 1 && num % 100 !== 11
6589 ? forms[0]
6590 : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
6591 ? forms[1]
6592 : forms[2];
6593 }
6594 function relativeTimeWithPlural(number, withoutSuffix, key) {
6595 var format = {
6596 ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
6597 mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
6598 hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
6599 dd: 'дзень_дні_дзён',
6600 MM: 'месяц_месяцы_месяцаў',
6601 yy: 'год_гады_гадоў',
6602 };
6603 if (key === 'm') {
6604 return withoutSuffix ? 'хвіліна' : 'хвіліну';
6605 } else if (key === 'h') {
6606 return withoutSuffix ? 'гадзіна' : 'гадзіну';
6607 } else {
6608 return number + ' ' + plural(format[key], +number);
6609 }
6610 }
6611
6612 hooks.defineLocale('be', {
6613 months: {
6614 format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(
6615 '_'
6616 ),
6617 standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(
6618 '_'
6619 ),
6620 },
6621 monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split(
6622 '_'
6623 ),
6624 weekdays: {
6625 format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(
6626 '_'
6627 ),
6628 standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(
6629 '_'
6630 ),
6631 isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/,
6632 },
6633 weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
6634 weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
6635 longDateFormat: {
6636 LT: 'HH:mm',
6637 LTS: 'HH:mm:ss',
6638 L: 'DD.MM.YYYY',
6639 LL: 'D MMMM YYYY г.',
6640 LLL: 'D MMMM YYYY г., HH:mm',
6641 LLLL: 'dddd, D MMMM YYYY г., HH:mm',
6642 },
6643 calendar: {
6644 sameDay: '[Сёння ў] LT',
6645 nextDay: '[Заўтра ў] LT',
6646 lastDay: '[Учора ў] LT',
6647 nextWeek: function () {
6648 return '[У] dddd [ў] LT';
6649 },
6650 lastWeek: function () {
6651 switch (this.day()) {
6652 case 0:
6653 case 3:
6654 case 5:
6655 case 6:
6656 return '[У мінулую] dddd [ў] LT';
6657 case 1:
6658 case 2:
6659 case 4:
6660 return '[У мінулы] dddd [ў] LT';
6661 }
6662 },
6663 sameElse: 'L',
6664 },
6665 relativeTime: {
6666 future: 'праз %s',
6667 past: '%s таму',
6668 s: 'некалькі секунд',
6669 m: relativeTimeWithPlural,
6670 mm: relativeTimeWithPlural,
6671 h: relativeTimeWithPlural,
6672 hh: relativeTimeWithPlural,
6673 d: 'дзень',
6674 dd: relativeTimeWithPlural,
6675 M: 'месяц',
6676 MM: relativeTimeWithPlural,
6677 y: 'год',
6678 yy: relativeTimeWithPlural,
6679 },
6680 meridiemParse: /ночы|раніцы|дня|вечара/,
6681 isPM: function (input) {
6682 return /^(дня|вечара)$/.test(input);
6683 },
6684 meridiem: function (hour, minute, isLower) {
6685 if (hour < 4) {
6686 return 'ночы';
6687 } else if (hour < 12) {
6688 return 'раніцы';
6689 } else if (hour < 17) {
6690 return 'дня';
6691 } else {
6692 return 'вечара';
6693 }
6694 },
6695 dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/,
6696 ordinal: function (number, period) {
6697 switch (period) {
6698 case 'M':
6699 case 'd':
6700 case 'DDD':
6701 case 'w':
6702 case 'W':
6703 return (number % 10 === 2 || number % 10 === 3) &&
6704 number % 100 !== 12 &&
6705 number % 100 !== 13
6706 ? number + '-і'
6707 : number + '-ы';
6708 case 'D':
6709 return number + '-га';
6710 default:
6711 return number;
6712 }
6713 },
6714 week: {
6715 dow: 1, // Monday is the first day of the week.
6716 doy: 7, // The week that contains Jan 7th is the first week of the year.
6717 },
6718 });
6719
6720 //! moment.js locale configuration
6721
6722 hooks.defineLocale('bg', {
6723 months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(
6724 '_'
6725 ),
6726 monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
6727 weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(
6728 '_'
6729 ),
6730 weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
6731 weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
6732 longDateFormat: {
6733 LT: 'H:mm',
6734 LTS: 'H:mm:ss',
6735 L: 'D.MM.YYYY',
6736 LL: 'D MMMM YYYY',
6737 LLL: 'D MMMM YYYY H:mm',
6738 LLLL: 'dddd, D MMMM YYYY H:mm',
6739 },
6740 calendar: {
6741 sameDay: '[Днес в] LT',
6742 nextDay: '[Утре в] LT',
6743 nextWeek: 'dddd [в] LT',
6744 lastDay: '[Вчера в] LT',
6745 lastWeek: function () {
6746 switch (this.day()) {
6747 case 0:
6748 case 3:
6749 case 6:
6750 return '[Миналата] dddd [в] LT';
6751 case 1:
6752 case 2:
6753 case 4:
6754 case 5:
6755 return '[Миналия] dddd [в] LT';
6756 }
6757 },
6758 sameElse: 'L',
6759 },
6760 relativeTime: {
6761 future: 'след %s',
6762 past: 'преди %s',
6763 s: 'няколко секунди',
6764 ss: '%d секунди',
6765 m: 'минута',
6766 mm: '%d минути',
6767 h: 'час',
6768 hh: '%d часа',
6769 d: 'ден',
6770 dd: '%d дена',
6771 w: 'седмица',
6772 ww: '%d седмици',
6773 M: 'месец',
6774 MM: '%d месеца',
6775 y: 'година',
6776 yy: '%d години',
6777 },
6778 dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
6779 ordinal: function (number) {
6780 var lastDigit = number % 10,
6781 last2Digits = number % 100;
6782 if (number === 0) {
6783 return number + '-ев';
6784 } else if (last2Digits === 0) {
6785 return number + '-ен';
6786 } else if (last2Digits > 10 && last2Digits < 20) {
6787 return number + '-ти';
6788 } else if (lastDigit === 1) {
6789 return number + '-ви';
6790 } else if (lastDigit === 2) {
6791 return number + '-ри';
6792 } else if (lastDigit === 7 || lastDigit === 8) {
6793 return number + '-ми';
6794 } else {
6795 return number + '-ти';
6796 }
6797 },
6798 week: {
6799 dow: 1, // Monday is the first day of the week.
6800 doy: 7, // The week that contains Jan 7th is the first week of the year.
6801 },
6802 });
6803
6804 //! moment.js locale configuration
6805
6806 hooks.defineLocale('bm', {
6807 months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(
6808 '_'
6809 ),
6810 monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),
6811 weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),
6812 weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),
6813 weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),
6814 longDateFormat: {
6815 LT: 'HH:mm',
6816 LTS: 'HH:mm:ss',
6817 L: 'DD/MM/YYYY',
6818 LL: 'MMMM [tile] D [san] YYYY',
6819 LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
6820 LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
6821 },
6822 calendar: {
6823 sameDay: '[Bi lɛrɛ] LT',
6824 nextDay: '[Sini lɛrɛ] LT',
6825 nextWeek: 'dddd [don lɛrɛ] LT',
6826 lastDay: '[Kunu lɛrɛ] LT',
6827 lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',
6828 sameElse: 'L',
6829 },
6830 relativeTime: {
6831 future: '%s kɔnɔ',
6832 past: 'a bɛ %s bɔ',
6833 s: 'sanga dama dama',
6834 ss: 'sekondi %d',
6835 m: 'miniti kelen',
6836 mm: 'miniti %d',
6837 h: 'lɛrɛ kelen',
6838 hh: 'lɛrɛ %d',
6839 d: 'tile kelen',
6840 dd: 'tile %d',
6841 M: 'kalo kelen',
6842 MM: 'kalo %d',
6843 y: 'san kelen',
6844 yy: 'san %d',
6845 },
6846 week: {
6847 dow: 1, // Monday is the first day of the week.
6848 doy: 4, // The week that contains Jan 4th is the first week of the year.
6849 },
6850 });
6851
6852 //! moment.js locale configuration
6853
6854 var symbolMap$3 = {
6855 1: '১',
6856 2: '২',
6857 3: '৩',
6858 4: '৪',
6859 5: '৫',
6860 6: '৬',
6861 7: '৭',
6862 8: '৮',
6863 9: '৯',
6864 0: '০',
6865 },
6866 numberMap$2 = {
6867 '১': '1',
6868 '২': '2',
6869 '৩': '3',
6870 '৪': '4',
6871 '৫': '5',
6872 '৬': '6',
6873 '৭': '7',
6874 '৮': '8',
6875 '৯': '9',
6876 '০': '0',
6877 };
6878
6879 hooks.defineLocale('bn-bd', {
6880 months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
6881 '_'
6882 ),
6883 monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
6884 '_'
6885 ),
6886 weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
6887 '_'
6888 ),
6889 weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
6890 weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
6891 longDateFormat: {
6892 LT: 'A h:mm সময়',
6893 LTS: 'A h:mm:ss সময়',
6894 L: 'DD/MM/YYYY',
6895 LL: 'D MMMM YYYY',
6896 LLL: 'D MMMM YYYY, A h:mm সময়',
6897 LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
6898 },
6899 calendar: {
6900 sameDay: '[আজ] LT',
6901 nextDay: '[আগামীকাল] LT',
6902 nextWeek: 'dddd, LT',
6903 lastDay: '[গতকাল] LT',
6904 lastWeek: '[গত] dddd, LT',
6905 sameElse: 'L',
6906 },
6907 relativeTime: {
6908 future: '%s পরে',
6909 past: '%s আগে',
6910 s: 'কয়েক সেকেন্ড',
6911 ss: '%d সেকেন্ড',
6912 m: 'এক মিনিট',
6913 mm: '%d মিনিট',
6914 h: 'এক ঘন্টা',
6915 hh: '%d ঘন্টা',
6916 d: 'এক দিন',
6917 dd: '%d দিন',
6918 M: 'এক মাস',
6919 MM: '%d মাস',
6920 y: 'এক বছর',
6921 yy: '%d বছর',
6922 },
6923 preparse: function (string) {
6924 return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
6925 return numberMap$2[match];
6926 });
6927 },
6928 postformat: function (string) {
6929 return string.replace(/\d/g, function (match) {
6930 return symbolMap$3[match];
6931 });
6932 },
6933
6934 meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,
6935 meridiemHour: function (hour, meridiem) {
6936 if (hour === 12) {
6937 hour = 0;
6938 }
6939 if (meridiem === 'রাত') {
6940 return hour < 4 ? hour : hour + 12;
6941 } else if (meridiem === 'ভোর') {
6942 return hour;
6943 } else if (meridiem === 'সকাল') {
6944 return hour;
6945 } else if (meridiem === 'দুপুর') {
6946 return hour >= 3 ? hour : hour + 12;
6947 } else if (meridiem === 'বিকাল') {
6948 return hour + 12;
6949 } else if (meridiem === 'সন্ধ্যা') {
6950 return hour + 12;
6951 }
6952 },
6953
6954 meridiem: function (hour, minute, isLower) {
6955 if (hour < 4) {
6956 return 'রাত';
6957 } else if (hour < 6) {
6958 return 'ভোর';
6959 } else if (hour < 12) {
6960 return 'সকাল';
6961 } else if (hour < 15) {
6962 return 'দুপুর';
6963 } else if (hour < 18) {
6964 return 'বিকাল';
6965 } else if (hour < 20) {
6966 return 'সন্ধ্যা';
6967 } else {
6968 return 'রাত';
6969 }
6970 },
6971 week: {
6972 dow: 0, // Sunday is the first day of the week.
6973 doy: 6, // The week that contains Jan 6th is the first week of the year.
6974 },
6975 });
6976
6977 //! moment.js locale configuration
6978
6979 var symbolMap$4 = {
6980 1: '১',
6981 2: '২',
6982 3: '৩',
6983 4: '৪',
6984 5: '৫',
6985 6: '৬',
6986 7: '৭',
6987 8: '৮',
6988 9: '৯',
6989 0: '০',
6990 },
6991 numberMap$3 = {
6992 '১': '1',
6993 '২': '2',
6994 '৩': '3',
6995 '৪': '4',
6996 '৫': '5',
6997 '৬': '6',
6998 '৭': '7',
6999 '৮': '8',
7000 '৯': '9',
7001 '০': '0',
7002 };
7003
7004 hooks.defineLocale('bn', {
7005 months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
7006 '_'
7007 ),
7008 monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
7009 '_'
7010 ),
7011 weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
7012 '_'
7013 ),
7014 weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
7015 weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
7016 longDateFormat: {
7017 LT: 'A h:mm সময়',
7018 LTS: 'A h:mm:ss সময়',
7019 L: 'DD/MM/YYYY',
7020 LL: 'D MMMM YYYY',
7021 LLL: 'D MMMM YYYY, A h:mm সময়',
7022 LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
7023 },
7024 calendar: {
7025 sameDay: '[আজ] LT',
7026 nextDay: '[আগামীকাল] LT',
7027 nextWeek: 'dddd, LT',
7028 lastDay: '[গতকাল] LT',
7029 lastWeek: '[গত] dddd, LT',
7030 sameElse: 'L',
7031 },
7032 relativeTime: {
7033 future: '%s পরে',
7034 past: '%s আগে',
7035 s: 'কয়েক সেকেন্ড',
7036 ss: '%d সেকেন্ড',
7037 m: 'এক মিনিট',
7038 mm: '%d মিনিট',
7039 h: 'এক ঘন্টা',
7040 hh: '%d ঘন্টা',
7041 d: 'এক দিন',
7042 dd: '%d দিন',
7043 M: 'এক মাস',
7044 MM: '%d মাস',
7045 y: 'এক বছর',
7046 yy: '%d বছর',
7047 },
7048 preparse: function (string) {
7049 return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
7050 return numberMap$3[match];
7051 });
7052 },
7053 postformat: function (string) {
7054 return string.replace(/\d/g, function (match) {
7055 return symbolMap$4[match];
7056 });
7057 },
7058 meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,
7059 meridiemHour: function (hour, meridiem) {
7060 if (hour === 12) {
7061 hour = 0;
7062 }
7063 if (
7064 (meridiem === 'রাত' && hour >= 4) ||
7065 (meridiem === 'দুপুর' && hour < 5) ||
7066 meridiem === 'বিকাল'
7067 ) {
7068 return hour + 12;
7069 } else {
7070 return hour;
7071 }
7072 },
7073 meridiem: function (hour, minute, isLower) {
7074 if (hour < 4) {
7075 return 'রাত';
7076 } else if (hour < 10) {
7077 return 'সকাল';
7078 } else if (hour < 17) {
7079 return 'দুপুর';
7080 } else if (hour < 20) {
7081 return 'বিকাল';
7082 } else {
7083 return 'রাত';
7084 }
7085 },
7086 week: {
7087 dow: 0, // Sunday is the first day of the week.
7088 doy: 6, // The week that contains Jan 6th is the first week of the year.
7089 },
7090 });
7091
7092 //! moment.js locale configuration
7093
7094 var symbolMap$5 = {
7095 1: '༡',
7096 2: '༢',
7097 3: '༣',
7098 4: '༤',
7099 5: '༥',
7100 6: '༦',
7101 7: '༧',
7102 8: '༨',
7103 9: '༩',
7104 0: '༠',
7105 },
7106 numberMap$4 = {
7107 '༡': '1',
7108 '༢': '2',
7109 '༣': '3',
7110 '༤': '4',
7111 '༥': '5',
7112 '༦': '6',
7113 '༧': '7',
7114 '༨': '8',
7115 '༩': '9',
7116 '༠': '0',
7117 };
7118
7119 hooks.defineLocale('bo', {
7120 months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(
7121 '_'
7122 ),
7123 monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(
7124 '_'
7125 ),
7126 monthsShortRegex: /^(ཟླ་\d{1,2})/,
7127 monthsParseExact: true,
7128 weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(
7129 '_'
7130 ),
7131 weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(
7132 '_'
7133 ),
7134 weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),
7135 longDateFormat: {
7136 LT: 'A h:mm',
7137 LTS: 'A h:mm:ss',
7138 L: 'DD/MM/YYYY',
7139 LL: 'D MMMM YYYY',
7140 LLL: 'D MMMM YYYY, A h:mm',
7141 LLLL: 'dddd, D MMMM YYYY, A h:mm',
7142 },
7143 calendar: {
7144 sameDay: '[དི་རིང] LT',
7145 nextDay: '[སང་ཉིན] LT',
7146 nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',
7147 lastDay: '[ཁ་སང] LT',
7148 lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
7149 sameElse: 'L',
7150 },
7151 relativeTime: {
7152 future: '%s ལ་',
7153 past: '%s སྔན་ལ',
7154 s: 'ལམ་སང',
7155 ss: '%d སྐར་ཆ།',
7156 m: 'སྐར་མ་གཅིག',
7157 mm: '%d སྐར་མ',
7158 h: 'ཆུ་ཚོད་གཅིག',
7159 hh: '%d ཆུ་ཚོད',
7160 d: 'ཉིན་གཅིག',
7161 dd: '%d ཉིན་',
7162 M: 'ཟླ་བ་གཅིག',
7163 MM: '%d ཟླ་བ',
7164 y: 'ལོ་གཅིག',
7165 yy: '%d ལོ',
7166 },
7167 preparse: function (string) {
7168 return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
7169 return numberMap$4[match];
7170 });
7171 },
7172 postformat: function (string) {
7173 return string.replace(/\d/g, function (match) {
7174 return symbolMap$5[match];
7175 });
7176 },
7177 meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
7178 meridiemHour: function (hour, meridiem) {
7179 if (hour === 12) {
7180 hour = 0;
7181 }
7182 if (
7183 (meridiem === 'མཚན་མོ' && hour >= 4) ||
7184 (meridiem === 'ཉིན་གུང' && hour < 5) ||
7185 meridiem === 'དགོང་དག'
7186 ) {
7187 return hour + 12;
7188 } else {
7189 return hour;
7190 }
7191 },
7192 meridiem: function (hour, minute, isLower) {
7193 if (hour < 4) {
7194 return 'མཚན་མོ';
7195 } else if (hour < 10) {
7196 return 'ཞོགས་ཀས';
7197 } else if (hour < 17) {
7198 return 'ཉིན་གུང';
7199 } else if (hour < 20) {
7200 return 'དགོང་དག';
7201 } else {
7202 return 'མཚན་མོ';
7203 }
7204 },
7205 week: {
7206 dow: 0, // Sunday is the first day of the week.
7207 doy: 6, // The week that contains Jan 6th is the first week of the year.
7208 },
7209 });
7210
7211 //! moment.js locale configuration
7212
7213 function relativeTimeWithMutation(number, withoutSuffix, key) {
7214 var format = {
7215 mm: 'munutenn',
7216 MM: 'miz',
7217 dd: 'devezh',
7218 };
7219 return number + ' ' + mutation(format[key], number);
7220 }
7221 function specialMutationForYears(number) {
7222 switch (lastNumber(number)) {
7223 case 1:
7224 case 3:
7225 case 4:
7226 case 5:
7227 case 9:
7228 return number + ' bloaz';
7229 default:
7230 return number + ' vloaz';
7231 }
7232 }
7233 function lastNumber(number) {
7234 if (number > 9) {
7235 return lastNumber(number % 10);
7236 }
7237 return number;
7238 }
7239 function mutation(text, number) {
7240 if (number === 2) {
7241 return softMutation(text);
7242 }
7243 return text;
7244 }
7245 function softMutation(text) {
7246 var mutationTable = {
7247 m: 'v',
7248 b: 'v',
7249 d: 'z',
7250 };
7251 if (mutationTable[text.charAt(0)] === undefined) {
7252 return text;
7253 }
7254 return mutationTable[text.charAt(0)] + text.substring(1);
7255 }
7256
7257 var monthsParse = [
7258 /^gen/i,
7259 /^c[ʼ\']hwe/i,
7260 /^meu/i,
7261 /^ebr/i,
7262 /^mae/i,
7263 /^(mez|eve)/i,
7264 /^gou/i,
7265 /^eos/i,
7266 /^gwe/i,
7267 /^her/i,
7268 /^du/i,
7269 /^ker/i,
7270 ],
7271 monthsRegex$1 = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
7272 monthsStrictRegex = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,
7273 monthsShortStrictRegex = /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
7274 fullWeekdaysParse = [
7275 /^sul/i,
7276 /^lun/i,
7277 /^meurzh/i,
7278 /^merc[ʼ\']her/i,
7279 /^yaou/i,
7280 /^gwener/i,
7281 /^sadorn/i,
7282 ],
7283 shortWeekdaysParse = [
7284 /^Sul/i,
7285 /^Lun/i,
7286 /^Meu/i,
7287 /^Mer/i,
7288 /^Yao/i,
7289 /^Gwe/i,
7290 /^Sad/i,
7291 ],
7292 minWeekdaysParse = [
7293 /^Su/i,
7294 /^Lu/i,
7295 /^Me([^r]|$)/i,
7296 /^Mer/i,
7297 /^Ya/i,
7298 /^Gw/i,
7299 /^Sa/i,
7300 ];
7301
7302 hooks.defineLocale('br', {
7303 months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(
7304 '_'
7305 ),
7306 monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
7307 weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),
7308 weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
7309 weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
7310 weekdaysParse: minWeekdaysParse,
7311 fullWeekdaysParse: fullWeekdaysParse,
7312 shortWeekdaysParse: shortWeekdaysParse,
7313 minWeekdaysParse: minWeekdaysParse,
7314
7315 monthsRegex: monthsRegex$1,
7316 monthsShortRegex: monthsRegex$1,
7317 monthsStrictRegex: monthsStrictRegex,
7318 monthsShortStrictRegex: monthsShortStrictRegex,
7319 monthsParse: monthsParse,
7320 longMonthsParse: monthsParse,
7321 shortMonthsParse: monthsParse,
7322
7323 longDateFormat: {
7324 LT: 'HH:mm',
7325 LTS: 'HH:mm:ss',
7326 L: 'DD/MM/YYYY',
7327 LL: 'D [a viz] MMMM YYYY',
7328 LLL: 'D [a viz] MMMM YYYY HH:mm',
7329 LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',
7330 },
7331 calendar: {
7332 sameDay: '[Hiziv da] LT',
7333 nextDay: '[Warcʼhoazh da] LT',
7334 nextWeek: 'dddd [da] LT',
7335 lastDay: '[Decʼh da] LT',
7336 lastWeek: 'dddd [paset da] LT',
7337 sameElse: 'L',
7338 },
7339 relativeTime: {
7340 future: 'a-benn %s',
7341 past: '%s ʼzo',
7342 s: 'un nebeud segondennoù',
7343 ss: '%d eilenn',
7344 m: 'ur vunutenn',
7345 mm: relativeTimeWithMutation,
7346 h: 'un eur',
7347 hh: '%d eur',
7348 d: 'un devezh',
7349 dd: relativeTimeWithMutation,
7350 M: 'ur miz',
7351 MM: relativeTimeWithMutation,
7352 y: 'ur bloaz',
7353 yy: specialMutationForYears,
7354 },
7355 dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/,
7356 ordinal: function (number) {
7357 var output = number === 1 ? 'añ' : 'vet';
7358 return number + output;
7359 },
7360 week: {
7361 dow: 1, // Monday is the first day of the week.
7362 doy: 4, // The week that contains Jan 4th is the first week of the year.
7363 },
7364 meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn
7365 isPM: function (token) {
7366 return token === 'g.m.';
7367 },
7368 meridiem: function (hour, minute, isLower) {
7369 return hour < 12 ? 'a.m.' : 'g.m.';
7370 },
7371 });
7372
7373 //! moment.js locale configuration
7374
7375 function translate(number, withoutSuffix, key) {
7376 var result = number + ' ';
7377 switch (key) {
7378 case 'ss':
7379 if (number === 1) {
7380 result += 'sekunda';
7381 } else if (number === 2 || number === 3 || number === 4) {
7382 result += 'sekunde';
7383 } else {
7384 result += 'sekundi';
7385 }
7386 return result;
7387 case 'm':
7388 return withoutSuffix ? 'jedna minuta' : 'jedne minute';
7389 case 'mm':
7390 if (number === 1) {
7391 result += 'minuta';
7392 } else if (number === 2 || number === 3 || number === 4) {
7393 result += 'minute';
7394 } else {
7395 result += 'minuta';
7396 }
7397 return result;
7398 case 'h':
7399 return withoutSuffix ? 'jedan sat' : 'jednog sata';
7400 case 'hh':
7401 if (number === 1) {
7402 result += 'sat';
7403 } else if (number === 2 || number === 3 || number === 4) {
7404 result += 'sata';
7405 } else {
7406 result += 'sati';
7407 }
7408 return result;
7409 case 'dd':
7410 if (number === 1) {
7411 result += 'dan';
7412 } else {
7413 result += 'dana';
7414 }
7415 return result;
7416 case 'MM':
7417 if (number === 1) {
7418 result += 'mjesec';
7419 } else if (number === 2 || number === 3 || number === 4) {
7420 result += 'mjeseca';
7421 } else {
7422 result += 'mjeseci';
7423 }
7424 return result;
7425 case 'yy':
7426 if (number === 1) {
7427 result += 'godina';
7428 } else if (number === 2 || number === 3 || number === 4) {
7429 result += 'godine';
7430 } else {
7431 result += 'godina';
7432 }
7433 return result;
7434 }
7435 }
7436
7437 hooks.defineLocale('bs', {
7438 months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(
7439 '_'
7440 ),
7441 monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(
7442 '_'
7443 ),
7444 monthsParseExact: true,
7445 weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
7446 '_'
7447 ),
7448 weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
7449 weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
7450 weekdaysParseExact: true,
7451 longDateFormat: {
7452 LT: 'H:mm',
7453 LTS: 'H:mm:ss',
7454 L: 'DD.MM.YYYY',
7455 LL: 'D. MMMM YYYY',
7456 LLL: 'D. MMMM YYYY H:mm',
7457 LLLL: 'dddd, D. MMMM YYYY H:mm',
7458 },
7459 calendar: {
7460 sameDay: '[danas u] LT',
7461 nextDay: '[sutra u] LT',
7462 nextWeek: function () {
7463 switch (this.day()) {
7464 case 0:
7465 return '[u] [nedjelju] [u] LT';
7466 case 3:
7467 return '[u] [srijedu] [u] LT';
7468 case 6:
7469 return '[u] [subotu] [u] LT';
7470 case 1:
7471 case 2:
7472 case 4:
7473 case 5:
7474 return '[u] dddd [u] LT';
7475 }
7476 },
7477 lastDay: '[jučer u] LT',
7478 lastWeek: function () {
7479 switch (this.day()) {
7480 case 0:
7481 case 3:
7482 return '[prošlu] dddd [u] LT';
7483 case 6:
7484 return '[prošle] [subote] [u] LT';
7485 case 1:
7486 case 2:
7487 case 4:
7488 case 5:
7489 return '[prošli] dddd [u] LT';
7490 }
7491 },
7492 sameElse: 'L',
7493 },
7494 relativeTime: {
7495 future: 'za %s',
7496 past: 'prije %s',
7497 s: 'par sekundi',
7498 ss: translate,
7499 m: translate,
7500 mm: translate,
7501 h: translate,
7502 hh: translate,
7503 d: 'dan',
7504 dd: translate,
7505 M: 'mjesec',
7506 MM: translate,
7507 y: 'godinu',
7508 yy: translate,
7509 },
7510 dayOfMonthOrdinalParse: /\d{1,2}\./,
7511 ordinal: '%d.',
7512 week: {
7513 dow: 1, // Monday is the first day of the week.
7514 doy: 7, // The week that contains Jan 7th is the first week of the year.
7515 },
7516 });
7517
7518 //! moment.js locale configuration
7519
7520 hooks.defineLocale('ca', {
7521 months: {
7522 standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(
7523 '_'
7524 ),
7525 format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split(
7526 '_'
7527 ),
7528 isFormat: /D[oD]?(\s)+MMMM/,
7529 },
7530 monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(
7531 '_'
7532 ),
7533 monthsParseExact: true,
7534 weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(
7535 '_'
7536 ),
7537 weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
7538 weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),
7539 weekdaysParseExact: true,
7540 longDateFormat: {
7541 LT: 'H:mm',
7542 LTS: 'H:mm:ss',
7543 L: 'DD/MM/YYYY',
7544 LL: 'D MMMM [de] YYYY',
7545 ll: 'D MMM YYYY',
7546 LLL: 'D MMMM [de] YYYY [a les] H:mm',
7547 lll: 'D MMM YYYY, H:mm',
7548 LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',
7549 llll: 'ddd D MMM YYYY, H:mm',
7550 },
7551 calendar: {
7552 sameDay: function () {
7553 return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
7554 },
7555 nextDay: function () {
7556 return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
7557 },
7558 nextWeek: function () {
7559 return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
7560 },
7561 lastDay: function () {
7562 return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
7563 },
7564 lastWeek: function () {
7565 return (
7566 '[el] dddd [passat a ' +
7567 (this.hours() !== 1 ? 'les' : 'la') +
7568 '] LT'
7569 );
7570 },
7571 sameElse: 'L',
7572 },
7573 relativeTime: {
7574 future: "d'aquí %s",
7575 past: 'fa %s',
7576 s: 'uns segons',
7577 ss: '%d segons',
7578 m: 'un minut',
7579 mm: '%d minuts',
7580 h: 'una hora',
7581 hh: '%d hores',
7582 d: 'un dia',
7583 dd: '%d dies',
7584 M: 'un mes',
7585 MM: '%d mesos',
7586 y: 'un any',
7587 yy: '%d anys',
7588 },
7589 dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
7590 ordinal: function (number, period) {
7591 var output =
7592 number === 1
7593 ? 'r'
7594 : number === 2
7595 ? 'n'
7596 : number === 3
7597 ? 'r'
7598 : number === 4
7599 ? 't'
7600 : 'è';
7601 if (period === 'w' || period === 'W') {
7602 output = 'a';
7603 }
7604 return number + output;
7605 },
7606 week: {
7607 dow: 1, // Monday is the first day of the week.
7608 doy: 4, // The week that contains Jan 4th is the first week of the year.
7609 },
7610 });
7611
7612 //! moment.js locale configuration
7613
7614 var months$4 = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(
7615 '_'
7616 ),
7617 monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),
7618 monthsParse$1 = [
7619 /^led/i,
7620 /^úno/i,
7621 /^bře/i,
7622 /^dub/i,
7623 /^kvě/i,
7624 /^(čvn|červen$|června)/i,
7625 /^(čvc|červenec|července)/i,
7626 /^srp/i,
7627 /^zář/i,
7628 /^říj/i,
7629 /^lis/i,
7630 /^pro/i,
7631 ],
7632 // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
7633 // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
7634 monthsRegex$2 = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;
7635
7636 function plural$1(n) {
7637 return n > 1 && n < 5 && ~~(n / 10) !== 1;
7638 }
7639 function translate$1(number, withoutSuffix, key, isFuture) {
7640 var result = number + ' ';
7641 switch (key) {
7642 case 's': // a few seconds / in a few seconds / a few seconds ago
7643 return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';
7644 case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
7645 if (withoutSuffix || isFuture) {
7646 return result + (plural$1(number) ? 'sekundy' : 'sekund');
7647 } else {
7648 return result + 'sekundami';
7649 }
7650 case 'm': // a minute / in a minute / a minute ago
7651 return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';
7652 case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
7653 if (withoutSuffix || isFuture) {
7654 return result + (plural$1(number) ? 'minuty' : 'minut');
7655 } else {
7656 return result + 'minutami';
7657 }
7658 case 'h': // an hour / in an hour / an hour ago
7659 return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';
7660 case 'hh': // 9 hours / in 9 hours / 9 hours ago
7661 if (withoutSuffix || isFuture) {
7662 return result + (plural$1(number) ? 'hodiny' : 'hodin');
7663 } else {
7664 return result + 'hodinami';
7665 }
7666 case 'd': // a day / in a day / a day ago
7667 return withoutSuffix || isFuture ? 'den' : 'dnem';
7668 case 'dd': // 9 days / in 9 days / 9 days ago
7669 if (withoutSuffix || isFuture) {
7670 return result + (plural$1(number) ? 'dny' : 'dní');
7671 } else {
7672 return result + 'dny';
7673 }
7674 case 'M': // a month / in a month / a month ago
7675 return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';
7676 case 'MM': // 9 months / in 9 months / 9 months ago
7677 if (withoutSuffix || isFuture) {
7678 return result + (plural$1(number) ? 'měsíce' : 'měsíců');
7679 } else {
7680 return result + 'měsíci';
7681 }
7682 case 'y': // a year / in a year / a year ago
7683 return withoutSuffix || isFuture ? 'rok' : 'rokem';
7684 case 'yy': // 9 years / in 9 years / 9 years ago
7685 if (withoutSuffix || isFuture) {
7686 return result + (plural$1(number) ? 'roky' : 'let');
7687 } else {
7688 return result + 'lety';
7689 }
7690 }
7691 }
7692
7693 hooks.defineLocale('cs', {
7694 months: months$4,
7695 monthsShort: monthsShort,
7696 monthsRegex: monthsRegex$2,
7697 monthsShortRegex: monthsRegex$2,
7698 // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
7699 // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
7700 monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,
7701 monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,
7702 monthsParse: monthsParse$1,
7703 longMonthsParse: monthsParse$1,
7704 shortMonthsParse: monthsParse$1,
7705 weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
7706 weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),
7707 weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),
7708 longDateFormat: {
7709 LT: 'H:mm',
7710 LTS: 'H:mm:ss',
7711 L: 'DD.MM.YYYY',
7712 LL: 'D. MMMM YYYY',
7713 LLL: 'D. MMMM YYYY H:mm',
7714 LLLL: 'dddd D. MMMM YYYY H:mm',
7715 l: 'D. M. YYYY',
7716 },
7717 calendar: {
7718 sameDay: '[dnes v] LT',
7719 nextDay: '[zítra v] LT',
7720 nextWeek: function () {
7721 switch (this.day()) {
7722 case 0:
7723 return '[v neděli v] LT';
7724 case 1:
7725 case 2:
7726 return '[v] dddd [v] LT';
7727 case 3:
7728 return '[ve středu v] LT';
7729 case 4:
7730 return '[ve čtvrtek v] LT';
7731 case 5:
7732 return '[v pátek v] LT';
7733 case 6:
7734 return '[v sobotu v] LT';
7735 }
7736 },
7737 lastDay: '[včera v] LT',
7738 lastWeek: function () {
7739 switch (this.day()) {
7740 case 0:
7741 return '[minulou neděli v] LT';
7742 case 1:
7743 case 2:
7744 return '[minulé] dddd [v] LT';
7745 case 3:
7746 return '[minulou středu v] LT';
7747 case 4:
7748 case 5:
7749 return '[minulý] dddd [v] LT';
7750 case 6:
7751 return '[minulou sobotu v] LT';
7752 }
7753 },
7754 sameElse: 'L',
7755 },
7756 relativeTime: {
7757 future: 'za %s',
7758 past: 'před %s',
7759 s: translate$1,
7760 ss: translate$1,
7761 m: translate$1,
7762 mm: translate$1,
7763 h: translate$1,
7764 hh: translate$1,
7765 d: translate$1,
7766 dd: translate$1,
7767 M: translate$1,
7768 MM: translate$1,
7769 y: translate$1,
7770 yy: translate$1,
7771 },
7772 dayOfMonthOrdinalParse: /\d{1,2}\./,
7773 ordinal: '%d.',
7774 week: {
7775 dow: 1, // Monday is the first day of the week.
7776 doy: 4, // The week that contains Jan 4th is the first week of the year.
7777 },
7778 });
7779
7780 //! moment.js locale configuration
7781
7782 hooks.defineLocale('cv', {
7783 months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(
7784 '_'
7785 ),
7786 monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),
7787 weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(
7788 '_'
7789 ),
7790 weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
7791 weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
7792 longDateFormat: {
7793 LT: 'HH:mm',
7794 LTS: 'HH:mm:ss',
7795 L: 'DD-MM-YYYY',
7796 LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
7797 LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
7798 LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
7799 },
7800 calendar: {
7801 sameDay: '[Паян] LT [сехетре]',
7802 nextDay: '[Ыран] LT [сехетре]',
7803 lastDay: '[Ӗнер] LT [сехетре]',
7804 nextWeek: '[Ҫитес] dddd LT [сехетре]',
7805 lastWeek: '[Иртнӗ] dddd LT [сехетре]',
7806 sameElse: 'L',
7807 },
7808 relativeTime: {
7809 future: function (output) {
7810 var affix = /сехет$/i.exec(output)
7811 ? 'рен'
7812 : /ҫул$/i.exec(output)
7813 ? 'тан'
7814 : 'ран';
7815 return output + affix;
7816 },
7817 past: '%s каялла',
7818 s: 'пӗр-ик ҫеккунт',
7819 ss: '%d ҫеккунт',
7820 m: 'пӗр минут',
7821 mm: '%d минут',
7822 h: 'пӗр сехет',
7823 hh: '%d сехет',
7824 d: 'пӗр кун',
7825 dd: '%d кун',
7826 M: 'пӗр уйӑх',
7827 MM: '%d уйӑх',
7828 y: 'пӗр ҫул',
7829 yy: '%d ҫул',
7830 },
7831 dayOfMonthOrdinalParse: /\d{1,2}-мӗш/,
7832 ordinal: '%d-мӗш',
7833 week: {
7834 dow: 1, // Monday is the first day of the week.
7835 doy: 7, // The week that contains Jan 7th is the first week of the year.
7836 },
7837 });
7838
7839 //! moment.js locale configuration
7840
7841 hooks.defineLocale('cy', {
7842 months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(
7843 '_'
7844 ),
7845 monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(
7846 '_'
7847 ),
7848 weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(
7849 '_'
7850 ),
7851 weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
7852 weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
7853 weekdaysParseExact: true,
7854 // time formats are the same as en-gb
7855 longDateFormat: {
7856 LT: 'HH:mm',
7857 LTS: 'HH:mm:ss',
7858 L: 'DD/MM/YYYY',
7859 LL: 'D MMMM YYYY',
7860 LLL: 'D MMMM YYYY HH:mm',
7861 LLLL: 'dddd, D MMMM YYYY HH:mm',
7862 },
7863 calendar: {
7864 sameDay: '[Heddiw am] LT',
7865 nextDay: '[Yfory am] LT',
7866 nextWeek: 'dddd [am] LT',
7867 lastDay: '[Ddoe am] LT',
7868 lastWeek: 'dddd [diwethaf am] LT',
7869 sameElse: 'L',
7870 },
7871 relativeTime: {
7872 future: 'mewn %s',
7873 past: '%s yn ôl',
7874 s: 'ychydig eiliadau',
7875 ss: '%d eiliad',
7876 m: 'munud',
7877 mm: '%d munud',
7878 h: 'awr',
7879 hh: '%d awr',
7880 d: 'diwrnod',
7881 dd: '%d diwrnod',
7882 M: 'mis',
7883 MM: '%d mis',
7884 y: 'blwyddyn',
7885 yy: '%d flynedd',
7886 },
7887 dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
7888 // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
7889 ordinal: function (number) {
7890 var b = number,
7891 output = '',
7892 lookup = [
7893 '',
7894 'af',
7895 'il',
7896 'ydd',
7897 'ydd',
7898 'ed',
7899 'ed',
7900 'ed',
7901 'fed',
7902 'fed',
7903 'fed', // 1af to 10fed
7904 'eg',
7905 'fed',
7906 'eg',
7907 'eg',
7908 'fed',
7909 'eg',
7910 'eg',
7911 'fed',
7912 'eg',
7913 'fed', // 11eg to 20fed
7914 ];
7915 if (b > 20) {
7916 if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
7917 output = 'fed'; // not 30ain, 70ain or 90ain
7918 } else {
7919 output = 'ain';
7920 }
7921 } else if (b > 0) {
7922 output = lookup[b];
7923 }
7924 return number + output;
7925 },
7926 week: {
7927 dow: 1, // Monday is the first day of the week.
7928 doy: 4, // The week that contains Jan 4th is the first week of the year.
7929 },
7930 });
7931
7932 //! moment.js locale configuration
7933
7934 hooks.defineLocale('da', {
7935 months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(
7936 '_'
7937 ),
7938 monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
7939 weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
7940 weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),
7941 weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
7942 longDateFormat: {
7943 LT: 'HH:mm',
7944 LTS: 'HH:mm:ss',
7945 L: 'DD.MM.YYYY',
7946 LL: 'D. MMMM YYYY',
7947 LLL: 'D. MMMM YYYY HH:mm',
7948 LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',
7949 },
7950 calendar: {
7951 sameDay: '[i dag kl.] LT',
7952 nextDay: '[i morgen kl.] LT',
7953 nextWeek: 'på dddd [kl.] LT',
7954 lastDay: '[i går kl.] LT',
7955 lastWeek: '[i] dddd[s kl.] LT',
7956 sameElse: 'L',
7957 },
7958 relativeTime: {
7959 future: 'om %s',
7960 past: '%s siden',
7961 s: 'få sekunder',
7962 ss: '%d sekunder',
7963 m: 'et minut',
7964 mm: '%d minutter',
7965 h: 'en time',
7966 hh: '%d timer',
7967 d: 'en dag',
7968 dd: '%d dage',
7969 M: 'en måned',
7970 MM: '%d måneder',
7971 y: 'et år',
7972 yy: '%d år',
7973 },
7974 dayOfMonthOrdinalParse: /\d{1,2}\./,
7975 ordinal: '%d.',
7976 week: {
7977 dow: 1, // Monday is the first day of the week.
7978 doy: 4, // The week that contains Jan 4th is the first week of the year.
7979 },
7980 });
7981
7982 //! moment.js locale configuration
7983
7984 function processRelativeTime(number, withoutSuffix, key, isFuture) {
7985 var format = {
7986 m: ['eine Minute', 'einer Minute'],
7987 h: ['eine Stunde', 'einer Stunde'],
7988 d: ['ein Tag', 'einem Tag'],
7989 dd: [number + ' Tage', number + ' Tagen'],
7990 w: ['eine Woche', 'einer Woche'],
7991 M: ['ein Monat', 'einem Monat'],
7992 MM: [number + ' Monate', number + ' Monaten'],
7993 y: ['ein Jahr', 'einem Jahr'],
7994 yy: [number + ' Jahre', number + ' Jahren'],
7995 };
7996 return withoutSuffix ? format[key][0] : format[key][1];
7997 }
7998
7999 hooks.defineLocale('de-at', {
8000 months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
8001 '_'
8002 ),
8003 monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(
8004 '_'
8005 ),
8006 monthsParseExact: true,
8007 weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
8008 '_'
8009 ),
8010 weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
8011 weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
8012 weekdaysParseExact: true,
8013 longDateFormat: {
8014 LT: 'HH:mm',
8015 LTS: 'HH:mm:ss',
8016 L: 'DD.MM.YYYY',
8017 LL: 'D. MMMM YYYY',
8018 LLL: 'D. MMMM YYYY HH:mm',
8019 LLLL: 'dddd, D. MMMM YYYY HH:mm',
8020 },
8021 calendar: {
8022 sameDay: '[heute um] LT [Uhr]',
8023 sameElse: 'L',
8024 nextDay: '[morgen um] LT [Uhr]',
8025 nextWeek: 'dddd [um] LT [Uhr]',
8026 lastDay: '[gestern um] LT [Uhr]',
8027 lastWeek: '[letzten] dddd [um] LT [Uhr]',
8028 },
8029 relativeTime: {
8030 future: 'in %s',
8031 past: 'vor %s',
8032 s: 'ein paar Sekunden',
8033 ss: '%d Sekunden',
8034 m: processRelativeTime,
8035 mm: '%d Minuten',
8036 h: processRelativeTime,
8037 hh: '%d Stunden',
8038 d: processRelativeTime,
8039 dd: processRelativeTime,
8040 w: processRelativeTime,
8041 ww: '%d Wochen',
8042 M: processRelativeTime,
8043 MM: processRelativeTime,
8044 y: processRelativeTime,
8045 yy: processRelativeTime,
8046 },
8047 dayOfMonthOrdinalParse: /\d{1,2}\./,
8048 ordinal: '%d.',
8049 week: {
8050 dow: 1, // Monday is the first day of the week.
8051 doy: 4, // The week that contains Jan 4th is the first week of the year.
8052 },
8053 });
8054
8055 //! moment.js locale configuration
8056
8057 function processRelativeTime$1(number, withoutSuffix, key, isFuture) {
8058 var format = {
8059 m: ['eine Minute', 'einer Minute'],
8060 h: ['eine Stunde', 'einer Stunde'],
8061 d: ['ein Tag', 'einem Tag'],
8062 dd: [number + ' Tage', number + ' Tagen'],
8063 w: ['eine Woche', 'einer Woche'],
8064 M: ['ein Monat', 'einem Monat'],
8065 MM: [number + ' Monate', number + ' Monaten'],
8066 y: ['ein Jahr', 'einem Jahr'],
8067 yy: [number + ' Jahre', number + ' Jahren'],
8068 };
8069 return withoutSuffix ? format[key][0] : format[key][1];
8070 }
8071
8072 hooks.defineLocale('de-ch', {
8073 months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
8074 '_'
8075 ),
8076 monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(
8077 '_'
8078 ),
8079 monthsParseExact: true,
8080 weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
8081 '_'
8082 ),
8083 weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
8084 weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
8085 weekdaysParseExact: true,
8086 longDateFormat: {
8087 LT: 'HH:mm',
8088 LTS: 'HH:mm:ss',
8089 L: 'DD.MM.YYYY',
8090 LL: 'D. MMMM YYYY',
8091 LLL: 'D. MMMM YYYY HH:mm',
8092 LLLL: 'dddd, D. MMMM YYYY HH:mm',
8093 },
8094 calendar: {
8095 sameDay: '[heute um] LT [Uhr]',
8096 sameElse: 'L',
8097 nextDay: '[morgen um] LT [Uhr]',
8098 nextWeek: 'dddd [um] LT [Uhr]',
8099 lastDay: '[gestern um] LT [Uhr]',
8100 lastWeek: '[letzten] dddd [um] LT [Uhr]',
8101 },
8102 relativeTime: {
8103 future: 'in %s',
8104 past: 'vor %s',
8105 s: 'ein paar Sekunden',
8106 ss: '%d Sekunden',
8107 m: processRelativeTime$1,
8108 mm: '%d Minuten',
8109 h: processRelativeTime$1,
8110 hh: '%d Stunden',
8111 d: processRelativeTime$1,
8112 dd: processRelativeTime$1,
8113 w: processRelativeTime$1,
8114 ww: '%d Wochen',
8115 M: processRelativeTime$1,
8116 MM: processRelativeTime$1,
8117 y: processRelativeTime$1,
8118 yy: processRelativeTime$1,
8119 },
8120 dayOfMonthOrdinalParse: /\d{1,2}\./,
8121 ordinal: '%d.',
8122 week: {
8123 dow: 1, // Monday is the first day of the week.
8124 doy: 4, // The week that contains Jan 4th is the first week of the year.
8125 },
8126 });
8127
8128 //! moment.js locale configuration
8129
8130 function processRelativeTime$2(number, withoutSuffix, key, isFuture) {
8131 var format = {
8132 m: ['eine Minute', 'einer Minute'],
8133 h: ['eine Stunde', 'einer Stunde'],
8134 d: ['ein Tag', 'einem Tag'],
8135 dd: [number + ' Tage', number + ' Tagen'],
8136 w: ['eine Woche', 'einer Woche'],
8137 M: ['ein Monat', 'einem Monat'],
8138 MM: [number + ' Monate', number + ' Monaten'],
8139 y: ['ein Jahr', 'einem Jahr'],
8140 yy: [number + ' Jahre', number + ' Jahren'],
8141 };
8142 return withoutSuffix ? format[key][0] : format[key][1];
8143 }
8144
8145 hooks.defineLocale('de', {
8146 months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
8147 '_'
8148 ),
8149 monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(
8150 '_'
8151 ),
8152 monthsParseExact: true,
8153 weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
8154 '_'
8155 ),
8156 weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
8157 weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
8158 weekdaysParseExact: true,
8159 longDateFormat: {
8160 LT: 'HH:mm',
8161 LTS: 'HH:mm:ss',
8162 L: 'DD.MM.YYYY',
8163 LL: 'D. MMMM YYYY',
8164 LLL: 'D. MMMM YYYY HH:mm',
8165 LLLL: 'dddd, D. MMMM YYYY HH:mm',
8166 },
8167 calendar: {
8168 sameDay: '[heute um] LT [Uhr]',
8169 sameElse: 'L',
8170 nextDay: '[morgen um] LT [Uhr]',
8171 nextWeek: 'dddd [um] LT [Uhr]',
8172 lastDay: '[gestern um] LT [Uhr]',
8173 lastWeek: '[letzten] dddd [um] LT [Uhr]',
8174 },
8175 relativeTime: {
8176 future: 'in %s',
8177 past: 'vor %s',
8178 s: 'ein paar Sekunden',
8179 ss: '%d Sekunden',
8180 m: processRelativeTime$2,
8181 mm: '%d Minuten',
8182 h: processRelativeTime$2,
8183 hh: '%d Stunden',
8184 d: processRelativeTime$2,
8185 dd: processRelativeTime$2,
8186 w: processRelativeTime$2,
8187 ww: '%d Wochen',
8188 M: processRelativeTime$2,
8189 MM: processRelativeTime$2,
8190 y: processRelativeTime$2,
8191 yy: processRelativeTime$2,
8192 },
8193 dayOfMonthOrdinalParse: /\d{1,2}\./,
8194 ordinal: '%d.',
8195 week: {
8196 dow: 1, // Monday is the first day of the week.
8197 doy: 4, // The week that contains Jan 4th is the first week of the year.
8198 },
8199 });
8200
8201 //! moment.js locale configuration
8202
8203 var months$5 = [
8204 'ޖެނުއަރީ',
8205 'ފެބްރުއަރީ',
8206 'މާރިޗު',
8207 'އޭޕްރީލު',
8208 'މޭ',
8209 'ޖޫން',
8210 'ޖުލައި',
8211 'އޯގަސްޓު',
8212 'ސެޕްޓެމްބަރު',
8213 'އޮކްޓޯބަރު',
8214 'ނޮވެމްބަރު',
8215 'ޑިސެމްބަރު',
8216 ],
8217 weekdays = [
8218 'އާދިއްތަ',
8219 'ހޯމަ',
8220 'އަންގާރަ',
8221 'ބުދަ',
8222 'ބުރާސްފަތި',
8223 'ހުކުރު',
8224 'ހޮނިހިރު',
8225 ];
8226
8227 hooks.defineLocale('dv', {
8228 months: months$5,
8229 monthsShort: months$5,
8230 weekdays: weekdays,
8231 weekdaysShort: weekdays,
8232 weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
8233 longDateFormat: {
8234 LT: 'HH:mm',
8235 LTS: 'HH:mm:ss',
8236 L: 'D/M/YYYY',
8237 LL: 'D MMMM YYYY',
8238 LLL: 'D MMMM YYYY HH:mm',
8239 LLLL: 'dddd D MMMM YYYY HH:mm',
8240 },
8241 meridiemParse: /މކ|މފ/,
8242 isPM: function (input) {
8243 return 'މފ' === input;
8244 },
8245 meridiem: function (hour, minute, isLower) {
8246 if (hour < 12) {
8247 return 'މކ';
8248 } else {
8249 return 'މފ';
8250 }
8251 },
8252 calendar: {
8253 sameDay: '[މިއަދު] LT',
8254 nextDay: '[މާދަމާ] LT',
8255 nextWeek: 'dddd LT',
8256 lastDay: '[އިއްޔެ] LT',
8257 lastWeek: '[ފާއިތުވި] dddd LT',
8258 sameElse: 'L',
8259 },
8260 relativeTime: {
8261 future: 'ތެރޭގައި %s',
8262 past: 'ކުރިން %s',
8263 s: 'ސިކުންތުކޮޅެއް',
8264 ss: 'd% ސިކުންތު',
8265 m: 'މިނިޓެއް',
8266 mm: 'މިނިޓު %d',
8267 h: 'ގަޑިއިރެއް',
8268 hh: 'ގަޑިއިރު %d',
8269 d: 'ދުވަހެއް',
8270 dd: 'ދުވަސް %d',
8271 M: 'މަހެއް',
8272 MM: 'މަސް %d',
8273 y: 'އަހަރެއް',
8274 yy: 'އަހަރު %d',
8275 },
8276 preparse: function (string) {
8277 return string.replace(/،/g, ',');
8278 },
8279 postformat: function (string) {
8280 return string.replace(/,/g, '،');
8281 },
8282 week: {
8283 dow: 7, // Sunday is the first day of the week.
8284 doy: 12, // The week that contains Jan 12th is the first week of the year.
8285 },
8286 });
8287
8288 //! moment.js locale configuration
8289
8290 function isFunction$1(input) {
8291 return (
8292 (typeof Function !== 'undefined' && input instanceof Function) ||
8293 Object.prototype.toString.call(input) === '[object Function]'
8294 );
8295 }
8296
8297 hooks.defineLocale('el', {
8298 monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(
8299 '_'
8300 ),
8301 monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(
8302 '_'
8303 ),
8304 months: function (momentToFormat, format) {
8305 if (!momentToFormat) {
8306 return this._monthsNominativeEl;
8307 } else if (
8308 typeof format === 'string' &&
8309 /D/.test(format.substring(0, format.indexOf('MMMM')))
8310 ) {
8311 // if there is a day number before 'MMMM'
8312 return this._monthsGenitiveEl[momentToFormat.month()];
8313 } else {
8314 return this._monthsNominativeEl[momentToFormat.month()];
8315 }
8316 },
8317 monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
8318 weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(
8319 '_'
8320 ),
8321 weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
8322 weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
8323 meridiem: function (hours, minutes, isLower) {
8324 if (hours > 11) {
8325 return isLower ? 'μμ' : 'ΜΜ';
8326 } else {
8327 return isLower ? 'πμ' : 'ΠΜ';
8328 }
8329 },
8330 isPM: function (input) {
8331 return (input + '').toLowerCase()[0] === 'μ';
8332 },
8333 meridiemParse: /[ΠΜ]\.?Μ?\.?/i,
8334 longDateFormat: {
8335 LT: 'h:mm A',
8336 LTS: 'h:mm:ss A',
8337 L: 'DD/MM/YYYY',
8338 LL: 'D MMMM YYYY',
8339 LLL: 'D MMMM YYYY h:mm A',
8340 LLLL: 'dddd, D MMMM YYYY h:mm A',
8341 },
8342 calendarEl: {
8343 sameDay: '[Σήμερα {}] LT',
8344 nextDay: '[Αύριο {}] LT',
8345 nextWeek: 'dddd [{}] LT',
8346 lastDay: '[Χθες {}] LT',
8347 lastWeek: function () {
8348 switch (this.day()) {
8349 case 6:
8350 return '[το προηγούμενο] dddd [{}] LT';
8351 default:
8352 return '[την προηγούμενη] dddd [{}] LT';
8353 }
8354 },
8355 sameElse: 'L',
8356 },
8357 calendar: function (key, mom) {
8358 var output = this._calendarEl[key],
8359 hours = mom && mom.hours();
8360 if (isFunction$1(output)) {
8361 output = output.apply(mom);
8362 }
8363 return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');
8364 },
8365 relativeTime: {
8366 future: 'σε %s',
8367 past: '%s πριν',
8368 s: 'λίγα δευτερόλεπτα',
8369 ss: '%d δευτερόλεπτα',
8370 m: 'ένα λεπτό',
8371 mm: '%d λεπτά',
8372 h: 'μία ώρα',
8373 hh: '%d ώρες',
8374 d: 'μία μέρα',
8375 dd: '%d μέρες',
8376 M: 'ένας μήνας',
8377 MM: '%d μήνες',
8378 y: 'ένας χρόνος',
8379 yy: '%d χρόνια',
8380 },
8381 dayOfMonthOrdinalParse: /\d{1,2}η/,
8382 ordinal: '%dη',
8383 week: {
8384 dow: 1, // Monday is the first day of the week.
8385 doy: 4, // The week that contains Jan 4st is the first week of the year.
8386 },
8387 });
8388
8389 //! moment.js locale configuration
8390
8391 hooks.defineLocale('en-au', {
8392 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8393 '_'
8394 ),
8395 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8396 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8397 '_'
8398 ),
8399 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8400 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8401 longDateFormat: {
8402 LT: 'h:mm A',
8403 LTS: 'h:mm:ss A',
8404 L: 'DD/MM/YYYY',
8405 LL: 'D MMMM YYYY',
8406 LLL: 'D MMMM YYYY h:mm A',
8407 LLLL: 'dddd, D MMMM YYYY h:mm A',
8408 },
8409 calendar: {
8410 sameDay: '[Today at] LT',
8411 nextDay: '[Tomorrow at] LT',
8412 nextWeek: 'dddd [at] LT',
8413 lastDay: '[Yesterday at] LT',
8414 lastWeek: '[Last] dddd [at] LT',
8415 sameElse: 'L',
8416 },
8417 relativeTime: {
8418 future: 'in %s',
8419 past: '%s ago',
8420 s: 'a few seconds',
8421 ss: '%d seconds',
8422 m: 'a minute',
8423 mm: '%d minutes',
8424 h: 'an hour',
8425 hh: '%d hours',
8426 d: 'a day',
8427 dd: '%d days',
8428 M: 'a month',
8429 MM: '%d months',
8430 y: 'a year',
8431 yy: '%d years',
8432 },
8433 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8434 ordinal: function (number) {
8435 var b = number % 10,
8436 output =
8437 ~~((number % 100) / 10) === 1
8438 ? 'th'
8439 : b === 1
8440 ? 'st'
8441 : b === 2
8442 ? 'nd'
8443 : b === 3
8444 ? 'rd'
8445 : 'th';
8446 return number + output;
8447 },
8448 week: {
8449 dow: 0, // Sunday is the first day of the week.
8450 doy: 4, // The week that contains Jan 4th is the first week of the year.
8451 },
8452 });
8453
8454 //! moment.js locale configuration
8455
8456 hooks.defineLocale('en-ca', {
8457 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8458 '_'
8459 ),
8460 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8461 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8462 '_'
8463 ),
8464 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8465 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8466 longDateFormat: {
8467 LT: 'h:mm A',
8468 LTS: 'h:mm:ss A',
8469 L: 'YYYY-MM-DD',
8470 LL: 'MMMM D, YYYY',
8471 LLL: 'MMMM D, YYYY h:mm A',
8472 LLLL: 'dddd, MMMM D, YYYY h:mm A',
8473 },
8474 calendar: {
8475 sameDay: '[Today at] LT',
8476 nextDay: '[Tomorrow at] LT',
8477 nextWeek: 'dddd [at] LT',
8478 lastDay: '[Yesterday at] LT',
8479 lastWeek: '[Last] dddd [at] LT',
8480 sameElse: 'L',
8481 },
8482 relativeTime: {
8483 future: 'in %s',
8484 past: '%s ago',
8485 s: 'a few seconds',
8486 ss: '%d seconds',
8487 m: 'a minute',
8488 mm: '%d minutes',
8489 h: 'an hour',
8490 hh: '%d hours',
8491 d: 'a day',
8492 dd: '%d days',
8493 M: 'a month',
8494 MM: '%d months',
8495 y: 'a year',
8496 yy: '%d years',
8497 },
8498 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8499 ordinal: function (number) {
8500 var b = number % 10,
8501 output =
8502 ~~((number % 100) / 10) === 1
8503 ? 'th'
8504 : b === 1
8505 ? 'st'
8506 : b === 2
8507 ? 'nd'
8508 : b === 3
8509 ? 'rd'
8510 : 'th';
8511 return number + output;
8512 },
8513 });
8514
8515 //! moment.js locale configuration
8516
8517 hooks.defineLocale('en-gb', {
8518 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8519 '_'
8520 ),
8521 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8522 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8523 '_'
8524 ),
8525 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8526 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8527 longDateFormat: {
8528 LT: 'HH:mm',
8529 LTS: 'HH:mm:ss',
8530 L: 'DD/MM/YYYY',
8531 LL: 'D MMMM YYYY',
8532 LLL: 'D MMMM YYYY HH:mm',
8533 LLLL: 'dddd, D MMMM YYYY HH:mm',
8534 },
8535 calendar: {
8536 sameDay: '[Today at] LT',
8537 nextDay: '[Tomorrow at] LT',
8538 nextWeek: 'dddd [at] LT',
8539 lastDay: '[Yesterday at] LT',
8540 lastWeek: '[Last] dddd [at] LT',
8541 sameElse: 'L',
8542 },
8543 relativeTime: {
8544 future: 'in %s',
8545 past: '%s ago',
8546 s: 'a few seconds',
8547 ss: '%d seconds',
8548 m: 'a minute',
8549 mm: '%d minutes',
8550 h: 'an hour',
8551 hh: '%d hours',
8552 d: 'a day',
8553 dd: '%d days',
8554 M: 'a month',
8555 MM: '%d months',
8556 y: 'a year',
8557 yy: '%d years',
8558 },
8559 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8560 ordinal: function (number) {
8561 var b = number % 10,
8562 output =
8563 ~~((number % 100) / 10) === 1
8564 ? 'th'
8565 : b === 1
8566 ? 'st'
8567 : b === 2
8568 ? 'nd'
8569 : b === 3
8570 ? 'rd'
8571 : 'th';
8572 return number + output;
8573 },
8574 week: {
8575 dow: 1, // Monday is the first day of the week.
8576 doy: 4, // The week that contains Jan 4th is the first week of the year.
8577 },
8578 });
8579
8580 //! moment.js locale configuration
8581
8582 hooks.defineLocale('en-ie', {
8583 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8584 '_'
8585 ),
8586 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8587 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8588 '_'
8589 ),
8590 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8591 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8592 longDateFormat: {
8593 LT: 'HH:mm',
8594 LTS: 'HH:mm:ss',
8595 L: 'DD/MM/YYYY',
8596 LL: 'D MMMM YYYY',
8597 LLL: 'D MMMM YYYY HH:mm',
8598 LLLL: 'dddd D MMMM YYYY HH:mm',
8599 },
8600 calendar: {
8601 sameDay: '[Today at] LT',
8602 nextDay: '[Tomorrow at] LT',
8603 nextWeek: 'dddd [at] LT',
8604 lastDay: '[Yesterday at] LT',
8605 lastWeek: '[Last] dddd [at] LT',
8606 sameElse: 'L',
8607 },
8608 relativeTime: {
8609 future: 'in %s',
8610 past: '%s ago',
8611 s: 'a few seconds',
8612 ss: '%d seconds',
8613 m: 'a minute',
8614 mm: '%d minutes',
8615 h: 'an hour',
8616 hh: '%d hours',
8617 d: 'a day',
8618 dd: '%d days',
8619 M: 'a month',
8620 MM: '%d months',
8621 y: 'a year',
8622 yy: '%d years',
8623 },
8624 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8625 ordinal: function (number) {
8626 var b = number % 10,
8627 output =
8628 ~~((number % 100) / 10) === 1
8629 ? 'th'
8630 : b === 1
8631 ? 'st'
8632 : b === 2
8633 ? 'nd'
8634 : b === 3
8635 ? 'rd'
8636 : 'th';
8637 return number + output;
8638 },
8639 week: {
8640 dow: 1, // Monday is the first day of the week.
8641 doy: 4, // The week that contains Jan 4th is the first week of the year.
8642 },
8643 });
8644
8645 //! moment.js locale configuration
8646
8647 hooks.defineLocale('en-il', {
8648 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8649 '_'
8650 ),
8651 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8652 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8653 '_'
8654 ),
8655 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8656 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8657 longDateFormat: {
8658 LT: 'HH:mm',
8659 LTS: 'HH:mm:ss',
8660 L: 'DD/MM/YYYY',
8661 LL: 'D MMMM YYYY',
8662 LLL: 'D MMMM YYYY HH:mm',
8663 LLLL: 'dddd, D MMMM YYYY HH:mm',
8664 },
8665 calendar: {
8666 sameDay: '[Today at] LT',
8667 nextDay: '[Tomorrow at] LT',
8668 nextWeek: 'dddd [at] LT',
8669 lastDay: '[Yesterday at] LT',
8670 lastWeek: '[Last] dddd [at] LT',
8671 sameElse: 'L',
8672 },
8673 relativeTime: {
8674 future: 'in %s',
8675 past: '%s ago',
8676 s: 'a few seconds',
8677 ss: '%d seconds',
8678 m: 'a minute',
8679 mm: '%d minutes',
8680 h: 'an hour',
8681 hh: '%d hours',
8682 d: 'a day',
8683 dd: '%d days',
8684 M: 'a month',
8685 MM: '%d months',
8686 y: 'a year',
8687 yy: '%d years',
8688 },
8689 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8690 ordinal: function (number) {
8691 var b = number % 10,
8692 output =
8693 ~~((number % 100) / 10) === 1
8694 ? 'th'
8695 : b === 1
8696 ? 'st'
8697 : b === 2
8698 ? 'nd'
8699 : b === 3
8700 ? 'rd'
8701 : 'th';
8702 return number + output;
8703 },
8704 });
8705
8706 //! moment.js locale configuration
8707
8708 hooks.defineLocale('en-in', {
8709 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8710 '_'
8711 ),
8712 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8713 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8714 '_'
8715 ),
8716 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8717 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8718 longDateFormat: {
8719 LT: 'h:mm A',
8720 LTS: 'h:mm:ss A',
8721 L: 'DD/MM/YYYY',
8722 LL: 'D MMMM YYYY',
8723 LLL: 'D MMMM YYYY h:mm A',
8724 LLLL: 'dddd, D MMMM YYYY h:mm A',
8725 },
8726 calendar: {
8727 sameDay: '[Today at] LT',
8728 nextDay: '[Tomorrow at] LT',
8729 nextWeek: 'dddd [at] LT',
8730 lastDay: '[Yesterday at] LT',
8731 lastWeek: '[Last] dddd [at] LT',
8732 sameElse: 'L',
8733 },
8734 relativeTime: {
8735 future: 'in %s',
8736 past: '%s ago',
8737 s: 'a few seconds',
8738 ss: '%d seconds',
8739 m: 'a minute',
8740 mm: '%d minutes',
8741 h: 'an hour',
8742 hh: '%d hours',
8743 d: 'a day',
8744 dd: '%d days',
8745 M: 'a month',
8746 MM: '%d months',
8747 y: 'a year',
8748 yy: '%d years',
8749 },
8750 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8751 ordinal: function (number) {
8752 var b = number % 10,
8753 output =
8754 ~~((number % 100) / 10) === 1
8755 ? 'th'
8756 : b === 1
8757 ? 'st'
8758 : b === 2
8759 ? 'nd'
8760 : b === 3
8761 ? 'rd'
8762 : 'th';
8763 return number + output;
8764 },
8765 week: {
8766 dow: 0, // Sunday is the first day of the week.
8767 doy: 6, // The week that contains Jan 1st is the first week of the year.
8768 },
8769 });
8770
8771 //! moment.js locale configuration
8772
8773 hooks.defineLocale('en-nz', {
8774 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8775 '_'
8776 ),
8777 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8778 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8779 '_'
8780 ),
8781 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8782 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8783 longDateFormat: {
8784 LT: 'h:mm A',
8785 LTS: 'h:mm:ss A',
8786 L: 'DD/MM/YYYY',
8787 LL: 'D MMMM YYYY',
8788 LLL: 'D MMMM YYYY h:mm A',
8789 LLLL: 'dddd, D MMMM YYYY h:mm A',
8790 },
8791 calendar: {
8792 sameDay: '[Today at] LT',
8793 nextDay: '[Tomorrow at] LT',
8794 nextWeek: 'dddd [at] LT',
8795 lastDay: '[Yesterday at] LT',
8796 lastWeek: '[Last] dddd [at] LT',
8797 sameElse: 'L',
8798 },
8799 relativeTime: {
8800 future: 'in %s',
8801 past: '%s ago',
8802 s: 'a few seconds',
8803 ss: '%d seconds',
8804 m: 'a minute',
8805 mm: '%d minutes',
8806 h: 'an hour',
8807 hh: '%d hours',
8808 d: 'a day',
8809 dd: '%d days',
8810 M: 'a month',
8811 MM: '%d months',
8812 y: 'a year',
8813 yy: '%d years',
8814 },
8815 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8816 ordinal: function (number) {
8817 var b = number % 10,
8818 output =
8819 ~~((number % 100) / 10) === 1
8820 ? 'th'
8821 : b === 1
8822 ? 'st'
8823 : b === 2
8824 ? 'nd'
8825 : b === 3
8826 ? 'rd'
8827 : 'th';
8828 return number + output;
8829 },
8830 week: {
8831 dow: 1, // Monday is the first day of the week.
8832 doy: 4, // The week that contains Jan 4th is the first week of the year.
8833 },
8834 });
8835
8836 //! moment.js locale configuration
8837
8838 hooks.defineLocale('en-sg', {
8839 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8840 '_'
8841 ),
8842 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8843 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8844 '_'
8845 ),
8846 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8847 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8848 longDateFormat: {
8849 LT: 'HH:mm',
8850 LTS: 'HH:mm:ss',
8851 L: 'DD/MM/YYYY',
8852 LL: 'D MMMM YYYY',
8853 LLL: 'D MMMM YYYY HH:mm',
8854 LLLL: 'dddd, D MMMM YYYY HH:mm',
8855 },
8856 calendar: {
8857 sameDay: '[Today at] LT',
8858 nextDay: '[Tomorrow at] LT',
8859 nextWeek: 'dddd [at] LT',
8860 lastDay: '[Yesterday at] LT',
8861 lastWeek: '[Last] dddd [at] LT',
8862 sameElse: 'L',
8863 },
8864 relativeTime: {
8865 future: 'in %s',
8866 past: '%s ago',
8867 s: 'a few seconds',
8868 ss: '%d seconds',
8869 m: 'a minute',
8870 mm: '%d minutes',
8871 h: 'an hour',
8872 hh: '%d hours',
8873 d: 'a day',
8874 dd: '%d days',
8875 M: 'a month',
8876 MM: '%d months',
8877 y: 'a year',
8878 yy: '%d years',
8879 },
8880 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8881 ordinal: function (number) {
8882 var b = number % 10,
8883 output =
8884 ~~((number % 100) / 10) === 1
8885 ? 'th'
8886 : b === 1
8887 ? 'st'
8888 : b === 2
8889 ? 'nd'
8890 : b === 3
8891 ? 'rd'
8892 : 'th';
8893 return number + output;
8894 },
8895 week: {
8896 dow: 1, // Monday is the first day of the week.
8897 doy: 4, // The week that contains Jan 4th is the first week of the year.
8898 },
8899 });
8900
8901 //! moment.js locale configuration
8902
8903 hooks.defineLocale('eo', {
8904 months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(
8905 '_'
8906 ),
8907 monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),
8908 weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),
8909 weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),
8910 weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),
8911 longDateFormat: {
8912 LT: 'HH:mm',
8913 LTS: 'HH:mm:ss',
8914 L: 'YYYY-MM-DD',
8915 LL: '[la] D[-an de] MMMM, YYYY',
8916 LLL: '[la] D[-an de] MMMM, YYYY HH:mm',
8917 LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',
8918 llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',
8919 },
8920 meridiemParse: /[ap]\.t\.m/i,
8921 isPM: function (input) {
8922 return input.charAt(0).toLowerCase() === 'p';
8923 },
8924 meridiem: function (hours, minutes, isLower) {
8925 if (hours > 11) {
8926 return isLower ? 'p.t.m.' : 'P.T.M.';
8927 } else {
8928 return isLower ? 'a.t.m.' : 'A.T.M.';
8929 }
8930 },
8931 calendar: {
8932 sameDay: '[Hodiaŭ je] LT',
8933 nextDay: '[Morgaŭ je] LT',
8934 nextWeek: 'dddd[n je] LT',
8935 lastDay: '[Hieraŭ je] LT',
8936 lastWeek: '[pasintan] dddd[n je] LT',
8937 sameElse: 'L',
8938 },
8939 relativeTime: {
8940 future: 'post %s',
8941 past: 'antaŭ %s',
8942 s: 'kelkaj sekundoj',
8943 ss: '%d sekundoj',
8944 m: 'unu minuto',
8945 mm: '%d minutoj',
8946 h: 'unu horo',
8947 hh: '%d horoj',
8948 d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo
8949 dd: '%d tagoj',
8950 M: 'unu monato',
8951 MM: '%d monatoj',
8952 y: 'unu jaro',
8953 yy: '%d jaroj',
8954 },
8955 dayOfMonthOrdinalParse: /\d{1,2}a/,
8956 ordinal: '%da',
8957 week: {
8958 dow: 1, // Monday is the first day of the week.
8959 doy: 7, // The week that contains Jan 7th is the first week of the year.
8960 },
8961 });
8962
8963 //! moment.js locale configuration
8964
8965 var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
8966 '_'
8967 ),
8968 monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
8969 monthsParse$2 = [
8970 /^ene/i,
8971 /^feb/i,
8972 /^mar/i,
8973 /^abr/i,
8974 /^may/i,
8975 /^jun/i,
8976 /^jul/i,
8977 /^ago/i,
8978 /^sep/i,
8979 /^oct/i,
8980 /^nov/i,
8981 /^dic/i,
8982 ],
8983 monthsRegex$3 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
8984
8985 hooks.defineLocale('es-do', {
8986 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
8987 '_'
8988 ),
8989 monthsShort: function (m, format) {
8990 if (!m) {
8991 return monthsShortDot;
8992 } else if (/-MMM-/.test(format)) {
8993 return monthsShort$1[m.month()];
8994 } else {
8995 return monthsShortDot[m.month()];
8996 }
8997 },
8998 monthsRegex: monthsRegex$3,
8999 monthsShortRegex: monthsRegex$3,
9000 monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
9001 monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
9002 monthsParse: monthsParse$2,
9003 longMonthsParse: monthsParse$2,
9004 shortMonthsParse: monthsParse$2,
9005 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
9006 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
9007 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
9008 weekdaysParseExact: true,
9009 longDateFormat: {
9010 LT: 'h:mm A',
9011 LTS: 'h:mm:ss A',
9012 L: 'DD/MM/YYYY',
9013 LL: 'D [de] MMMM [de] YYYY',
9014 LLL: 'D [de] MMMM [de] YYYY h:mm A',
9015 LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
9016 },
9017 calendar: {
9018 sameDay: function () {
9019 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9020 },
9021 nextDay: function () {
9022 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9023 },
9024 nextWeek: function () {
9025 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9026 },
9027 lastDay: function () {
9028 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9029 },
9030 lastWeek: function () {
9031 return (
9032 '[el] dddd [pasado a la' +
9033 (this.hours() !== 1 ? 's' : '') +
9034 '] LT'
9035 );
9036 },
9037 sameElse: 'L',
9038 },
9039 relativeTime: {
9040 future: 'en %s',
9041 past: 'hace %s',
9042 s: 'unos segundos',
9043 ss: '%d segundos',
9044 m: 'un minuto',
9045 mm: '%d minutos',
9046 h: 'una hora',
9047 hh: '%d horas',
9048 d: 'un día',
9049 dd: '%d días',
9050 w: 'una semana',
9051 ww: '%d semanas',
9052 M: 'un mes',
9053 MM: '%d meses',
9054 y: 'un año',
9055 yy: '%d años',
9056 },
9057 dayOfMonthOrdinalParse: /\d{1,2}º/,
9058 ordinal: '%dº',
9059 week: {
9060 dow: 1, // Monday is the first day of the week.
9061 doy: 4, // The week that contains Jan 4th is the first week of the year.
9062 },
9063 });
9064
9065 //! moment.js locale configuration
9066
9067 var monthsShortDot$1 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
9068 '_'
9069 ),
9070 monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
9071 monthsParse$3 = [
9072 /^ene/i,
9073 /^feb/i,
9074 /^mar/i,
9075 /^abr/i,
9076 /^may/i,
9077 /^jun/i,
9078 /^jul/i,
9079 /^ago/i,
9080 /^sep/i,
9081 /^oct/i,
9082 /^nov/i,
9083 /^dic/i,
9084 ],
9085 monthsRegex$4 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
9086
9087 hooks.defineLocale('es-mx', {
9088 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
9089 '_'
9090 ),
9091 monthsShort: function (m, format) {
9092 if (!m) {
9093 return monthsShortDot$1;
9094 } else if (/-MMM-/.test(format)) {
9095 return monthsShort$2[m.month()];
9096 } else {
9097 return monthsShortDot$1[m.month()];
9098 }
9099 },
9100 monthsRegex: monthsRegex$4,
9101 monthsShortRegex: monthsRegex$4,
9102 monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
9103 monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
9104 monthsParse: monthsParse$3,
9105 longMonthsParse: monthsParse$3,
9106 shortMonthsParse: monthsParse$3,
9107 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
9108 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
9109 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
9110 weekdaysParseExact: true,
9111 longDateFormat: {
9112 LT: 'H:mm',
9113 LTS: 'H:mm:ss',
9114 L: 'DD/MM/YYYY',
9115 LL: 'D [de] MMMM [de] YYYY',
9116 LLL: 'D [de] MMMM [de] YYYY H:mm',
9117 LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
9118 },
9119 calendar: {
9120 sameDay: function () {
9121 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9122 },
9123 nextDay: function () {
9124 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9125 },
9126 nextWeek: function () {
9127 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9128 },
9129 lastDay: function () {
9130 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9131 },
9132 lastWeek: function () {
9133 return (
9134 '[el] dddd [pasado a la' +
9135 (this.hours() !== 1 ? 's' : '') +
9136 '] LT'
9137 );
9138 },
9139 sameElse: 'L',
9140 },
9141 relativeTime: {
9142 future: 'en %s',
9143 past: 'hace %s',
9144 s: 'unos segundos',
9145 ss: '%d segundos',
9146 m: 'un minuto',
9147 mm: '%d minutos',
9148 h: 'una hora',
9149 hh: '%d horas',
9150 d: 'un día',
9151 dd: '%d días',
9152 w: 'una semana',
9153 ww: '%d semanas',
9154 M: 'un mes',
9155 MM: '%d meses',
9156 y: 'un año',
9157 yy: '%d años',
9158 },
9159 dayOfMonthOrdinalParse: /\d{1,2}º/,
9160 ordinal: '%dº',
9161 week: {
9162 dow: 0, // Sunday is the first day of the week.
9163 doy: 4, // The week that contains Jan 4th is the first week of the year.
9164 },
9165 invalidDate: 'Fecha inválida',
9166 });
9167
9168 //! moment.js locale configuration
9169
9170 var monthsShortDot$2 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
9171 '_'
9172 ),
9173 monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
9174 monthsParse$4 = [
9175 /^ene/i,
9176 /^feb/i,
9177 /^mar/i,
9178 /^abr/i,
9179 /^may/i,
9180 /^jun/i,
9181 /^jul/i,
9182 /^ago/i,
9183 /^sep/i,
9184 /^oct/i,
9185 /^nov/i,
9186 /^dic/i,
9187 ],
9188 monthsRegex$5 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
9189
9190 hooks.defineLocale('es-us', {
9191 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
9192 '_'
9193 ),
9194 monthsShort: function (m, format) {
9195 if (!m) {
9196 return monthsShortDot$2;
9197 } else if (/-MMM-/.test(format)) {
9198 return monthsShort$3[m.month()];
9199 } else {
9200 return monthsShortDot$2[m.month()];
9201 }
9202 },
9203 monthsRegex: monthsRegex$5,
9204 monthsShortRegex: monthsRegex$5,
9205 monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
9206 monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
9207 monthsParse: monthsParse$4,
9208 longMonthsParse: monthsParse$4,
9209 shortMonthsParse: monthsParse$4,
9210 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
9211 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
9212 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
9213 weekdaysParseExact: true,
9214 longDateFormat: {
9215 LT: 'h:mm A',
9216 LTS: 'h:mm:ss A',
9217 L: 'MM/DD/YYYY',
9218 LL: 'D [de] MMMM [de] YYYY',
9219 LLL: 'D [de] MMMM [de] YYYY h:mm A',
9220 LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
9221 },
9222 calendar: {
9223 sameDay: function () {
9224 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9225 },
9226 nextDay: function () {
9227 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9228 },
9229 nextWeek: function () {
9230 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9231 },
9232 lastDay: function () {
9233 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9234 },
9235 lastWeek: function () {
9236 return (
9237 '[el] dddd [pasado a la' +
9238 (this.hours() !== 1 ? 's' : '') +
9239 '] LT'
9240 );
9241 },
9242 sameElse: 'L',
9243 },
9244 relativeTime: {
9245 future: 'en %s',
9246 past: 'hace %s',
9247 s: 'unos segundos',
9248 ss: '%d segundos',
9249 m: 'un minuto',
9250 mm: '%d minutos',
9251 h: 'una hora',
9252 hh: '%d horas',
9253 d: 'un día',
9254 dd: '%d días',
9255 w: 'una semana',
9256 ww: '%d semanas',
9257 M: 'un mes',
9258 MM: '%d meses',
9259 y: 'un año',
9260 yy: '%d años',
9261 },
9262 dayOfMonthOrdinalParse: /\d{1,2}º/,
9263 ordinal: '%dº',
9264 week: {
9265 dow: 0, // Sunday is the first day of the week.
9266 doy: 6, // The week that contains Jan 6th is the first week of the year.
9267 },
9268 });
9269
9270 //! moment.js locale configuration
9271
9272 var monthsShortDot$3 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
9273 '_'
9274 ),
9275 monthsShort$4 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
9276 monthsParse$5 = [
9277 /^ene/i,
9278 /^feb/i,
9279 /^mar/i,
9280 /^abr/i,
9281 /^may/i,
9282 /^jun/i,
9283 /^jul/i,
9284 /^ago/i,
9285 /^sep/i,
9286 /^oct/i,
9287 /^nov/i,
9288 /^dic/i,
9289 ],
9290 monthsRegex$6 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
9291
9292 hooks.defineLocale('es', {
9293 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
9294 '_'
9295 ),
9296 monthsShort: function (m, format) {
9297 if (!m) {
9298 return monthsShortDot$3;
9299 } else if (/-MMM-/.test(format)) {
9300 return monthsShort$4[m.month()];
9301 } else {
9302 return monthsShortDot$3[m.month()];
9303 }
9304 },
9305 monthsRegex: monthsRegex$6,
9306 monthsShortRegex: monthsRegex$6,
9307 monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
9308 monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
9309 monthsParse: monthsParse$5,
9310 longMonthsParse: monthsParse$5,
9311 shortMonthsParse: monthsParse$5,
9312 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
9313 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
9314 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
9315 weekdaysParseExact: true,
9316 longDateFormat: {
9317 LT: 'H:mm',
9318 LTS: 'H:mm:ss',
9319 L: 'DD/MM/YYYY',
9320 LL: 'D [de] MMMM [de] YYYY',
9321 LLL: 'D [de] MMMM [de] YYYY H:mm',
9322 LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
9323 },
9324 calendar: {
9325 sameDay: function () {
9326 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9327 },
9328 nextDay: function () {
9329 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9330 },
9331 nextWeek: function () {
9332 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9333 },
9334 lastDay: function () {
9335 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9336 },
9337 lastWeek: function () {
9338 return (
9339 '[el] dddd [pasado a la' +
9340 (this.hours() !== 1 ? 's' : '') +
9341 '] LT'
9342 );
9343 },
9344 sameElse: 'L',
9345 },
9346 relativeTime: {
9347 future: 'en %s',
9348 past: 'hace %s',
9349 s: 'unos segundos',
9350 ss: '%d segundos',
9351 m: 'un minuto',
9352 mm: '%d minutos',
9353 h: 'una hora',
9354 hh: '%d horas',
9355 d: 'un día',
9356 dd: '%d días',
9357 w: 'una semana',
9358 ww: '%d semanas',
9359 M: 'un mes',
9360 MM: '%d meses',
9361 y: 'un año',
9362 yy: '%d años',
9363 },
9364 dayOfMonthOrdinalParse: /\d{1,2}º/,
9365 ordinal: '%dº',
9366 week: {
9367 dow: 1, // Monday is the first day of the week.
9368 doy: 4, // The week that contains Jan 4th is the first week of the year.
9369 },
9370 invalidDate: 'Fecha inválida',
9371 });
9372
9373 //! moment.js locale configuration
9374
9375 function processRelativeTime$3(number, withoutSuffix, key, isFuture) {
9376 var format = {
9377 s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
9378 ss: [number + 'sekundi', number + 'sekundit'],
9379 m: ['ühe minuti', 'üks minut'],
9380 mm: [number + ' minuti', number + ' minutit'],
9381 h: ['ühe tunni', 'tund aega', 'üks tund'],
9382 hh: [number + ' tunni', number + ' tundi'],
9383 d: ['ühe päeva', 'üks päev'],
9384 M: ['kuu aja', 'kuu aega', 'üks kuu'],
9385 MM: [number + ' kuu', number + ' kuud'],
9386 y: ['ühe aasta', 'aasta', 'üks aasta'],
9387 yy: [number + ' aasta', number + ' aastat'],
9388 };
9389 if (withoutSuffix) {
9390 return format[key][2] ? format[key][2] : format[key][1];
9391 }
9392 return isFuture ? format[key][0] : format[key][1];
9393 }
9394
9395 hooks.defineLocale('et', {
9396 months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(
9397 '_'
9398 ),
9399 monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split(
9400 '_'
9401 ),
9402 weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(
9403 '_'
9404 ),
9405 weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),
9406 weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),
9407 longDateFormat: {
9408 LT: 'H:mm',
9409 LTS: 'H:mm:ss',
9410 L: 'DD.MM.YYYY',
9411 LL: 'D. MMMM YYYY',
9412 LLL: 'D. MMMM YYYY H:mm',
9413 LLLL: 'dddd, D. MMMM YYYY H:mm',
9414 },
9415 calendar: {
9416 sameDay: '[Täna,] LT',
9417 nextDay: '[Homme,] LT',
9418 nextWeek: '[Järgmine] dddd LT',
9419 lastDay: '[Eile,] LT',
9420 lastWeek: '[Eelmine] dddd LT',
9421 sameElse: 'L',
9422 },
9423 relativeTime: {
9424 future: '%s pärast',
9425 past: '%s tagasi',
9426 s: processRelativeTime$3,
9427 ss: processRelativeTime$3,
9428 m: processRelativeTime$3,
9429 mm: processRelativeTime$3,
9430 h: processRelativeTime$3,
9431 hh: processRelativeTime$3,
9432 d: processRelativeTime$3,
9433 dd: '%d päeva',
9434 M: processRelativeTime$3,
9435 MM: processRelativeTime$3,
9436 y: processRelativeTime$3,
9437 yy: processRelativeTime$3,
9438 },
9439 dayOfMonthOrdinalParse: /\d{1,2}\./,
9440 ordinal: '%d.',
9441 week: {
9442 dow: 1, // Monday is the first day of the week.
9443 doy: 4, // The week that contains Jan 4th is the first week of the year.
9444 },
9445 });
9446
9447 //! moment.js locale configuration
9448
9449 hooks.defineLocale('eu', {
9450 months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(
9451 '_'
9452 ),
9453 monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(
9454 '_'
9455 ),
9456 monthsParseExact: true,
9457 weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(
9458 '_'
9459 ),
9460 weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),
9461 weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),
9462 weekdaysParseExact: true,
9463 longDateFormat: {
9464 LT: 'HH:mm',
9465 LTS: 'HH:mm:ss',
9466 L: 'YYYY-MM-DD',
9467 LL: 'YYYY[ko] MMMM[ren] D[a]',
9468 LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',
9469 LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
9470 l: 'YYYY-M-D',
9471 ll: 'YYYY[ko] MMM D[a]',
9472 lll: 'YYYY[ko] MMM D[a] HH:mm',
9473 llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',
9474 },
9475 calendar: {
9476 sameDay: '[gaur] LT[etan]',
9477 nextDay: '[bihar] LT[etan]',
9478 nextWeek: 'dddd LT[etan]',
9479 lastDay: '[atzo] LT[etan]',
9480 lastWeek: '[aurreko] dddd LT[etan]',
9481 sameElse: 'L',
9482 },
9483 relativeTime: {
9484 future: '%s barru',
9485 past: 'duela %s',
9486 s: 'segundo batzuk',
9487 ss: '%d segundo',
9488 m: 'minutu bat',
9489 mm: '%d minutu',
9490 h: 'ordu bat',
9491 hh: '%d ordu',
9492 d: 'egun bat',
9493 dd: '%d egun',
9494 M: 'hilabete bat',
9495 MM: '%d hilabete',
9496 y: 'urte bat',
9497 yy: '%d urte',
9498 },
9499 dayOfMonthOrdinalParse: /\d{1,2}\./,
9500 ordinal: '%d.',
9501 week: {
9502 dow: 1, // Monday is the first day of the week.
9503 doy: 7, // The week that contains Jan 7th is the first week of the year.
9504 },
9505 });
9506
9507 //! moment.js locale configuration
9508
9509 var symbolMap$6 = {
9510 1: '۱',
9511 2: '۲',
9512 3: '۳',
9513 4: '۴',
9514 5: '۵',
9515 6: '۶',
9516 7: '۷',
9517 8: '۸',
9518 9: '۹',
9519 0: '۰',
9520 },
9521 numberMap$5 = {
9522 '۱': '1',
9523 '۲': '2',
9524 '۳': '3',
9525 '۴': '4',
9526 '۵': '5',
9527 '۶': '6',
9528 '۷': '7',
9529 '۸': '8',
9530 '۹': '9',
9531 '۰': '0',
9532 };
9533
9534 hooks.defineLocale('fa', {
9535 months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(
9536 '_'
9537 ),
9538 monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(
9539 '_'
9540 ),
9541 weekdays: 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split(
9542 '_'
9543 ),
9544 weekdaysShort: 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split(
9545 '_'
9546 ),
9547 weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),
9548 weekdaysParseExact: true,
9549 longDateFormat: {
9550 LT: 'HH:mm',
9551 LTS: 'HH:mm:ss',
9552 L: 'DD/MM/YYYY',
9553 LL: 'D MMMM YYYY',
9554 LLL: 'D MMMM YYYY HH:mm',
9555 LLLL: 'dddd, D MMMM YYYY HH:mm',
9556 },
9557 meridiemParse: /قبل از ظهر|بعد از ظهر/,
9558 isPM: function (input) {
9559 return /بعد از ظهر/.test(input);
9560 },
9561 meridiem: function (hour, minute, isLower) {
9562 if (hour < 12) {
9563 return 'قبل از ظهر';
9564 } else {
9565 return 'بعد از ظهر';
9566 }
9567 },
9568 calendar: {
9569 sameDay: '[امروز ساعت] LT',
9570 nextDay: '[فردا ساعت] LT',
9571 nextWeek: 'dddd [ساعت] LT',
9572 lastDay: '[دیروز ساعت] LT',
9573 lastWeek: 'dddd [پیش] [ساعت] LT',
9574 sameElse: 'L',
9575 },
9576 relativeTime: {
9577 future: 'در %s',
9578 past: '%s پیش',
9579 s: 'چند ثانیه',
9580 ss: '%d ثانیه',
9581 m: 'یک دقیقه',
9582 mm: '%d دقیقه',
9583 h: 'یک ساعت',
9584 hh: '%d ساعت',
9585 d: 'یک روز',
9586 dd: '%d روز',
9587 M: 'یک ماه',
9588 MM: '%d ماه',
9589 y: 'یک سال',
9590 yy: '%d سال',
9591 },
9592 preparse: function (string) {
9593 return string
9594 .replace(/[۰-۹]/g, function (match) {
9595 return numberMap$5[match];
9596 })
9597 .replace(/،/g, ',');
9598 },
9599 postformat: function (string) {
9600 return string
9601 .replace(/\d/g, function (match) {
9602 return symbolMap$6[match];
9603 })
9604 .replace(/,/g, '،');
9605 },
9606 dayOfMonthOrdinalParse: /\d{1,2}م/,
9607 ordinal: '%dم',
9608 week: {
9609 dow: 6, // Saturday is the first day of the week.
9610 doy: 12, // The week that contains Jan 12th is the first week of the year.
9611 },
9612 });
9613
9614 //! moment.js locale configuration
9615
9616 var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(
9617 ' '
9618 ),
9619 numbersFuture = [
9620 'nolla',
9621 'yhden',
9622 'kahden',
9623 'kolmen',
9624 'neljän',
9625 'viiden',
9626 'kuuden',
9627 numbersPast[7],
9628 numbersPast[8],
9629 numbersPast[9],
9630 ];
9631 function translate$2(number, withoutSuffix, key, isFuture) {
9632 var result = '';
9633 switch (key) {
9634 case 's':
9635 return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
9636 case 'ss':
9637 result = isFuture ? 'sekunnin' : 'sekuntia';
9638 break;
9639 case 'm':
9640 return isFuture ? 'minuutin' : 'minuutti';
9641 case 'mm':
9642 result = isFuture ? 'minuutin' : 'minuuttia';
9643 break;
9644 case 'h':
9645 return isFuture ? 'tunnin' : 'tunti';
9646 case 'hh':
9647 result = isFuture ? 'tunnin' : 'tuntia';
9648 break;
9649 case 'd':
9650 return isFuture ? 'päivän' : 'päivä';
9651 case 'dd':
9652 result = isFuture ? 'päivän' : 'päivää';
9653 break;
9654 case 'M':
9655 return isFuture ? 'kuukauden' : 'kuukausi';
9656 case 'MM':
9657 result = isFuture ? 'kuukauden' : 'kuukautta';
9658 break;
9659 case 'y':
9660 return isFuture ? 'vuoden' : 'vuosi';
9661 case 'yy':
9662 result = isFuture ? 'vuoden' : 'vuotta';
9663 break;
9664 }
9665 result = verbalNumber(number, isFuture) + ' ' + result;
9666 return result;
9667 }
9668 function verbalNumber(number, isFuture) {
9669 return number < 10
9670 ? isFuture
9671 ? numbersFuture[number]
9672 : numbersPast[number]
9673 : number;
9674 }
9675
9676 hooks.defineLocale('fi', {
9677 months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(
9678 '_'
9679 ),
9680 monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(
9681 '_'
9682 ),
9683 weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(
9684 '_'
9685 ),
9686 weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),
9687 weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),
9688 longDateFormat: {
9689 LT: 'HH.mm',
9690 LTS: 'HH.mm.ss',
9691 L: 'DD.MM.YYYY',
9692 LL: 'Do MMMM[ta] YYYY',
9693 LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',
9694 LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
9695 l: 'D.M.YYYY',
9696 ll: 'Do MMM YYYY',
9697 lll: 'Do MMM YYYY, [klo] HH.mm',
9698 llll: 'ddd, Do MMM YYYY, [klo] HH.mm',
9699 },
9700 calendar: {
9701 sameDay: '[tänään] [klo] LT',
9702 nextDay: '[huomenna] [klo] LT',
9703 nextWeek: 'dddd [klo] LT',
9704 lastDay: '[eilen] [klo] LT',
9705 lastWeek: '[viime] dddd[na] [klo] LT',
9706 sameElse: 'L',
9707 },
9708 relativeTime: {
9709 future: '%s päästä',
9710 past: '%s sitten',
9711 s: translate$2,
9712 ss: translate$2,
9713 m: translate$2,
9714 mm: translate$2,
9715 h: translate$2,
9716 hh: translate$2,
9717 d: translate$2,
9718 dd: translate$2,
9719 M: translate$2,
9720 MM: translate$2,
9721 y: translate$2,
9722 yy: translate$2,
9723 },
9724 dayOfMonthOrdinalParse: /\d{1,2}\./,
9725 ordinal: '%d.',
9726 week: {
9727 dow: 1, // Monday is the first day of the week.
9728 doy: 4, // The week that contains Jan 4th is the first week of the year.
9729 },
9730 });
9731
9732 //! moment.js locale configuration
9733
9734 hooks.defineLocale('fil', {
9735 months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
9736 '_'
9737 ),
9738 monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
9739 weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
9740 '_'
9741 ),
9742 weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
9743 weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
9744 longDateFormat: {
9745 LT: 'HH:mm',
9746 LTS: 'HH:mm:ss',
9747 L: 'MM/D/YYYY',
9748 LL: 'MMMM D, YYYY',
9749 LLL: 'MMMM D, YYYY HH:mm',
9750 LLLL: 'dddd, MMMM DD, YYYY HH:mm',
9751 },
9752 calendar: {
9753 sameDay: 'LT [ngayong araw]',
9754 nextDay: '[Bukas ng] LT',
9755 nextWeek: 'LT [sa susunod na] dddd',
9756 lastDay: 'LT [kahapon]',
9757 lastWeek: 'LT [noong nakaraang] dddd',
9758 sameElse: 'L',
9759 },
9760 relativeTime: {
9761 future: 'sa loob ng %s',
9762 past: '%s ang nakalipas',
9763 s: 'ilang segundo',
9764 ss: '%d segundo',
9765 m: 'isang minuto',
9766 mm: '%d minuto',
9767 h: 'isang oras',
9768 hh: '%d oras',
9769 d: 'isang araw',
9770 dd: '%d araw',
9771 M: 'isang buwan',
9772 MM: '%d buwan',
9773 y: 'isang taon',
9774 yy: '%d taon',
9775 },
9776 dayOfMonthOrdinalParse: /\d{1,2}/,
9777 ordinal: function (number) {
9778 return number;
9779 },
9780 week: {
9781 dow: 1, // Monday is the first day of the week.
9782 doy: 4, // The week that contains Jan 4th is the first week of the year.
9783 },
9784 });
9785
9786 //! moment.js locale configuration
9787
9788 hooks.defineLocale('fo', {
9789 months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(
9790 '_'
9791 ),
9792 monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
9793 weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(
9794 '_'
9795 ),
9796 weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
9797 weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),
9798 longDateFormat: {
9799 LT: 'HH:mm',
9800 LTS: 'HH:mm:ss',
9801 L: 'DD/MM/YYYY',
9802 LL: 'D MMMM YYYY',
9803 LLL: 'D MMMM YYYY HH:mm',
9804 LLLL: 'dddd D. MMMM, YYYY HH:mm',
9805 },
9806 calendar: {
9807 sameDay: '[Í dag kl.] LT',
9808 nextDay: '[Í morgin kl.] LT',
9809 nextWeek: 'dddd [kl.] LT',
9810 lastDay: '[Í gjár kl.] LT',
9811 lastWeek: '[síðstu] dddd [kl] LT',
9812 sameElse: 'L',
9813 },
9814 relativeTime: {
9815 future: 'um %s',
9816 past: '%s síðani',
9817 s: 'fá sekund',
9818 ss: '%d sekundir',
9819 m: 'ein minuttur',
9820 mm: '%d minuttir',
9821 h: 'ein tími',
9822 hh: '%d tímar',
9823 d: 'ein dagur',
9824 dd: '%d dagar',
9825 M: 'ein mánaður',
9826 MM: '%d mánaðir',
9827 y: 'eitt ár',
9828 yy: '%d ár',
9829 },
9830 dayOfMonthOrdinalParse: /\d{1,2}\./,
9831 ordinal: '%d.',
9832 week: {
9833 dow: 1, // Monday is the first day of the week.
9834 doy: 4, // The week that contains Jan 4th is the first week of the year.
9835 },
9836 });
9837
9838 //! moment.js locale configuration
9839
9840 hooks.defineLocale('fr-ca', {
9841 months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
9842 '_'
9843 ),
9844 monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
9845 '_'
9846 ),
9847 monthsParseExact: true,
9848 weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
9849 weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
9850 weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
9851 weekdaysParseExact: true,
9852 longDateFormat: {
9853 LT: 'HH:mm',
9854 LTS: 'HH:mm:ss',
9855 L: 'YYYY-MM-DD',
9856 LL: 'D MMMM YYYY',
9857 LLL: 'D MMMM YYYY HH:mm',
9858 LLLL: 'dddd D MMMM YYYY HH:mm',
9859 },
9860 calendar: {
9861 sameDay: '[Aujourd’hui à] LT',
9862 nextDay: '[Demain à] LT',
9863 nextWeek: 'dddd [à] LT',
9864 lastDay: '[Hier à] LT',
9865 lastWeek: 'dddd [dernier à] LT',
9866 sameElse: 'L',
9867 },
9868 relativeTime: {
9869 future: 'dans %s',
9870 past: 'il y a %s',
9871 s: 'quelques secondes',
9872 ss: '%d secondes',
9873 m: 'une minute',
9874 mm: '%d minutes',
9875 h: 'une heure',
9876 hh: '%d heures',
9877 d: 'un jour',
9878 dd: '%d jours',
9879 M: 'un mois',
9880 MM: '%d mois',
9881 y: 'un an',
9882 yy: '%d ans',
9883 },
9884 dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
9885 ordinal: function (number, period) {
9886 switch (period) {
9887 // Words with masculine grammatical gender: mois, trimestre, jour
9888 default:
9889 case 'M':
9890 case 'Q':
9891 case 'D':
9892 case 'DDD':
9893 case 'd':
9894 return number + (number === 1 ? 'er' : 'e');
9895
9896 // Words with feminine grammatical gender: semaine
9897 case 'w':
9898 case 'W':
9899 return number + (number === 1 ? 're' : 'e');
9900 }
9901 },
9902 });
9903
9904 //! moment.js locale configuration
9905
9906 hooks.defineLocale('fr-ch', {
9907 months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
9908 '_'
9909 ),
9910 monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
9911 '_'
9912 ),
9913 monthsParseExact: true,
9914 weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
9915 weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
9916 weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
9917 weekdaysParseExact: true,
9918 longDateFormat: {
9919 LT: 'HH:mm',
9920 LTS: 'HH:mm:ss',
9921 L: 'DD.MM.YYYY',
9922 LL: 'D MMMM YYYY',
9923 LLL: 'D MMMM YYYY HH:mm',
9924 LLLL: 'dddd D MMMM YYYY HH:mm',
9925 },
9926 calendar: {
9927 sameDay: '[Aujourd’hui à] LT',
9928 nextDay: '[Demain à] LT',
9929 nextWeek: 'dddd [à] LT',
9930 lastDay: '[Hier à] LT',
9931 lastWeek: 'dddd [dernier à] LT',
9932 sameElse: 'L',
9933 },
9934 relativeTime: {
9935 future: 'dans %s',
9936 past: 'il y a %s',
9937 s: 'quelques secondes',
9938 ss: '%d secondes',
9939 m: 'une minute',
9940 mm: '%d minutes',
9941 h: 'une heure',
9942 hh: '%d heures',
9943 d: 'un jour',
9944 dd: '%d jours',
9945 M: 'un mois',
9946 MM: '%d mois',
9947 y: 'un an',
9948 yy: '%d ans',
9949 },
9950 dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
9951 ordinal: function (number, period) {
9952 switch (period) {
9953 // Words with masculine grammatical gender: mois, trimestre, jour
9954 default:
9955 case 'M':
9956 case 'Q':
9957 case 'D':
9958 case 'DDD':
9959 case 'd':
9960 return number + (number === 1 ? 'er' : 'e');
9961
9962 // Words with feminine grammatical gender: semaine
9963 case 'w':
9964 case 'W':
9965 return number + (number === 1 ? 're' : 'e');
9966 }
9967 },
9968 week: {
9969 dow: 1, // Monday is the first day of the week.
9970 doy: 4, // The week that contains Jan 4th is the first week of the year.
9971 },
9972 });
9973
9974 //! moment.js locale configuration
9975
9976 var monthsStrictRegex$1 = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
9977 monthsShortStrictRegex$1 = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,
9978 monthsRegex$7 = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
9979 monthsParse$6 = [
9980 /^janv/i,
9981 /^févr/i,
9982 /^mars/i,
9983 /^avr/i,
9984 /^mai/i,
9985 /^juin/i,
9986 /^juil/i,
9987 /^août/i,
9988 /^sept/i,
9989 /^oct/i,
9990 /^nov/i,
9991 /^déc/i,
9992 ];
9993
9994 hooks.defineLocale('fr', {
9995 months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
9996 '_'
9997 ),
9998 monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
9999 '_'
10000 ),
10001 monthsRegex: monthsRegex$7,
10002 monthsShortRegex: monthsRegex$7,
10003 monthsStrictRegex: monthsStrictRegex$1,
10004 monthsShortStrictRegex: monthsShortStrictRegex$1,
10005 monthsParse: monthsParse$6,
10006 longMonthsParse: monthsParse$6,
10007 shortMonthsParse: monthsParse$6,
10008 weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
10009 weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
10010 weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
10011 weekdaysParseExact: true,
10012 longDateFormat: {
10013 LT: 'HH:mm',
10014 LTS: 'HH:mm:ss',
10015 L: 'DD/MM/YYYY',
10016 LL: 'D MMMM YYYY',
10017 LLL: 'D MMMM YYYY HH:mm',
10018 LLLL: 'dddd D MMMM YYYY HH:mm',
10019 },
10020 calendar: {
10021 sameDay: '[Aujourd’hui à] LT',
10022 nextDay: '[Demain à] LT',
10023 nextWeek: 'dddd [à] LT',
10024 lastDay: '[Hier à] LT',
10025 lastWeek: 'dddd [dernier à] LT',
10026 sameElse: 'L',
10027 },
10028 relativeTime: {
10029 future: 'dans %s',
10030 past: 'il y a %s',
10031 s: 'quelques secondes',
10032 ss: '%d secondes',
10033 m: 'une minute',
10034 mm: '%d minutes',
10035 h: 'une heure',
10036 hh: '%d heures',
10037 d: 'un jour',
10038 dd: '%d jours',
10039 w: 'une semaine',
10040 ww: '%d semaines',
10041 M: 'un mois',
10042 MM: '%d mois',
10043 y: 'un an',
10044 yy: '%d ans',
10045 },
10046 dayOfMonthOrdinalParse: /\d{1,2}(er|)/,
10047 ordinal: function (number, period) {
10048 switch (period) {
10049 // TODO: Return 'e' when day of month > 1. Move this case inside
10050 // block for masculine words below.
10051 // See https://github.com/moment/moment/issues/3375
10052 case 'D':
10053 return number + (number === 1 ? 'er' : '');
10054
10055 // Words with masculine grammatical gender: mois, trimestre, jour
10056 default:
10057 case 'M':
10058 case 'Q':
10059 case 'DDD':
10060 case 'd':
10061 return number + (number === 1 ? 'er' : 'e');
10062
10063 // Words with feminine grammatical gender: semaine
10064 case 'w':
10065 case 'W':
10066 return number + (number === 1 ? 're' : 'e');
10067 }
10068 },
10069 week: {
10070 dow: 1, // Monday is the first day of the week.
10071 doy: 4, // The week that contains Jan 4th is the first week of the year.
10072 },
10073 });
10074
10075 //! moment.js locale configuration
10076
10077 var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split(
10078 '_'
10079 ),
10080 monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split(
10081 '_'
10082 );
10083
10084 hooks.defineLocale('fy', {
10085 months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(
10086 '_'
10087 ),
10088 monthsShort: function (m, format) {
10089 if (!m) {
10090 return monthsShortWithDots;
10091 } else if (/-MMM-/.test(format)) {
10092 return monthsShortWithoutDots[m.month()];
10093 } else {
10094 return monthsShortWithDots[m.month()];
10095 }
10096 },
10097 monthsParseExact: true,
10098 weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(
10099 '_'
10100 ),
10101 weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),
10102 weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
10103 weekdaysParseExact: true,
10104 longDateFormat: {
10105 LT: 'HH:mm',
10106 LTS: 'HH:mm:ss',
10107 L: 'DD-MM-YYYY',
10108 LL: 'D MMMM YYYY',
10109 LLL: 'D MMMM YYYY HH:mm',
10110 LLLL: 'dddd D MMMM YYYY HH:mm',
10111 },
10112 calendar: {
10113 sameDay: '[hjoed om] LT',
10114 nextDay: '[moarn om] LT',
10115 nextWeek: 'dddd [om] LT',
10116 lastDay: '[juster om] LT',
10117 lastWeek: '[ôfrûne] dddd [om] LT',
10118 sameElse: 'L',
10119 },
10120 relativeTime: {
10121 future: 'oer %s',
10122 past: '%s lyn',
10123 s: 'in pear sekonden',
10124 ss: '%d sekonden',
10125 m: 'ien minút',
10126 mm: '%d minuten',
10127 h: 'ien oere',
10128 hh: '%d oeren',
10129 d: 'ien dei',
10130 dd: '%d dagen',
10131 M: 'ien moanne',
10132 MM: '%d moannen',
10133 y: 'ien jier',
10134 yy: '%d jierren',
10135 },
10136 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
10137 ordinal: function (number) {
10138 return (
10139 number +
10140 (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
10141 );
10142 },
10143 week: {
10144 dow: 1, // Monday is the first day of the week.
10145 doy: 4, // The week that contains Jan 4th is the first week of the year.
10146 },
10147 });
10148
10149 //! moment.js locale configuration
10150
10151 var months$6 = [
10152 'Eanáir',
10153 'Feabhra',
10154 'Márta',
10155 'Aibreán',
10156 'Bealtaine',
10157 'Meitheamh',
10158 'Iúil',
10159 'Lúnasa',
10160 'Meán Fómhair',
10161 'Deireadh Fómhair',
10162 'Samhain',
10163 'Nollaig',
10164 ],
10165 monthsShort$5 = [
10166 'Ean',
10167 'Feabh',
10168 'Márt',
10169 'Aib',
10170 'Beal',
10171 'Meith',
10172 'Iúil',
10173 'Lún',
10174 'M.F.',
10175 'D.F.',
10176 'Samh',
10177 'Noll',
10178 ],
10179 weekdays$1 = [
10180 'Dé Domhnaigh',
10181 'Dé Luain',
10182 'Dé Máirt',
10183 'Dé Céadaoin',
10184 'Déardaoin',
10185 'Dé hAoine',
10186 'Dé Sathairn',
10187 ],
10188 weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],
10189 weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];
10190
10191 hooks.defineLocale('ga', {
10192 months: months$6,
10193 monthsShort: monthsShort$5,
10194 monthsParseExact: true,
10195 weekdays: weekdays$1,
10196 weekdaysShort: weekdaysShort,
10197 weekdaysMin: weekdaysMin,
10198 longDateFormat: {
10199 LT: 'HH:mm',
10200 LTS: 'HH:mm:ss',
10201 L: 'DD/MM/YYYY',
10202 LL: 'D MMMM YYYY',
10203 LLL: 'D MMMM YYYY HH:mm',
10204 LLLL: 'dddd, D MMMM YYYY HH:mm',
10205 },
10206 calendar: {
10207 sameDay: '[Inniu ag] LT',
10208 nextDay: '[Amárach ag] LT',
10209 nextWeek: 'dddd [ag] LT',
10210 lastDay: '[Inné ag] LT',
10211 lastWeek: 'dddd [seo caite] [ag] LT',
10212 sameElse: 'L',
10213 },
10214 relativeTime: {
10215 future: 'i %s',
10216 past: '%s ó shin',
10217 s: 'cúpla soicind',
10218 ss: '%d soicind',
10219 m: 'nóiméad',
10220 mm: '%d nóiméad',
10221 h: 'uair an chloig',
10222 hh: '%d uair an chloig',
10223 d: 'lá',
10224 dd: '%d lá',
10225 M: 'mí',
10226 MM: '%d míonna',
10227 y: 'bliain',
10228 yy: '%d bliain',
10229 },
10230 dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
10231 ordinal: function (number) {
10232 var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
10233 return number + output;
10234 },
10235 week: {
10236 dow: 1, // Monday is the first day of the week.
10237 doy: 4, // The week that contains Jan 4th is the first week of the year.
10238 },
10239 });
10240
10241 //! moment.js locale configuration
10242
10243 var months$7 = [
10244 'Am Faoilleach',
10245 'An Gearran',
10246 'Am Màrt',
10247 'An Giblean',
10248 'An Cèitean',
10249 'An t-Ògmhios',
10250 'An t-Iuchar',
10251 'An Lùnastal',
10252 'An t-Sultain',
10253 'An Dàmhair',
10254 'An t-Samhain',
10255 'An Dùbhlachd',
10256 ],
10257 monthsShort$6 = [
10258 'Faoi',
10259 'Gear',
10260 'Màrt',
10261 'Gibl',
10262 'Cèit',
10263 'Ògmh',
10264 'Iuch',
10265 'Lùn',
10266 'Sult',
10267 'Dàmh',
10268 'Samh',
10269 'Dùbh',
10270 ],
10271 weekdays$2 = [
10272 'Didòmhnaich',
10273 'Diluain',
10274 'Dimàirt',
10275 'Diciadain',
10276 'Diardaoin',
10277 'Dihaoine',
10278 'Disathairne',
10279 ],
10280 weekdaysShort$1 = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],
10281 weekdaysMin$1 = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];
10282
10283 hooks.defineLocale('gd', {
10284 months: months$7,
10285 monthsShort: monthsShort$6,
10286 monthsParseExact: true,
10287 weekdays: weekdays$2,
10288 weekdaysShort: weekdaysShort$1,
10289 weekdaysMin: weekdaysMin$1,
10290 longDateFormat: {
10291 LT: 'HH:mm',
10292 LTS: 'HH:mm:ss',
10293 L: 'DD/MM/YYYY',
10294 LL: 'D MMMM YYYY',
10295 LLL: 'D MMMM YYYY HH:mm',
10296 LLLL: 'dddd, D MMMM YYYY HH:mm',
10297 },
10298 calendar: {
10299 sameDay: '[An-diugh aig] LT',
10300 nextDay: '[A-màireach aig] LT',
10301 nextWeek: 'dddd [aig] LT',
10302 lastDay: '[An-dè aig] LT',
10303 lastWeek: 'dddd [seo chaidh] [aig] LT',
10304 sameElse: 'L',
10305 },
10306 relativeTime: {
10307 future: 'ann an %s',
10308 past: 'bho chionn %s',
10309 s: 'beagan diogan',
10310 ss: '%d diogan',
10311 m: 'mionaid',
10312 mm: '%d mionaidean',
10313 h: 'uair',
10314 hh: '%d uairean',
10315 d: 'latha',
10316 dd: '%d latha',
10317 M: 'mìos',
10318 MM: '%d mìosan',
10319 y: 'bliadhna',
10320 yy: '%d bliadhna',
10321 },
10322 dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
10323 ordinal: function (number) {
10324 var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
10325 return number + output;
10326 },
10327 week: {
10328 dow: 1, // Monday is the first day of the week.
10329 doy: 4, // The week that contains Jan 4th is the first week of the year.
10330 },
10331 });
10332
10333 //! moment.js locale configuration
10334
10335 hooks.defineLocale('gl', {
10336 months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(
10337 '_'
10338 ),
10339 monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(
10340 '_'
10341 ),
10342 monthsParseExact: true,
10343 weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),
10344 weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),
10345 weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),
10346 weekdaysParseExact: true,
10347 longDateFormat: {
10348 LT: 'H:mm',
10349 LTS: 'H:mm:ss',
10350 L: 'DD/MM/YYYY',
10351 LL: 'D [de] MMMM [de] YYYY',
10352 LLL: 'D [de] MMMM [de] YYYY H:mm',
10353 LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
10354 },
10355 calendar: {
10356 sameDay: function () {
10357 return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';
10358 },
10359 nextDay: function () {
10360 return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';
10361 },
10362 nextWeek: function () {
10363 return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';
10364 },
10365 lastDay: function () {
10366 return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';
10367 },
10368 lastWeek: function () {
10369 return (
10370 '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'
10371 );
10372 },
10373 sameElse: 'L',
10374 },
10375 relativeTime: {
10376 future: function (str) {
10377 if (str.indexOf('un') === 0) {
10378 return 'n' + str;
10379 }
10380 return 'en ' + str;
10381 },
10382 past: 'hai %s',
10383 s: 'uns segundos',
10384 ss: '%d segundos',
10385 m: 'un minuto',
10386 mm: '%d minutos',
10387 h: 'unha hora',
10388 hh: '%d horas',
10389 d: 'un día',
10390 dd: '%d días',
10391 M: 'un mes',
10392 MM: '%d meses',
10393 y: 'un ano',
10394 yy: '%d anos',
10395 },
10396 dayOfMonthOrdinalParse: /\d{1,2}º/,
10397 ordinal: '%dº',
10398 week: {
10399 dow: 1, // Monday is the first day of the week.
10400 doy: 4, // The week that contains Jan 4th is the first week of the year.
10401 },
10402 });
10403
10404 //! moment.js locale configuration
10405
10406 function processRelativeTime$4(number, withoutSuffix, key, isFuture) {
10407 var format = {
10408 s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],
10409 ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],
10410 m: ['एका मिणटान', 'एक मिनूट'],
10411 mm: [number + ' मिणटांनी', number + ' मिणटां'],
10412 h: ['एका वरान', 'एक वर'],
10413 hh: [number + ' वरांनी', number + ' वरां'],
10414 d: ['एका दिसान', 'एक दीस'],
10415 dd: [number + ' दिसांनी', number + ' दीस'],
10416 M: ['एका म्हयन्यान', 'एक म्हयनो'],
10417 MM: [number + ' म्हयन्यानी', number + ' म्हयने'],
10418 y: ['एका वर्सान', 'एक वर्स'],
10419 yy: [number + ' वर्सांनी', number + ' वर्सां'],
10420 };
10421 return isFuture ? format[key][0] : format[key][1];
10422 }
10423
10424 hooks.defineLocale('gom-deva', {
10425 months: {
10426 standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(
10427 '_'
10428 ),
10429 format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(
10430 '_'
10431 ),
10432 isFormat: /MMMM(\s)+D[oD]?/,
10433 },
10434 monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(
10435 '_'
10436 ),
10437 monthsParseExact: true,
10438 weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),
10439 weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),
10440 weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),
10441 weekdaysParseExact: true,
10442 longDateFormat: {
10443 LT: 'A h:mm [वाजतां]',
10444 LTS: 'A h:mm:ss [वाजतां]',
10445 L: 'DD-MM-YYYY',
10446 LL: 'D MMMM YYYY',
10447 LLL: 'D MMMM YYYY A h:mm [वाजतां]',
10448 LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',
10449 llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',
10450 },
10451 calendar: {
10452 sameDay: '[आयज] LT',
10453 nextDay: '[फाल्यां] LT',
10454 nextWeek: '[फुडलो] dddd[,] LT',
10455 lastDay: '[काल] LT',
10456 lastWeek: '[फाटलो] dddd[,] LT',
10457 sameElse: 'L',
10458 },
10459 relativeTime: {
10460 future: '%s',
10461 past: '%s आदीं',
10462 s: processRelativeTime$4,
10463 ss: processRelativeTime$4,
10464 m: processRelativeTime$4,
10465 mm: processRelativeTime$4,
10466 h: processRelativeTime$4,
10467 hh: processRelativeTime$4,
10468 d: processRelativeTime$4,
10469 dd: processRelativeTime$4,
10470 M: processRelativeTime$4,
10471 MM: processRelativeTime$4,
10472 y: processRelativeTime$4,
10473 yy: processRelativeTime$4,
10474 },
10475 dayOfMonthOrdinalParse: /\d{1,2}(वेर)/,
10476 ordinal: function (number, period) {
10477 switch (period) {
10478 // the ordinal 'वेर' only applies to day of the month
10479 case 'D':
10480 return number + 'वेर';
10481 default:
10482 case 'M':
10483 case 'Q':
10484 case 'DDD':
10485 case 'd':
10486 case 'w':
10487 case 'W':
10488 return number;
10489 }
10490 },
10491 week: {
10492 dow: 0, // Sunday is the first day of the week
10493 doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)
10494 },
10495 meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,
10496 meridiemHour: function (hour, meridiem) {
10497 if (hour === 12) {
10498 hour = 0;
10499 }
10500 if (meridiem === 'राती') {
10501 return hour < 4 ? hour : hour + 12;
10502 } else if (meridiem === 'सकाळीं') {
10503 return hour;
10504 } else if (meridiem === 'दनपारां') {
10505 return hour > 12 ? hour : hour + 12;
10506 } else if (meridiem === 'सांजे') {
10507 return hour + 12;
10508 }
10509 },
10510 meridiem: function (hour, minute, isLower) {
10511 if (hour < 4) {
10512 return 'राती';
10513 } else if (hour < 12) {
10514 return 'सकाळीं';
10515 } else if (hour < 16) {
10516 return 'दनपारां';
10517 } else if (hour < 20) {
10518 return 'सांजे';
10519 } else {
10520 return 'राती';
10521 }
10522 },
10523 });
10524
10525 //! moment.js locale configuration
10526
10527 function processRelativeTime$5(number, withoutSuffix, key, isFuture) {
10528 var format = {
10529 s: ['thoddea sekondamni', 'thodde sekond'],
10530 ss: [number + ' sekondamni', number + ' sekond'],
10531 m: ['eka mintan', 'ek minut'],
10532 mm: [number + ' mintamni', number + ' mintam'],
10533 h: ['eka voran', 'ek vor'],
10534 hh: [number + ' voramni', number + ' voram'],
10535 d: ['eka disan', 'ek dis'],
10536 dd: [number + ' disamni', number + ' dis'],
10537 M: ['eka mhoinean', 'ek mhoino'],
10538 MM: [number + ' mhoineamni', number + ' mhoine'],
10539 y: ['eka vorsan', 'ek voros'],
10540 yy: [number + ' vorsamni', number + ' vorsam'],
10541 };
10542 return isFuture ? format[key][0] : format[key][1];
10543 }
10544
10545 hooks.defineLocale('gom-latn', {
10546 months: {
10547 standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(
10548 '_'
10549 ),
10550 format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(
10551 '_'
10552 ),
10553 isFormat: /MMMM(\s)+D[oD]?/,
10554 },
10555 monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(
10556 '_'
10557 ),
10558 monthsParseExact: true,
10559 weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'),
10560 weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),
10561 weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),
10562 weekdaysParseExact: true,
10563 longDateFormat: {
10564 LT: 'A h:mm [vazta]',
10565 LTS: 'A h:mm:ss [vazta]',
10566 L: 'DD-MM-YYYY',
10567 LL: 'D MMMM YYYY',
10568 LLL: 'D MMMM YYYY A h:mm [vazta]',
10569 LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',
10570 llll: 'ddd, D MMM YYYY, A h:mm [vazta]',
10571 },
10572 calendar: {
10573 sameDay: '[Aiz] LT',
10574 nextDay: '[Faleam] LT',
10575 nextWeek: '[Fuddlo] dddd[,] LT',
10576 lastDay: '[Kal] LT',
10577 lastWeek: '[Fattlo] dddd[,] LT',
10578 sameElse: 'L',
10579 },
10580 relativeTime: {
10581 future: '%s',
10582 past: '%s adim',
10583 s: processRelativeTime$5,
10584 ss: processRelativeTime$5,
10585 m: processRelativeTime$5,
10586 mm: processRelativeTime$5,
10587 h: processRelativeTime$5,
10588 hh: processRelativeTime$5,
10589 d: processRelativeTime$5,
10590 dd: processRelativeTime$5,
10591 M: processRelativeTime$5,
10592 MM: processRelativeTime$5,
10593 y: processRelativeTime$5,
10594 yy: processRelativeTime$5,
10595 },
10596 dayOfMonthOrdinalParse: /\d{1,2}(er)/,
10597 ordinal: function (number, period) {
10598 switch (period) {
10599 // the ordinal 'er' only applies to day of the month
10600 case 'D':
10601 return number + 'er';
10602 default:
10603 case 'M':
10604 case 'Q':
10605 case 'DDD':
10606 case 'd':
10607 case 'w':
10608 case 'W':
10609 return number;
10610 }
10611 },
10612 week: {
10613 dow: 0, // Sunday is the first day of the week
10614 doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)
10615 },
10616 meridiemParse: /rati|sokallim|donparam|sanje/,
10617 meridiemHour: function (hour, meridiem) {
10618 if (hour === 12) {
10619 hour = 0;
10620 }
10621 if (meridiem === 'rati') {
10622 return hour < 4 ? hour : hour + 12;
10623 } else if (meridiem === 'sokallim') {
10624 return hour;
10625 } else if (meridiem === 'donparam') {
10626 return hour > 12 ? hour : hour + 12;
10627 } else if (meridiem === 'sanje') {
10628 return hour + 12;
10629 }
10630 },
10631 meridiem: function (hour, minute, isLower) {
10632 if (hour < 4) {
10633 return 'rati';
10634 } else if (hour < 12) {
10635 return 'sokallim';
10636 } else if (hour < 16) {
10637 return 'donparam';
10638 } else if (hour < 20) {
10639 return 'sanje';
10640 } else {
10641 return 'rati';
10642 }
10643 },
10644 });
10645
10646 //! moment.js locale configuration
10647
10648 var symbolMap$7 = {
10649 1: '૧',
10650 2: '૨',
10651 3: '૩',
10652 4: '૪',
10653 5: '૫',
10654 6: '૬',
10655 7: '૭',
10656 8: '૮',
10657 9: '૯',
10658 0: '૦',
10659 },
10660 numberMap$6 = {
10661 '૧': '1',
10662 '૨': '2',
10663 '૩': '3',
10664 '૪': '4',
10665 '૫': '5',
10666 '૬': '6',
10667 '૭': '7',
10668 '૮': '8',
10669 '૯': '9',
10670 '૦': '0',
10671 };
10672
10673 hooks.defineLocale('gu', {
10674 months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(
10675 '_'
10676 ),
10677 monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(
10678 '_'
10679 ),
10680 monthsParseExact: true,
10681 weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(
10682 '_'
10683 ),
10684 weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),
10685 weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),
10686 longDateFormat: {
10687 LT: 'A h:mm વાગ્યે',
10688 LTS: 'A h:mm:ss વાગ્યે',
10689 L: 'DD/MM/YYYY',
10690 LL: 'D MMMM YYYY',
10691 LLL: 'D MMMM YYYY, A h:mm વાગ્યે',
10692 LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',
10693 },
10694 calendar: {
10695 sameDay: '[આજ] LT',
10696 nextDay: '[કાલે] LT',
10697 nextWeek: 'dddd, LT',
10698 lastDay: '[ગઇકાલે] LT',
10699 lastWeek: '[પાછલા] dddd, LT',
10700 sameElse: 'L',
10701 },
10702 relativeTime: {
10703 future: '%s મા',
10704 past: '%s પહેલા',
10705 s: 'અમુક પળો',
10706 ss: '%d સેકંડ',
10707 m: 'એક મિનિટ',
10708 mm: '%d મિનિટ',
10709 h: 'એક કલાક',
10710 hh: '%d કલાક',
10711 d: 'એક દિવસ',
10712 dd: '%d દિવસ',
10713 M: 'એક મહિનો',
10714 MM: '%d મહિનો',
10715 y: 'એક વર્ષ',
10716 yy: '%d વર્ષ',
10717 },
10718 preparse: function (string) {
10719 return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {
10720 return numberMap$6[match];
10721 });
10722 },
10723 postformat: function (string) {
10724 return string.replace(/\d/g, function (match) {
10725 return symbolMap$7[match];
10726 });
10727 },
10728 // Gujarati notation for meridiems are quite fuzzy in practice. While there exists
10729 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.
10730 meridiemParse: /રાત|બપોર|સવાર|સાંજ/,
10731 meridiemHour: function (hour, meridiem) {
10732 if (hour === 12) {
10733 hour = 0;
10734 }
10735 if (meridiem === 'રાત') {
10736 return hour < 4 ? hour : hour + 12;
10737 } else if (meridiem === 'સવાર') {
10738 return hour;
10739 } else if (meridiem === 'બપોર') {
10740 return hour >= 10 ? hour : hour + 12;
10741 } else if (meridiem === 'સાંજ') {
10742 return hour + 12;
10743 }
10744 },
10745 meridiem: function (hour, minute, isLower) {
10746 if (hour < 4) {
10747 return 'રાત';
10748 } else if (hour < 10) {
10749 return 'સવાર';
10750 } else if (hour < 17) {
10751 return 'બપોર';
10752 } else if (hour < 20) {
10753 return 'સાંજ';
10754 } else {
10755 return 'રાત';
10756 }
10757 },
10758 week: {
10759 dow: 0, // Sunday is the first day of the week.
10760 doy: 6, // The week that contains Jan 6th is the first week of the year.
10761 },
10762 });
10763
10764 //! moment.js locale configuration
10765
10766 hooks.defineLocale('he', {
10767 months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(
10768 '_'
10769 ),
10770 monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split(
10771 '_'
10772 ),
10773 weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
10774 weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
10775 weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),
10776 longDateFormat: {
10777 LT: 'HH:mm',
10778 LTS: 'HH:mm:ss',
10779 L: 'DD/MM/YYYY',
10780 LL: 'D [ב]MMMM YYYY',
10781 LLL: 'D [ב]MMMM YYYY HH:mm',
10782 LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',
10783 l: 'D/M/YYYY',
10784 ll: 'D MMM YYYY',
10785 lll: 'D MMM YYYY HH:mm',
10786 llll: 'ddd, D MMM YYYY HH:mm',
10787 },
10788 calendar: {
10789 sameDay: '[היום ב־]LT',
10790 nextDay: '[מחר ב־]LT',
10791 nextWeek: 'dddd [בשעה] LT',
10792 lastDay: '[אתמול ב־]LT',
10793 lastWeek: '[ביום] dddd [האחרון בשעה] LT',
10794 sameElse: 'L',
10795 },
10796 relativeTime: {
10797 future: 'בעוד %s',
10798 past: 'לפני %s',
10799 s: 'מספר שניות',
10800 ss: '%d שניות',
10801 m: 'דקה',
10802 mm: '%d דקות',
10803 h: 'שעה',
10804 hh: function (number) {
10805 if (number === 2) {
10806 return 'שעתיים';
10807 }
10808 return number + ' שעות';
10809 },
10810 d: 'יום',
10811 dd: function (number) {
10812 if (number === 2) {
10813 return 'יומיים';
10814 }
10815 return number + ' ימים';
10816 },
10817 M: 'חודש',
10818 MM: function (number) {
10819 if (number === 2) {
10820 return 'חודשיים';
10821 }
10822 return number + ' חודשים';
10823 },
10824 y: 'שנה',
10825 yy: function (number) {
10826 if (number === 2) {
10827 return 'שנתיים';
10828 } else if (number % 10 === 0 && number !== 10) {
10829 return number + ' שנה';
10830 }
10831 return number + ' שנים';
10832 },
10833 },
10834 meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,
10835 isPM: function (input) {
10836 return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input);
10837 },
10838 meridiem: function (hour, minute, isLower) {
10839 if (hour < 5) {
10840 return 'לפנות בוקר';
10841 } else if (hour < 10) {
10842 return 'בבוקר';
10843 } else if (hour < 12) {
10844 return isLower ? 'לפנה"צ' : 'לפני הצהריים';
10845 } else if (hour < 18) {
10846 return isLower ? 'אחה"צ' : 'אחרי הצהריים';
10847 } else {
10848 return 'בערב';
10849 }
10850 },
10851 });
10852
10853 //! moment.js locale configuration
10854
10855 var symbolMap$8 = {
10856 1: '१',
10857 2: '२',
10858 3: '३',
10859 4: '४',
10860 5: '५',
10861 6: '६',
10862 7: '७',
10863 8: '८',
10864 9: '९',
10865 0: '०',
10866 },
10867 numberMap$7 = {
10868 '१': '1',
10869 '२': '2',
10870 '३': '3',
10871 '४': '4',
10872 '५': '5',
10873 '६': '6',
10874 '७': '7',
10875 '८': '8',
10876 '९': '9',
10877 '०': '0',
10878 };
10879
10880 hooks.defineLocale('hi', {
10881 months: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(
10882 '_'
10883 ),
10884 monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split(
10885 '_'
10886 ),
10887 monthsParseExact: true,
10888 weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
10889 weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
10890 weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
10891 longDateFormat: {
10892 LT: 'A h:mm बजे',
10893 LTS: 'A h:mm:ss बजे',
10894 L: 'DD/MM/YYYY',
10895 LL: 'D MMMM YYYY',
10896 LLL: 'D MMMM YYYY, A h:mm बजे',
10897 LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',
10898 },
10899 calendar: {
10900 sameDay: '[आज] LT',
10901 nextDay: '[कल] LT',
10902 nextWeek: 'dddd, LT',
10903 lastDay: '[कल] LT',
10904 lastWeek: '[पिछले] dddd, LT',
10905 sameElse: 'L',
10906 },
10907 relativeTime: {
10908 future: '%s में',
10909 past: '%s पहले',
10910 s: 'कुछ ही क्षण',
10911 ss: '%d सेकंड',
10912 m: 'एक मिनट',
10913 mm: '%d मिनट',
10914 h: 'एक घंटा',
10915 hh: '%d घंटे',
10916 d: 'एक दिन',
10917 dd: '%d दिन',
10918 M: 'एक महीने',
10919 MM: '%d महीने',
10920 y: 'एक वर्ष',
10921 yy: '%d वर्ष',
10922 },
10923 preparse: function (string) {
10924 return string.replace(/[१२३४५६७८९०]/g, function (match) {
10925 return numberMap$7[match];
10926 });
10927 },
10928 postformat: function (string) {
10929 return string.replace(/\d/g, function (match) {
10930 return symbolMap$8[match];
10931 });
10932 },
10933 // Hindi notation for meridiems are quite fuzzy in practice. While there exists
10934 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
10935 meridiemParse: /रात|सुबह|दोपहर|शाम/,
10936 meridiemHour: function (hour, meridiem) {
10937 if (hour === 12) {
10938 hour = 0;
10939 }
10940 if (meridiem === 'रात') {
10941 return hour < 4 ? hour : hour + 12;
10942 } else if (meridiem === 'सुबह') {
10943 return hour;
10944 } else if (meridiem === 'दोपहर') {
10945 return hour >= 10 ? hour : hour + 12;
10946 } else if (meridiem === 'शाम') {
10947 return hour + 12;
10948 }
10949 },
10950 meridiem: function (hour, minute, isLower) {
10951 if (hour < 4) {
10952 return 'रात';
10953 } else if (hour < 10) {
10954 return 'सुबह';
10955 } else if (hour < 17) {
10956 return 'दोपहर';
10957 } else if (hour < 20) {
10958 return 'शाम';
10959 } else {
10960 return 'रात';
10961 }
10962 },
10963 week: {
10964 dow: 0, // Sunday is the first day of the week.
10965 doy: 6, // The week that contains Jan 6th is the first week of the year.
10966 },
10967 });
10968
10969 //! moment.js locale configuration
10970
10971 function translate$3(number, withoutSuffix, key) {
10972 var result = number + ' ';
10973 switch (key) {
10974 case 'ss':
10975 if (number === 1) {
10976 result += 'sekunda';
10977 } else if (number === 2 || number === 3 || number === 4) {
10978 result += 'sekunde';
10979 } else {
10980 result += 'sekundi';
10981 }
10982 return result;
10983 case 'm':
10984 return withoutSuffix ? 'jedna minuta' : 'jedne minute';
10985 case 'mm':
10986 if (number === 1) {
10987 result += 'minuta';
10988 } else if (number === 2 || number === 3 || number === 4) {
10989 result += 'minute';
10990 } else {
10991 result += 'minuta';
10992 }
10993 return result;
10994 case 'h':
10995 return withoutSuffix ? 'jedan sat' : 'jednog sata';
10996 case 'hh':
10997 if (number === 1) {
10998 result += 'sat';
10999 } else if (number === 2 || number === 3 || number === 4) {
11000 result += 'sata';
11001 } else {
11002 result += 'sati';
11003 }
11004 return result;
11005 case 'dd':
11006 if (number === 1) {
11007 result += 'dan';
11008 } else {
11009 result += 'dana';
11010 }
11011 return result;
11012 case 'MM':
11013 if (number === 1) {
11014 result += 'mjesec';
11015 } else if (number === 2 || number === 3 || number === 4) {
11016 result += 'mjeseca';
11017 } else {
11018 result += 'mjeseci';
11019 }
11020 return result;
11021 case 'yy':
11022 if (number === 1) {
11023 result += 'godina';
11024 } else if (number === 2 || number === 3 || number === 4) {
11025 result += 'godine';
11026 } else {
11027 result += 'godina';
11028 }
11029 return result;
11030 }
11031 }
11032
11033 hooks.defineLocale('hr', {
11034 months: {
11035 format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(
11036 '_'
11037 ),
11038 standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(
11039 '_'
11040 ),
11041 },
11042 monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(
11043 '_'
11044 ),
11045 monthsParseExact: true,
11046 weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
11047 '_'
11048 ),
11049 weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
11050 weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
11051 weekdaysParseExact: true,
11052 longDateFormat: {
11053 LT: 'H:mm',
11054 LTS: 'H:mm:ss',
11055 L: 'DD.MM.YYYY',
11056 LL: 'Do MMMM YYYY',
11057 LLL: 'Do MMMM YYYY H:mm',
11058 LLLL: 'dddd, Do MMMM YYYY H:mm',
11059 },
11060 calendar: {
11061 sameDay: '[danas u] LT',
11062 nextDay: '[sutra u] LT',
11063 nextWeek: function () {
11064 switch (this.day()) {
11065 case 0:
11066 return '[u] [nedjelju] [u] LT';
11067 case 3:
11068 return '[u] [srijedu] [u] LT';
11069 case 6:
11070 return '[u] [subotu] [u] LT';
11071 case 1:
11072 case 2:
11073 case 4:
11074 case 5:
11075 return '[u] dddd [u] LT';
11076 }
11077 },
11078 lastDay: '[jučer u] LT',
11079 lastWeek: function () {
11080 switch (this.day()) {
11081 case 0:
11082 return '[prošlu] [nedjelju] [u] LT';
11083 case 3:
11084 return '[prošlu] [srijedu] [u] LT';
11085 case 6:
11086 return '[prošle] [subote] [u] LT';
11087 case 1:
11088 case 2:
11089 case 4:
11090 case 5:
11091 return '[prošli] dddd [u] LT';
11092 }
11093 },
11094 sameElse: 'L',
11095 },
11096 relativeTime: {
11097 future: 'za %s',
11098 past: 'prije %s',
11099 s: 'par sekundi',
11100 ss: translate$3,
11101 m: translate$3,
11102 mm: translate$3,
11103 h: translate$3,
11104 hh: translate$3,
11105 d: 'dan',
11106 dd: translate$3,
11107 M: 'mjesec',
11108 MM: translate$3,
11109 y: 'godinu',
11110 yy: translate$3,
11111 },
11112 dayOfMonthOrdinalParse: /\d{1,2}\./,
11113 ordinal: '%d.',
11114 week: {
11115 dow: 1, // Monday is the first day of the week.
11116 doy: 7, // The week that contains Jan 7th is the first week of the year.
11117 },
11118 });
11119
11120 //! moment.js locale configuration
11121
11122 var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(
11123 ' '
11124 );
11125 function translate$4(number, withoutSuffix, key, isFuture) {
11126 var num = number;
11127 switch (key) {
11128 case 's':
11129 return isFuture || withoutSuffix
11130 ? 'néhány másodperc'
11131 : 'néhány másodperce';
11132 case 'ss':
11133 return num + (isFuture || withoutSuffix)
11134 ? ' másodperc'
11135 : ' másodperce';
11136 case 'm':
11137 return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
11138 case 'mm':
11139 return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
11140 case 'h':
11141 return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
11142 case 'hh':
11143 return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
11144 case 'd':
11145 return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
11146 case 'dd':
11147 return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
11148 case 'M':
11149 return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
11150 case 'MM':
11151 return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
11152 case 'y':
11153 return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
11154 case 'yy':
11155 return num + (isFuture || withoutSuffix ? ' év' : ' éve');
11156 }
11157 return '';
11158 }
11159 function week(isFuture) {
11160 return (
11161 (isFuture ? '' : '[múlt] ') +
11162 '[' +
11163 weekEndings[this.day()] +
11164 '] LT[-kor]'
11165 );
11166 }
11167
11168 hooks.defineLocale('hu', {
11169 months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(
11170 '_'
11171 ),
11172 monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(
11173 '_'
11174 ),
11175 monthsParseExact: true,
11176 weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
11177 weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
11178 weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),
11179 longDateFormat: {
11180 LT: 'H:mm',
11181 LTS: 'H:mm:ss',
11182 L: 'YYYY.MM.DD.',
11183 LL: 'YYYY. MMMM D.',
11184 LLL: 'YYYY. MMMM D. H:mm',
11185 LLLL: 'YYYY. MMMM D., dddd H:mm',
11186 },
11187 meridiemParse: /de|du/i,
11188 isPM: function (input) {
11189 return input.charAt(1).toLowerCase() === 'u';
11190 },
11191 meridiem: function (hours, minutes, isLower) {
11192 if (hours < 12) {
11193 return isLower === true ? 'de' : 'DE';
11194 } else {
11195 return isLower === true ? 'du' : 'DU';
11196 }
11197 },
11198 calendar: {
11199 sameDay: '[ma] LT[-kor]',
11200 nextDay: '[holnap] LT[-kor]',
11201 nextWeek: function () {
11202 return week.call(this, true);
11203 },
11204 lastDay: '[tegnap] LT[-kor]',
11205 lastWeek: function () {
11206 return week.call(this, false);
11207 },
11208 sameElse: 'L',
11209 },
11210 relativeTime: {
11211 future: '%s múlva',
11212 past: '%s',
11213 s: translate$4,
11214 ss: translate$4,
11215 m: translate$4,
11216 mm: translate$4,
11217 h: translate$4,
11218 hh: translate$4,
11219 d: translate$4,
11220 dd: translate$4,
11221 M: translate$4,
11222 MM: translate$4,
11223 y: translate$4,
11224 yy: translate$4,
11225 },
11226 dayOfMonthOrdinalParse: /\d{1,2}\./,
11227 ordinal: '%d.',
11228 week: {
11229 dow: 1, // Monday is the first day of the week.
11230 doy: 4, // The week that contains Jan 4th is the first week of the year.
11231 },
11232 });
11233
11234 //! moment.js locale configuration
11235
11236 hooks.defineLocale('hy-am', {
11237 months: {
11238 format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(
11239 '_'
11240 ),
11241 standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(
11242 '_'
11243 ),
11244 },
11245 monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),
11246 weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(
11247 '_'
11248 ),
11249 weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
11250 weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
11251 longDateFormat: {
11252 LT: 'HH:mm',
11253 LTS: 'HH:mm:ss',
11254 L: 'DD.MM.YYYY',
11255 LL: 'D MMMM YYYY թ.',
11256 LLL: 'D MMMM YYYY թ., HH:mm',
11257 LLLL: 'dddd, D MMMM YYYY թ., HH:mm',
11258 },
11259 calendar: {
11260 sameDay: '[այսօր] LT',
11261 nextDay: '[վաղը] LT',
11262 lastDay: '[երեկ] LT',
11263 nextWeek: function () {
11264 return 'dddd [օրը ժամը] LT';
11265 },
11266 lastWeek: function () {
11267 return '[անցած] dddd [օրը ժամը] LT';
11268 },
11269 sameElse: 'L',
11270 },
11271 relativeTime: {
11272 future: '%s հետո',
11273 past: '%s առաջ',
11274 s: 'մի քանի վայրկյան',
11275 ss: '%d վայրկյան',
11276 m: 'րոպե',
11277 mm: '%d րոպե',
11278 h: 'ժամ',
11279 hh: '%d ժամ',
11280 d: 'օր',
11281 dd: '%d օր',
11282 M: 'ամիս',
11283 MM: '%d ամիս',
11284 y: 'տարի',
11285 yy: '%d տարի',
11286 },
11287 meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,
11288 isPM: function (input) {
11289 return /^(ցերեկվա|երեկոյան)$/.test(input);
11290 },
11291 meridiem: function (hour) {
11292 if (hour < 4) {
11293 return 'գիշերվա';
11294 } else if (hour < 12) {
11295 return 'առավոտվա';
11296 } else if (hour < 17) {
11297 return 'ցերեկվա';
11298 } else {
11299 return 'երեկոյան';
11300 }
11301 },
11302 dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
11303 ordinal: function (number, period) {
11304 switch (period) {
11305 case 'DDD':
11306 case 'w':
11307 case 'W':
11308 case 'DDDo':
11309 if (number === 1) {
11310 return number + '-ին';
11311 }
11312 return number + '-րդ';
11313 default:
11314 return number;
11315 }
11316 },
11317 week: {
11318 dow: 1, // Monday is the first day of the week.
11319 doy: 7, // The week that contains Jan 7th is the first week of the year.
11320 },
11321 });
11322
11323 //! moment.js locale configuration
11324
11325 hooks.defineLocale('id', {
11326 months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(
11327 '_'
11328 ),
11329 monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),
11330 weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
11331 weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
11332 weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
11333 longDateFormat: {
11334 LT: 'HH.mm',
11335 LTS: 'HH.mm.ss',
11336 L: 'DD/MM/YYYY',
11337 LL: 'D MMMM YYYY',
11338 LLL: 'D MMMM YYYY [pukul] HH.mm',
11339 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
11340 },
11341 meridiemParse: /pagi|siang|sore|malam/,
11342 meridiemHour: function (hour, meridiem) {
11343 if (hour === 12) {
11344 hour = 0;
11345 }
11346 if (meridiem === 'pagi') {
11347 return hour;
11348 } else if (meridiem === 'siang') {
11349 return hour >= 11 ? hour : hour + 12;
11350 } else if (meridiem === 'sore' || meridiem === 'malam') {
11351 return hour + 12;
11352 }
11353 },
11354 meridiem: function (hours, minutes, isLower) {
11355 if (hours < 11) {
11356 return 'pagi';
11357 } else if (hours < 15) {
11358 return 'siang';
11359 } else if (hours < 19) {
11360 return 'sore';
11361 } else {
11362 return 'malam';
11363 }
11364 },
11365 calendar: {
11366 sameDay: '[Hari ini pukul] LT',
11367 nextDay: '[Besok pukul] LT',
11368 nextWeek: 'dddd [pukul] LT',
11369 lastDay: '[Kemarin pukul] LT',
11370 lastWeek: 'dddd [lalu pukul] LT',
11371 sameElse: 'L',
11372 },
11373 relativeTime: {
11374 future: 'dalam %s',
11375 past: '%s yang lalu',
11376 s: 'beberapa detik',
11377 ss: '%d detik',
11378 m: 'semenit',
11379 mm: '%d menit',
11380 h: 'sejam',
11381 hh: '%d jam',
11382 d: 'sehari',
11383 dd: '%d hari',
11384 M: 'sebulan',
11385 MM: '%d bulan',
11386 y: 'setahun',
11387 yy: '%d tahun',
11388 },
11389 week: {
11390 dow: 0, // Sunday is the first day of the week.
11391 doy: 6, // The week that contains Jan 6th is the first week of the year.
11392 },
11393 });
11394
11395 //! moment.js locale configuration
11396
11397 function plural$2(n) {
11398 if (n % 100 === 11) {
11399 return true;
11400 } else if (n % 10 === 1) {
11401 return false;
11402 }
11403 return true;
11404 }
11405 function translate$5(number, withoutSuffix, key, isFuture) {
11406 var result = number + ' ';
11407 switch (key) {
11408 case 's':
11409 return withoutSuffix || isFuture
11410 ? 'nokkrar sekúndur'
11411 : 'nokkrum sekúndum';
11412 case 'ss':
11413 if (plural$2(number)) {
11414 return (
11415 result +
11416 (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')
11417 );
11418 }
11419 return result + 'sekúnda';
11420 case 'm':
11421 return withoutSuffix ? 'mínúta' : 'mínútu';
11422 case 'mm':
11423 if (plural$2(number)) {
11424 return (
11425 result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')
11426 );
11427 } else if (withoutSuffix) {
11428 return result + 'mínúta';
11429 }
11430 return result + 'mínútu';
11431 case 'hh':
11432 if (plural$2(number)) {
11433 return (
11434 result +
11435 (withoutSuffix || isFuture
11436 ? 'klukkustundir'
11437 : 'klukkustundum')
11438 );
11439 }
11440 return result + 'klukkustund';
11441 case 'd':
11442 if (withoutSuffix) {
11443 return 'dagur';
11444 }
11445 return isFuture ? 'dag' : 'degi';
11446 case 'dd':
11447 if (plural$2(number)) {
11448 if (withoutSuffix) {
11449 return result + 'dagar';
11450 }
11451 return result + (isFuture ? 'daga' : 'dögum');
11452 } else if (withoutSuffix) {
11453 return result + 'dagur';
11454 }
11455 return result + (isFuture ? 'dag' : 'degi');
11456 case 'M':
11457 if (withoutSuffix) {
11458 return 'mánuður';
11459 }
11460 return isFuture ? 'mánuð' : 'mánuði';
11461 case 'MM':
11462 if (plural$2(number)) {
11463 if (withoutSuffix) {
11464 return result + 'mánuðir';
11465 }
11466 return result + (isFuture ? 'mánuði' : 'mánuðum');
11467 } else if (withoutSuffix) {
11468 return result + 'mánuður';
11469 }
11470 return result + (isFuture ? 'mánuð' : 'mánuði');
11471 case 'y':
11472 return withoutSuffix || isFuture ? 'ár' : 'ári';
11473 case 'yy':
11474 if (plural$2(number)) {
11475 return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
11476 }
11477 return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
11478 }
11479 }
11480
11481 hooks.defineLocale('is', {
11482 months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(
11483 '_'
11484 ),
11485 monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
11486 weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(
11487 '_'
11488 ),
11489 weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
11490 weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
11491 longDateFormat: {
11492 LT: 'H:mm',
11493 LTS: 'H:mm:ss',
11494 L: 'DD.MM.YYYY',
11495 LL: 'D. MMMM YYYY',
11496 LLL: 'D. MMMM YYYY [kl.] H:mm',
11497 LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',
11498 },
11499 calendar: {
11500 sameDay: '[í dag kl.] LT',
11501 nextDay: '[á morgun kl.] LT',
11502 nextWeek: 'dddd [kl.] LT',
11503 lastDay: '[í gær kl.] LT',
11504 lastWeek: '[síðasta] dddd [kl.] LT',
11505 sameElse: 'L',
11506 },
11507 relativeTime: {
11508 future: 'eftir %s',
11509 past: 'fyrir %s síðan',
11510 s: translate$5,
11511 ss: translate$5,
11512 m: translate$5,
11513 mm: translate$5,
11514 h: 'klukkustund',
11515 hh: translate$5,
11516 d: translate$5,
11517 dd: translate$5,
11518 M: translate$5,
11519 MM: translate$5,
11520 y: translate$5,
11521 yy: translate$5,
11522 },
11523 dayOfMonthOrdinalParse: /\d{1,2}\./,
11524 ordinal: '%d.',
11525 week: {
11526 dow: 1, // Monday is the first day of the week.
11527 doy: 4, // The week that contains Jan 4th is the first week of the year.
11528 },
11529 });
11530
11531 //! moment.js locale configuration
11532
11533 hooks.defineLocale('it-ch', {
11534 months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
11535 '_'
11536 ),
11537 monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
11538 weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
11539 '_'
11540 ),
11541 weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
11542 weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
11543 longDateFormat: {
11544 LT: 'HH:mm',
11545 LTS: 'HH:mm:ss',
11546 L: 'DD.MM.YYYY',
11547 LL: 'D MMMM YYYY',
11548 LLL: 'D MMMM YYYY HH:mm',
11549 LLLL: 'dddd D MMMM YYYY HH:mm',
11550 },
11551 calendar: {
11552 sameDay: '[Oggi alle] LT',
11553 nextDay: '[Domani alle] LT',
11554 nextWeek: 'dddd [alle] LT',
11555 lastDay: '[Ieri alle] LT',
11556 lastWeek: function () {
11557 switch (this.day()) {
11558 case 0:
11559 return '[la scorsa] dddd [alle] LT';
11560 default:
11561 return '[lo scorso] dddd [alle] LT';
11562 }
11563 },
11564 sameElse: 'L',
11565 },
11566 relativeTime: {
11567 future: function (s) {
11568 return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;
11569 },
11570 past: '%s fa',
11571 s: 'alcuni secondi',
11572 ss: '%d secondi',
11573 m: 'un minuto',
11574 mm: '%d minuti',
11575 h: "un'ora",
11576 hh: '%d ore',
11577 d: 'un giorno',
11578 dd: '%d giorni',
11579 M: 'un mese',
11580 MM: '%d mesi',
11581 y: 'un anno',
11582 yy: '%d anni',
11583 },
11584 dayOfMonthOrdinalParse: /\d{1,2}º/,
11585 ordinal: '%dº',
11586 week: {
11587 dow: 1, // Monday is the first day of the week.
11588 doy: 4, // The week that contains Jan 4th is the first week of the year.
11589 },
11590 });
11591
11592 //! moment.js locale configuration
11593
11594 hooks.defineLocale('it', {
11595 months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
11596 '_'
11597 ),
11598 monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
11599 weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
11600 '_'
11601 ),
11602 weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
11603 weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
11604 longDateFormat: {
11605 LT: 'HH:mm',
11606 LTS: 'HH:mm:ss',
11607 L: 'DD/MM/YYYY',
11608 LL: 'D MMMM YYYY',
11609 LLL: 'D MMMM YYYY HH:mm',
11610 LLLL: 'dddd D MMMM YYYY HH:mm',
11611 },
11612 calendar: {
11613 sameDay: function () {
11614 return (
11615 '[Oggi a' +
11616 (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
11617 ']LT'
11618 );
11619 },
11620 nextDay: function () {
11621 return (
11622 '[Domani a' +
11623 (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
11624 ']LT'
11625 );
11626 },
11627 nextWeek: function () {
11628 return (
11629 'dddd [a' +
11630 (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
11631 ']LT'
11632 );
11633 },
11634 lastDay: function () {
11635 return (
11636 '[Ieri a' +
11637 (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
11638 ']LT'
11639 );
11640 },
11641 lastWeek: function () {
11642 switch (this.day()) {
11643 case 0:
11644 return (
11645 '[La scorsa] dddd [a' +
11646 (this.hours() > 1
11647 ? 'lle '
11648 : this.hours() === 0
11649 ? ' '
11650 : "ll'") +
11651 ']LT'
11652 );
11653 default:
11654 return (
11655 '[Lo scorso] dddd [a' +
11656 (this.hours() > 1
11657 ? 'lle '
11658 : this.hours() === 0
11659 ? ' '
11660 : "ll'") +
11661 ']LT'
11662 );
11663 }
11664 },
11665 sameElse: 'L',
11666 },
11667 relativeTime: {
11668 future: 'tra %s',
11669 past: '%s fa',
11670 s: 'alcuni secondi',
11671 ss: '%d secondi',
11672 m: 'un minuto',
11673 mm: '%d minuti',
11674 h: "un'ora",
11675 hh: '%d ore',
11676 d: 'un giorno',
11677 dd: '%d giorni',
11678 w: 'una settimana',
11679 ww: '%d settimane',
11680 M: 'un mese',
11681 MM: '%d mesi',
11682 y: 'un anno',
11683 yy: '%d anni',
11684 },
11685 dayOfMonthOrdinalParse: /\d{1,2}º/,
11686 ordinal: '%dº',
11687 week: {
11688 dow: 1, // Monday is the first day of the week.
11689 doy: 4, // The week that contains Jan 4th is the first week of the year.
11690 },
11691 });
11692
11693 //! moment.js locale configuration
11694
11695 hooks.defineLocale('ja', {
11696 eras: [
11697 {
11698 since: '2019-05-01',
11699 offset: 1,
11700 name: '令和',
11701 narrow: '㋿',
11702 abbr: 'R',
11703 },
11704 {
11705 since: '1989-01-08',
11706 until: '2019-04-30',
11707 offset: 1,
11708 name: '平成',
11709 narrow: '㍻',
11710 abbr: 'H',
11711 },
11712 {
11713 since: '1926-12-25',
11714 until: '1989-01-07',
11715 offset: 1,
11716 name: '昭和',
11717 narrow: '㍼',
11718 abbr: 'S',
11719 },
11720 {
11721 since: '1912-07-30',
11722 until: '1926-12-24',
11723 offset: 1,
11724 name: '大正',
11725 narrow: '㍽',
11726 abbr: 'T',
11727 },
11728 {
11729 since: '1873-01-01',
11730 until: '1912-07-29',
11731 offset: 6,
11732 name: '明治',
11733 narrow: '㍾',
11734 abbr: 'M',
11735 },
11736 {
11737 since: '0001-01-01',
11738 until: '1873-12-31',
11739 offset: 1,
11740 name: '西暦',
11741 narrow: 'AD',
11742 abbr: 'AD',
11743 },
11744 {
11745 since: '0000-12-31',
11746 until: -Infinity,
11747 offset: 1,
11748 name: '紀元前',
11749 narrow: 'BC',
11750 abbr: 'BC',
11751 },
11752 ],
11753 eraYearOrdinalRegex: /(元|\d+)年/,
11754 eraYearOrdinalParse: function (input, match) {
11755 return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);
11756 },
11757 months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
11758 monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
11759 '_'
11760 ),
11761 weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
11762 weekdaysShort: '日_月_火_水_木_金_土'.split('_'),
11763 weekdaysMin: '日_月_火_水_木_金_土'.split('_'),
11764 longDateFormat: {
11765 LT: 'HH:mm',
11766 LTS: 'HH:mm:ss',
11767 L: 'YYYY/MM/DD',
11768 LL: 'YYYY年M月D日',
11769 LLL: 'YYYY年M月D日 HH:mm',
11770 LLLL: 'YYYY年M月D日 dddd HH:mm',
11771 l: 'YYYY/MM/DD',
11772 ll: 'YYYY年M月D日',
11773 lll: 'YYYY年M月D日 HH:mm',
11774 llll: 'YYYY年M月D日(ddd) HH:mm',
11775 },
11776 meridiemParse: /午前|午後/i,
11777 isPM: function (input) {
11778 return input === '午後';
11779 },
11780 meridiem: function (hour, minute, isLower) {
11781 if (hour < 12) {
11782 return '午前';
11783 } else {
11784 return '午後';
11785 }
11786 },
11787 calendar: {
11788 sameDay: '[今日] LT',
11789 nextDay: '[明日] LT',
11790 nextWeek: function (now) {
11791 if (now.week() !== this.week()) {
11792 return '[来週]dddd LT';
11793 } else {
11794 return 'dddd LT';
11795 }
11796 },
11797 lastDay: '[昨日] LT',
11798 lastWeek: function (now) {
11799 if (this.week() !== now.week()) {
11800 return '[先週]dddd LT';
11801 } else {
11802 return 'dddd LT';
11803 }
11804 },
11805 sameElse: 'L',
11806 },
11807 dayOfMonthOrdinalParse: /\d{1,2}日/,
11808 ordinal: function (number, period) {
11809 switch (period) {
11810 case 'y':
11811 return number === 1 ? '元年' : number + '年';
11812 case 'd':
11813 case 'D':
11814 case 'DDD':
11815 return number + '日';
11816 default:
11817 return number;
11818 }
11819 },
11820 relativeTime: {
11821 future: '%s後',
11822 past: '%s前',
11823 s: '数秒',
11824 ss: '%d秒',
11825 m: '1分',
11826 mm: '%d分',
11827 h: '1時間',
11828 hh: '%d時間',
11829 d: '1日',
11830 dd: '%d日',
11831 M: '1ヶ月',
11832 MM: '%dヶ月',
11833 y: '1年',
11834 yy: '%d年',
11835 },
11836 });
11837
11838 //! moment.js locale configuration
11839
11840 hooks.defineLocale('jv', {
11841 months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(
11842 '_'
11843 ),
11844 monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),
11845 weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
11846 weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
11847 weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
11848 longDateFormat: {
11849 LT: 'HH.mm',
11850 LTS: 'HH.mm.ss',
11851 L: 'DD/MM/YYYY',
11852 LL: 'D MMMM YYYY',
11853 LLL: 'D MMMM YYYY [pukul] HH.mm',
11854 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
11855 },
11856 meridiemParse: /enjing|siyang|sonten|ndalu/,
11857 meridiemHour: function (hour, meridiem) {
11858 if (hour === 12) {
11859 hour = 0;
11860 }
11861 if (meridiem === 'enjing') {
11862 return hour;
11863 } else if (meridiem === 'siyang') {
11864 return hour >= 11 ? hour : hour + 12;
11865 } else if (meridiem === 'sonten' || meridiem === 'ndalu') {
11866 return hour + 12;
11867 }
11868 },
11869 meridiem: function (hours, minutes, isLower) {
11870 if (hours < 11) {
11871 return 'enjing';
11872 } else if (hours < 15) {
11873 return 'siyang';
11874 } else if (hours < 19) {
11875 return 'sonten';
11876 } else {
11877 return 'ndalu';
11878 }
11879 },
11880 calendar: {
11881 sameDay: '[Dinten puniko pukul] LT',
11882 nextDay: '[Mbenjang pukul] LT',
11883 nextWeek: 'dddd [pukul] LT',
11884 lastDay: '[Kala wingi pukul] LT',
11885 lastWeek: 'dddd [kepengker pukul] LT',
11886 sameElse: 'L',
11887 },
11888 relativeTime: {
11889 future: 'wonten ing %s',
11890 past: '%s ingkang kepengker',
11891 s: 'sawetawis detik',
11892 ss: '%d detik',
11893 m: 'setunggal menit',
11894 mm: '%d menit',
11895 h: 'setunggal jam',
11896 hh: '%d jam',
11897 d: 'sedinten',
11898 dd: '%d dinten',
11899 M: 'sewulan',
11900 MM: '%d wulan',
11901 y: 'setaun',
11902 yy: '%d taun',
11903 },
11904 week: {
11905 dow: 1, // Monday is the first day of the week.
11906 doy: 7, // The week that contains Jan 7th is the first week of the year.
11907 },
11908 });
11909
11910 //! moment.js locale configuration
11911
11912 hooks.defineLocale('ka', {
11913 months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(
11914 '_'
11915 ),
11916 monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
11917 weekdays: {
11918 standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(
11919 '_'
11920 ),
11921 format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(
11922 '_'
11923 ),
11924 isFormat: /(წინა|შემდეგ)/,
11925 },
11926 weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
11927 weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
11928 longDateFormat: {
11929 LT: 'HH:mm',
11930 LTS: 'HH:mm:ss',
11931 L: 'DD/MM/YYYY',
11932 LL: 'D MMMM YYYY',
11933 LLL: 'D MMMM YYYY HH:mm',
11934 LLLL: 'dddd, D MMMM YYYY HH:mm',
11935 },
11936 calendar: {
11937 sameDay: '[დღეს] LT[-ზე]',
11938 nextDay: '[ხვალ] LT[-ზე]',
11939 lastDay: '[გუშინ] LT[-ზე]',
11940 nextWeek: '[შემდეგ] dddd LT[-ზე]',
11941 lastWeek: '[წინა] dddd LT-ზე',
11942 sameElse: 'L',
11943 },
11944 relativeTime: {
11945 future: function (s) {
11946 return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function (
11947 $0,
11948 $1,
11949 $2
11950 ) {
11951 return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';
11952 });
11953 },
11954 past: function (s) {
11955 if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {
11956 return s.replace(/(ი|ე)$/, 'ის წინ');
11957 }
11958 if (/წელი/.test(s)) {
11959 return s.replace(/წელი$/, 'წლის წინ');
11960 }
11961 return s;
11962 },
11963 s: 'რამდენიმე წამი',
11964 ss: '%d წამი',
11965 m: 'წუთი',
11966 mm: '%d წუთი',
11967 h: 'საათი',
11968 hh: '%d საათი',
11969 d: 'დღე',
11970 dd: '%d დღე',
11971 M: 'თვე',
11972 MM: '%d თვე',
11973 y: 'წელი',
11974 yy: '%d წელი',
11975 },
11976 dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
11977 ordinal: function (number) {
11978 if (number === 0) {
11979 return number;
11980 }
11981 if (number === 1) {
11982 return number + '-ლი';
11983 }
11984 if (
11985 number < 20 ||
11986 (number <= 100 && number % 20 === 0) ||
11987 number % 100 === 0
11988 ) {
11989 return 'მე-' + number;
11990 }
11991 return number + '-ე';
11992 },
11993 week: {
11994 dow: 1,
11995 doy: 7,
11996 },
11997 });
11998
11999 //! moment.js locale configuration
12000
12001 var suffixes$1 = {
12002 0: '-ші',
12003 1: '-ші',
12004 2: '-ші',
12005 3: '-ші',
12006 4: '-ші',
12007 5: '-ші',
12008 6: '-шы',
12009 7: '-ші',
12010 8: '-ші',
12011 9: '-шы',
12012 10: '-шы',
12013 20: '-шы',
12014 30: '-шы',
12015 40: '-шы',
12016 50: '-ші',
12017 60: '-шы',
12018 70: '-ші',
12019 80: '-ші',
12020 90: '-шы',
12021 100: '-ші',
12022 };
12023
12024 hooks.defineLocale('kk', {
12025 months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(
12026 '_'
12027 ),
12028 monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),
12029 weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(
12030 '_'
12031 ),
12032 weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),
12033 weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),
12034 longDateFormat: {
12035 LT: 'HH:mm',
12036 LTS: 'HH:mm:ss',
12037 L: 'DD.MM.YYYY',
12038 LL: 'D MMMM YYYY',
12039 LLL: 'D MMMM YYYY HH:mm',
12040 LLLL: 'dddd, D MMMM YYYY HH:mm',
12041 },
12042 calendar: {
12043 sameDay: '[Бүгін сағат] LT',
12044 nextDay: '[Ертең сағат] LT',
12045 nextWeek: 'dddd [сағат] LT',
12046 lastDay: '[Кеше сағат] LT',
12047 lastWeek: '[Өткен аптаның] dddd [сағат] LT',
12048 sameElse: 'L',
12049 },
12050 relativeTime: {
12051 future: '%s ішінде',
12052 past: '%s бұрын',
12053 s: 'бірнеше секунд',
12054 ss: '%d секунд',
12055 m: 'бір минут',
12056 mm: '%d минут',
12057 h: 'бір сағат',
12058 hh: '%d сағат',
12059 d: 'бір күн',
12060 dd: '%d күн',
12061 M: 'бір ай',
12062 MM: '%d ай',
12063 y: 'бір жыл',
12064 yy: '%d жыл',
12065 },
12066 dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/,
12067 ordinal: function (number) {
12068 var a = number % 10,
12069 b = number >= 100 ? 100 : null;
12070 return number + (suffixes$1[number] || suffixes$1[a] || suffixes$1[b]);
12071 },
12072 week: {
12073 dow: 1, // Monday is the first day of the week.
12074 doy: 7, // The week that contains Jan 7th is the first week of the year.
12075 },
12076 });
12077
12078 //! moment.js locale configuration
12079
12080 var symbolMap$9 = {
12081 1: '១',
12082 2: '២',
12083 3: '៣',
12084 4: '៤',
12085 5: '៥',
12086 6: '៦',
12087 7: '៧',
12088 8: '៨',
12089 9: '៩',
12090 0: '០',
12091 },
12092 numberMap$8 = {
12093 '១': '1',
12094 '២': '2',
12095 '៣': '3',
12096 '៤': '4',
12097 '៥': '5',
12098 '៦': '6',
12099 '៧': '7',
12100 '៨': '8',
12101 '៩': '9',
12102 '០': '0',
12103 };
12104
12105 hooks.defineLocale('km', {
12106 months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
12107 '_'
12108 ),
12109 monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
12110 '_'
12111 ),
12112 weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
12113 weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
12114 weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
12115 weekdaysParseExact: true,
12116 longDateFormat: {
12117 LT: 'HH:mm',
12118 LTS: 'HH:mm:ss',
12119 L: 'DD/MM/YYYY',
12120 LL: 'D MMMM YYYY',
12121 LLL: 'D MMMM YYYY HH:mm',
12122 LLLL: 'dddd, D MMMM YYYY HH:mm',
12123 },
12124 meridiemParse: /ព្រឹក|ល្ងាច/,
12125 isPM: function (input) {
12126 return input === 'ល្ងាច';
12127 },
12128 meridiem: function (hour, minute, isLower) {
12129 if (hour < 12) {
12130 return 'ព្រឹក';
12131 } else {
12132 return 'ល្ងាច';
12133 }
12134 },
12135 calendar: {
12136 sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',
12137 nextDay: '[ស្អែក ម៉ោង] LT',
12138 nextWeek: 'dddd [ម៉ោង] LT',
12139 lastDay: '[ម្សិលមិញ ម៉ោង] LT',
12140 lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
12141 sameElse: 'L',
12142 },
12143 relativeTime: {
12144 future: '%sទៀត',
12145 past: '%sមុន',
12146 s: 'ប៉ុន្មានវិនាទី',
12147 ss: '%d វិនាទី',
12148 m: 'មួយនាទី',
12149 mm: '%d នាទី',
12150 h: 'មួយម៉ោង',
12151 hh: '%d ម៉ោង',
12152 d: 'មួយថ្ងៃ',
12153 dd: '%d ថ្ងៃ',
12154 M: 'មួយខែ',
12155 MM: '%d ខែ',
12156 y: 'មួយឆ្នាំ',
12157 yy: '%d ឆ្នាំ',
12158 },
12159 dayOfMonthOrdinalParse: /ទី\d{1,2}/,
12160 ordinal: 'ទី%d',
12161 preparse: function (string) {
12162 return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {
12163 return numberMap$8[match];
12164 });
12165 },
12166 postformat: function (string) {
12167 return string.replace(/\d/g, function (match) {
12168 return symbolMap$9[match];
12169 });
12170 },
12171 week: {
12172 dow: 1, // Monday is the first day of the week.
12173 doy: 4, // The week that contains Jan 4th is the first week of the year.
12174 },
12175 });
12176
12177 //! moment.js locale configuration
12178
12179 var symbolMap$a = {
12180 1: '೧',
12181 2: '೨',
12182 3: '೩',
12183 4: '೪',
12184 5: '೫',
12185 6: '೬',
12186 7: '೭',
12187 8: '೮',
12188 9: '೯',
12189 0: '೦',
12190 },
12191 numberMap$9 = {
12192 '೧': '1',
12193 '೨': '2',
12194 '೩': '3',
12195 '೪': '4',
12196 '೫': '5',
12197 '೬': '6',
12198 '೭': '7',
12199 '೮': '8',
12200 '೯': '9',
12201 '೦': '0',
12202 };
12203
12204 hooks.defineLocale('kn', {
12205 months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(
12206 '_'
12207 ),
12208 monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(
12209 '_'
12210 ),
12211 monthsParseExact: true,
12212 weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(
12213 '_'
12214 ),
12215 weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),
12216 weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),
12217 longDateFormat: {
12218 LT: 'A h:mm',
12219 LTS: 'A h:mm:ss',
12220 L: 'DD/MM/YYYY',
12221 LL: 'D MMMM YYYY',
12222 LLL: 'D MMMM YYYY, A h:mm',
12223 LLLL: 'dddd, D MMMM YYYY, A h:mm',
12224 },
12225 calendar: {
12226 sameDay: '[ಇಂದು] LT',
12227 nextDay: '[ನಾಳೆ] LT',
12228 nextWeek: 'dddd, LT',
12229 lastDay: '[ನಿನ್ನೆ] LT',
12230 lastWeek: '[ಕೊನೆಯ] dddd, LT',
12231 sameElse: 'L',
12232 },
12233 relativeTime: {
12234 future: '%s ನಂತರ',
12235 past: '%s ಹಿಂದೆ',
12236 s: 'ಕೆಲವು ಕ್ಷಣಗಳು',
12237 ss: '%d ಸೆಕೆಂಡುಗಳು',
12238 m: 'ಒಂದು ನಿಮಿಷ',
12239 mm: '%d ನಿಮಿಷ',
12240 h: 'ಒಂದು ಗಂಟೆ',
12241 hh: '%d ಗಂಟೆ',
12242 d: 'ಒಂದು ದಿನ',
12243 dd: '%d ದಿನ',
12244 M: 'ಒಂದು ತಿಂಗಳು',
12245 MM: '%d ತಿಂಗಳು',
12246 y: 'ಒಂದು ವರ್ಷ',
12247 yy: '%d ವರ್ಷ',
12248 },
12249 preparse: function (string) {
12250 return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {
12251 return numberMap$9[match];
12252 });
12253 },
12254 postformat: function (string) {
12255 return string.replace(/\d/g, function (match) {
12256 return symbolMap$a[match];
12257 });
12258 },
12259 meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,
12260 meridiemHour: function (hour, meridiem) {
12261 if (hour === 12) {
12262 hour = 0;
12263 }
12264 if (meridiem === 'ರಾತ್ರಿ') {
12265 return hour < 4 ? hour : hour + 12;
12266 } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {
12267 return hour;
12268 } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {
12269 return hour >= 10 ? hour : hour + 12;
12270 } else if (meridiem === 'ಸಂಜೆ') {
12271 return hour + 12;
12272 }
12273 },
12274 meridiem: function (hour, minute, isLower) {
12275 if (hour < 4) {
12276 return 'ರಾತ್ರಿ';
12277 } else if (hour < 10) {
12278 return 'ಬೆಳಿಗ್ಗೆ';
12279 } else if (hour < 17) {
12280 return 'ಮಧ್ಯಾಹ್ನ';
12281 } else if (hour < 20) {
12282 return 'ಸಂಜೆ';
12283 } else {
12284 return 'ರಾತ್ರಿ';
12285 }
12286 },
12287 dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/,
12288 ordinal: function (number) {
12289 return number + 'ನೇ';
12290 },
12291 week: {
12292 dow: 0, // Sunday is the first day of the week.
12293 doy: 6, // The week that contains Jan 6th is the first week of the year.
12294 },
12295 });
12296
12297 //! moment.js locale configuration
12298
12299 hooks.defineLocale('ko', {
12300 months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
12301 monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(
12302 '_'
12303 ),
12304 weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
12305 weekdaysShort: '일_월_화_수_목_금_토'.split('_'),
12306 weekdaysMin: '일_월_화_수_목_금_토'.split('_'),
12307 longDateFormat: {
12308 LT: 'A h:mm',
12309 LTS: 'A h:mm:ss',
12310 L: 'YYYY.MM.DD.',
12311 LL: 'YYYY년 MMMM D일',
12312 LLL: 'YYYY년 MMMM D일 A h:mm',
12313 LLLL: 'YYYY년 MMMM D일 dddd A h:mm',
12314 l: 'YYYY.MM.DD.',
12315 ll: 'YYYY년 MMMM D일',
12316 lll: 'YYYY년 MMMM D일 A h:mm',
12317 llll: 'YYYY년 MMMM D일 dddd A h:mm',
12318 },
12319 calendar: {
12320 sameDay: '오늘 LT',
12321 nextDay: '내일 LT',
12322 nextWeek: 'dddd LT',
12323 lastDay: '어제 LT',
12324 lastWeek: '지난주 dddd LT',
12325 sameElse: 'L',
12326 },
12327 relativeTime: {
12328 future: '%s 후',
12329 past: '%s 전',
12330 s: '몇 초',
12331 ss: '%d초',
12332 m: '1분',
12333 mm: '%d분',
12334 h: '한 시간',
12335 hh: '%d시간',
12336 d: '하루',
12337 dd: '%d일',
12338 M: '한 달',
12339 MM: '%d달',
12340 y: '일 년',
12341 yy: '%d년',
12342 },
12343 dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/,
12344 ordinal: function (number, period) {
12345 switch (period) {
12346 case 'd':
12347 case 'D':
12348 case 'DDD':
12349 return number + '일';
12350 case 'M':
12351 return number + '월';
12352 case 'w':
12353 case 'W':
12354 return number + '주';
12355 default:
12356 return number;
12357 }
12358 },
12359 meridiemParse: /오전|오후/,
12360 isPM: function (token) {
12361 return token === '오후';
12362 },
12363 meridiem: function (hour, minute, isUpper) {
12364 return hour < 12 ? '오전' : '오후';
12365 },
12366 });
12367
12368 //! moment.js locale configuration
12369
12370 var symbolMap$b = {
12371 1: '١',
12372 2: '٢',
12373 3: '٣',
12374 4: '٤',
12375 5: '٥',
12376 6: '٦',
12377 7: '٧',
12378 8: '٨',
12379 9: '٩',
12380 0: '٠',
12381 },
12382 numberMap$a = {
12383 '١': '1',
12384 '٢': '2',
12385 '٣': '3',
12386 '٤': '4',
12387 '٥': '5',
12388 '٦': '6',
12389 '٧': '7',
12390 '٨': '8',
12391 '٩': '9',
12392 '٠': '0',
12393 },
12394 months$8 = [
12395 'کانونی دووەم',
12396 'شوبات',
12397 'ئازار',
12398 'نیسان',
12399 'ئایار',
12400 'حوزەیران',
12401 'تەمموز',
12402 'ئاب',
12403 'ئەیلوول',
12404 'تشرینی یەكەم',
12405 'تشرینی دووەم',
12406 'كانونی یەکەم',
12407 ];
12408
12409 hooks.defineLocale('ku', {
12410 months: months$8,
12411 monthsShort: months$8,
12412 weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(
12413 '_'
12414 ),
12415 weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split(
12416 '_'
12417 ),
12418 weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),
12419 weekdaysParseExact: true,
12420 longDateFormat: {
12421 LT: 'HH:mm',
12422 LTS: 'HH:mm:ss',
12423 L: 'DD/MM/YYYY',
12424 LL: 'D MMMM YYYY',
12425 LLL: 'D MMMM YYYY HH:mm',
12426 LLLL: 'dddd, D MMMM YYYY HH:mm',
12427 },
12428 meridiemParse: /ئێواره‌|به‌یانی/,
12429 isPM: function (input) {
12430 return /ئێواره‌/.test(input);
12431 },
12432 meridiem: function (hour, minute, isLower) {
12433 if (hour < 12) {
12434 return 'به‌یانی';
12435 } else {
12436 return 'ئێواره‌';
12437 }
12438 },
12439 calendar: {
12440 sameDay: '[ئه‌مرۆ كاتژمێر] LT',
12441 nextDay: '[به‌یانی كاتژمێر] LT',
12442 nextWeek: 'dddd [كاتژمێر] LT',
12443 lastDay: '[دوێنێ كاتژمێر] LT',
12444 lastWeek: 'dddd [كاتژمێر] LT',
12445 sameElse: 'L',
12446 },
12447 relativeTime: {
12448 future: 'له‌ %s',
12449 past: '%s',
12450 s: 'چه‌ند چركه‌یه‌ك',
12451 ss: 'چركه‌ %d',
12452 m: 'یه‌ك خوله‌ك',
12453 mm: '%d خوله‌ك',
12454 h: 'یه‌ك كاتژمێر',
12455 hh: '%d كاتژمێر',
12456 d: 'یه‌ك ڕۆژ',
12457 dd: '%d ڕۆژ',
12458 M: 'یه‌ك مانگ',
12459 MM: '%d مانگ',
12460 y: 'یه‌ك ساڵ',
12461 yy: '%d ساڵ',
12462 },
12463 preparse: function (string) {
12464 return string
12465 .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
12466 return numberMap$a[match];
12467 })
12468 .replace(/،/g, ',');
12469 },
12470 postformat: function (string) {
12471 return string
12472 .replace(/\d/g, function (match) {
12473 return symbolMap$b[match];
12474 })
12475 .replace(/,/g, '،');
12476 },
12477 week: {
12478 dow: 6, // Saturday is the first day of the week.
12479 doy: 12, // The week that contains Jan 12th is the first week of the year.
12480 },
12481 });
12482
12483 //! moment.js locale configuration
12484
12485 var suffixes$2 = {
12486 0: '-чү',
12487 1: '-чи',
12488 2: '-чи',
12489 3: '-чү',
12490 4: '-чү',
12491 5: '-чи',
12492 6: '-чы',
12493 7: '-чи',
12494 8: '-чи',
12495 9: '-чу',
12496 10: '-чу',
12497 20: '-чы',
12498 30: '-чу',
12499 40: '-чы',
12500 50: '-чү',
12501 60: '-чы',
12502 70: '-чи',
12503 80: '-чи',
12504 90: '-чу',
12505 100: '-чү',
12506 };
12507
12508 hooks.defineLocale('ky', {
12509 months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(
12510 '_'
12511 ),
12512 monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(
12513 '_'
12514 ),
12515 weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(
12516 '_'
12517 ),
12518 weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),
12519 weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),
12520 longDateFormat: {
12521 LT: 'HH:mm',
12522 LTS: 'HH:mm:ss',
12523 L: 'DD.MM.YYYY',
12524 LL: 'D MMMM YYYY',
12525 LLL: 'D MMMM YYYY HH:mm',
12526 LLLL: 'dddd, D MMMM YYYY HH:mm',
12527 },
12528 calendar: {
12529 sameDay: '[Бүгүн саат] LT',
12530 nextDay: '[Эртең саат] LT',
12531 nextWeek: 'dddd [саат] LT',
12532 lastDay: '[Кечээ саат] LT',
12533 lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',
12534 sameElse: 'L',
12535 },
12536 relativeTime: {
12537 future: '%s ичинде',
12538 past: '%s мурун',
12539 s: 'бирнече секунд',
12540 ss: '%d секунд',
12541 m: 'бир мүнөт',
12542 mm: '%d мүнөт',
12543 h: 'бир саат',
12544 hh: '%d саат',
12545 d: 'бир күн',
12546 dd: '%d күн',
12547 M: 'бир ай',
12548 MM: '%d ай',
12549 y: 'бир жыл',
12550 yy: '%d жыл',
12551 },
12552 dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/,
12553 ordinal: function (number) {
12554 var a = number % 10,
12555 b = number >= 100 ? 100 : null;
12556 return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]);
12557 },
12558 week: {
12559 dow: 1, // Monday is the first day of the week.
12560 doy: 7, // The week that contains Jan 7th is the first week of the year.
12561 },
12562 });
12563
12564 //! moment.js locale configuration
12565
12566 function processRelativeTime$6(number, withoutSuffix, key, isFuture) {
12567 var format = {
12568 m: ['eng Minutt', 'enger Minutt'],
12569 h: ['eng Stonn', 'enger Stonn'],
12570 d: ['een Dag', 'engem Dag'],
12571 M: ['ee Mount', 'engem Mount'],
12572 y: ['ee Joer', 'engem Joer'],
12573 };
12574 return withoutSuffix ? format[key][0] : format[key][1];
12575 }
12576 function processFutureTime(string) {
12577 var number = string.substr(0, string.indexOf(' '));
12578 if (eifelerRegelAppliesToNumber(number)) {
12579 return 'a ' + string;
12580 }
12581 return 'an ' + string;
12582 }
12583 function processPastTime(string) {
12584 var number = string.substr(0, string.indexOf(' '));
12585 if (eifelerRegelAppliesToNumber(number)) {
12586 return 'viru ' + string;
12587 }
12588 return 'virun ' + string;
12589 }
12590 /**
12591 * Returns true if the word before the given number loses the '-n' ending.
12592 * e.g. 'an 10 Deeg' but 'a 5 Deeg'
12593 *
12594 * @param number {integer}
12595 * @returns {boolean}
12596 */
12597 function eifelerRegelAppliesToNumber(number) {
12598 number = parseInt(number, 10);
12599 if (isNaN(number)) {
12600 return false;
12601 }
12602 if (number < 0) {
12603 // Negative Number --> always true
12604 return true;
12605 } else if (number < 10) {
12606 // Only 1 digit
12607 if (4 <= number && number <= 7) {
12608 return true;
12609 }
12610 return false;
12611 } else if (number < 100) {
12612 // 2 digits
12613 var lastDigit = number % 10,
12614 firstDigit = number / 10;
12615 if (lastDigit === 0) {
12616 return eifelerRegelAppliesToNumber(firstDigit);
12617 }
12618 return eifelerRegelAppliesToNumber(lastDigit);
12619 } else if (number < 10000) {
12620 // 3 or 4 digits --> recursively check first digit
12621 while (number >= 10) {
12622 number = number / 10;
12623 }
12624 return eifelerRegelAppliesToNumber(number);
12625 } else {
12626 // Anything larger than 4 digits: recursively check first n-3 digits
12627 number = number / 1000;
12628 return eifelerRegelAppliesToNumber(number);
12629 }
12630 }
12631
12632 hooks.defineLocale('lb', {
12633 months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(
12634 '_'
12635 ),
12636 monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(
12637 '_'
12638 ),
12639 monthsParseExact: true,
12640 weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(
12641 '_'
12642 ),
12643 weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
12644 weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
12645 weekdaysParseExact: true,
12646 longDateFormat: {
12647 LT: 'H:mm [Auer]',
12648 LTS: 'H:mm:ss [Auer]',
12649 L: 'DD.MM.YYYY',
12650 LL: 'D. MMMM YYYY',
12651 LLL: 'D. MMMM YYYY H:mm [Auer]',
12652 LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',
12653 },
12654 calendar: {
12655 sameDay: '[Haut um] LT',
12656 sameElse: 'L',
12657 nextDay: '[Muer um] LT',
12658 nextWeek: 'dddd [um] LT',
12659 lastDay: '[Gëschter um] LT',
12660 lastWeek: function () {
12661 // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
12662 switch (this.day()) {
12663 case 2:
12664 case 4:
12665 return '[Leschten] dddd [um] LT';
12666 default:
12667 return '[Leschte] dddd [um] LT';
12668 }
12669 },
12670 },
12671 relativeTime: {
12672 future: processFutureTime,
12673 past: processPastTime,
12674 s: 'e puer Sekonnen',
12675 ss: '%d Sekonnen',
12676 m: processRelativeTime$6,
12677 mm: '%d Minutten',
12678 h: processRelativeTime$6,
12679 hh: '%d Stonnen',
12680 d: processRelativeTime$6,
12681 dd: '%d Deeg',
12682 M: processRelativeTime$6,
12683 MM: '%d Méint',
12684 y: processRelativeTime$6,
12685 yy: '%d Joer',
12686 },
12687 dayOfMonthOrdinalParse: /\d{1,2}\./,
12688 ordinal: '%d.',
12689 week: {
12690 dow: 1, // Monday is the first day of the week.
12691 doy: 4, // The week that contains Jan 4th is the first week of the year.
12692 },
12693 });
12694
12695 //! moment.js locale configuration
12696
12697 hooks.defineLocale('lo', {
12698 months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(
12699 '_'
12700 ),
12701 monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(
12702 '_'
12703 ),
12704 weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
12705 weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
12706 weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),
12707 weekdaysParseExact: true,
12708 longDateFormat: {
12709 LT: 'HH:mm',
12710 LTS: 'HH:mm:ss',
12711 L: 'DD/MM/YYYY',
12712 LL: 'D MMMM YYYY',
12713 LLL: 'D MMMM YYYY HH:mm',
12714 LLLL: 'ວັນdddd D MMMM YYYY HH:mm',
12715 },
12716 meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,
12717 isPM: function (input) {
12718 return input === 'ຕອນແລງ';
12719 },
12720 meridiem: function (hour, minute, isLower) {
12721 if (hour < 12) {
12722 return 'ຕອນເຊົ້າ';
12723 } else {
12724 return 'ຕອນແລງ';
12725 }
12726 },
12727 calendar: {
12728 sameDay: '[ມື້ນີ້ເວລາ] LT',
12729 nextDay: '[ມື້ອື່ນເວລາ] LT',
12730 nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',
12731 lastDay: '[ມື້ວານນີ້ເວລາ] LT',
12732 lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
12733 sameElse: 'L',
12734 },
12735 relativeTime: {
12736 future: 'ອີກ %s',
12737 past: '%sຜ່ານມາ',
12738 s: 'ບໍ່ເທົ່າໃດວິນາທີ',
12739 ss: '%d ວິນາທີ',
12740 m: '1 ນາທີ',
12741 mm: '%d ນາທີ',
12742 h: '1 ຊົ່ວໂມງ',
12743 hh: '%d ຊົ່ວໂມງ',
12744 d: '1 ມື້',
12745 dd: '%d ມື້',
12746 M: '1 ເດືອນ',
12747 MM: '%d ເດືອນ',
12748 y: '1 ປີ',
12749 yy: '%d ປີ',
12750 },
12751 dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/,
12752 ordinal: function (number) {
12753 return 'ທີ່' + number;
12754 },
12755 });
12756
12757 //! moment.js locale configuration
12758
12759 var units = {
12760 ss: 'sekundė_sekundžių_sekundes',
12761 m: 'minutė_minutės_minutę',
12762 mm: 'minutės_minučių_minutes',
12763 h: 'valanda_valandos_valandą',
12764 hh: 'valandos_valandų_valandas',
12765 d: 'diena_dienos_dieną',
12766 dd: 'dienos_dienų_dienas',
12767 M: 'mėnuo_mėnesio_mėnesį',
12768 MM: 'mėnesiai_mėnesių_mėnesius',
12769 y: 'metai_metų_metus',
12770 yy: 'metai_metų_metus',
12771 };
12772 function translateSeconds(number, withoutSuffix, key, isFuture) {
12773 if (withoutSuffix) {
12774 return 'kelios sekundės';
12775 } else {
12776 return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
12777 }
12778 }
12779 function translateSingular(number, withoutSuffix, key, isFuture) {
12780 return withoutSuffix
12781 ? forms(key)[0]
12782 : isFuture
12783 ? forms(key)[1]
12784 : forms(key)[2];
12785 }
12786 function special(number) {
12787 return number % 10 === 0 || (number > 10 && number < 20);
12788 }
12789 function forms(key) {
12790 return units[key].split('_');
12791 }
12792 function translate$6(number, withoutSuffix, key, isFuture) {
12793 var result = number + ' ';
12794 if (number === 1) {
12795 return (
12796 result + translateSingular(number, withoutSuffix, key[0], isFuture)
12797 );
12798 } else if (withoutSuffix) {
12799 return result + (special(number) ? forms(key)[1] : forms(key)[0]);
12800 } else {
12801 if (isFuture) {
12802 return result + forms(key)[1];
12803 } else {
12804 return result + (special(number) ? forms(key)[1] : forms(key)[2]);
12805 }
12806 }
12807 }
12808 hooks.defineLocale('lt', {
12809 months: {
12810 format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(
12811 '_'
12812 ),
12813 standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(
12814 '_'
12815 ),
12816 isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/,
12817 },
12818 monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
12819 weekdays: {
12820 format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(
12821 '_'
12822 ),
12823 standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(
12824 '_'
12825 ),
12826 isFormat: /dddd HH:mm/,
12827 },
12828 weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
12829 weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),
12830 weekdaysParseExact: true,
12831 longDateFormat: {
12832 LT: 'HH:mm',
12833 LTS: 'HH:mm:ss',
12834 L: 'YYYY-MM-DD',
12835 LL: 'YYYY [m.] MMMM D [d.]',
12836 LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
12837 LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
12838 l: 'YYYY-MM-DD',
12839 ll: 'YYYY [m.] MMMM D [d.]',
12840 lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
12841 llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',
12842 },
12843 calendar: {
12844 sameDay: '[Šiandien] LT',
12845 nextDay: '[Rytoj] LT',
12846 nextWeek: 'dddd LT',
12847 lastDay: '[Vakar] LT',
12848 lastWeek: '[Praėjusį] dddd LT',
12849 sameElse: 'L',
12850 },
12851 relativeTime: {
12852 future: 'po %s',
12853 past: 'prieš %s',
12854 s: translateSeconds,
12855 ss: translate$6,
12856 m: translateSingular,
12857 mm: translate$6,
12858 h: translateSingular,
12859 hh: translate$6,
12860 d: translateSingular,
12861 dd: translate$6,
12862 M: translateSingular,
12863 MM: translate$6,
12864 y: translateSingular,
12865 yy: translate$6,
12866 },
12867 dayOfMonthOrdinalParse: /\d{1,2}-oji/,
12868 ordinal: function (number) {
12869 return number + '-oji';
12870 },
12871 week: {
12872 dow: 1, // Monday is the first day of the week.
12873 doy: 4, // The week that contains Jan 4th is the first week of the year.
12874 },
12875 });
12876
12877 //! moment.js locale configuration
12878
12879 var units$1 = {
12880 ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),
12881 m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),
12882 mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),
12883 h: 'stundas_stundām_stunda_stundas'.split('_'),
12884 hh: 'stundas_stundām_stunda_stundas'.split('_'),
12885 d: 'dienas_dienām_diena_dienas'.split('_'),
12886 dd: 'dienas_dienām_diena_dienas'.split('_'),
12887 M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
12888 MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
12889 y: 'gada_gadiem_gads_gadi'.split('_'),
12890 yy: 'gada_gadiem_gads_gadi'.split('_'),
12891 };
12892 /**
12893 * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.
12894 */
12895 function format$1(forms, number, withoutSuffix) {
12896 if (withoutSuffix) {
12897 // E.g. "21 minūte", "3 minūtes".
12898 return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];
12899 } else {
12900 // E.g. "21 minūtes" as in "pēc 21 minūtes".
12901 // E.g. "3 minūtēm" as in "pēc 3 minūtēm".
12902 return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];
12903 }
12904 }
12905 function relativeTimeWithPlural$1(number, withoutSuffix, key) {
12906 return number + ' ' + format$1(units$1[key], number, withoutSuffix);
12907 }
12908 function relativeTimeWithSingular(number, withoutSuffix, key) {
12909 return format$1(units$1[key], number, withoutSuffix);
12910 }
12911 function relativeSeconds(number, withoutSuffix) {
12912 return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';
12913 }
12914
12915 hooks.defineLocale('lv', {
12916 months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(
12917 '_'
12918 ),
12919 monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
12920 weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(
12921 '_'
12922 ),
12923 weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),
12924 weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),
12925 weekdaysParseExact: true,
12926 longDateFormat: {
12927 LT: 'HH:mm',
12928 LTS: 'HH:mm:ss',
12929 L: 'DD.MM.YYYY.',
12930 LL: 'YYYY. [gada] D. MMMM',
12931 LLL: 'YYYY. [gada] D. MMMM, HH:mm',
12932 LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',
12933 },
12934 calendar: {
12935 sameDay: '[Šodien pulksten] LT',
12936 nextDay: '[Rīt pulksten] LT',
12937 nextWeek: 'dddd [pulksten] LT',
12938 lastDay: '[Vakar pulksten] LT',
12939 lastWeek: '[Pagājušā] dddd [pulksten] LT',
12940 sameElse: 'L',
12941 },
12942 relativeTime: {
12943 future: 'pēc %s',
12944 past: 'pirms %s',
12945 s: relativeSeconds,
12946 ss: relativeTimeWithPlural$1,
12947 m: relativeTimeWithSingular,
12948 mm: relativeTimeWithPlural$1,
12949 h: relativeTimeWithSingular,
12950 hh: relativeTimeWithPlural$1,
12951 d: relativeTimeWithSingular,
12952 dd: relativeTimeWithPlural$1,
12953 M: relativeTimeWithSingular,
12954 MM: relativeTimeWithPlural$1,
12955 y: relativeTimeWithSingular,
12956 yy: relativeTimeWithPlural$1,
12957 },
12958 dayOfMonthOrdinalParse: /\d{1,2}\./,
12959 ordinal: '%d.',
12960 week: {
12961 dow: 1, // Monday is the first day of the week.
12962 doy: 4, // The week that contains Jan 4th is the first week of the year.
12963 },
12964 });
12965
12966 //! moment.js locale configuration
12967
12968 var translator = {
12969 words: {
12970 //Different grammatical cases
12971 ss: ['sekund', 'sekunda', 'sekundi'],
12972 m: ['jedan minut', 'jednog minuta'],
12973 mm: ['minut', 'minuta', 'minuta'],
12974 h: ['jedan sat', 'jednog sata'],
12975 hh: ['sat', 'sata', 'sati'],
12976 dd: ['dan', 'dana', 'dana'],
12977 MM: ['mjesec', 'mjeseca', 'mjeseci'],
12978 yy: ['godina', 'godine', 'godina'],
12979 },
12980 correctGrammaticalCase: function (number, wordKey) {
12981 return number === 1
12982 ? wordKey[0]
12983 : number >= 2 && number <= 4
12984 ? wordKey[1]
12985 : wordKey[2];
12986 },
12987 translate: function (number, withoutSuffix, key) {
12988 var wordKey = translator.words[key];
12989 if (key.length === 1) {
12990 return withoutSuffix ? wordKey[0] : wordKey[1];
12991 } else {
12992 return (
12993 number +
12994 ' ' +
12995 translator.correctGrammaticalCase(number, wordKey)
12996 );
12997 }
12998 },
12999 };
13000
13001 hooks.defineLocale('me', {
13002 months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
13003 '_'
13004 ),
13005 monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(
13006 '_'
13007 ),
13008 monthsParseExact: true,
13009 weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
13010 '_'
13011 ),
13012 weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
13013 weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
13014 weekdaysParseExact: true,
13015 longDateFormat: {
13016 LT: 'H:mm',
13017 LTS: 'H:mm:ss',
13018 L: 'DD.MM.YYYY',
13019 LL: 'D. MMMM YYYY',
13020 LLL: 'D. MMMM YYYY H:mm',
13021 LLLL: 'dddd, D. MMMM YYYY H:mm',
13022 },
13023 calendar: {
13024 sameDay: '[danas u] LT',
13025 nextDay: '[sjutra u] LT',
13026
13027 nextWeek: function () {
13028 switch (this.day()) {
13029 case 0:
13030 return '[u] [nedjelju] [u] LT';
13031 case 3:
13032 return '[u] [srijedu] [u] LT';
13033 case 6:
13034 return '[u] [subotu] [u] LT';
13035 case 1:
13036 case 2:
13037 case 4:
13038 case 5:
13039 return '[u] dddd [u] LT';
13040 }
13041 },
13042 lastDay: '[juče u] LT',
13043 lastWeek: function () {
13044 var lastWeekDays = [
13045 '[prošle] [nedjelje] [u] LT',
13046 '[prošlog] [ponedjeljka] [u] LT',
13047 '[prošlog] [utorka] [u] LT',
13048 '[prošle] [srijede] [u] LT',
13049 '[prošlog] [četvrtka] [u] LT',
13050 '[prošlog] [petka] [u] LT',
13051 '[prošle] [subote] [u] LT',
13052 ];
13053 return lastWeekDays[this.day()];
13054 },
13055 sameElse: 'L',
13056 },
13057 relativeTime: {
13058 future: 'za %s',
13059 past: 'prije %s',
13060 s: 'nekoliko sekundi',
13061 ss: translator.translate,
13062 m: translator.translate,
13063 mm: translator.translate,
13064 h: translator.translate,
13065 hh: translator.translate,
13066 d: 'dan',
13067 dd: translator.translate,
13068 M: 'mjesec',
13069 MM: translator.translate,
13070 y: 'godinu',
13071 yy: translator.translate,
13072 },
13073 dayOfMonthOrdinalParse: /\d{1,2}\./,
13074 ordinal: '%d.',
13075 week: {
13076 dow: 1, // Monday is the first day of the week.
13077 doy: 7, // The week that contains Jan 7th is the first week of the year.
13078 },
13079 });
13080
13081 //! moment.js locale configuration
13082
13083 hooks.defineLocale('mi', {
13084 months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(
13085 '_'
13086 ),
13087 monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(
13088 '_'
13089 ),
13090 monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
13091 monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
13092 monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
13093 monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,
13094 weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),
13095 weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
13096 weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
13097 longDateFormat: {
13098 LT: 'HH:mm',
13099 LTS: 'HH:mm:ss',
13100 L: 'DD/MM/YYYY',
13101 LL: 'D MMMM YYYY',
13102 LLL: 'D MMMM YYYY [i] HH:mm',
13103 LLLL: 'dddd, D MMMM YYYY [i] HH:mm',
13104 },
13105 calendar: {
13106 sameDay: '[i teie mahana, i] LT',
13107 nextDay: '[apopo i] LT',
13108 nextWeek: 'dddd [i] LT',
13109 lastDay: '[inanahi i] LT',
13110 lastWeek: 'dddd [whakamutunga i] LT',
13111 sameElse: 'L',
13112 },
13113 relativeTime: {
13114 future: 'i roto i %s',
13115 past: '%s i mua',
13116 s: 'te hēkona ruarua',
13117 ss: '%d hēkona',
13118 m: 'he meneti',
13119 mm: '%d meneti',
13120 h: 'te haora',
13121 hh: '%d haora',
13122 d: 'he ra',
13123 dd: '%d ra',
13124 M: 'he marama',
13125 MM: '%d marama',
13126 y: 'he tau',
13127 yy: '%d tau',
13128 },
13129 dayOfMonthOrdinalParse: /\d{1,2}º/,
13130 ordinal: '%dº',
13131 week: {
13132 dow: 1, // Monday is the first day of the week.
13133 doy: 4, // The week that contains Jan 4th is the first week of the year.
13134 },
13135 });
13136
13137 //! moment.js locale configuration
13138
13139 hooks.defineLocale('mk', {
13140 months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(
13141 '_'
13142 ),
13143 monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
13144 weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(
13145 '_'
13146 ),
13147 weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
13148 weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),
13149 longDateFormat: {
13150 LT: 'H:mm',
13151 LTS: 'H:mm:ss',
13152 L: 'D.MM.YYYY',
13153 LL: 'D MMMM YYYY',
13154 LLL: 'D MMMM YYYY H:mm',
13155 LLLL: 'dddd, D MMMM YYYY H:mm',
13156 },
13157 calendar: {
13158 sameDay: '[Денес во] LT',
13159 nextDay: '[Утре во] LT',
13160 nextWeek: '[Во] dddd [во] LT',
13161 lastDay: '[Вчера во] LT',
13162 lastWeek: function () {
13163 switch (this.day()) {
13164 case 0:
13165 case 3:
13166 case 6:
13167 return '[Изминатата] dddd [во] LT';
13168 case 1:
13169 case 2:
13170 case 4:
13171 case 5:
13172 return '[Изминатиот] dddd [во] LT';
13173 }
13174 },
13175 sameElse: 'L',
13176 },
13177 relativeTime: {
13178 future: 'за %s',
13179 past: 'пред %s',
13180 s: 'неколку секунди',
13181 ss: '%d секунди',
13182 m: 'една минута',
13183 mm: '%d минути',
13184 h: 'еден час',
13185 hh: '%d часа',
13186 d: 'еден ден',
13187 dd: '%d дена',
13188 M: 'еден месец',
13189 MM: '%d месеци',
13190 y: 'една година',
13191 yy: '%d години',
13192 },
13193 dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
13194 ordinal: function (number) {
13195 var lastDigit = number % 10,
13196 last2Digits = number % 100;
13197 if (number === 0) {
13198 return number + '-ев';
13199 } else if (last2Digits === 0) {
13200 return number + '-ен';
13201 } else if (last2Digits > 10 && last2Digits < 20) {
13202 return number + '-ти';
13203 } else if (lastDigit === 1) {
13204 return number + '-ви';
13205 } else if (lastDigit === 2) {
13206 return number + '-ри';
13207 } else if (lastDigit === 7 || lastDigit === 8) {
13208 return number + '-ми';
13209 } else {
13210 return number + '-ти';
13211 }
13212 },
13213 week: {
13214 dow: 1, // Monday is the first day of the week.
13215 doy: 7, // The week that contains Jan 7th is the first week of the year.
13216 },
13217 });
13218
13219 //! moment.js locale configuration
13220
13221 hooks.defineLocale('ml', {
13222 months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(
13223 '_'
13224 ),
13225 monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(
13226 '_'
13227 ),
13228 monthsParseExact: true,
13229 weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(
13230 '_'
13231 ),
13232 weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
13233 weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
13234 longDateFormat: {
13235 LT: 'A h:mm -നു',
13236 LTS: 'A h:mm:ss -നു',
13237 L: 'DD/MM/YYYY',
13238 LL: 'D MMMM YYYY',
13239 LLL: 'D MMMM YYYY, A h:mm -നു',
13240 LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',
13241 },
13242 calendar: {
13243 sameDay: '[ഇന്ന്] LT',
13244 nextDay: '[നാളെ] LT',
13245 nextWeek: 'dddd, LT',
13246 lastDay: '[ഇന്നലെ] LT',
13247 lastWeek: '[കഴിഞ്ഞ] dddd, LT',
13248 sameElse: 'L',
13249 },
13250 relativeTime: {
13251 future: '%s കഴിഞ്ഞ്',
13252 past: '%s മുൻപ്',
13253 s: 'അൽപ നിമിഷങ്ങൾ',
13254 ss: '%d സെക്കൻഡ്',
13255 m: 'ഒരു മിനിറ്റ്',
13256 mm: '%d മിനിറ്റ്',
13257 h: 'ഒരു മണിക്കൂർ',
13258 hh: '%d മണിക്കൂർ',
13259 d: 'ഒരു ദിവസം',
13260 dd: '%d ദിവസം',
13261 M: 'ഒരു മാസം',
13262 MM: '%d മാസം',
13263 y: 'ഒരു വർഷം',
13264 yy: '%d വർഷം',
13265 },
13266 meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
13267 meridiemHour: function (hour, meridiem) {
13268 if (hour === 12) {
13269 hour = 0;
13270 }
13271 if (
13272 (meridiem === 'രാത്രി' && hour >= 4) ||
13273 meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||
13274 meridiem === 'വൈകുന്നേരം'
13275 ) {
13276 return hour + 12;
13277 } else {
13278 return hour;
13279 }
13280 },
13281 meridiem: function (hour, minute, isLower) {
13282 if (hour < 4) {
13283 return 'രാത്രി';
13284 } else if (hour < 12) {
13285 return 'രാവിലെ';
13286 } else if (hour < 17) {
13287 return 'ഉച്ച കഴിഞ്ഞ്';
13288 } else if (hour < 20) {
13289 return 'വൈകുന്നേരം';
13290 } else {
13291 return 'രാത്രി';
13292 }
13293 },
13294 });
13295
13296 //! moment.js locale configuration
13297
13298 function translate$7(number, withoutSuffix, key, isFuture) {
13299 switch (key) {
13300 case 's':
13301 return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';
13302 case 'ss':
13303 return number + (withoutSuffix ? ' секунд' : ' секундын');
13304 case 'm':
13305 case 'mm':
13306 return number + (withoutSuffix ? ' минут' : ' минутын');
13307 case 'h':
13308 case 'hh':
13309 return number + (withoutSuffix ? ' цаг' : ' цагийн');
13310 case 'd':
13311 case 'dd':
13312 return number + (withoutSuffix ? ' өдөр' : ' өдрийн');
13313 case 'M':
13314 case 'MM':
13315 return number + (withoutSuffix ? ' сар' : ' сарын');
13316 case 'y':
13317 case 'yy':
13318 return number + (withoutSuffix ? ' жил' : ' жилийн');
13319 default:
13320 return number;
13321 }
13322 }
13323
13324 hooks.defineLocale('mn', {
13325 months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(
13326 '_'
13327 ),
13328 monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(
13329 '_'
13330 ),
13331 monthsParseExact: true,
13332 weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),
13333 weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),
13334 weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),
13335 weekdaysParseExact: true,
13336 longDateFormat: {
13337 LT: 'HH:mm',
13338 LTS: 'HH:mm:ss',
13339 L: 'YYYY-MM-DD',
13340 LL: 'YYYY оны MMMMын D',
13341 LLL: 'YYYY оны MMMMын D HH:mm',
13342 LLLL: 'dddd, YYYY оны MMMMын D HH:mm',
13343 },
13344 meridiemParse: /ҮӨ|ҮХ/i,
13345 isPM: function (input) {
13346 return input === 'ҮХ';
13347 },
13348 meridiem: function (hour, minute, isLower) {
13349 if (hour < 12) {
13350 return 'ҮӨ';
13351 } else {
13352 return 'ҮХ';
13353 }
13354 },
13355 calendar: {
13356 sameDay: '[Өнөөдөр] LT',
13357 nextDay: '[Маргааш] LT',
13358 nextWeek: '[Ирэх] dddd LT',
13359 lastDay: '[Өчигдөр] LT',
13360 lastWeek: '[Өнгөрсөн] dddd LT',
13361 sameElse: 'L',
13362 },
13363 relativeTime: {
13364 future: '%s дараа',
13365 past: '%s өмнө',
13366 s: translate$7,
13367 ss: translate$7,
13368 m: translate$7,
13369 mm: translate$7,
13370 h: translate$7,
13371 hh: translate$7,
13372 d: translate$7,
13373 dd: translate$7,
13374 M: translate$7,
13375 MM: translate$7,
13376 y: translate$7,
13377 yy: translate$7,
13378 },
13379 dayOfMonthOrdinalParse: /\d{1,2} өдөр/,
13380 ordinal: function (number, period) {
13381 switch (period) {
13382 case 'd':
13383 case 'D':
13384 case 'DDD':
13385 return number + ' өдөр';
13386 default:
13387 return number;
13388 }
13389 },
13390 });
13391
13392 //! moment.js locale configuration
13393
13394 var symbolMap$c = {
13395 1: '१',
13396 2: '२',
13397 3: '३',
13398 4: '४',
13399 5: '५',
13400 6: '६',
13401 7: '७',
13402 8: '८',
13403 9: '९',
13404 0: '०',
13405 },
13406 numberMap$b = {
13407 '१': '1',
13408 '२': '2',
13409 '३': '3',
13410 '४': '4',
13411 '५': '5',
13412 '६': '6',
13413 '७': '7',
13414 '८': '8',
13415 '९': '9',
13416 '०': '0',
13417 };
13418
13419 function relativeTimeMr(number, withoutSuffix, string, isFuture) {
13420 var output = '';
13421 if (withoutSuffix) {
13422 switch (string) {
13423 case 's':
13424 output = 'काही सेकंद';
13425 break;
13426 case 'ss':
13427 output = '%d सेकंद';
13428 break;
13429 case 'm':
13430 output = 'एक मिनिट';
13431 break;
13432 case 'mm':
13433 output = '%d मिनिटे';
13434 break;
13435 case 'h':
13436 output = 'एक तास';
13437 break;
13438 case 'hh':
13439 output = '%d तास';
13440 break;
13441 case 'd':
13442 output = 'एक दिवस';
13443 break;
13444 case 'dd':
13445 output = '%d दिवस';
13446 break;
13447 case 'M':
13448 output = 'एक महिना';
13449 break;
13450 case 'MM':
13451 output = '%d महिने';
13452 break;
13453 case 'y':
13454 output = 'एक वर्ष';
13455 break;
13456 case 'yy':
13457 output = '%d वर्षे';
13458 break;
13459 }
13460 } else {
13461 switch (string) {
13462 case 's':
13463 output = 'काही सेकंदां';
13464 break;
13465 case 'ss':
13466 output = '%d सेकंदां';
13467 break;
13468 case 'm':
13469 output = 'एका मिनिटा';
13470 break;
13471 case 'mm':
13472 output = '%d मिनिटां';
13473 break;
13474 case 'h':
13475 output = 'एका तासा';
13476 break;
13477 case 'hh':
13478 output = '%d तासां';
13479 break;
13480 case 'd':
13481 output = 'एका दिवसा';
13482 break;
13483 case 'dd':
13484 output = '%d दिवसां';
13485 break;
13486 case 'M':
13487 output = 'एका महिन्या';
13488 break;
13489 case 'MM':
13490 output = '%d महिन्यां';
13491 break;
13492 case 'y':
13493 output = 'एका वर्षा';
13494 break;
13495 case 'yy':
13496 output = '%d वर्षां';
13497 break;
13498 }
13499 }
13500 return output.replace(/%d/i, number);
13501 }
13502
13503 hooks.defineLocale('mr', {
13504 months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(
13505 '_'
13506 ),
13507 monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(
13508 '_'
13509 ),
13510 monthsParseExact: true,
13511 weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
13512 weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
13513 weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
13514 longDateFormat: {
13515 LT: 'A h:mm वाजता',
13516 LTS: 'A h:mm:ss वाजता',
13517 L: 'DD/MM/YYYY',
13518 LL: 'D MMMM YYYY',
13519 LLL: 'D MMMM YYYY, A h:mm वाजता',
13520 LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',
13521 },
13522 calendar: {
13523 sameDay: '[आज] LT',
13524 nextDay: '[उद्या] LT',
13525 nextWeek: 'dddd, LT',
13526 lastDay: '[काल] LT',
13527 lastWeek: '[मागील] dddd, LT',
13528 sameElse: 'L',
13529 },
13530 relativeTime: {
13531 future: '%sमध्ये',
13532 past: '%sपूर्वी',
13533 s: relativeTimeMr,
13534 ss: relativeTimeMr,
13535 m: relativeTimeMr,
13536 mm: relativeTimeMr,
13537 h: relativeTimeMr,
13538 hh: relativeTimeMr,
13539 d: relativeTimeMr,
13540 dd: relativeTimeMr,
13541 M: relativeTimeMr,
13542 MM: relativeTimeMr,
13543 y: relativeTimeMr,
13544 yy: relativeTimeMr,
13545 },
13546 preparse: function (string) {
13547 return string.replace(/[१२३४५६७८९०]/g, function (match) {
13548 return numberMap$b[match];
13549 });
13550 },
13551 postformat: function (string) {
13552 return string.replace(/\d/g, function (match) {
13553 return symbolMap$c[match];
13554 });
13555 },
13556 meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,
13557 meridiemHour: function (hour, meridiem) {
13558 if (hour === 12) {
13559 hour = 0;
13560 }
13561 if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {
13562 return hour;
13563 } else if (
13564 meridiem === 'दुपारी' ||
13565 meridiem === 'सायंकाळी' ||
13566 meridiem === 'रात्री'
13567 ) {
13568 return hour >= 12 ? hour : hour + 12;
13569 }
13570 },
13571 meridiem: function (hour, minute, isLower) {
13572 if (hour >= 0 && hour < 6) {
13573 return 'पहाटे';
13574 } else if (hour < 12) {
13575 return 'सकाळी';
13576 } else if (hour < 17) {
13577 return 'दुपारी';
13578 } else if (hour < 20) {
13579 return 'सायंकाळी';
13580 } else {
13581 return 'रात्री';
13582 }
13583 },
13584 week: {
13585 dow: 0, // Sunday is the first day of the week.
13586 doy: 6, // The week that contains Jan 6th is the first week of the year.
13587 },
13588 });
13589
13590 //! moment.js locale configuration
13591
13592 hooks.defineLocale('ms-my', {
13593 months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
13594 '_'
13595 ),
13596 monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
13597 weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
13598 weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
13599 weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
13600 longDateFormat: {
13601 LT: 'HH.mm',
13602 LTS: 'HH.mm.ss',
13603 L: 'DD/MM/YYYY',
13604 LL: 'D MMMM YYYY',
13605 LLL: 'D MMMM YYYY [pukul] HH.mm',
13606 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
13607 },
13608 meridiemParse: /pagi|tengahari|petang|malam/,
13609 meridiemHour: function (hour, meridiem) {
13610 if (hour === 12) {
13611 hour = 0;
13612 }
13613 if (meridiem === 'pagi') {
13614 return hour;
13615 } else if (meridiem === 'tengahari') {
13616 return hour >= 11 ? hour : hour + 12;
13617 } else if (meridiem === 'petang' || meridiem === 'malam') {
13618 return hour + 12;
13619 }
13620 },
13621 meridiem: function (hours, minutes, isLower) {
13622 if (hours < 11) {
13623 return 'pagi';
13624 } else if (hours < 15) {
13625 return 'tengahari';
13626 } else if (hours < 19) {
13627 return 'petang';
13628 } else {
13629 return 'malam';
13630 }
13631 },
13632 calendar: {
13633 sameDay: '[Hari ini pukul] LT',
13634 nextDay: '[Esok pukul] LT',
13635 nextWeek: 'dddd [pukul] LT',
13636 lastDay: '[Kelmarin pukul] LT',
13637 lastWeek: 'dddd [lepas pukul] LT',
13638 sameElse: 'L',
13639 },
13640 relativeTime: {
13641 future: 'dalam %s',
13642 past: '%s yang lepas',
13643 s: 'beberapa saat',
13644 ss: '%d saat',
13645 m: 'seminit',
13646 mm: '%d minit',
13647 h: 'sejam',
13648 hh: '%d jam',
13649 d: 'sehari',
13650 dd: '%d hari',
13651 M: 'sebulan',
13652 MM: '%d bulan',
13653 y: 'setahun',
13654 yy: '%d tahun',
13655 },
13656 week: {
13657 dow: 1, // Monday is the first day of the week.
13658 doy: 7, // The week that contains Jan 7th is the first week of the year.
13659 },
13660 });
13661
13662 //! moment.js locale configuration
13663
13664 hooks.defineLocale('ms', {
13665 months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
13666 '_'
13667 ),
13668 monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
13669 weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
13670 weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
13671 weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
13672 longDateFormat: {
13673 LT: 'HH.mm',
13674 LTS: 'HH.mm.ss',
13675 L: 'DD/MM/YYYY',
13676 LL: 'D MMMM YYYY',
13677 LLL: 'D MMMM YYYY [pukul] HH.mm',
13678 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
13679 },
13680 meridiemParse: /pagi|tengahari|petang|malam/,
13681 meridiemHour: function (hour, meridiem) {
13682 if (hour === 12) {
13683 hour = 0;
13684 }
13685 if (meridiem === 'pagi') {
13686 return hour;
13687 } else if (meridiem === 'tengahari') {
13688 return hour >= 11 ? hour : hour + 12;
13689 } else if (meridiem === 'petang' || meridiem === 'malam') {
13690 return hour + 12;
13691 }
13692 },
13693 meridiem: function (hours, minutes, isLower) {
13694 if (hours < 11) {
13695 return 'pagi';
13696 } else if (hours < 15) {
13697 return 'tengahari';
13698 } else if (hours < 19) {
13699 return 'petang';
13700 } else {
13701 return 'malam';
13702 }
13703 },
13704 calendar: {
13705 sameDay: '[Hari ini pukul] LT',
13706 nextDay: '[Esok pukul] LT',
13707 nextWeek: 'dddd [pukul] LT',
13708 lastDay: '[Kelmarin pukul] LT',
13709 lastWeek: 'dddd [lepas pukul] LT',
13710 sameElse: 'L',
13711 },
13712 relativeTime: {
13713 future: 'dalam %s',
13714 past: '%s yang lepas',
13715 s: 'beberapa saat',
13716 ss: '%d saat',
13717 m: 'seminit',
13718 mm: '%d minit',
13719 h: 'sejam',
13720 hh: '%d jam',
13721 d: 'sehari',
13722 dd: '%d hari',
13723 M: 'sebulan',
13724 MM: '%d bulan',
13725 y: 'setahun',
13726 yy: '%d tahun',
13727 },
13728 week: {
13729 dow: 1, // Monday is the first day of the week.
13730 doy: 7, // The week that contains Jan 7th is the first week of the year.
13731 },
13732 });
13733
13734 //! moment.js locale configuration
13735
13736 hooks.defineLocale('mt', {
13737 months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(
13738 '_'
13739 ),
13740 monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),
13741 weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(
13742 '_'
13743 ),
13744 weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),
13745 weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),
13746 longDateFormat: {
13747 LT: 'HH:mm',
13748 LTS: 'HH:mm:ss',
13749 L: 'DD/MM/YYYY',
13750 LL: 'D MMMM YYYY',
13751 LLL: 'D MMMM YYYY HH:mm',
13752 LLLL: 'dddd, D MMMM YYYY HH:mm',
13753 },
13754 calendar: {
13755 sameDay: '[Illum fil-]LT',
13756 nextDay: '[Għada fil-]LT',
13757 nextWeek: 'dddd [fil-]LT',
13758 lastDay: '[Il-bieraħ fil-]LT',
13759 lastWeek: 'dddd [li għadda] [fil-]LT',
13760 sameElse: 'L',
13761 },
13762 relativeTime: {
13763 future: 'f’ %s',
13764 past: '%s ilu',
13765 s: 'ftit sekondi',
13766 ss: '%d sekondi',
13767 m: 'minuta',
13768 mm: '%d minuti',
13769 h: 'siegħa',
13770 hh: '%d siegħat',
13771 d: 'ġurnata',
13772 dd: '%d ġranet',
13773 M: 'xahar',
13774 MM: '%d xhur',
13775 y: 'sena',
13776 yy: '%d sni',
13777 },
13778 dayOfMonthOrdinalParse: /\d{1,2}º/,
13779 ordinal: '%dº',
13780 week: {
13781 dow: 1, // Monday is the first day of the week.
13782 doy: 4, // The week that contains Jan 4th is the first week of the year.
13783 },
13784 });
13785
13786 //! moment.js locale configuration
13787
13788 var symbolMap$d = {
13789 1: '၁',
13790 2: '၂',
13791 3: '၃',
13792 4: '၄',
13793 5: '၅',
13794 6: '၆',
13795 7: '၇',
13796 8: '၈',
13797 9: '၉',
13798 0: '၀',
13799 },
13800 numberMap$c = {
13801 '၁': '1',
13802 '၂': '2',
13803 '၃': '3',
13804 '၄': '4',
13805 '၅': '5',
13806 '၆': '6',
13807 '၇': '7',
13808 '၈': '8',
13809 '၉': '9',
13810 '၀': '0',
13811 };
13812
13813 hooks.defineLocale('my', {
13814 months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(
13815 '_'
13816 ),
13817 monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
13818 weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(
13819 '_'
13820 ),
13821 weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
13822 weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
13823
13824 longDateFormat: {
13825 LT: 'HH:mm',
13826 LTS: 'HH:mm:ss',
13827 L: 'DD/MM/YYYY',
13828 LL: 'D MMMM YYYY',
13829 LLL: 'D MMMM YYYY HH:mm',
13830 LLLL: 'dddd D MMMM YYYY HH:mm',
13831 },
13832 calendar: {
13833 sameDay: '[ယနေ.] LT [မှာ]',
13834 nextDay: '[မနက်ဖြန်] LT [မှာ]',
13835 nextWeek: 'dddd LT [မှာ]',
13836 lastDay: '[မနေ.က] LT [မှာ]',
13837 lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
13838 sameElse: 'L',
13839 },
13840 relativeTime: {
13841 future: 'လာမည့် %s မှာ',
13842 past: 'လွန်ခဲ့သော %s က',
13843 s: 'စက္ကန်.အနည်းငယ်',
13844 ss: '%d စက္ကန့်',
13845 m: 'တစ်မိနစ်',
13846 mm: '%d မိနစ်',
13847 h: 'တစ်နာရီ',
13848 hh: '%d နာရီ',
13849 d: 'တစ်ရက်',
13850 dd: '%d ရက်',
13851 M: 'တစ်လ',
13852 MM: '%d လ',
13853 y: 'တစ်နှစ်',
13854 yy: '%d နှစ်',
13855 },
13856 preparse: function (string) {
13857 return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
13858 return numberMap$c[match];
13859 });
13860 },
13861 postformat: function (string) {
13862 return string.replace(/\d/g, function (match) {
13863 return symbolMap$d[match];
13864 });
13865 },
13866 week: {
13867 dow: 1, // Monday is the first day of the week.
13868 doy: 4, // The week that contains Jan 4th is the first week of the year.
13869 },
13870 });
13871
13872 //! moment.js locale configuration
13873
13874 hooks.defineLocale('nb', {
13875 months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
13876 '_'
13877 ),
13878 monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(
13879 '_'
13880 ),
13881 monthsParseExact: true,
13882 weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
13883 weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),
13884 weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
13885 weekdaysParseExact: true,
13886 longDateFormat: {
13887 LT: 'HH:mm',
13888 LTS: 'HH:mm:ss',
13889 L: 'DD.MM.YYYY',
13890 LL: 'D. MMMM YYYY',
13891 LLL: 'D. MMMM YYYY [kl.] HH:mm',
13892 LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
13893 },
13894 calendar: {
13895 sameDay: '[i dag kl.] LT',
13896 nextDay: '[i morgen kl.] LT',
13897 nextWeek: 'dddd [kl.] LT',
13898 lastDay: '[i går kl.] LT',
13899 lastWeek: '[forrige] dddd [kl.] LT',
13900 sameElse: 'L',
13901 },
13902 relativeTime: {
13903 future: 'om %s',
13904 past: '%s siden',
13905 s: 'noen sekunder',
13906 ss: '%d sekunder',
13907 m: 'ett minutt',
13908 mm: '%d minutter',
13909 h: 'en time',
13910 hh: '%d timer',
13911 d: 'en dag',
13912 dd: '%d dager',
13913 w: 'en uke',
13914 ww: '%d uker',
13915 M: 'en måned',
13916 MM: '%d måneder',
13917 y: 'ett år',
13918 yy: '%d år',
13919 },
13920 dayOfMonthOrdinalParse: /\d{1,2}\./,
13921 ordinal: '%d.',
13922 week: {
13923 dow: 1, // Monday is the first day of the week.
13924 doy: 4, // The week that contains Jan 4th is the first week of the year.
13925 },
13926 });
13927
13928 //! moment.js locale configuration
13929
13930 var symbolMap$e = {
13931 1: '१',
13932 2: '२',
13933 3: '३',
13934 4: '४',
13935 5: '५',
13936 6: '६',
13937 7: '७',
13938 8: '८',
13939 9: '९',
13940 0: '०',
13941 },
13942 numberMap$d = {
13943 '१': '1',
13944 '२': '2',
13945 '३': '3',
13946 '४': '4',
13947 '५': '5',
13948 '६': '6',
13949 '७': '7',
13950 '८': '8',
13951 '९': '9',
13952 '०': '0',
13953 };
13954
13955 hooks.defineLocale('ne', {
13956 months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(
13957 '_'
13958 ),
13959 monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(
13960 '_'
13961 ),
13962 monthsParseExact: true,
13963 weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(
13964 '_'
13965 ),
13966 weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
13967 weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),
13968 weekdaysParseExact: true,
13969 longDateFormat: {
13970 LT: 'Aको h:mm बजे',
13971 LTS: 'Aको h:mm:ss बजे',
13972 L: 'DD/MM/YYYY',
13973 LL: 'D MMMM YYYY',
13974 LLL: 'D MMMM YYYY, Aको h:mm बजे',
13975 LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',
13976 },
13977 preparse: function (string) {
13978 return string.replace(/[१२३४५६७८९०]/g, function (match) {
13979 return numberMap$d[match];
13980 });
13981 },
13982 postformat: function (string) {
13983 return string.replace(/\d/g, function (match) {
13984 return symbolMap$e[match];
13985 });
13986 },
13987 meridiemParse: /राति|बिहान|दिउँसो|साँझ/,
13988 meridiemHour: function (hour, meridiem) {
13989 if (hour === 12) {
13990 hour = 0;
13991 }
13992 if (meridiem === 'राति') {
13993 return hour < 4 ? hour : hour + 12;
13994 } else if (meridiem === 'बिहान') {
13995 return hour;
13996 } else if (meridiem === 'दिउँसो') {
13997 return hour >= 10 ? hour : hour + 12;
13998 } else if (meridiem === 'साँझ') {
13999 return hour + 12;
14000 }
14001 },
14002 meridiem: function (hour, minute, isLower) {
14003 if (hour < 3) {
14004 return 'राति';
14005 } else if (hour < 12) {
14006 return 'बिहान';
14007 } else if (hour < 16) {
14008 return 'दिउँसो';
14009 } else if (hour < 20) {
14010 return 'साँझ';
14011 } else {
14012 return 'राति';
14013 }
14014 },
14015 calendar: {
14016 sameDay: '[आज] LT',
14017 nextDay: '[भोलि] LT',
14018 nextWeek: '[आउँदो] dddd[,] LT',
14019 lastDay: '[हिजो] LT',
14020 lastWeek: '[गएको] dddd[,] LT',
14021 sameElse: 'L',
14022 },
14023 relativeTime: {
14024 future: '%sमा',
14025 past: '%s अगाडि',
14026 s: 'केही क्षण',
14027 ss: '%d सेकेण्ड',
14028 m: 'एक मिनेट',
14029 mm: '%d मिनेट',
14030 h: 'एक घण्टा',
14031 hh: '%d घण्टा',
14032 d: 'एक दिन',
14033 dd: '%d दिन',
14034 M: 'एक महिना',
14035 MM: '%d महिना',
14036 y: 'एक बर्ष',
14037 yy: '%d बर्ष',
14038 },
14039 week: {
14040 dow: 0, // Sunday is the first day of the week.
14041 doy: 6, // The week that contains Jan 6th is the first week of the year.
14042 },
14043 });
14044
14045 //! moment.js locale configuration
14046
14047 var monthsShortWithDots$1 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(
14048 '_'
14049 ),
14050 monthsShortWithoutDots$1 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(
14051 '_'
14052 ),
14053 monthsParse$7 = [
14054 /^jan/i,
14055 /^feb/i,
14056 /^maart|mrt.?$/i,
14057 /^apr/i,
14058 /^mei$/i,
14059 /^jun[i.]?$/i,
14060 /^jul[i.]?$/i,
14061 /^aug/i,
14062 /^sep/i,
14063 /^okt/i,
14064 /^nov/i,
14065 /^dec/i,
14066 ],
14067 monthsRegex$8 = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
14068
14069 hooks.defineLocale('nl-be', {
14070 months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
14071 '_'
14072 ),
14073 monthsShort: function (m, format) {
14074 if (!m) {
14075 return monthsShortWithDots$1;
14076 } else if (/-MMM-/.test(format)) {
14077 return monthsShortWithoutDots$1[m.month()];
14078 } else {
14079 return monthsShortWithDots$1[m.month()];
14080 }
14081 },
14082
14083 monthsRegex: monthsRegex$8,
14084 monthsShortRegex: monthsRegex$8,
14085 monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
14086 monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
14087
14088 monthsParse: monthsParse$7,
14089 longMonthsParse: monthsParse$7,
14090 shortMonthsParse: monthsParse$7,
14091
14092 weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(
14093 '_'
14094 ),
14095 weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
14096 weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
14097 weekdaysParseExact: true,
14098 longDateFormat: {
14099 LT: 'HH:mm',
14100 LTS: 'HH:mm:ss',
14101 L: 'DD/MM/YYYY',
14102 LL: 'D MMMM YYYY',
14103 LLL: 'D MMMM YYYY HH:mm',
14104 LLLL: 'dddd D MMMM YYYY HH:mm',
14105 },
14106 calendar: {
14107 sameDay: '[vandaag om] LT',
14108 nextDay: '[morgen om] LT',
14109 nextWeek: 'dddd [om] LT',
14110 lastDay: '[gisteren om] LT',
14111 lastWeek: '[afgelopen] dddd [om] LT',
14112 sameElse: 'L',
14113 },
14114 relativeTime: {
14115 future: 'over %s',
14116 past: '%s geleden',
14117 s: 'een paar seconden',
14118 ss: '%d seconden',
14119 m: 'één minuut',
14120 mm: '%d minuten',
14121 h: 'één uur',
14122 hh: '%d uur',
14123 d: 'één dag',
14124 dd: '%d dagen',
14125 M: 'één maand',
14126 MM: '%d maanden',
14127 y: 'één jaar',
14128 yy: '%d jaar',
14129 },
14130 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
14131 ordinal: function (number) {
14132 return (
14133 number +
14134 (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
14135 );
14136 },
14137 week: {
14138 dow: 1, // Monday is the first day of the week.
14139 doy: 4, // The week that contains Jan 4th is the first week of the year.
14140 },
14141 });
14142
14143 //! moment.js locale configuration
14144
14145 var monthsShortWithDots$2 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(
14146 '_'
14147 ),
14148 monthsShortWithoutDots$2 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(
14149 '_'
14150 ),
14151 monthsParse$8 = [
14152 /^jan/i,
14153 /^feb/i,
14154 /^maart|mrt.?$/i,
14155 /^apr/i,
14156 /^mei$/i,
14157 /^jun[i.]?$/i,
14158 /^jul[i.]?$/i,
14159 /^aug/i,
14160 /^sep/i,
14161 /^okt/i,
14162 /^nov/i,
14163 /^dec/i,
14164 ],
14165 monthsRegex$9 = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
14166
14167 hooks.defineLocale('nl', {
14168 months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
14169 '_'
14170 ),
14171 monthsShort: function (m, format) {
14172 if (!m) {
14173 return monthsShortWithDots$2;
14174 } else if (/-MMM-/.test(format)) {
14175 return monthsShortWithoutDots$2[m.month()];
14176 } else {
14177 return monthsShortWithDots$2[m.month()];
14178 }
14179 },
14180
14181 monthsRegex: monthsRegex$9,
14182 monthsShortRegex: monthsRegex$9,
14183 monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
14184 monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
14185
14186 monthsParse: monthsParse$8,
14187 longMonthsParse: monthsParse$8,
14188 shortMonthsParse: monthsParse$8,
14189
14190 weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(
14191 '_'
14192 ),
14193 weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
14194 weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
14195 weekdaysParseExact: true,
14196 longDateFormat: {
14197 LT: 'HH:mm',
14198 LTS: 'HH:mm:ss',
14199 L: 'DD-MM-YYYY',
14200 LL: 'D MMMM YYYY',
14201 LLL: 'D MMMM YYYY HH:mm',
14202 LLLL: 'dddd D MMMM YYYY HH:mm',
14203 },
14204 calendar: {
14205 sameDay: '[vandaag om] LT',
14206 nextDay: '[morgen om] LT',
14207 nextWeek: 'dddd [om] LT',
14208 lastDay: '[gisteren om] LT',
14209 lastWeek: '[afgelopen] dddd [om] LT',
14210 sameElse: 'L',
14211 },
14212 relativeTime: {
14213 future: 'over %s',
14214 past: '%s geleden',
14215 s: 'een paar seconden',
14216 ss: '%d seconden',
14217 m: 'één minuut',
14218 mm: '%d minuten',
14219 h: 'één uur',
14220 hh: '%d uur',
14221 d: 'één dag',
14222 dd: '%d dagen',
14223 w: 'één week',
14224 ww: '%d weken',
14225 M: 'één maand',
14226 MM: '%d maanden',
14227 y: 'één jaar',
14228 yy: '%d jaar',
14229 },
14230 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
14231 ordinal: function (number) {
14232 return (
14233 number +
14234 (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
14235 );
14236 },
14237 week: {
14238 dow: 1, // Monday is the first day of the week.
14239 doy: 4, // The week that contains Jan 4th is the first week of the year.
14240 },
14241 });
14242
14243 //! moment.js locale configuration
14244
14245 hooks.defineLocale('nn', {
14246 months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
14247 '_'
14248 ),
14249 monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(
14250 '_'
14251 ),
14252 monthsParseExact: true,
14253 weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
14254 weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),
14255 weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),
14256 weekdaysParseExact: true,
14257 longDateFormat: {
14258 LT: 'HH:mm',
14259 LTS: 'HH:mm:ss',
14260 L: 'DD.MM.YYYY',
14261 LL: 'D. MMMM YYYY',
14262 LLL: 'D. MMMM YYYY [kl.] H:mm',
14263 LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
14264 },
14265 calendar: {
14266 sameDay: '[I dag klokka] LT',
14267 nextDay: '[I morgon klokka] LT',
14268 nextWeek: 'dddd [klokka] LT',
14269 lastDay: '[I går klokka] LT',
14270 lastWeek: '[Føregåande] dddd [klokka] LT',
14271 sameElse: 'L',
14272 },
14273 relativeTime: {
14274 future: 'om %s',
14275 past: '%s sidan',
14276 s: 'nokre sekund',
14277 ss: '%d sekund',
14278 m: 'eit minutt',
14279 mm: '%d minutt',
14280 h: 'ein time',
14281 hh: '%d timar',
14282 d: 'ein dag',
14283 dd: '%d dagar',
14284 w: 'ei veke',
14285 ww: '%d veker',
14286 M: 'ein månad',
14287 MM: '%d månader',
14288 y: 'eit år',
14289 yy: '%d år',
14290 },
14291 dayOfMonthOrdinalParse: /\d{1,2}\./,
14292 ordinal: '%d.',
14293 week: {
14294 dow: 1, // Monday is the first day of the week.
14295 doy: 4, // The week that contains Jan 4th is the first week of the year.
14296 },
14297 });
14298
14299 //! moment.js locale configuration
14300
14301 hooks.defineLocale('oc-lnc', {
14302 months: {
14303 standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(
14304 '_'
14305 ),
14306 format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split(
14307 '_'
14308 ),
14309 isFormat: /D[oD]?(\s)+MMMM/,
14310 },
14311 monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(
14312 '_'
14313 ),
14314 monthsParseExact: true,
14315 weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(
14316 '_'
14317 ),
14318 weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),
14319 weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),
14320 weekdaysParseExact: true,
14321 longDateFormat: {
14322 LT: 'H:mm',
14323 LTS: 'H:mm:ss',
14324 L: 'DD/MM/YYYY',
14325 LL: 'D MMMM [de] YYYY',
14326 ll: 'D MMM YYYY',
14327 LLL: 'D MMMM [de] YYYY [a] H:mm',
14328 lll: 'D MMM YYYY, H:mm',
14329 LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',
14330 llll: 'ddd D MMM YYYY, H:mm',
14331 },
14332 calendar: {
14333 sameDay: '[uèi a] LT',
14334 nextDay: '[deman a] LT',
14335 nextWeek: 'dddd [a] LT',
14336 lastDay: '[ièr a] LT',
14337 lastWeek: 'dddd [passat a] LT',
14338 sameElse: 'L',
14339 },
14340 relativeTime: {
14341 future: "d'aquí %s",
14342 past: 'fa %s',
14343 s: 'unas segondas',
14344 ss: '%d segondas',
14345 m: 'una minuta',
14346 mm: '%d minutas',
14347 h: 'una ora',
14348 hh: '%d oras',
14349 d: 'un jorn',
14350 dd: '%d jorns',
14351 M: 'un mes',
14352 MM: '%d meses',
14353 y: 'un an',
14354 yy: '%d ans',
14355 },
14356 dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
14357 ordinal: function (number, period) {
14358 var output =
14359 number === 1
14360 ? 'r'
14361 : number === 2
14362 ? 'n'
14363 : number === 3
14364 ? 'r'
14365 : number === 4
14366 ? 't'
14367 : 'è';
14368 if (period === 'w' || period === 'W') {
14369 output = 'a';
14370 }
14371 return number + output;
14372 },
14373 week: {
14374 dow: 1, // Monday is the first day of the week.
14375 doy: 4,
14376 },
14377 });
14378
14379 //! moment.js locale configuration
14380
14381 var symbolMap$f = {
14382 1: '੧',
14383 2: '੨',
14384 3: '੩',
14385 4: '੪',
14386 5: '੫',
14387 6: '੬',
14388 7: '੭',
14389 8: '੮',
14390 9: '੯',
14391 0: '੦',
14392 },
14393 numberMap$e = {
14394 '੧': '1',
14395 '੨': '2',
14396 '੩': '3',
14397 '੪': '4',
14398 '੫': '5',
14399 '੬': '6',
14400 '੭': '7',
14401 '੮': '8',
14402 '੯': '9',
14403 '੦': '0',
14404 };
14405
14406 hooks.defineLocale('pa-in', {
14407 // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.
14408 months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(
14409 '_'
14410 ),
14411 monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(
14412 '_'
14413 ),
14414 weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(
14415 '_'
14416 ),
14417 weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
14418 weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
14419 longDateFormat: {
14420 LT: 'A h:mm ਵਜੇ',
14421 LTS: 'A h:mm:ss ਵਜੇ',
14422 L: 'DD/MM/YYYY',
14423 LL: 'D MMMM YYYY',
14424 LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',
14425 LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',
14426 },
14427 calendar: {
14428 sameDay: '[ਅਜ] LT',
14429 nextDay: '[ਕਲ] LT',
14430 nextWeek: '[ਅਗਲਾ] dddd, LT',
14431 lastDay: '[ਕਲ] LT',
14432 lastWeek: '[ਪਿਛਲੇ] dddd, LT',
14433 sameElse: 'L',
14434 },
14435 relativeTime: {
14436 future: '%s ਵਿੱਚ',
14437 past: '%s ਪਿਛਲੇ',
14438 s: 'ਕੁਝ ਸਕਿੰਟ',
14439 ss: '%d ਸਕਿੰਟ',
14440 m: 'ਇਕ ਮਿੰਟ',
14441 mm: '%d ਮਿੰਟ',
14442 h: 'ਇੱਕ ਘੰਟਾ',
14443 hh: '%d ਘੰਟੇ',
14444 d: 'ਇੱਕ ਦਿਨ',
14445 dd: '%d ਦਿਨ',
14446 M: 'ਇੱਕ ਮਹੀਨਾ',
14447 MM: '%d ਮਹੀਨੇ',
14448 y: 'ਇੱਕ ਸਾਲ',
14449 yy: '%d ਸਾਲ',
14450 },
14451 preparse: function (string) {
14452 return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {
14453 return numberMap$e[match];
14454 });
14455 },
14456 postformat: function (string) {
14457 return string.replace(/\d/g, function (match) {
14458 return symbolMap$f[match];
14459 });
14460 },
14461 // Punjabi notation for meridiems are quite fuzzy in practice. While there exists
14462 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.
14463 meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,
14464 meridiemHour: function (hour, meridiem) {
14465 if (hour === 12) {
14466 hour = 0;
14467 }
14468 if (meridiem === 'ਰਾਤ') {
14469 return hour < 4 ? hour : hour + 12;
14470 } else if (meridiem === 'ਸਵੇਰ') {
14471 return hour;
14472 } else if (meridiem === 'ਦੁਪਹਿਰ') {
14473 return hour >= 10 ? hour : hour + 12;
14474 } else if (meridiem === 'ਸ਼ਾਮ') {
14475 return hour + 12;
14476 }
14477 },
14478 meridiem: function (hour, minute, isLower) {
14479 if (hour < 4) {
14480 return 'ਰਾਤ';
14481 } else if (hour < 10) {
14482 return 'ਸਵੇਰ';
14483 } else if (hour < 17) {
14484 return 'ਦੁਪਹਿਰ';
14485 } else if (hour < 20) {
14486 return 'ਸ਼ਾਮ';
14487 } else {
14488 return 'ਰਾਤ';
14489 }
14490 },
14491 week: {
14492 dow: 0, // Sunday is the first day of the week.
14493 doy: 6, // The week that contains Jan 6th is the first week of the year.
14494 },
14495 });
14496
14497 //! moment.js locale configuration
14498
14499 var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(
14500 '_'
14501 ),
14502 monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(
14503 '_'
14504 ),
14505 monthsParse$9 = [
14506 /^sty/i,
14507 /^lut/i,
14508 /^mar/i,
14509 /^kwi/i,
14510 /^maj/i,
14511 /^cze/i,
14512 /^lip/i,
14513 /^sie/i,
14514 /^wrz/i,
14515 /^paź/i,
14516 /^lis/i,
14517 /^gru/i,
14518 ];
14519 function plural$3(n) {
14520 return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;
14521 }
14522 function translate$8(number, withoutSuffix, key) {
14523 var result = number + ' ';
14524 switch (key) {
14525 case 'ss':
14526 return result + (plural$3(number) ? 'sekundy' : 'sekund');
14527 case 'm':
14528 return withoutSuffix ? 'minuta' : 'minutę';
14529 case 'mm':
14530 return result + (plural$3(number) ? 'minuty' : 'minut');
14531 case 'h':
14532 return withoutSuffix ? 'godzina' : 'godzinę';
14533 case 'hh':
14534 return result + (plural$3(number) ? 'godziny' : 'godzin');
14535 case 'ww':
14536 return result + (plural$3(number) ? 'tygodnie' : 'tygodni');
14537 case 'MM':
14538 return result + (plural$3(number) ? 'miesiące' : 'miesięcy');
14539 case 'yy':
14540 return result + (plural$3(number) ? 'lata' : 'lat');
14541 }
14542 }
14543
14544 hooks.defineLocale('pl', {
14545 months: function (momentToFormat, format) {
14546 if (!momentToFormat) {
14547 return monthsNominative;
14548 } else if (/D MMMM/.test(format)) {
14549 return monthsSubjective[momentToFormat.month()];
14550 } else {
14551 return monthsNominative[momentToFormat.month()];
14552 }
14553 },
14554 monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
14555 monthsParse: monthsParse$9,
14556 longMonthsParse: monthsParse$9,
14557 shortMonthsParse: monthsParse$9,
14558 weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split(
14559 '_'
14560 ),
14561 weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),
14562 weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
14563 longDateFormat: {
14564 LT: 'HH:mm',
14565 LTS: 'HH:mm:ss',
14566 L: 'DD.MM.YYYY',
14567 LL: 'D MMMM YYYY',
14568 LLL: 'D MMMM YYYY HH:mm',
14569 LLLL: 'dddd, D MMMM YYYY HH:mm',
14570 },
14571 calendar: {
14572 sameDay: '[Dziś o] LT',
14573 nextDay: '[Jutro o] LT',
14574 nextWeek: function () {
14575 switch (this.day()) {
14576 case 0:
14577 return '[W niedzielę o] LT';
14578
14579 case 2:
14580 return '[We wtorek o] LT';
14581
14582 case 3:
14583 return '[W środę o] LT';
14584
14585 case 6:
14586 return '[W sobotę o] LT';
14587
14588 default:
14589 return '[W] dddd [o] LT';
14590 }
14591 },
14592 lastDay: '[Wczoraj o] LT',
14593 lastWeek: function () {
14594 switch (this.day()) {
14595 case 0:
14596 return '[W zeszłą niedzielę o] LT';
14597 case 3:
14598 return '[W zeszłą środę o] LT';
14599 case 6:
14600 return '[W zeszłą sobotę o] LT';
14601 default:
14602 return '[W zeszły] dddd [o] LT';
14603 }
14604 },
14605 sameElse: 'L',
14606 },
14607 relativeTime: {
14608 future: 'za %s',
14609 past: '%s temu',
14610 s: 'kilka sekund',
14611 ss: translate$8,
14612 m: translate$8,
14613 mm: translate$8,
14614 h: translate$8,
14615 hh: translate$8,
14616 d: '1 dzień',
14617 dd: '%d dni',
14618 w: 'tydzień',
14619 ww: translate$8,
14620 M: 'miesiąc',
14621 MM: translate$8,
14622 y: 'rok',
14623 yy: translate$8,
14624 },
14625 dayOfMonthOrdinalParse: /\d{1,2}\./,
14626 ordinal: '%d.',
14627 week: {
14628 dow: 1, // Monday is the first day of the week.
14629 doy: 4, // The week that contains Jan 4th is the first week of the year.
14630 },
14631 });
14632
14633 //! moment.js locale configuration
14634
14635 hooks.defineLocale('pt-br', {
14636 months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(
14637 '_'
14638 ),
14639 monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
14640 weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(
14641 '_'
14642 ),
14643 weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),
14644 weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),
14645 weekdaysParseExact: true,
14646 longDateFormat: {
14647 LT: 'HH:mm',
14648 LTS: 'HH:mm:ss',
14649 L: 'DD/MM/YYYY',
14650 LL: 'D [de] MMMM [de] YYYY',
14651 LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',
14652 LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',
14653 },
14654 calendar: {
14655 sameDay: '[Hoje às] LT',
14656 nextDay: '[Amanhã às] LT',
14657 nextWeek: 'dddd [às] LT',
14658 lastDay: '[Ontem às] LT',
14659 lastWeek: function () {
14660 return this.day() === 0 || this.day() === 6
14661 ? '[Último] dddd [às] LT' // Saturday + Sunday
14662 : '[Última] dddd [às] LT'; // Monday - Friday
14663 },
14664 sameElse: 'L',
14665 },
14666 relativeTime: {
14667 future: 'em %s',
14668 past: 'há %s',
14669 s: 'poucos segundos',
14670 ss: '%d segundos',
14671 m: 'um minuto',
14672 mm: '%d minutos',
14673 h: 'uma hora',
14674 hh: '%d horas',
14675 d: 'um dia',
14676 dd: '%d dias',
14677 M: 'um mês',
14678 MM: '%d meses',
14679 y: 'um ano',
14680 yy: '%d anos',
14681 },
14682 dayOfMonthOrdinalParse: /\d{1,2}º/,
14683 ordinal: '%dº',
14684 invalidDate: 'Data inválida',
14685 });
14686
14687 //! moment.js locale configuration
14688
14689 hooks.defineLocale('pt', {
14690 months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(
14691 '_'
14692 ),
14693 monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
14694 weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(
14695 '_'
14696 ),
14697 weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
14698 weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
14699 weekdaysParseExact: true,
14700 longDateFormat: {
14701 LT: 'HH:mm',
14702 LTS: 'HH:mm:ss',
14703 L: 'DD/MM/YYYY',
14704 LL: 'D [de] MMMM [de] YYYY',
14705 LLL: 'D [de] MMMM [de] YYYY HH:mm',
14706 LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',
14707 },
14708 calendar: {
14709 sameDay: '[Hoje às] LT',
14710 nextDay: '[Amanhã às] LT',
14711 nextWeek: 'dddd [às] LT',
14712 lastDay: '[Ontem às] LT',
14713 lastWeek: function () {
14714 return this.day() === 0 || this.day() === 6
14715 ? '[Último] dddd [às] LT' // Saturday + Sunday
14716 : '[Última] dddd [às] LT'; // Monday - Friday
14717 },
14718 sameElse: 'L',
14719 },
14720 relativeTime: {
14721 future: 'em %s',
14722 past: 'há %s',
14723 s: 'segundos',
14724 ss: '%d segundos',
14725 m: 'um minuto',
14726 mm: '%d minutos',
14727 h: 'uma hora',
14728 hh: '%d horas',
14729 d: 'um dia',
14730 dd: '%d dias',
14731 w: 'uma semana',
14732 ww: '%d semanas',
14733 M: 'um mês',
14734 MM: '%d meses',
14735 y: 'um ano',
14736 yy: '%d anos',
14737 },
14738 dayOfMonthOrdinalParse: /\d{1,2}º/,
14739 ordinal: '%dº',
14740 week: {
14741 dow: 1, // Monday is the first day of the week.
14742 doy: 4, // The week that contains Jan 4th is the first week of the year.
14743 },
14744 });
14745
14746 //! moment.js locale configuration
14747
14748 function relativeTimeWithPlural$2(number, withoutSuffix, key) {
14749 var format = {
14750 ss: 'secunde',
14751 mm: 'minute',
14752 hh: 'ore',
14753 dd: 'zile',
14754 ww: 'săptămâni',
14755 MM: 'luni',
14756 yy: 'ani',
14757 },
14758 separator = ' ';
14759 if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
14760 separator = ' de ';
14761 }
14762 return number + separator + format[key];
14763 }
14764
14765 hooks.defineLocale('ro', {
14766 months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(
14767 '_'
14768 ),
14769 monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(
14770 '_'
14771 ),
14772 monthsParseExact: true,
14773 weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
14774 weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
14775 weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
14776 longDateFormat: {
14777 LT: 'H:mm',
14778 LTS: 'H:mm:ss',
14779 L: 'DD.MM.YYYY',
14780 LL: 'D MMMM YYYY',
14781 LLL: 'D MMMM YYYY H:mm',
14782 LLLL: 'dddd, D MMMM YYYY H:mm',
14783 },
14784 calendar: {
14785 sameDay: '[azi la] LT',
14786 nextDay: '[mâine la] LT',
14787 nextWeek: 'dddd [la] LT',
14788 lastDay: '[ieri la] LT',
14789 lastWeek: '[fosta] dddd [la] LT',
14790 sameElse: 'L',
14791 },
14792 relativeTime: {
14793 future: 'peste %s',
14794 past: '%s în urmă',
14795 s: 'câteva secunde',
14796 ss: relativeTimeWithPlural$2,
14797 m: 'un minut',
14798 mm: relativeTimeWithPlural$2,
14799 h: 'o oră',
14800 hh: relativeTimeWithPlural$2,
14801 d: 'o zi',
14802 dd: relativeTimeWithPlural$2,
14803 w: 'o săptămână',
14804 ww: relativeTimeWithPlural$2,
14805 M: 'o lună',
14806 MM: relativeTimeWithPlural$2,
14807 y: 'un an',
14808 yy: relativeTimeWithPlural$2,
14809 },
14810 week: {
14811 dow: 1, // Monday is the first day of the week.
14812 doy: 7, // The week that contains Jan 7th is the first week of the year.
14813 },
14814 });
14815
14816 //! moment.js locale configuration
14817
14818 function plural$4(word, num) {
14819 var forms = word.split('_');
14820 return num % 10 === 1 && num % 100 !== 11
14821 ? forms[0]
14822 : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
14823 ? forms[1]
14824 : forms[2];
14825 }
14826 function relativeTimeWithPlural$3(number, withoutSuffix, key) {
14827 var format = {
14828 ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
14829 mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
14830 hh: 'час_часа_часов',
14831 dd: 'день_дня_дней',
14832 ww: 'неделя_недели_недель',
14833 MM: 'месяц_месяца_месяцев',
14834 yy: 'год_года_лет',
14835 };
14836 if (key === 'm') {
14837 return withoutSuffix ? 'минута' : 'минуту';
14838 } else {
14839 return number + ' ' + plural$4(format[key], +number);
14840 }
14841 }
14842 var monthsParse$a = [
14843 /^янв/i,
14844 /^фев/i,
14845 /^мар/i,
14846 /^апр/i,
14847 /^ма[йя]/i,
14848 /^июн/i,
14849 /^июл/i,
14850 /^авг/i,
14851 /^сен/i,
14852 /^окт/i,
14853 /^ноя/i,
14854 /^дек/i,
14855 ];
14856
14857 // http://new.gramota.ru/spravka/rules/139-prop : § 103
14858 // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637
14859 // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753
14860 hooks.defineLocale('ru', {
14861 months: {
14862 format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(
14863 '_'
14864 ),
14865 standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(
14866 '_'
14867 ),
14868 },
14869 monthsShort: {
14870 // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку?
14871 format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(
14872 '_'
14873 ),
14874 standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(
14875 '_'
14876 ),
14877 },
14878 weekdays: {
14879 standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(
14880 '_'
14881 ),
14882 format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(
14883 '_'
14884 ),
14885 isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,
14886 },
14887 weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
14888 weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
14889 monthsParse: monthsParse$a,
14890 longMonthsParse: monthsParse$a,
14891 shortMonthsParse: monthsParse$a,
14892
14893 // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки
14894 monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
14895
14896 // копия предыдущего
14897 monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
14898
14899 // полные названия с падежами
14900 monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,
14901
14902 // Выражение, которое соответствует только сокращённым формам
14903 monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,
14904 longDateFormat: {
14905 LT: 'H:mm',
14906 LTS: 'H:mm:ss',
14907 L: 'DD.MM.YYYY',
14908 LL: 'D MMMM YYYY г.',
14909 LLL: 'D MMMM YYYY г., H:mm',
14910 LLLL: 'dddd, D MMMM YYYY г., H:mm',
14911 },
14912 calendar: {
14913 sameDay: '[Сегодня, в] LT',
14914 nextDay: '[Завтра, в] LT',
14915 lastDay: '[Вчера, в] LT',
14916 nextWeek: function (now) {
14917 if (now.week() !== this.week()) {
14918 switch (this.day()) {
14919 case 0:
14920 return '[В следующее] dddd, [в] LT';
14921 case 1:
14922 case 2:
14923 case 4:
14924 return '[В следующий] dddd, [в] LT';
14925 case 3:
14926 case 5:
14927 case 6:
14928 return '[В следующую] dddd, [в] LT';
14929 }
14930 } else {
14931 if (this.day() === 2) {
14932 return '[Во] dddd, [в] LT';
14933 } else {
14934 return '[В] dddd, [в] LT';
14935 }
14936 }
14937 },
14938 lastWeek: function (now) {
14939 if (now.week() !== this.week()) {
14940 switch (this.day()) {
14941 case 0:
14942 return '[В прошлое] dddd, [в] LT';
14943 case 1:
14944 case 2:
14945 case 4:
14946 return '[В прошлый] dddd, [в] LT';
14947 case 3:
14948 case 5:
14949 case 6:
14950 return '[В прошлую] dddd, [в] LT';
14951 }
14952 } else {
14953 if (this.day() === 2) {
14954 return '[Во] dddd, [в] LT';
14955 } else {
14956 return '[В] dddd, [в] LT';
14957 }
14958 }
14959 },
14960 sameElse: 'L',
14961 },
14962 relativeTime: {
14963 future: 'через %s',
14964 past: '%s назад',
14965 s: 'несколько секунд',
14966 ss: relativeTimeWithPlural$3,
14967 m: relativeTimeWithPlural$3,
14968 mm: relativeTimeWithPlural$3,
14969 h: 'час',
14970 hh: relativeTimeWithPlural$3,
14971 d: 'день',
14972 dd: relativeTimeWithPlural$3,
14973 w: 'неделя',
14974 ww: relativeTimeWithPlural$3,
14975 M: 'месяц',
14976 MM: relativeTimeWithPlural$3,
14977 y: 'год',
14978 yy: relativeTimeWithPlural$3,
14979 },
14980 meridiemParse: /ночи|утра|дня|вечера/i,
14981 isPM: function (input) {
14982 return /^(дня|вечера)$/.test(input);
14983 },
14984 meridiem: function (hour, minute, isLower) {
14985 if (hour < 4) {
14986 return 'ночи';
14987 } else if (hour < 12) {
14988 return 'утра';
14989 } else if (hour < 17) {
14990 return 'дня';
14991 } else {
14992 return 'вечера';
14993 }
14994 },
14995 dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/,
14996 ordinal: function (number, period) {
14997 switch (period) {
14998 case 'M':
14999 case 'd':
15000 case 'DDD':
15001 return number + '-й';
15002 case 'D':
15003 return number + '-го';
15004 case 'w':
15005 case 'W':
15006 return number + '-я';
15007 default:
15008 return number;
15009 }
15010 },
15011 week: {
15012 dow: 1, // Monday is the first day of the week.
15013 doy: 4, // The week that contains Jan 4th is the first week of the year.
15014 },
15015 });
15016
15017 //! moment.js locale configuration
15018
15019 var months$9 = [
15020 'جنوري',
15021 'فيبروري',
15022 'مارچ',
15023 'اپريل',
15024 'مئي',
15025 'جون',
15026 'جولاءِ',
15027 'آگسٽ',
15028 'سيپٽمبر',
15029 'آڪٽوبر',
15030 'نومبر',
15031 'ڊسمبر',
15032 ],
15033 days$1 = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];
15034
15035 hooks.defineLocale('sd', {
15036 months: months$9,
15037 monthsShort: months$9,
15038 weekdays: days$1,
15039 weekdaysShort: days$1,
15040 weekdaysMin: days$1,
15041 longDateFormat: {
15042 LT: 'HH:mm',
15043 LTS: 'HH:mm:ss',
15044 L: 'DD/MM/YYYY',
15045 LL: 'D MMMM YYYY',
15046 LLL: 'D MMMM YYYY HH:mm',
15047 LLLL: 'dddd، D MMMM YYYY HH:mm',
15048 },
15049 meridiemParse: /صبح|شام/,
15050 isPM: function (input) {
15051 return 'شام' === input;
15052 },
15053 meridiem: function (hour, minute, isLower) {
15054 if (hour < 12) {
15055 return 'صبح';
15056 }
15057 return 'شام';
15058 },
15059 calendar: {
15060 sameDay: '[اڄ] LT',
15061 nextDay: '[سڀاڻي] LT',
15062 nextWeek: 'dddd [اڳين هفتي تي] LT',
15063 lastDay: '[ڪالهه] LT',
15064 lastWeek: '[گزريل هفتي] dddd [تي] LT',
15065 sameElse: 'L',
15066 },
15067 relativeTime: {
15068 future: '%s پوء',
15069 past: '%s اڳ',
15070 s: 'چند سيڪنڊ',
15071 ss: '%d سيڪنڊ',
15072 m: 'هڪ منٽ',
15073 mm: '%d منٽ',
15074 h: 'هڪ ڪلاڪ',
15075 hh: '%d ڪلاڪ',
15076 d: 'هڪ ڏينهن',
15077 dd: '%d ڏينهن',
15078 M: 'هڪ مهينو',
15079 MM: '%d مهينا',
15080 y: 'هڪ سال',
15081 yy: '%d سال',
15082 },
15083 preparse: function (string) {
15084 return string.replace(/،/g, ',');
15085 },
15086 postformat: function (string) {
15087 return string.replace(/,/g, '،');
15088 },
15089 week: {
15090 dow: 1, // Monday is the first day of the week.
15091 doy: 4, // The week that contains Jan 4th is the first week of the year.
15092 },
15093 });
15094
15095 //! moment.js locale configuration
15096
15097 hooks.defineLocale('se', {
15098 months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(
15099 '_'
15100 ),
15101 monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split(
15102 '_'
15103 ),
15104 weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(
15105 '_'
15106 ),
15107 weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),
15108 weekdaysMin: 's_v_m_g_d_b_L'.split('_'),
15109 longDateFormat: {
15110 LT: 'HH:mm',
15111 LTS: 'HH:mm:ss',
15112 L: 'DD.MM.YYYY',
15113 LL: 'MMMM D. [b.] YYYY',
15114 LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',
15115 LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',
15116 },
15117 calendar: {
15118 sameDay: '[otne ti] LT',
15119 nextDay: '[ihttin ti] LT',
15120 nextWeek: 'dddd [ti] LT',
15121 lastDay: '[ikte ti] LT',
15122 lastWeek: '[ovddit] dddd [ti] LT',
15123 sameElse: 'L',
15124 },
15125 relativeTime: {
15126 future: '%s geažes',
15127 past: 'maŋit %s',
15128 s: 'moadde sekunddat',
15129 ss: '%d sekunddat',
15130 m: 'okta minuhta',
15131 mm: '%d minuhtat',
15132 h: 'okta diimmu',
15133 hh: '%d diimmut',
15134 d: 'okta beaivi',
15135 dd: '%d beaivvit',
15136 M: 'okta mánnu',
15137 MM: '%d mánut',
15138 y: 'okta jahki',
15139 yy: '%d jagit',
15140 },
15141 dayOfMonthOrdinalParse: /\d{1,2}\./,
15142 ordinal: '%d.',
15143 week: {
15144 dow: 1, // Monday is the first day of the week.
15145 doy: 4, // The week that contains Jan 4th is the first week of the year.
15146 },
15147 });
15148
15149 //! moment.js locale configuration
15150
15151 /*jshint -W100*/
15152 hooks.defineLocale('si', {
15153 months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(
15154 '_'
15155 ),
15156 monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(
15157 '_'
15158 ),
15159 weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(
15160 '_'
15161 ),
15162 weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),
15163 weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),
15164 weekdaysParseExact: true,
15165 longDateFormat: {
15166 LT: 'a h:mm',
15167 LTS: 'a h:mm:ss',
15168 L: 'YYYY/MM/DD',
15169 LL: 'YYYY MMMM D',
15170 LLL: 'YYYY MMMM D, a h:mm',
15171 LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',
15172 },
15173 calendar: {
15174 sameDay: '[අද] LT[ට]',
15175 nextDay: '[හෙට] LT[ට]',
15176 nextWeek: 'dddd LT[ට]',
15177 lastDay: '[ඊයේ] LT[ට]',
15178 lastWeek: '[පසුගිය] dddd LT[ට]',
15179 sameElse: 'L',
15180 },
15181 relativeTime: {
15182 future: '%sකින්',
15183 past: '%sකට පෙර',
15184 s: 'තත්පර කිහිපය',
15185 ss: 'තත්පර %d',
15186 m: 'මිනිත්තුව',
15187 mm: 'මිනිත්තු %d',
15188 h: 'පැය',
15189 hh: 'පැය %d',
15190 d: 'දිනය',
15191 dd: 'දින %d',
15192 M: 'මාසය',
15193 MM: 'මාස %d',
15194 y: 'වසර',
15195 yy: 'වසර %d',
15196 },
15197 dayOfMonthOrdinalParse: /\d{1,2} වැනි/,
15198 ordinal: function (number) {
15199 return number + ' වැනි';
15200 },
15201 meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,
15202 isPM: function (input) {
15203 return input === 'ප.ව.' || input === 'පස් වරු';
15204 },
15205 meridiem: function (hours, minutes, isLower) {
15206 if (hours > 11) {
15207 return isLower ? 'ප.ව.' : 'පස් වරු';
15208 } else {
15209 return isLower ? 'පෙ.ව.' : 'පෙර වරු';
15210 }
15211 },
15212 });
15213
15214 //! moment.js locale configuration
15215
15216 var months$a = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(
15217 '_'
15218 ),
15219 monthsShort$7 = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
15220 function plural$5(n) {
15221 return n > 1 && n < 5;
15222 }
15223 function translate$9(number, withoutSuffix, key, isFuture) {
15224 var result = number + ' ';
15225 switch (key) {
15226 case 's': // a few seconds / in a few seconds / a few seconds ago
15227 return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';
15228 case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
15229 if (withoutSuffix || isFuture) {
15230 return result + (plural$5(number) ? 'sekundy' : 'sekúnd');
15231 } else {
15232 return result + 'sekundami';
15233 }
15234 case 'm': // a minute / in a minute / a minute ago
15235 return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';
15236 case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
15237 if (withoutSuffix || isFuture) {
15238 return result + (plural$5(number) ? 'minúty' : 'minút');
15239 } else {
15240 return result + 'minútami';
15241 }
15242 case 'h': // an hour / in an hour / an hour ago
15243 return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';
15244 case 'hh': // 9 hours / in 9 hours / 9 hours ago
15245 if (withoutSuffix || isFuture) {
15246 return result + (plural$5(number) ? 'hodiny' : 'hodín');
15247 } else {
15248 return result + 'hodinami';
15249 }
15250 case 'd': // a day / in a day / a day ago
15251 return withoutSuffix || isFuture ? 'deň' : 'dňom';
15252 case 'dd': // 9 days / in 9 days / 9 days ago
15253 if (withoutSuffix || isFuture) {
15254 return result + (plural$5(number) ? 'dni' : 'dní');
15255 } else {
15256 return result + 'dňami';
15257 }
15258 case 'M': // a month / in a month / a month ago
15259 return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';
15260 case 'MM': // 9 months / in 9 months / 9 months ago
15261 if (withoutSuffix || isFuture) {
15262 return result + (plural$5(number) ? 'mesiace' : 'mesiacov');
15263 } else {
15264 return result + 'mesiacmi';
15265 }
15266 case 'y': // a year / in a year / a year ago
15267 return withoutSuffix || isFuture ? 'rok' : 'rokom';
15268 case 'yy': // 9 years / in 9 years / 9 years ago
15269 if (withoutSuffix || isFuture) {
15270 return result + (plural$5(number) ? 'roky' : 'rokov');
15271 } else {
15272 return result + 'rokmi';
15273 }
15274 }
15275 }
15276
15277 hooks.defineLocale('sk', {
15278 months: months$a,
15279 monthsShort: monthsShort$7,
15280 weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
15281 weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),
15282 weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),
15283 longDateFormat: {
15284 LT: 'H:mm',
15285 LTS: 'H:mm:ss',
15286 L: 'DD.MM.YYYY',
15287 LL: 'D. MMMM YYYY',
15288 LLL: 'D. MMMM YYYY H:mm',
15289 LLLL: 'dddd D. MMMM YYYY H:mm',
15290 },
15291 calendar: {
15292 sameDay: '[dnes o] LT',
15293 nextDay: '[zajtra o] LT',
15294 nextWeek: function () {
15295 switch (this.day()) {
15296 case 0:
15297 return '[v nedeľu o] LT';
15298 case 1:
15299 case 2:
15300 return '[v] dddd [o] LT';
15301 case 3:
15302 return '[v stredu o] LT';
15303 case 4:
15304 return '[vo štvrtok o] LT';
15305 case 5:
15306 return '[v piatok o] LT';
15307 case 6:
15308 return '[v sobotu o] LT';
15309 }
15310 },
15311 lastDay: '[včera o] LT',
15312 lastWeek: function () {
15313 switch (this.day()) {
15314 case 0:
15315 return '[minulú nedeľu o] LT';
15316 case 1:
15317 case 2:
15318 return '[minulý] dddd [o] LT';
15319 case 3:
15320 return '[minulú stredu o] LT';
15321 case 4:
15322 case 5:
15323 return '[minulý] dddd [o] LT';
15324 case 6:
15325 return '[minulú sobotu o] LT';
15326 }
15327 },
15328 sameElse: 'L',
15329 },
15330 relativeTime: {
15331 future: 'za %s',
15332 past: 'pred %s',
15333 s: translate$9,
15334 ss: translate$9,
15335 m: translate$9,
15336 mm: translate$9,
15337 h: translate$9,
15338 hh: translate$9,
15339 d: translate$9,
15340 dd: translate$9,
15341 M: translate$9,
15342 MM: translate$9,
15343 y: translate$9,
15344 yy: translate$9,
15345 },
15346 dayOfMonthOrdinalParse: /\d{1,2}\./,
15347 ordinal: '%d.',
15348 week: {
15349 dow: 1, // Monday is the first day of the week.
15350 doy: 4, // The week that contains Jan 4th is the first week of the year.
15351 },
15352 });
15353
15354 //! moment.js locale configuration
15355
15356 function processRelativeTime$7(number, withoutSuffix, key, isFuture) {
15357 var result = number + ' ';
15358 switch (key) {
15359 case 's':
15360 return withoutSuffix || isFuture
15361 ? 'nekaj sekund'
15362 : 'nekaj sekundami';
15363 case 'ss':
15364 if (number === 1) {
15365 result += withoutSuffix ? 'sekundo' : 'sekundi';
15366 } else if (number === 2) {
15367 result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';
15368 } else if (number < 5) {
15369 result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';
15370 } else {
15371 result += 'sekund';
15372 }
15373 return result;
15374 case 'm':
15375 return withoutSuffix ? 'ena minuta' : 'eno minuto';
15376 case 'mm':
15377 if (number === 1) {
15378 result += withoutSuffix ? 'minuta' : 'minuto';
15379 } else if (number === 2) {
15380 result += withoutSuffix || isFuture ? 'minuti' : 'minutama';
15381 } else if (number < 5) {
15382 result += withoutSuffix || isFuture ? 'minute' : 'minutami';
15383 } else {
15384 result += withoutSuffix || isFuture ? 'minut' : 'minutami';
15385 }
15386 return result;
15387 case 'h':
15388 return withoutSuffix ? 'ena ura' : 'eno uro';
15389 case 'hh':
15390 if (number === 1) {
15391 result += withoutSuffix ? 'ura' : 'uro';
15392 } else if (number === 2) {
15393 result += withoutSuffix || isFuture ? 'uri' : 'urama';
15394 } else if (number < 5) {
15395 result += withoutSuffix || isFuture ? 'ure' : 'urami';
15396 } else {
15397 result += withoutSuffix || isFuture ? 'ur' : 'urami';
15398 }
15399 return result;
15400 case 'd':
15401 return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';
15402 case 'dd':
15403 if (number === 1) {
15404 result += withoutSuffix || isFuture ? 'dan' : 'dnem';
15405 } else if (number === 2) {
15406 result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';
15407 } else {
15408 result += withoutSuffix || isFuture ? 'dni' : 'dnevi';
15409 }
15410 return result;
15411 case 'M':
15412 return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';
15413 case 'MM':
15414 if (number === 1) {
15415 result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';
15416 } else if (number === 2) {
15417 result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';
15418 } else if (number < 5) {
15419 result += withoutSuffix || isFuture ? 'mesece' : 'meseci';
15420 } else {
15421 result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';
15422 }
15423 return result;
15424 case 'y':
15425 return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';
15426 case 'yy':
15427 if (number === 1) {
15428 result += withoutSuffix || isFuture ? 'leto' : 'letom';
15429 } else if (number === 2) {
15430 result += withoutSuffix || isFuture ? 'leti' : 'letoma';
15431 } else if (number < 5) {
15432 result += withoutSuffix || isFuture ? 'leta' : 'leti';
15433 } else {
15434 result += withoutSuffix || isFuture ? 'let' : 'leti';
15435 }
15436 return result;
15437 }
15438 }
15439
15440 hooks.defineLocale('sl', {
15441 months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(
15442 '_'
15443 ),
15444 monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(
15445 '_'
15446 ),
15447 monthsParseExact: true,
15448 weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
15449 weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
15450 weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),
15451 weekdaysParseExact: true,
15452 longDateFormat: {
15453 LT: 'H:mm',
15454 LTS: 'H:mm:ss',
15455 L: 'DD. MM. YYYY',
15456 LL: 'D. MMMM YYYY',
15457 LLL: 'D. MMMM YYYY H:mm',
15458 LLLL: 'dddd, D. MMMM YYYY H:mm',
15459 },
15460 calendar: {
15461 sameDay: '[danes ob] LT',
15462 nextDay: '[jutri ob] LT',
15463
15464 nextWeek: function () {
15465 switch (this.day()) {
15466 case 0:
15467 return '[v] [nedeljo] [ob] LT';
15468 case 3:
15469 return '[v] [sredo] [ob] LT';
15470 case 6:
15471 return '[v] [soboto] [ob] LT';
15472 case 1:
15473 case 2:
15474 case 4:
15475 case 5:
15476 return '[v] dddd [ob] LT';
15477 }
15478 },
15479 lastDay: '[včeraj ob] LT',
15480 lastWeek: function () {
15481 switch (this.day()) {
15482 case 0:
15483 return '[prejšnjo] [nedeljo] [ob] LT';
15484 case 3:
15485 return '[prejšnjo] [sredo] [ob] LT';
15486 case 6:
15487 return '[prejšnjo] [soboto] [ob] LT';
15488 case 1:
15489 case 2:
15490 case 4:
15491 case 5:
15492 return '[prejšnji] dddd [ob] LT';
15493 }
15494 },
15495 sameElse: 'L',
15496 },
15497 relativeTime: {
15498 future: 'čez %s',
15499 past: 'pred %s',
15500 s: processRelativeTime$7,
15501 ss: processRelativeTime$7,
15502 m: processRelativeTime$7,
15503 mm: processRelativeTime$7,
15504 h: processRelativeTime$7,
15505 hh: processRelativeTime$7,
15506 d: processRelativeTime$7,
15507 dd: processRelativeTime$7,
15508 M: processRelativeTime$7,
15509 MM: processRelativeTime$7,
15510 y: processRelativeTime$7,
15511 yy: processRelativeTime$7,
15512 },
15513 dayOfMonthOrdinalParse: /\d{1,2}\./,
15514 ordinal: '%d.',
15515 week: {
15516 dow: 1, // Monday is the first day of the week.
15517 doy: 7, // The week that contains Jan 7th is the first week of the year.
15518 },
15519 });
15520
15521 //! moment.js locale configuration
15522
15523 hooks.defineLocale('sq', {
15524 months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(
15525 '_'
15526 ),
15527 monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
15528 weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(
15529 '_'
15530 ),
15531 weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
15532 weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),
15533 weekdaysParseExact: true,
15534 meridiemParse: /PD|MD/,
15535 isPM: function (input) {
15536 return input.charAt(0) === 'M';
15537 },
15538 meridiem: function (hours, minutes, isLower) {
15539 return hours < 12 ? 'PD' : 'MD';
15540 },
15541 longDateFormat: {
15542 LT: 'HH:mm',
15543 LTS: 'HH:mm:ss',
15544 L: 'DD/MM/YYYY',
15545 LL: 'D MMMM YYYY',
15546 LLL: 'D MMMM YYYY HH:mm',
15547 LLLL: 'dddd, D MMMM YYYY HH:mm',
15548 },
15549 calendar: {
15550 sameDay: '[Sot në] LT',
15551 nextDay: '[Nesër në] LT',
15552 nextWeek: 'dddd [në] LT',
15553 lastDay: '[Dje në] LT',
15554 lastWeek: 'dddd [e kaluar në] LT',
15555 sameElse: 'L',
15556 },
15557 relativeTime: {
15558 future: 'në %s',
15559 past: '%s më parë',
15560 s: 'disa sekonda',
15561 ss: '%d sekonda',
15562 m: 'një minutë',
15563 mm: '%d minuta',
15564 h: 'një orë',
15565 hh: '%d orë',
15566 d: 'një ditë',
15567 dd: '%d ditë',
15568 M: 'një muaj',
15569 MM: '%d muaj',
15570 y: 'një vit',
15571 yy: '%d vite',
15572 },
15573 dayOfMonthOrdinalParse: /\d{1,2}\./,
15574 ordinal: '%d.',
15575 week: {
15576 dow: 1, // Monday is the first day of the week.
15577 doy: 4, // The week that contains Jan 4th is the first week of the year.
15578 },
15579 });
15580
15581 //! moment.js locale configuration
15582
15583 var translator$1 = {
15584 words: {
15585 //Different grammatical cases
15586 ss: ['секунда', 'секунде', 'секунди'],
15587 m: ['један минут', 'једне минуте'],
15588 mm: ['минут', 'минуте', 'минута'],
15589 h: ['један сат', 'једног сата'],
15590 hh: ['сат', 'сата', 'сати'],
15591 dd: ['дан', 'дана', 'дана'],
15592 MM: ['месец', 'месеца', 'месеци'],
15593 yy: ['година', 'године', 'година'],
15594 },
15595 correctGrammaticalCase: function (number, wordKey) {
15596 return number === 1
15597 ? wordKey[0]
15598 : number >= 2 && number <= 4
15599 ? wordKey[1]
15600 : wordKey[2];
15601 },
15602 translate: function (number, withoutSuffix, key) {
15603 var wordKey = translator$1.words[key];
15604 if (key.length === 1) {
15605 return withoutSuffix ? wordKey[0] : wordKey[1];
15606 } else {
15607 return (
15608 number +
15609 ' ' +
15610 translator$1.correctGrammaticalCase(number, wordKey)
15611 );
15612 }
15613 },
15614 };
15615
15616 hooks.defineLocale('sr-cyrl', {
15617 months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(
15618 '_'
15619 ),
15620 monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split(
15621 '_'
15622 ),
15623 monthsParseExact: true,
15624 weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),
15625 weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),
15626 weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),
15627 weekdaysParseExact: true,
15628 longDateFormat: {
15629 LT: 'H:mm',
15630 LTS: 'H:mm:ss',
15631 L: 'D. M. YYYY.',
15632 LL: 'D. MMMM YYYY.',
15633 LLL: 'D. MMMM YYYY. H:mm',
15634 LLLL: 'dddd, D. MMMM YYYY. H:mm',
15635 },
15636 calendar: {
15637 sameDay: '[данас у] LT',
15638 nextDay: '[сутра у] LT',
15639 nextWeek: function () {
15640 switch (this.day()) {
15641 case 0:
15642 return '[у] [недељу] [у] LT';
15643 case 3:
15644 return '[у] [среду] [у] LT';
15645 case 6:
15646 return '[у] [суботу] [у] LT';
15647 case 1:
15648 case 2:
15649 case 4:
15650 case 5:
15651 return '[у] dddd [у] LT';
15652 }
15653 },
15654 lastDay: '[јуче у] LT',
15655 lastWeek: function () {
15656 var lastWeekDays = [
15657 '[прошле] [недеље] [у] LT',
15658 '[прошлог] [понедељка] [у] LT',
15659 '[прошлог] [уторка] [у] LT',
15660 '[прошле] [среде] [у] LT',
15661 '[прошлог] [четвртка] [у] LT',
15662 '[прошлог] [петка] [у] LT',
15663 '[прошле] [суботе] [у] LT',
15664 ];
15665 return lastWeekDays[this.day()];
15666 },
15667 sameElse: 'L',
15668 },
15669 relativeTime: {
15670 future: 'за %s',
15671 past: 'пре %s',
15672 s: 'неколико секунди',
15673 ss: translator$1.translate,
15674 m: translator$1.translate,
15675 mm: translator$1.translate,
15676 h: translator$1.translate,
15677 hh: translator$1.translate,
15678 d: 'дан',
15679 dd: translator$1.translate,
15680 M: 'месец',
15681 MM: translator$1.translate,
15682 y: 'годину',
15683 yy: translator$1.translate,
15684 },
15685 dayOfMonthOrdinalParse: /\d{1,2}\./,
15686 ordinal: '%d.',
15687 week: {
15688 dow: 1, // Monday is the first day of the week.
15689 doy: 7, // The week that contains Jan 1st is the first week of the year.
15690 },
15691 });
15692
15693 //! moment.js locale configuration
15694
15695 var translator$2 = {
15696 words: {
15697 //Different grammatical cases
15698 ss: ['sekunda', 'sekunde', 'sekundi'],
15699 m: ['jedan minut', 'jedne minute'],
15700 mm: ['minut', 'minute', 'minuta'],
15701 h: ['jedan sat', 'jednog sata'],
15702 hh: ['sat', 'sata', 'sati'],
15703 dd: ['dan', 'dana', 'dana'],
15704 MM: ['mesec', 'meseca', 'meseci'],
15705 yy: ['godina', 'godine', 'godina'],
15706 },
15707 correctGrammaticalCase: function (number, wordKey) {
15708 return number === 1
15709 ? wordKey[0]
15710 : number >= 2 && number <= 4
15711 ? wordKey[1]
15712 : wordKey[2];
15713 },
15714 translate: function (number, withoutSuffix, key) {
15715 var wordKey = translator$2.words[key];
15716 if (key.length === 1) {
15717 return withoutSuffix ? wordKey[0] : wordKey[1];
15718 } else {
15719 return (
15720 number +
15721 ' ' +
15722 translator$2.correctGrammaticalCase(number, wordKey)
15723 );
15724 }
15725 },
15726 };
15727
15728 hooks.defineLocale('sr', {
15729 months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
15730 '_'
15731 ),
15732 monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(
15733 '_'
15734 ),
15735 monthsParseExact: true,
15736 weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(
15737 '_'
15738 ),
15739 weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
15740 weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
15741 weekdaysParseExact: true,
15742 longDateFormat: {
15743 LT: 'H:mm',
15744 LTS: 'H:mm:ss',
15745 L: 'D. M. YYYY.',
15746 LL: 'D. MMMM YYYY.',
15747 LLL: 'D. MMMM YYYY. H:mm',
15748 LLLL: 'dddd, D. MMMM YYYY. H:mm',
15749 },
15750 calendar: {
15751 sameDay: '[danas u] LT',
15752 nextDay: '[sutra u] LT',
15753 nextWeek: function () {
15754 switch (this.day()) {
15755 case 0:
15756 return '[u] [nedelju] [u] LT';
15757 case 3:
15758 return '[u] [sredu] [u] LT';
15759 case 6:
15760 return '[u] [subotu] [u] LT';
15761 case 1:
15762 case 2:
15763 case 4:
15764 case 5:
15765 return '[u] dddd [u] LT';
15766 }
15767 },
15768 lastDay: '[juče u] LT',
15769 lastWeek: function () {
15770 var lastWeekDays = [
15771 '[prošle] [nedelje] [u] LT',
15772 '[prošlog] [ponedeljka] [u] LT',
15773 '[prošlog] [utorka] [u] LT',
15774 '[prošle] [srede] [u] LT',
15775 '[prošlog] [četvrtka] [u] LT',
15776 '[prošlog] [petka] [u] LT',
15777 '[prošle] [subote] [u] LT',
15778 ];
15779 return lastWeekDays[this.day()];
15780 },
15781 sameElse: 'L',
15782 },
15783 relativeTime: {
15784 future: 'za %s',
15785 past: 'pre %s',
15786 s: 'nekoliko sekundi',
15787 ss: translator$2.translate,
15788 m: translator$2.translate,
15789 mm: translator$2.translate,
15790 h: translator$2.translate,
15791 hh: translator$2.translate,
15792 d: 'dan',
15793 dd: translator$2.translate,
15794 M: 'mesec',
15795 MM: translator$2.translate,
15796 y: 'godinu',
15797 yy: translator$2.translate,
15798 },
15799 dayOfMonthOrdinalParse: /\d{1,2}\./,
15800 ordinal: '%d.',
15801 week: {
15802 dow: 1, // Monday is the first day of the week.
15803 doy: 7, // The week that contains Jan 7th is the first week of the year.
15804 },
15805 });
15806
15807 //! moment.js locale configuration
15808
15809 hooks.defineLocale('ss', {
15810 months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split(
15811 '_'
15812 ),
15813 monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),
15814 weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(
15815 '_'
15816 ),
15817 weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),
15818 weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),
15819 weekdaysParseExact: true,
15820 longDateFormat: {
15821 LT: 'h:mm A',
15822 LTS: 'h:mm:ss A',
15823 L: 'DD/MM/YYYY',
15824 LL: 'D MMMM YYYY',
15825 LLL: 'D MMMM YYYY h:mm A',
15826 LLLL: 'dddd, D MMMM YYYY h:mm A',
15827 },
15828 calendar: {
15829 sameDay: '[Namuhla nga] LT',
15830 nextDay: '[Kusasa nga] LT',
15831 nextWeek: 'dddd [nga] LT',
15832 lastDay: '[Itolo nga] LT',
15833 lastWeek: 'dddd [leliphelile] [nga] LT',
15834 sameElse: 'L',
15835 },
15836 relativeTime: {
15837 future: 'nga %s',
15838 past: 'wenteka nga %s',
15839 s: 'emizuzwana lomcane',
15840 ss: '%d mzuzwana',
15841 m: 'umzuzu',
15842 mm: '%d emizuzu',
15843 h: 'lihora',
15844 hh: '%d emahora',
15845 d: 'lilanga',
15846 dd: '%d emalanga',
15847 M: 'inyanga',
15848 MM: '%d tinyanga',
15849 y: 'umnyaka',
15850 yy: '%d iminyaka',
15851 },
15852 meridiemParse: /ekuseni|emini|entsambama|ebusuku/,
15853 meridiem: function (hours, minutes, isLower) {
15854 if (hours < 11) {
15855 return 'ekuseni';
15856 } else if (hours < 15) {
15857 return 'emini';
15858 } else if (hours < 19) {
15859 return 'entsambama';
15860 } else {
15861 return 'ebusuku';
15862 }
15863 },
15864 meridiemHour: function (hour, meridiem) {
15865 if (hour === 12) {
15866 hour = 0;
15867 }
15868 if (meridiem === 'ekuseni') {
15869 return hour;
15870 } else if (meridiem === 'emini') {
15871 return hour >= 11 ? hour : hour + 12;
15872 } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {
15873 if (hour === 0) {
15874 return 0;
15875 }
15876 return hour + 12;
15877 }
15878 },
15879 dayOfMonthOrdinalParse: /\d{1,2}/,
15880 ordinal: '%d',
15881 week: {
15882 dow: 1, // Monday is the first day of the week.
15883 doy: 4, // The week that contains Jan 4th is the first week of the year.
15884 },
15885 });
15886
15887 //! moment.js locale configuration
15888
15889 hooks.defineLocale('sv', {
15890 months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(
15891 '_'
15892 ),
15893 monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
15894 weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
15895 weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
15896 weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),
15897 longDateFormat: {
15898 LT: 'HH:mm',
15899 LTS: 'HH:mm:ss',
15900 L: 'YYYY-MM-DD',
15901 LL: 'D MMMM YYYY',
15902 LLL: 'D MMMM YYYY [kl.] HH:mm',
15903 LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',
15904 lll: 'D MMM YYYY HH:mm',
15905 llll: 'ddd D MMM YYYY HH:mm',
15906 },
15907 calendar: {
15908 sameDay: '[Idag] LT',
15909 nextDay: '[Imorgon] LT',
15910 lastDay: '[Igår] LT',
15911 nextWeek: '[På] dddd LT',
15912 lastWeek: '[I] dddd[s] LT',
15913 sameElse: 'L',
15914 },
15915 relativeTime: {
15916 future: 'om %s',
15917 past: 'för %s sedan',
15918 s: 'några sekunder',
15919 ss: '%d sekunder',
15920 m: 'en minut',
15921 mm: '%d minuter',
15922 h: 'en timme',
15923 hh: '%d timmar',
15924 d: 'en dag',
15925 dd: '%d dagar',
15926 M: 'en månad',
15927 MM: '%d månader',
15928 y: 'ett år',
15929 yy: '%d år',
15930 },
15931 dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/,
15932 ordinal: function (number) {
15933 var b = number % 10,
15934 output =
15935 ~~((number % 100) / 10) === 1
15936 ? ':e'
15937 : b === 1
15938 ? ':a'
15939 : b === 2
15940 ? ':a'
15941 : b === 3
15942 ? ':e'
15943 : ':e';
15944 return number + output;
15945 },
15946 week: {
15947 dow: 1, // Monday is the first day of the week.
15948 doy: 4, // The week that contains Jan 4th is the first week of the year.
15949 },
15950 });
15951
15952 //! moment.js locale configuration
15953
15954 hooks.defineLocale('sw', {
15955 months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(
15956 '_'
15957 ),
15958 monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),
15959 weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(
15960 '_'
15961 ),
15962 weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
15963 weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
15964 weekdaysParseExact: true,
15965 longDateFormat: {
15966 LT: 'hh:mm A',
15967 LTS: 'HH:mm:ss',
15968 L: 'DD.MM.YYYY',
15969 LL: 'D MMMM YYYY',
15970 LLL: 'D MMMM YYYY HH:mm',
15971 LLLL: 'dddd, D MMMM YYYY HH:mm',
15972 },
15973 calendar: {
15974 sameDay: '[leo saa] LT',
15975 nextDay: '[kesho saa] LT',
15976 nextWeek: '[wiki ijayo] dddd [saat] LT',
15977 lastDay: '[jana] LT',
15978 lastWeek: '[wiki iliyopita] dddd [saat] LT',
15979 sameElse: 'L',
15980 },
15981 relativeTime: {
15982 future: '%s baadaye',
15983 past: 'tokea %s',
15984 s: 'hivi punde',
15985 ss: 'sekunde %d',
15986 m: 'dakika moja',
15987 mm: 'dakika %d',
15988 h: 'saa limoja',
15989 hh: 'masaa %d',
15990 d: 'siku moja',
15991 dd: 'siku %d',
15992 M: 'mwezi mmoja',
15993 MM: 'miezi %d',
15994 y: 'mwaka mmoja',
15995 yy: 'miaka %d',
15996 },
15997 week: {
15998 dow: 1, // Monday is the first day of the week.
15999 doy: 7, // The week that contains Jan 7th is the first week of the year.
16000 },
16001 });
16002
16003 //! moment.js locale configuration
16004
16005 var symbolMap$g = {
16006 1: '௧',
16007 2: '௨',
16008 3: '௩',
16009 4: '௪',
16010 5: '௫',
16011 6: '௬',
16012 7: '௭',
16013 8: '௮',
16014 9: '௯',
16015 0: '௦',
16016 },
16017 numberMap$f = {
16018 '௧': '1',
16019 '௨': '2',
16020 '௩': '3',
16021 '௪': '4',
16022 '௫': '5',
16023 '௬': '6',
16024 '௭': '7',
16025 '௮': '8',
16026 '௯': '9',
16027 '௦': '0',
16028 };
16029
16030 hooks.defineLocale('ta', {
16031 months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(
16032 '_'
16033 ),
16034 monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(
16035 '_'
16036 ),
16037 weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(
16038 '_'
16039 ),
16040 weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(
16041 '_'
16042 ),
16043 weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
16044 longDateFormat: {
16045 LT: 'HH:mm',
16046 LTS: 'HH:mm:ss',
16047 L: 'DD/MM/YYYY',
16048 LL: 'D MMMM YYYY',
16049 LLL: 'D MMMM YYYY, HH:mm',
16050 LLLL: 'dddd, D MMMM YYYY, HH:mm',
16051 },
16052 calendar: {
16053 sameDay: '[இன்று] LT',
16054 nextDay: '[நாளை] LT',
16055 nextWeek: 'dddd, LT',
16056 lastDay: '[நேற்று] LT',
16057 lastWeek: '[கடந்த வாரம்] dddd, LT',
16058 sameElse: 'L',
16059 },
16060 relativeTime: {
16061 future: '%s இல்',
16062 past: '%s முன்',
16063 s: 'ஒரு சில விநாடிகள்',
16064 ss: '%d விநாடிகள்',
16065 m: 'ஒரு நிமிடம்',
16066 mm: '%d நிமிடங்கள்',
16067 h: 'ஒரு மணி நேரம்',
16068 hh: '%d மணி நேரம்',
16069 d: 'ஒரு நாள்',
16070 dd: '%d நாட்கள்',
16071 M: 'ஒரு மாதம்',
16072 MM: '%d மாதங்கள்',
16073 y: 'ஒரு வருடம்',
16074 yy: '%d ஆண்டுகள்',
16075 },
16076 dayOfMonthOrdinalParse: /\d{1,2}வது/,
16077 ordinal: function (number) {
16078 return number + 'வது';
16079 },
16080 preparse: function (string) {
16081 return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
16082 return numberMap$f[match];
16083 });
16084 },
16085 postformat: function (string) {
16086 return string.replace(/\d/g, function (match) {
16087 return symbolMap$g[match];
16088 });
16089 },
16090 // refer http://ta.wikipedia.org/s/1er1
16091 meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
16092 meridiem: function (hour, minute, isLower) {
16093 if (hour < 2) {
16094 return ' யாமம்';
16095 } else if (hour < 6) {
16096 return ' வைகறை'; // வைகறை
16097 } else if (hour < 10) {
16098 return ' காலை'; // காலை
16099 } else if (hour < 14) {
16100 return ' நண்பகல்'; // நண்பகல்
16101 } else if (hour < 18) {
16102 return ' எற்பாடு'; // எற்பாடு
16103 } else if (hour < 22) {
16104 return ' மாலை'; // மாலை
16105 } else {
16106 return ' யாமம்';
16107 }
16108 },
16109 meridiemHour: function (hour, meridiem) {
16110 if (hour === 12) {
16111 hour = 0;
16112 }
16113 if (meridiem === 'யாமம்') {
16114 return hour < 2 ? hour : hour + 12;
16115 } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {
16116 return hour;
16117 } else if (meridiem === 'நண்பகல்') {
16118 return hour >= 10 ? hour : hour + 12;
16119 } else {
16120 return hour + 12;
16121 }
16122 },
16123 week: {
16124 dow: 0, // Sunday is the first day of the week.
16125 doy: 6, // The week that contains Jan 6th is the first week of the year.
16126 },
16127 });
16128
16129 //! moment.js locale configuration
16130
16131 hooks.defineLocale('te', {
16132 months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(
16133 '_'
16134 ),
16135 monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(
16136 '_'
16137 ),
16138 monthsParseExact: true,
16139 weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(
16140 '_'
16141 ),
16142 weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),
16143 weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),
16144 longDateFormat: {
16145 LT: 'A h:mm',
16146 LTS: 'A h:mm:ss',
16147 L: 'DD/MM/YYYY',
16148 LL: 'D MMMM YYYY',
16149 LLL: 'D MMMM YYYY, A h:mm',
16150 LLLL: 'dddd, D MMMM YYYY, A h:mm',
16151 },
16152 calendar: {
16153 sameDay: '[నేడు] LT',
16154 nextDay: '[రేపు] LT',
16155 nextWeek: 'dddd, LT',
16156 lastDay: '[నిన్న] LT',
16157 lastWeek: '[గత] dddd, LT',
16158 sameElse: 'L',
16159 },
16160 relativeTime: {
16161 future: '%s లో',
16162 past: '%s క్రితం',
16163 s: 'కొన్ని క్షణాలు',
16164 ss: '%d సెకన్లు',
16165 m: 'ఒక నిమిషం',
16166 mm: '%d నిమిషాలు',
16167 h: 'ఒక గంట',
16168 hh: '%d గంటలు',
16169 d: 'ఒక రోజు',
16170 dd: '%d రోజులు',
16171 M: 'ఒక నెల',
16172 MM: '%d నెలలు',
16173 y: 'ఒక సంవత్సరం',
16174 yy: '%d సంవత్సరాలు',
16175 },
16176 dayOfMonthOrdinalParse: /\d{1,2}వ/,
16177 ordinal: '%dవ',
16178 meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,
16179 meridiemHour: function (hour, meridiem) {
16180 if (hour === 12) {
16181 hour = 0;
16182 }
16183 if (meridiem === 'రాత్రి') {
16184 return hour < 4 ? hour : hour + 12;
16185 } else if (meridiem === 'ఉదయం') {
16186 return hour;
16187 } else if (meridiem === 'మధ్యాహ్నం') {
16188 return hour >= 10 ? hour : hour + 12;
16189 } else if (meridiem === 'సాయంత్రం') {
16190 return hour + 12;
16191 }
16192 },
16193 meridiem: function (hour, minute, isLower) {
16194 if (hour < 4) {
16195 return 'రాత్రి';
16196 } else if (hour < 10) {
16197 return 'ఉదయం';
16198 } else if (hour < 17) {
16199 return 'మధ్యాహ్నం';
16200 } else if (hour < 20) {
16201 return 'సాయంత్రం';
16202 } else {
16203 return 'రాత్రి';
16204 }
16205 },
16206 week: {
16207 dow: 0, // Sunday is the first day of the week.
16208 doy: 6, // The week that contains Jan 6th is the first week of the year.
16209 },
16210 });
16211
16212 //! moment.js locale configuration
16213
16214 hooks.defineLocale('tet', {
16215 months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(
16216 '_'
16217 ),
16218 monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
16219 weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),
16220 weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),
16221 weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),
16222 longDateFormat: {
16223 LT: 'HH:mm',
16224 LTS: 'HH:mm:ss',
16225 L: 'DD/MM/YYYY',
16226 LL: 'D MMMM YYYY',
16227 LLL: 'D MMMM YYYY HH:mm',
16228 LLLL: 'dddd, D MMMM YYYY HH:mm',
16229 },
16230 calendar: {
16231 sameDay: '[Ohin iha] LT',
16232 nextDay: '[Aban iha] LT',
16233 nextWeek: 'dddd [iha] LT',
16234 lastDay: '[Horiseik iha] LT',
16235 lastWeek: 'dddd [semana kotuk] [iha] LT',
16236 sameElse: 'L',
16237 },
16238 relativeTime: {
16239 future: 'iha %s',
16240 past: '%s liuba',
16241 s: 'segundu balun',
16242 ss: 'segundu %d',
16243 m: 'minutu ida',
16244 mm: 'minutu %d',
16245 h: 'oras ida',
16246 hh: 'oras %d',
16247 d: 'loron ida',
16248 dd: 'loron %d',
16249 M: 'fulan ida',
16250 MM: 'fulan %d',
16251 y: 'tinan ida',
16252 yy: 'tinan %d',
16253 },
16254 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
16255 ordinal: function (number) {
16256 var b = number % 10,
16257 output =
16258 ~~((number % 100) / 10) === 1
16259 ? 'th'
16260 : b === 1
16261 ? 'st'
16262 : b === 2
16263 ? 'nd'
16264 : b === 3
16265 ? 'rd'
16266 : 'th';
16267 return number + output;
16268 },
16269 week: {
16270 dow: 1, // Monday is the first day of the week.
16271 doy: 4, // The week that contains Jan 4th is the first week of the year.
16272 },
16273 });
16274
16275 //! moment.js locale configuration
16276
16277 var suffixes$3 = {
16278 0: '-ум',
16279 1: '-ум',
16280 2: '-юм',
16281 3: '-юм',
16282 4: '-ум',
16283 5: '-ум',
16284 6: '-ум',
16285 7: '-ум',
16286 8: '-ум',
16287 9: '-ум',
16288 10: '-ум',
16289 12: '-ум',
16290 13: '-ум',
16291 20: '-ум',
16292 30: '-юм',
16293 40: '-ум',
16294 50: '-ум',
16295 60: '-ум',
16296 70: '-ум',
16297 80: '-ум',
16298 90: '-ум',
16299 100: '-ум',
16300 };
16301
16302 hooks.defineLocale('tg', {
16303 months: {
16304 format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(
16305 '_'
16306 ),
16307 standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(
16308 '_'
16309 ),
16310 },
16311 monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
16312 weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(
16313 '_'
16314 ),
16315 weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),
16316 weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),
16317 longDateFormat: {
16318 LT: 'HH:mm',
16319 LTS: 'HH:mm:ss',
16320 L: 'DD.MM.YYYY',
16321 LL: 'D MMMM YYYY',
16322 LLL: 'D MMMM YYYY HH:mm',
16323 LLLL: 'dddd, D MMMM YYYY HH:mm',
16324 },
16325 calendar: {
16326 sameDay: '[Имрӯз соати] LT',
16327 nextDay: '[Фардо соати] LT',
16328 lastDay: '[Дирӯз соати] LT',
16329 nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',
16330 lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',
16331 sameElse: 'L',
16332 },
16333 relativeTime: {
16334 future: 'баъди %s',
16335 past: '%s пеш',
16336 s: 'якчанд сония',
16337 m: 'як дақиқа',
16338 mm: '%d дақиқа',
16339 h: 'як соат',
16340 hh: '%d соат',
16341 d: 'як рӯз',
16342 dd: '%d рӯз',
16343 M: 'як моҳ',
16344 MM: '%d моҳ',
16345 y: 'як сол',
16346 yy: '%d сол',
16347 },
16348 meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,
16349 meridiemHour: function (hour, meridiem) {
16350 if (hour === 12) {
16351 hour = 0;
16352 }
16353 if (meridiem === 'шаб') {
16354 return hour < 4 ? hour : hour + 12;
16355 } else if (meridiem === 'субҳ') {
16356 return hour;
16357 } else if (meridiem === 'рӯз') {
16358 return hour >= 11 ? hour : hour + 12;
16359 } else if (meridiem === 'бегоҳ') {
16360 return hour + 12;
16361 }
16362 },
16363 meridiem: function (hour, minute, isLower) {
16364 if (hour < 4) {
16365 return 'шаб';
16366 } else if (hour < 11) {
16367 return 'субҳ';
16368 } else if (hour < 16) {
16369 return 'рӯз';
16370 } else if (hour < 19) {
16371 return 'бегоҳ';
16372 } else {
16373 return 'шаб';
16374 }
16375 },
16376 dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/,
16377 ordinal: function (number) {
16378 var a = number % 10,
16379 b = number >= 100 ? 100 : null;
16380 return number + (suffixes$3[number] || suffixes$3[a] || suffixes$3[b]);
16381 },
16382 week: {
16383 dow: 1, // Monday is the first day of the week.
16384 doy: 7, // The week that contains Jan 1th is the first week of the year.
16385 },
16386 });
16387
16388 //! moment.js locale configuration
16389
16390 hooks.defineLocale('th', {
16391 months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(
16392 '_'
16393 ),
16394 monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(
16395 '_'
16396 ),
16397 monthsParseExact: true,
16398 weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),
16399 weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
16400 weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
16401 weekdaysParseExact: true,
16402 longDateFormat: {
16403 LT: 'H:mm',
16404 LTS: 'H:mm:ss',
16405 L: 'DD/MM/YYYY',
16406 LL: 'D MMMM YYYY',
16407 LLL: 'D MMMM YYYY เวลา H:mm',
16408 LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',
16409 },
16410 meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
16411 isPM: function (input) {
16412 return input === 'หลังเที่ยง';
16413 },
16414 meridiem: function (hour, minute, isLower) {
16415 if (hour < 12) {
16416 return 'ก่อนเที่ยง';
16417 } else {
16418 return 'หลังเที่ยง';
16419 }
16420 },
16421 calendar: {
16422 sameDay: '[วันนี้ เวลา] LT',
16423 nextDay: '[พรุ่งนี้ เวลา] LT',
16424 nextWeek: 'dddd[หน้า เวลา] LT',
16425 lastDay: '[เมื่อวานนี้ เวลา] LT',
16426 lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',
16427 sameElse: 'L',
16428 },
16429 relativeTime: {
16430 future: 'อีก %s',
16431 past: '%sที่แล้ว',
16432 s: 'ไม่กี่วินาที',
16433 ss: '%d วินาที',
16434 m: '1 นาที',
16435 mm: '%d นาที',
16436 h: '1 ชั่วโมง',
16437 hh: '%d ชั่วโมง',
16438 d: '1 วัน',
16439 dd: '%d วัน',
16440 w: '1 สัปดาห์',
16441 ww: '%d สัปดาห์',
16442 M: '1 เดือน',
16443 MM: '%d เดือน',
16444 y: '1 ปี',
16445 yy: '%d ปี',
16446 },
16447 });
16448
16449 //! moment.js locale configuration
16450
16451 var suffixes$4 = {
16452 1: "'inji",
16453 5: "'inji",
16454 8: "'inji",
16455 70: "'inji",
16456 80: "'inji",
16457 2: "'nji",
16458 7: "'nji",
16459 20: "'nji",
16460 50: "'nji",
16461 3: "'ünji",
16462 4: "'ünji",
16463 100: "'ünji",
16464 6: "'njy",
16465 9: "'unjy",
16466 10: "'unjy",
16467 30: "'unjy",
16468 60: "'ynjy",
16469 90: "'ynjy",
16470 };
16471
16472 hooks.defineLocale('tk', {
16473 months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(
16474 '_'
16475 ),
16476 monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),
16477 weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(
16478 '_'
16479 ),
16480 weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),
16481 weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),
16482 longDateFormat: {
16483 LT: 'HH:mm',
16484 LTS: 'HH:mm:ss',
16485 L: 'DD.MM.YYYY',
16486 LL: 'D MMMM YYYY',
16487 LLL: 'D MMMM YYYY HH:mm',
16488 LLLL: 'dddd, D MMMM YYYY HH:mm',
16489 },
16490 calendar: {
16491 sameDay: '[bugün sagat] LT',
16492 nextDay: '[ertir sagat] LT',
16493 nextWeek: '[indiki] dddd [sagat] LT',
16494 lastDay: '[düýn] LT',
16495 lastWeek: '[geçen] dddd [sagat] LT',
16496 sameElse: 'L',
16497 },
16498 relativeTime: {
16499 future: '%s soň',
16500 past: '%s öň',
16501 s: 'birnäçe sekunt',
16502 m: 'bir minut',
16503 mm: '%d minut',
16504 h: 'bir sagat',
16505 hh: '%d sagat',
16506 d: 'bir gün',
16507 dd: '%d gün',
16508 M: 'bir aý',
16509 MM: '%d aý',
16510 y: 'bir ýyl',
16511 yy: '%d ýyl',
16512 },
16513 ordinal: function (number, period) {
16514 switch (period) {
16515 case 'd':
16516 case 'D':
16517 case 'Do':
16518 case 'DD':
16519 return number;
16520 default:
16521 if (number === 0) {
16522 // special case for zero
16523 return number + "'unjy";
16524 }
16525 var a = number % 10,
16526 b = (number % 100) - a,
16527 c = number >= 100 ? 100 : null;
16528 return number + (suffixes$4[a] || suffixes$4[b] || suffixes$4[c]);
16529 }
16530 },
16531 week: {
16532 dow: 1, // Monday is the first day of the week.
16533 doy: 7, // The week that contains Jan 7th is the first week of the year.
16534 },
16535 });
16536
16537 //! moment.js locale configuration
16538
16539 hooks.defineLocale('tl-ph', {
16540 months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
16541 '_'
16542 ),
16543 monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
16544 weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
16545 '_'
16546 ),
16547 weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
16548 weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
16549 longDateFormat: {
16550 LT: 'HH:mm',
16551 LTS: 'HH:mm:ss',
16552 L: 'MM/D/YYYY',
16553 LL: 'MMMM D, YYYY',
16554 LLL: 'MMMM D, YYYY HH:mm',
16555 LLLL: 'dddd, MMMM DD, YYYY HH:mm',
16556 },
16557 calendar: {
16558 sameDay: 'LT [ngayong araw]',
16559 nextDay: '[Bukas ng] LT',
16560 nextWeek: 'LT [sa susunod na] dddd',
16561 lastDay: 'LT [kahapon]',
16562 lastWeek: 'LT [noong nakaraang] dddd',
16563 sameElse: 'L',
16564 },
16565 relativeTime: {
16566 future: 'sa loob ng %s',
16567 past: '%s ang nakalipas',
16568 s: 'ilang segundo',
16569 ss: '%d segundo',
16570 m: 'isang minuto',
16571 mm: '%d minuto',
16572 h: 'isang oras',
16573 hh: '%d oras',
16574 d: 'isang araw',
16575 dd: '%d araw',
16576 M: 'isang buwan',
16577 MM: '%d buwan',
16578 y: 'isang taon',
16579 yy: '%d taon',
16580 },
16581 dayOfMonthOrdinalParse: /\d{1,2}/,
16582 ordinal: function (number) {
16583 return number;
16584 },
16585 week: {
16586 dow: 1, // Monday is the first day of the week.
16587 doy: 4, // The week that contains Jan 4th is the first week of the year.
16588 },
16589 });
16590
16591 //! moment.js locale configuration
16592
16593 var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
16594
16595 function translateFuture(output) {
16596 var time = output;
16597 time =
16598 output.indexOf('jaj') !== -1
16599 ? time.slice(0, -3) + 'leS'
16600 : output.indexOf('jar') !== -1
16601 ? time.slice(0, -3) + 'waQ'
16602 : output.indexOf('DIS') !== -1
16603 ? time.slice(0, -3) + 'nem'
16604 : time + ' pIq';
16605 return time;
16606 }
16607
16608 function translatePast(output) {
16609 var time = output;
16610 time =
16611 output.indexOf('jaj') !== -1
16612 ? time.slice(0, -3) + 'Hu’'
16613 : output.indexOf('jar') !== -1
16614 ? time.slice(0, -3) + 'wen'
16615 : output.indexOf('DIS') !== -1
16616 ? time.slice(0, -3) + 'ben'
16617 : time + ' ret';
16618 return time;
16619 }
16620
16621 function translate$a(number, withoutSuffix, string, isFuture) {
16622 var numberNoun = numberAsNoun(number);
16623 switch (string) {
16624 case 'ss':
16625 return numberNoun + ' lup';
16626 case 'mm':
16627 return numberNoun + ' tup';
16628 case 'hh':
16629 return numberNoun + ' rep';
16630 case 'dd':
16631 return numberNoun + ' jaj';
16632 case 'MM':
16633 return numberNoun + ' jar';
16634 case 'yy':
16635 return numberNoun + ' DIS';
16636 }
16637 }
16638
16639 function numberAsNoun(number) {
16640 var hundred = Math.floor((number % 1000) / 100),
16641 ten = Math.floor((number % 100) / 10),
16642 one = number % 10,
16643 word = '';
16644 if (hundred > 0) {
16645 word += numbersNouns[hundred] + 'vatlh';
16646 }
16647 if (ten > 0) {
16648 word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';
16649 }
16650 if (one > 0) {
16651 word += (word !== '' ? ' ' : '') + numbersNouns[one];
16652 }
16653 return word === '' ? 'pagh' : word;
16654 }
16655
16656 hooks.defineLocale('tlh', {
16657 months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(
16658 '_'
16659 ),
16660 monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(
16661 '_'
16662 ),
16663 monthsParseExact: true,
16664 weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
16665 '_'
16666 ),
16667 weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
16668 '_'
16669 ),
16670 weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
16671 '_'
16672 ),
16673 longDateFormat: {
16674 LT: 'HH:mm',
16675 LTS: 'HH:mm:ss',
16676 L: 'DD.MM.YYYY',
16677 LL: 'D MMMM YYYY',
16678 LLL: 'D MMMM YYYY HH:mm',
16679 LLLL: 'dddd, D MMMM YYYY HH:mm',
16680 },
16681 calendar: {
16682 sameDay: '[DaHjaj] LT',
16683 nextDay: '[wa’leS] LT',
16684 nextWeek: 'LLL',
16685 lastDay: '[wa’Hu’] LT',
16686 lastWeek: 'LLL',
16687 sameElse: 'L',
16688 },
16689 relativeTime: {
16690 future: translateFuture,
16691 past: translatePast,
16692 s: 'puS lup',
16693 ss: translate$a,
16694 m: 'wa’ tup',
16695 mm: translate$a,
16696 h: 'wa’ rep',
16697 hh: translate$a,
16698 d: 'wa’ jaj',
16699 dd: translate$a,
16700 M: 'wa’ jar',
16701 MM: translate$a,
16702 y: 'wa’ DIS',
16703 yy: translate$a,
16704 },
16705 dayOfMonthOrdinalParse: /\d{1,2}\./,
16706 ordinal: '%d.',
16707 week: {
16708 dow: 1, // Monday is the first day of the week.
16709 doy: 4, // The week that contains Jan 4th is the first week of the year.
16710 },
16711 });
16712
16713 //! moment.js locale configuration
16714
16715 var suffixes$5 = {
16716 1: "'inci",
16717 5: "'inci",
16718 8: "'inci",
16719 70: "'inci",
16720 80: "'inci",
16721 2: "'nci",
16722 7: "'nci",
16723 20: "'nci",
16724 50: "'nci",
16725 3: "'üncü",
16726 4: "'üncü",
16727 100: "'üncü",
16728 6: "'ncı",
16729 9: "'uncu",
16730 10: "'uncu",
16731 30: "'uncu",
16732 60: "'ıncı",
16733 90: "'ıncı",
16734 };
16735
16736 hooks.defineLocale('tr', {
16737 months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(
16738 '_'
16739 ),
16740 monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
16741 weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(
16742 '_'
16743 ),
16744 weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),
16745 weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
16746 meridiem: function (hours, minutes, isLower) {
16747 if (hours < 12) {
16748 return isLower ? 'öö' : 'ÖÖ';
16749 } else {
16750 return isLower ? 'ös' : 'ÖS';
16751 }
16752 },
16753 meridiemParse: /öö|ÖÖ|ös|ÖS/,
16754 isPM: function (input) {
16755 return input === 'ös' || input === 'ÖS';
16756 },
16757 longDateFormat: {
16758 LT: 'HH:mm',
16759 LTS: 'HH:mm:ss',
16760 L: 'DD.MM.YYYY',
16761 LL: 'D MMMM YYYY',
16762 LLL: 'D MMMM YYYY HH:mm',
16763 LLLL: 'dddd, D MMMM YYYY HH:mm',
16764 },
16765 calendar: {
16766 sameDay: '[bugün saat] LT',
16767 nextDay: '[yarın saat] LT',
16768 nextWeek: '[gelecek] dddd [saat] LT',
16769 lastDay: '[dün] LT',
16770 lastWeek: '[geçen] dddd [saat] LT',
16771 sameElse: 'L',
16772 },
16773 relativeTime: {
16774 future: '%s sonra',
16775 past: '%s önce',
16776 s: 'birkaç saniye',
16777 ss: '%d saniye',
16778 m: 'bir dakika',
16779 mm: '%d dakika',
16780 h: 'bir saat',
16781 hh: '%d saat',
16782 d: 'bir gün',
16783 dd: '%d gün',
16784 w: 'bir hafta',
16785 ww: '%d hafta',
16786 M: 'bir ay',
16787 MM: '%d ay',
16788 y: 'bir yıl',
16789 yy: '%d yıl',
16790 },
16791 ordinal: function (number, period) {
16792 switch (period) {
16793 case 'd':
16794 case 'D':
16795 case 'Do':
16796 case 'DD':
16797 return number;
16798 default:
16799 if (number === 0) {
16800 // special case for zero
16801 return number + "'ıncı";
16802 }
16803 var a = number % 10,
16804 b = (number % 100) - a,
16805 c = number >= 100 ? 100 : null;
16806 return number + (suffixes$5[a] || suffixes$5[b] || suffixes$5[c]);
16807 }
16808 },
16809 week: {
16810 dow: 1, // Monday is the first day of the week.
16811 doy: 7, // The week that contains Jan 7th is the first week of the year.
16812 },
16813 });
16814
16815 //! moment.js locale configuration
16816
16817 // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.
16818 // This is currently too difficult (maybe even impossible) to add.
16819 hooks.defineLocale('tzl', {
16820 months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(
16821 '_'
16822 ),
16823 monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),
16824 weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),
16825 weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
16826 weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
16827 longDateFormat: {
16828 LT: 'HH.mm',
16829 LTS: 'HH.mm.ss',
16830 L: 'DD.MM.YYYY',
16831 LL: 'D. MMMM [dallas] YYYY',
16832 LLL: 'D. MMMM [dallas] YYYY HH.mm',
16833 LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',
16834 },
16835 meridiemParse: /d\'o|d\'a/i,
16836 isPM: function (input) {
16837 return "d'o" === input.toLowerCase();
16838 },
16839 meridiem: function (hours, minutes, isLower) {
16840 if (hours > 11) {
16841 return isLower ? "d'o" : "D'O";
16842 } else {
16843 return isLower ? "d'a" : "D'A";
16844 }
16845 },
16846 calendar: {
16847 sameDay: '[oxhi à] LT',
16848 nextDay: '[demà à] LT',
16849 nextWeek: 'dddd [à] LT',
16850 lastDay: '[ieiri à] LT',
16851 lastWeek: '[sür el] dddd [lasteu à] LT',
16852 sameElse: 'L',
16853 },
16854 relativeTime: {
16855 future: 'osprei %s',
16856 past: 'ja%s',
16857 s: processRelativeTime$8,
16858 ss: processRelativeTime$8,
16859 m: processRelativeTime$8,
16860 mm: processRelativeTime$8,
16861 h: processRelativeTime$8,
16862 hh: processRelativeTime$8,
16863 d: processRelativeTime$8,
16864 dd: processRelativeTime$8,
16865 M: processRelativeTime$8,
16866 MM: processRelativeTime$8,
16867 y: processRelativeTime$8,
16868 yy: processRelativeTime$8,
16869 },
16870 dayOfMonthOrdinalParse: /\d{1,2}\./,
16871 ordinal: '%d.',
16872 week: {
16873 dow: 1, // Monday is the first day of the week.
16874 doy: 4, // The week that contains Jan 4th is the first week of the year.
16875 },
16876 });
16877
16878 function processRelativeTime$8(number, withoutSuffix, key, isFuture) {
16879 var format = {
16880 s: ['viensas secunds', "'iensas secunds"],
16881 ss: [number + ' secunds', '' + number + ' secunds'],
16882 m: ["'n míut", "'iens míut"],
16883 mm: [number + ' míuts', '' + number + ' míuts'],
16884 h: ["'n þora", "'iensa þora"],
16885 hh: [number + ' þoras', '' + number + ' þoras'],
16886 d: ["'n ziua", "'iensa ziua"],
16887 dd: [number + ' ziuas', '' + number + ' ziuas'],
16888 M: ["'n mes", "'iens mes"],
16889 MM: [number + ' mesen', '' + number + ' mesen'],
16890 y: ["'n ar", "'iens ar"],
16891 yy: [number + ' ars', '' + number + ' ars'],
16892 };
16893 return isFuture
16894 ? format[key][0]
16895 : withoutSuffix
16896 ? format[key][0]
16897 : format[key][1];
16898 }
16899
16900 //! moment.js locale configuration
16901
16902 hooks.defineLocale('tzm-latn', {
16903 months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(
16904 '_'
16905 ),
16906 monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(
16907 '_'
16908 ),
16909 weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
16910 weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
16911 weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
16912 longDateFormat: {
16913 LT: 'HH:mm',
16914 LTS: 'HH:mm:ss',
16915 L: 'DD/MM/YYYY',
16916 LL: 'D MMMM YYYY',
16917 LLL: 'D MMMM YYYY HH:mm',
16918 LLLL: 'dddd D MMMM YYYY HH:mm',
16919 },
16920 calendar: {
16921 sameDay: '[asdkh g] LT',
16922 nextDay: '[aska g] LT',
16923 nextWeek: 'dddd [g] LT',
16924 lastDay: '[assant g] LT',
16925 lastWeek: 'dddd [g] LT',
16926 sameElse: 'L',
16927 },
16928 relativeTime: {
16929 future: 'dadkh s yan %s',
16930 past: 'yan %s',
16931 s: 'imik',
16932 ss: '%d imik',
16933 m: 'minuḍ',
16934 mm: '%d minuḍ',
16935 h: 'saɛa',
16936 hh: '%d tassaɛin',
16937 d: 'ass',
16938 dd: '%d ossan',
16939 M: 'ayowr',
16940 MM: '%d iyyirn',
16941 y: 'asgas',
16942 yy: '%d isgasn',
16943 },
16944 week: {
16945 dow: 6, // Saturday is the first day of the week.
16946 doy: 12, // The week that contains Jan 12th is the first week of the year.
16947 },
16948 });
16949
16950 //! moment.js locale configuration
16951
16952 hooks.defineLocale('tzm', {
16953 months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(
16954 '_'
16955 ),
16956 monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(
16957 '_'
16958 ),
16959 weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
16960 weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
16961 weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
16962 longDateFormat: {
16963 LT: 'HH:mm',
16964 LTS: 'HH:mm:ss',
16965 L: 'DD/MM/YYYY',
16966 LL: 'D MMMM YYYY',
16967 LLL: 'D MMMM YYYY HH:mm',
16968 LLLL: 'dddd D MMMM YYYY HH:mm',
16969 },
16970 calendar: {
16971 sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
16972 nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
16973 nextWeek: 'dddd [ⴴ] LT',
16974 lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
16975 lastWeek: 'dddd [ⴴ] LT',
16976 sameElse: 'L',
16977 },
16978 relativeTime: {
16979 future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
16980 past: 'ⵢⴰⵏ %s',
16981 s: 'ⵉⵎⵉⴽ',
16982 ss: '%d ⵉⵎⵉⴽ',
16983 m: 'ⵎⵉⵏⵓⴺ',
16984 mm: '%d ⵎⵉⵏⵓⴺ',
16985 h: 'ⵙⴰⵄⴰ',
16986 hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
16987 d: 'ⴰⵙⵙ',
16988 dd: '%d oⵙⵙⴰⵏ',
16989 M: 'ⴰⵢoⵓⵔ',
16990 MM: '%d ⵉⵢⵢⵉⵔⵏ',
16991 y: 'ⴰⵙⴳⴰⵙ',
16992 yy: '%d ⵉⵙⴳⴰⵙⵏ',
16993 },
16994 week: {
16995 dow: 6, // Saturday is the first day of the week.
16996 doy: 12, // The week that contains Jan 12th is the first week of the year.
16997 },
16998 });
16999
17000 //! moment.js locale configuration
17001
17002 hooks.defineLocale('ug-cn', {
17003 months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
17004 '_'
17005 ),
17006 monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
17007 '_'
17008 ),
17009 weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(
17010 '_'
17011 ),
17012 weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
17013 weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
17014 longDateFormat: {
17015 LT: 'HH:mm',
17016 LTS: 'HH:mm:ss',
17017 L: 'YYYY-MM-DD',
17018 LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',
17019 LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
17020 LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
17021 },
17022 meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,
17023 meridiemHour: function (hour, meridiem) {
17024 if (hour === 12) {
17025 hour = 0;
17026 }
17027 if (
17028 meridiem === 'يېرىم كېچە' ||
17029 meridiem === 'سەھەر' ||
17030 meridiem === 'چۈشتىن بۇرۇن'
17031 ) {
17032 return hour;
17033 } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {
17034 return hour + 12;
17035 } else {
17036 return hour >= 11 ? hour : hour + 12;
17037 }
17038 },
17039 meridiem: function (hour, minute, isLower) {
17040 var hm = hour * 100 + minute;
17041 if (hm < 600) {
17042 return 'يېرىم كېچە';
17043 } else if (hm < 900) {
17044 return 'سەھەر';
17045 } else if (hm < 1130) {
17046 return 'چۈشتىن بۇرۇن';
17047 } else if (hm < 1230) {
17048 return 'چۈش';
17049 } else if (hm < 1800) {
17050 return 'چۈشتىن كېيىن';
17051 } else {
17052 return 'كەچ';
17053 }
17054 },
17055 calendar: {
17056 sameDay: '[بۈگۈن سائەت] LT',
17057 nextDay: '[ئەتە سائەت] LT',
17058 nextWeek: '[كېلەركى] dddd [سائەت] LT',
17059 lastDay: '[تۆنۈگۈن] LT',
17060 lastWeek: '[ئالدىنقى] dddd [سائەت] LT',
17061 sameElse: 'L',
17062 },
17063 relativeTime: {
17064 future: '%s كېيىن',
17065 past: '%s بۇرۇن',
17066 s: 'نەچچە سېكونت',
17067 ss: '%d سېكونت',
17068 m: 'بىر مىنۇت',
17069 mm: '%d مىنۇت',
17070 h: 'بىر سائەت',
17071 hh: '%d سائەت',
17072 d: 'بىر كۈن',
17073 dd: '%d كۈن',
17074 M: 'بىر ئاي',
17075 MM: '%d ئاي',
17076 y: 'بىر يىل',
17077 yy: '%d يىل',
17078 },
17079
17080 dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,
17081 ordinal: function (number, period) {
17082 switch (period) {
17083 case 'd':
17084 case 'D':
17085 case 'DDD':
17086 return number + '-كۈنى';
17087 case 'w':
17088 case 'W':
17089 return number + '-ھەپتە';
17090 default:
17091 return number;
17092 }
17093 },
17094 preparse: function (string) {
17095 return string.replace(/،/g, ',');
17096 },
17097 postformat: function (string) {
17098 return string.replace(/,/g, '،');
17099 },
17100 week: {
17101 // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
17102 dow: 1, // Monday is the first day of the week.
17103 doy: 7, // The week that contains Jan 1st is the first week of the year.
17104 },
17105 });
17106
17107 //! moment.js locale configuration
17108
17109 function plural$6(word, num) {
17110 var forms = word.split('_');
17111 return num % 10 === 1 && num % 100 !== 11
17112 ? forms[0]
17113 : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
17114 ? forms[1]
17115 : forms[2];
17116 }
17117 function relativeTimeWithPlural$4(number, withoutSuffix, key) {
17118 var format = {
17119 ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',
17120 mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
17121 hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',
17122 dd: 'день_дні_днів',
17123 MM: 'місяць_місяці_місяців',
17124 yy: 'рік_роки_років',
17125 };
17126 if (key === 'm') {
17127 return withoutSuffix ? 'хвилина' : 'хвилину';
17128 } else if (key === 'h') {
17129 return withoutSuffix ? 'година' : 'годину';
17130 } else {
17131 return number + ' ' + plural$6(format[key], +number);
17132 }
17133 }
17134 function weekdaysCaseReplace(m, format) {
17135 var weekdays = {
17136 nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(
17137 '_'
17138 ),
17139 accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(
17140 '_'
17141 ),
17142 genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(
17143 '_'
17144 ),
17145 },
17146 nounCase;
17147
17148 if (m === true) {
17149 return weekdays['nominative']
17150 .slice(1, 7)
17151 .concat(weekdays['nominative'].slice(0, 1));
17152 }
17153 if (!m) {
17154 return weekdays['nominative'];
17155 }
17156
17157 nounCase = /(\[[ВвУу]\]) ?dddd/.test(format)
17158 ? 'accusative'
17159 : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format)
17160 ? 'genitive'
17161 : 'nominative';
17162 return weekdays[nounCase][m.day()];
17163 }
17164 function processHoursFunction(str) {
17165 return function () {
17166 return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
17167 };
17168 }
17169
17170 hooks.defineLocale('uk', {
17171 months: {
17172 format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(
17173 '_'
17174 ),
17175 standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(
17176 '_'
17177 ),
17178 },
17179 monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(
17180 '_'
17181 ),
17182 weekdays: weekdaysCaseReplace,
17183 weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
17184 weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
17185 longDateFormat: {
17186 LT: 'HH:mm',
17187 LTS: 'HH:mm:ss',
17188 L: 'DD.MM.YYYY',
17189 LL: 'D MMMM YYYY р.',
17190 LLL: 'D MMMM YYYY р., HH:mm',
17191 LLLL: 'dddd, D MMMM YYYY р., HH:mm',
17192 },
17193 calendar: {
17194 sameDay: processHoursFunction('[Сьогодні '),
17195 nextDay: processHoursFunction('[Завтра '),
17196 lastDay: processHoursFunction('[Вчора '),
17197 nextWeek: processHoursFunction('[У] dddd ['),
17198 lastWeek: function () {
17199 switch (this.day()) {
17200 case 0:
17201 case 3:
17202 case 5:
17203 case 6:
17204 return processHoursFunction('[Минулої] dddd [').call(this);
17205 case 1:
17206 case 2:
17207 case 4:
17208 return processHoursFunction('[Минулого] dddd [').call(this);
17209 }
17210 },
17211 sameElse: 'L',
17212 },
17213 relativeTime: {
17214 future: 'за %s',
17215 past: '%s тому',
17216 s: 'декілька секунд',
17217 ss: relativeTimeWithPlural$4,
17218 m: relativeTimeWithPlural$4,
17219 mm: relativeTimeWithPlural$4,
17220 h: 'годину',
17221 hh: relativeTimeWithPlural$4,
17222 d: 'день',
17223 dd: relativeTimeWithPlural$4,
17224 M: 'місяць',
17225 MM: relativeTimeWithPlural$4,
17226 y: 'рік',
17227 yy: relativeTimeWithPlural$4,
17228 },
17229 // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
17230 meridiemParse: /ночі|ранку|дня|вечора/,
17231 isPM: function (input) {
17232 return /^(дня|вечора)$/.test(input);
17233 },
17234 meridiem: function (hour, minute, isLower) {
17235 if (hour < 4) {
17236 return 'ночі';
17237 } else if (hour < 12) {
17238 return 'ранку';
17239 } else if (hour < 17) {
17240 return 'дня';
17241 } else {
17242 return 'вечора';
17243 }
17244 },
17245 dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/,
17246 ordinal: function (number, period) {
17247 switch (period) {
17248 case 'M':
17249 case 'd':
17250 case 'DDD':
17251 case 'w':
17252 case 'W':
17253 return number + '-й';
17254 case 'D':
17255 return number + '-го';
17256 default:
17257 return number;
17258 }
17259 },
17260 week: {
17261 dow: 1, // Monday is the first day of the week.
17262 doy: 7, // The week that contains Jan 7th is the first week of the year.
17263 },
17264 });
17265
17266 //! moment.js locale configuration
17267
17268 var months$b = [
17269 'جنوری',
17270 'فروری',
17271 'مارچ',
17272 'اپریل',
17273 'مئی',
17274 'جون',
17275 'جولائی',
17276 'اگست',
17277 'ستمبر',
17278 'اکتوبر',
17279 'نومبر',
17280 'دسمبر',
17281 ],
17282 days$2 = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];
17283
17284 hooks.defineLocale('ur', {
17285 months: months$b,
17286 monthsShort: months$b,
17287 weekdays: days$2,
17288 weekdaysShort: days$2,
17289 weekdaysMin: days$2,
17290 longDateFormat: {
17291 LT: 'HH:mm',
17292 LTS: 'HH:mm:ss',
17293 L: 'DD/MM/YYYY',
17294 LL: 'D MMMM YYYY',
17295 LLL: 'D MMMM YYYY HH:mm',
17296 LLLL: 'dddd، D MMMM YYYY HH:mm',
17297 },
17298 meridiemParse: /صبح|شام/,
17299 isPM: function (input) {
17300 return 'شام' === input;
17301 },
17302 meridiem: function (hour, minute, isLower) {
17303 if (hour < 12) {
17304 return 'صبح';
17305 }
17306 return 'شام';
17307 },
17308 calendar: {
17309 sameDay: '[آج بوقت] LT',
17310 nextDay: '[کل بوقت] LT',
17311 nextWeek: 'dddd [بوقت] LT',
17312 lastDay: '[گذشتہ روز بوقت] LT',
17313 lastWeek: '[گذشتہ] dddd [بوقت] LT',
17314 sameElse: 'L',
17315 },
17316 relativeTime: {
17317 future: '%s بعد',
17318 past: '%s قبل',
17319 s: 'چند سیکنڈ',
17320 ss: '%d سیکنڈ',
17321 m: 'ایک منٹ',
17322 mm: '%d منٹ',
17323 h: 'ایک گھنٹہ',
17324 hh: '%d گھنٹے',
17325 d: 'ایک دن',
17326 dd: '%d دن',
17327 M: 'ایک ماہ',
17328 MM: '%d ماہ',
17329 y: 'ایک سال',
17330 yy: '%d سال',
17331 },
17332 preparse: function (string) {
17333 return string.replace(/،/g, ',');
17334 },
17335 postformat: function (string) {
17336 return string.replace(/,/g, '،');
17337 },
17338 week: {
17339 dow: 1, // Monday is the first day of the week.
17340 doy: 4, // The week that contains Jan 4th is the first week of the year.
17341 },
17342 });
17343
17344 //! moment.js locale configuration
17345
17346 hooks.defineLocale('uz-latn', {
17347 months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(
17348 '_'
17349 ),
17350 monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),
17351 weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(
17352 '_'
17353 ),
17354 weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),
17355 weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),
17356 longDateFormat: {
17357 LT: 'HH:mm',
17358 LTS: 'HH:mm:ss',
17359 L: 'DD/MM/YYYY',
17360 LL: 'D MMMM YYYY',
17361 LLL: 'D MMMM YYYY HH:mm',
17362 LLLL: 'D MMMM YYYY, dddd HH:mm',
17363 },
17364 calendar: {
17365 sameDay: '[Bugun soat] LT [da]',
17366 nextDay: '[Ertaga] LT [da]',
17367 nextWeek: 'dddd [kuni soat] LT [da]',
17368 lastDay: '[Kecha soat] LT [da]',
17369 lastWeek: "[O'tgan] dddd [kuni soat] LT [da]",
17370 sameElse: 'L',
17371 },
17372 relativeTime: {
17373 future: 'Yaqin %s ichida',
17374 past: 'Bir necha %s oldin',
17375 s: 'soniya',
17376 ss: '%d soniya',
17377 m: 'bir daqiqa',
17378 mm: '%d daqiqa',
17379 h: 'bir soat',
17380 hh: '%d soat',
17381 d: 'bir kun',
17382 dd: '%d kun',
17383 M: 'bir oy',
17384 MM: '%d oy',
17385 y: 'bir yil',
17386 yy: '%d yil',
17387 },
17388 week: {
17389 dow: 1, // Monday is the first day of the week.
17390 doy: 7, // The week that contains Jan 7th is the first week of the year.
17391 },
17392 });
17393
17394 //! moment.js locale configuration
17395
17396 hooks.defineLocale('uz', {
17397 months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(
17398 '_'
17399 ),
17400 monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
17401 weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
17402 weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
17403 weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
17404 longDateFormat: {
17405 LT: 'HH:mm',
17406 LTS: 'HH:mm:ss',
17407 L: 'DD/MM/YYYY',
17408 LL: 'D MMMM YYYY',
17409 LLL: 'D MMMM YYYY HH:mm',
17410 LLLL: 'D MMMM YYYY, dddd HH:mm',
17411 },
17412 calendar: {
17413 sameDay: '[Бугун соат] LT [да]',
17414 nextDay: '[Эртага] LT [да]',
17415 nextWeek: 'dddd [куни соат] LT [да]',
17416 lastDay: '[Кеча соат] LT [да]',
17417 lastWeek: '[Утган] dddd [куни соат] LT [да]',
17418 sameElse: 'L',
17419 },
17420 relativeTime: {
17421 future: 'Якин %s ичида',
17422 past: 'Бир неча %s олдин',
17423 s: 'фурсат',
17424 ss: '%d фурсат',
17425 m: 'бир дакика',
17426 mm: '%d дакика',
17427 h: 'бир соат',
17428 hh: '%d соат',
17429 d: 'бир кун',
17430 dd: '%d кун',
17431 M: 'бир ой',
17432 MM: '%d ой',
17433 y: 'бир йил',
17434 yy: '%d йил',
17435 },
17436 week: {
17437 dow: 1, // Monday is the first day of the week.
17438 doy: 7, // The week that contains Jan 4th is the first week of the year.
17439 },
17440 });
17441
17442 //! moment.js locale configuration
17443
17444 hooks.defineLocale('vi', {
17445 months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(
17446 '_'
17447 ),
17448 monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(
17449 '_'
17450 ),
17451 monthsParseExact: true,
17452 weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(
17453 '_'
17454 ),
17455 weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
17456 weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
17457 weekdaysParseExact: true,
17458 meridiemParse: /sa|ch/i,
17459 isPM: function (input) {
17460 return /^ch$/i.test(input);
17461 },
17462 meridiem: function (hours, minutes, isLower) {
17463 if (hours < 12) {
17464 return isLower ? 'sa' : 'SA';
17465 } else {
17466 return isLower ? 'ch' : 'CH';
17467 }
17468 },
17469 longDateFormat: {
17470 LT: 'HH:mm',
17471 LTS: 'HH:mm:ss',
17472 L: 'DD/MM/YYYY',
17473 LL: 'D MMMM [năm] YYYY',
17474 LLL: 'D MMMM [năm] YYYY HH:mm',
17475 LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',
17476 l: 'DD/M/YYYY',
17477 ll: 'D MMM YYYY',
17478 lll: 'D MMM YYYY HH:mm',
17479 llll: 'ddd, D MMM YYYY HH:mm',
17480 },
17481 calendar: {
17482 sameDay: '[Hôm nay lúc] LT',
17483 nextDay: '[Ngày mai lúc] LT',
17484 nextWeek: 'dddd [tuần tới lúc] LT',
17485 lastDay: '[Hôm qua lúc] LT',
17486 lastWeek: 'dddd [tuần trước lúc] LT',
17487 sameElse: 'L',
17488 },
17489 relativeTime: {
17490 future: '%s tới',
17491 past: '%s trước',
17492 s: 'vài giây',
17493 ss: '%d giây',
17494 m: 'một phút',
17495 mm: '%d phút',
17496 h: 'một giờ',
17497 hh: '%d giờ',
17498 d: 'một ngày',
17499 dd: '%d ngày',
17500 w: 'một tuần',
17501 ww: '%d tuần',
17502 M: 'một tháng',
17503 MM: '%d tháng',
17504 y: 'một năm',
17505 yy: '%d năm',
17506 },
17507 dayOfMonthOrdinalParse: /\d{1,2}/,
17508 ordinal: function (number) {
17509 return number;
17510 },
17511 week: {
17512 dow: 1, // Monday is the first day of the week.
17513 doy: 4, // The week that contains Jan 4th is the first week of the year.
17514 },
17515 });
17516
17517 //! moment.js locale configuration
17518
17519 hooks.defineLocale('x-pseudo', {
17520 months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(
17521 '_'
17522 ),
17523 monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(
17524 '_'
17525 ),
17526 monthsParseExact: true,
17527 weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(
17528 '_'
17529 ),
17530 weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),
17531 weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),
17532 weekdaysParseExact: true,
17533 longDateFormat: {
17534 LT: 'HH:mm',
17535 L: 'DD/MM/YYYY',
17536 LL: 'D MMMM YYYY',
17537 LLL: 'D MMMM YYYY HH:mm',
17538 LLLL: 'dddd, D MMMM YYYY HH:mm',
17539 },
17540 calendar: {
17541 sameDay: '[T~ódá~ý át] LT',
17542 nextDay: '[T~ómó~rró~w át] LT',
17543 nextWeek: 'dddd [át] LT',
17544 lastDay: '[Ý~ést~érdá~ý át] LT',
17545 lastWeek: '[L~ást] dddd [át] LT',
17546 sameElse: 'L',
17547 },
17548 relativeTime: {
17549 future: 'í~ñ %s',
17550 past: '%s á~gó',
17551 s: 'á ~féw ~sécó~ñds',
17552 ss: '%d s~écóñ~ds',
17553 m: 'á ~míñ~úté',
17554 mm: '%d m~íñú~tés',
17555 h: 'á~ñ hó~úr',
17556 hh: '%d h~óúrs',
17557 d: 'á ~dáý',
17558 dd: '%d d~áýs',
17559 M: 'á ~móñ~th',
17560 MM: '%d m~óñt~hs',
17561 y: 'á ~ýéár',
17562 yy: '%d ý~éárs',
17563 },
17564 dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
17565 ordinal: function (number) {
17566 var b = number % 10,
17567 output =
17568 ~~((number % 100) / 10) === 1
17569 ? 'th'
17570 : b === 1
17571 ? 'st'
17572 : b === 2
17573 ? 'nd'
17574 : b === 3
17575 ? 'rd'
17576 : 'th';
17577 return number + output;
17578 },
17579 week: {
17580 dow: 1, // Monday is the first day of the week.
17581 doy: 4, // The week that contains Jan 4th is the first week of the year.
17582 },
17583 });
17584
17585 //! moment.js locale configuration
17586
17587 hooks.defineLocale('yo', {
17588 months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(
17589 '_'
17590 ),
17591 monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),
17592 weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),
17593 weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),
17594 weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),
17595 longDateFormat: {
17596 LT: 'h:mm A',
17597 LTS: 'h:mm:ss A',
17598 L: 'DD/MM/YYYY',
17599 LL: 'D MMMM YYYY',
17600 LLL: 'D MMMM YYYY h:mm A',
17601 LLLL: 'dddd, D MMMM YYYY h:mm A',
17602 },
17603 calendar: {
17604 sameDay: '[Ònì ni] LT',
17605 nextDay: '[Ọ̀la ni] LT',
17606 nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT",
17607 lastDay: '[Àna ni] LT',
17608 lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',
17609 sameElse: 'L',
17610 },
17611 relativeTime: {
17612 future: 'ní %s',
17613 past: '%s kọjá',
17614 s: 'ìsẹjú aayá die',
17615 ss: 'aayá %d',
17616 m: 'ìsẹjú kan',
17617 mm: 'ìsẹjú %d',
17618 h: 'wákati kan',
17619 hh: 'wákati %d',
17620 d: 'ọjọ́ kan',
17621 dd: 'ọjọ́ %d',
17622 M: 'osù kan',
17623 MM: 'osù %d',
17624 y: 'ọdún kan',
17625 yy: 'ọdún %d',
17626 },
17627 dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/,
17628 ordinal: 'ọjọ́ %d',
17629 week: {
17630 dow: 1, // Monday is the first day of the week.
17631 doy: 4, // The week that contains Jan 4th is the first week of the year.
17632 },
17633 });
17634
17635 //! moment.js locale configuration
17636
17637 hooks.defineLocale('zh-cn', {
17638 months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
17639 '_'
17640 ),
17641 monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
17642 '_'
17643 ),
17644 weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
17645 weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),
17646 weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
17647 longDateFormat: {
17648 LT: 'HH:mm',
17649 LTS: 'HH:mm:ss',
17650 L: 'YYYY/MM/DD',
17651 LL: 'YYYY年M月D日',
17652 LLL: 'YYYY年M月D日Ah点mm分',
17653 LLLL: 'YYYY年M月D日ddddAh点mm分',
17654 l: 'YYYY/M/D',
17655 ll: 'YYYY年M月D日',
17656 lll: 'YYYY年M月D日 HH:mm',
17657 llll: 'YYYY年M月D日dddd HH:mm',
17658 },
17659 meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
17660 meridiemHour: function (hour, meridiem) {
17661 if (hour === 12) {
17662 hour = 0;
17663 }
17664 if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
17665 return hour;
17666 } else if (meridiem === '下午' || meridiem === '晚上') {
17667 return hour + 12;
17668 } else {
17669 // '中午'
17670 return hour >= 11 ? hour : hour + 12;
17671 }
17672 },
17673 meridiem: function (hour, minute, isLower) {
17674 var hm = hour * 100 + minute;
17675 if (hm < 600) {
17676 return '凌晨';
17677 } else if (hm < 900) {
17678 return '早上';
17679 } else if (hm < 1130) {
17680 return '上午';
17681 } else if (hm < 1230) {
17682 return '中午';
17683 } else if (hm < 1800) {
17684 return '下午';
17685 } else {
17686 return '晚上';
17687 }
17688 },
17689 calendar: {
17690 sameDay: '[今天]LT',
17691 nextDay: '[明天]LT',
17692 nextWeek: function (now) {
17693 if (now.week() !== this.week()) {
17694 return '[下]dddLT';
17695 } else {
17696 return '[本]dddLT';
17697 }
17698 },
17699 lastDay: '[昨天]LT',
17700 lastWeek: function (now) {
17701 if (this.week() !== now.week()) {
17702 return '[上]dddLT';
17703 } else {
17704 return '[本]dddLT';
17705 }
17706 },
17707 sameElse: 'L',
17708 },
17709 dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/,
17710 ordinal: function (number, period) {
17711 switch (period) {
17712 case 'd':
17713 case 'D':
17714 case 'DDD':
17715 return number + '日';
17716 case 'M':
17717 return number + '月';
17718 case 'w':
17719 case 'W':
17720 return number + '周';
17721 default:
17722 return number;
17723 }
17724 },
17725 relativeTime: {
17726 future: '%s后',
17727 past: '%s前',
17728 s: '几秒',
17729 ss: '%d 秒',
17730 m: '1 分钟',
17731 mm: '%d 分钟',
17732 h: '1 小时',
17733 hh: '%d 小时',
17734 d: '1 天',
17735 dd: '%d 天',
17736 w: '1 周',
17737 ww: '%d 周',
17738 M: '1 个月',
17739 MM: '%d 个月',
17740 y: '1 年',
17741 yy: '%d 年',
17742 },
17743 week: {
17744 // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
17745 dow: 1, // Monday is the first day of the week.
17746 doy: 4, // The week that contains Jan 4th is the first week of the year.
17747 },
17748 });
17749
17750 //! moment.js locale configuration
17751
17752 hooks.defineLocale('zh-hk', {
17753 months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
17754 '_'
17755 ),
17756 monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
17757 '_'
17758 ),
17759 weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
17760 weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
17761 weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
17762 longDateFormat: {
17763 LT: 'HH:mm',
17764 LTS: 'HH:mm:ss',
17765 L: 'YYYY/MM/DD',
17766 LL: 'YYYY年M月D日',
17767 LLL: 'YYYY年M月D日 HH:mm',
17768 LLLL: 'YYYY年M月D日dddd HH:mm',
17769 l: 'YYYY/M/D',
17770 ll: 'YYYY年M月D日',
17771 lll: 'YYYY年M月D日 HH:mm',
17772 llll: 'YYYY年M月D日dddd HH:mm',
17773 },
17774 meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
17775 meridiemHour: function (hour, meridiem) {
17776 if (hour === 12) {
17777 hour = 0;
17778 }
17779 if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
17780 return hour;
17781 } else if (meridiem === '中午') {
17782 return hour >= 11 ? hour : hour + 12;
17783 } else if (meridiem === '下午' || meridiem === '晚上') {
17784 return hour + 12;
17785 }
17786 },
17787 meridiem: function (hour, minute, isLower) {
17788 var hm = hour * 100 + minute;
17789 if (hm < 600) {
17790 return '凌晨';
17791 } else if (hm < 900) {
17792 return '早上';
17793 } else if (hm < 1200) {
17794 return '上午';
17795 } else if (hm === 1200) {
17796 return '中午';
17797 } else if (hm < 1800) {
17798 return '下午';
17799 } else {
17800 return '晚上';
17801 }
17802 },
17803 calendar: {
17804 sameDay: '[今天]LT',
17805 nextDay: '[明天]LT',
17806 nextWeek: '[下]ddddLT',
17807 lastDay: '[昨天]LT',
17808 lastWeek: '[上]ddddLT',
17809 sameElse: 'L',
17810 },
17811 dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
17812 ordinal: function (number, period) {
17813 switch (period) {
17814 case 'd':
17815 case 'D':
17816 case 'DDD':
17817 return number + '日';
17818 case 'M':
17819 return number + '月';
17820 case 'w':
17821 case 'W':
17822 return number + '週';
17823 default:
17824 return number;
17825 }
17826 },
17827 relativeTime: {
17828 future: '%s後',
17829 past: '%s前',
17830 s: '幾秒',
17831 ss: '%d 秒',
17832 m: '1 分鐘',
17833 mm: '%d 分鐘',
17834 h: '1 小時',
17835 hh: '%d 小時',
17836 d: '1 天',
17837 dd: '%d 天',
17838 M: '1 個月',
17839 MM: '%d 個月',
17840 y: '1 年',
17841 yy: '%d 年',
17842 },
17843 });
17844
17845 //! moment.js locale configuration
17846
17847 hooks.defineLocale('zh-mo', {
17848 months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
17849 '_'
17850 ),
17851 monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
17852 '_'
17853 ),
17854 weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
17855 weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
17856 weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
17857 longDateFormat: {
17858 LT: 'HH:mm',
17859 LTS: 'HH:mm:ss',
17860 L: 'DD/MM/YYYY',
17861 LL: 'YYYY年M月D日',
17862 LLL: 'YYYY年M月D日 HH:mm',
17863 LLLL: 'YYYY年M月D日dddd HH:mm',
17864 l: 'D/M/YYYY',
17865 ll: 'YYYY年M月D日',
17866 lll: 'YYYY年M月D日 HH:mm',
17867 llll: 'YYYY年M月D日dddd HH:mm',
17868 },
17869 meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
17870 meridiemHour: function (hour, meridiem) {
17871 if (hour === 12) {
17872 hour = 0;
17873 }
17874 if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
17875 return hour;
17876 } else if (meridiem === '中午') {
17877 return hour >= 11 ? hour : hour + 12;
17878 } else if (meridiem === '下午' || meridiem === '晚上') {
17879 return hour + 12;
17880 }
17881 },
17882 meridiem: function (hour, minute, isLower) {
17883 var hm = hour * 100 + minute;
17884 if (hm < 600) {
17885 return '凌晨';
17886 } else if (hm < 900) {
17887 return '早上';
17888 } else if (hm < 1130) {
17889 return '上午';
17890 } else if (hm < 1230) {
17891 return '中午';
17892 } else if (hm < 1800) {
17893 return '下午';
17894 } else {
17895 return '晚上';
17896 }
17897 },
17898 calendar: {
17899 sameDay: '[今天] LT',
17900 nextDay: '[明天] LT',
17901 nextWeek: '[下]dddd LT',
17902 lastDay: '[昨天] LT',
17903 lastWeek: '[上]dddd LT',
17904 sameElse: 'L',
17905 },
17906 dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
17907 ordinal: function (number, period) {
17908 switch (period) {
17909 case 'd':
17910 case 'D':
17911 case 'DDD':
17912 return number + '日';
17913 case 'M':
17914 return number + '月';
17915 case 'w':
17916 case 'W':
17917 return number + '週';
17918 default:
17919 return number;
17920 }
17921 },
17922 relativeTime: {
17923 future: '%s內',
17924 past: '%s前',
17925 s: '幾秒',
17926 ss: '%d 秒',
17927 m: '1 分鐘',
17928 mm: '%d 分鐘',
17929 h: '1 小時',
17930 hh: '%d 小時',
17931 d: '1 天',
17932 dd: '%d 天',
17933 M: '1 個月',
17934 MM: '%d 個月',
17935 y: '1 年',
17936 yy: '%d 年',
17937 },
17938 });
17939
17940 //! moment.js locale configuration
17941
17942 hooks.defineLocale('zh-tw', {
17943 months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
17944 '_'
17945 ),
17946 monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
17947 '_'
17948 ),
17949 weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
17950 weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
17951 weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
17952 longDateFormat: {
17953 LT: 'HH:mm',
17954 LTS: 'HH:mm:ss',
17955 L: 'YYYY/MM/DD',
17956 LL: 'YYYY年M月D日',
17957 LLL: 'YYYY年M月D日 HH:mm',
17958 LLLL: 'YYYY年M月D日dddd HH:mm',
17959 l: 'YYYY/M/D',
17960 ll: 'YYYY年M月D日',
17961 lll: 'YYYY年M月D日 HH:mm',
17962 llll: 'YYYY年M月D日dddd HH:mm',
17963 },
17964 meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
17965 meridiemHour: function (hour, meridiem) {
17966 if (hour === 12) {
17967 hour = 0;
17968 }
17969 if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
17970 return hour;
17971 } else if (meridiem === '中午') {
17972 return hour >= 11 ? hour : hour + 12;
17973 } else if (meridiem === '下午' || meridiem === '晚上') {
17974 return hour + 12;
17975 }
17976 },
17977 meridiem: function (hour, minute, isLower) {
17978 var hm = hour * 100 + minute;
17979 if (hm < 600) {
17980 return '凌晨';
17981 } else if (hm < 900) {
17982 return '早上';
17983 } else if (hm < 1130) {
17984 return '上午';
17985 } else if (hm < 1230) {
17986 return '中午';
17987 } else if (hm < 1800) {
17988 return '下午';
17989 } else {
17990 return '晚上';
17991 }
17992 },
17993 calendar: {
17994 sameDay: '[今天] LT',
17995 nextDay: '[明天] LT',
17996 nextWeek: '[下]dddd LT',
17997 lastDay: '[昨天] LT',
17998 lastWeek: '[上]dddd LT',
17999 sameElse: 'L',
18000 },
18001 dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
18002 ordinal: function (number, period) {
18003 switch (period) {
18004 case 'd':
18005 case 'D':
18006 case 'DDD':
18007 return number + '日';
18008 case 'M':
18009 return number + '月';
18010 case 'w':
18011 case 'W':
18012 return number + '週';
18013 default:
18014 return number;
18015 }
18016 },
18017 relativeTime: {
18018 future: '%s後',
18019 past: '%s前',
18020 s: '幾秒',
18021 ss: '%d 秒',
18022 m: '1 分鐘',
18023 mm: '%d 分鐘',
18024 h: '1 小時',
18025 hh: '%d 小時',
18026 d: '1 天',
18027 dd: '%d 天',
18028 M: '1 個月',
18029 MM: '%d 個月',
18030 y: '1 年',
18031 yy: '%d 年',
18032 },
18033 });
18034
18035 hooks.locale('en');
18036
18037 return hooks;
18038
18039 })));