ngx-bootstrap
Version:
Native Angular Bootstrap Components
48 lines • 1.87 kB
JavaScript
// moment.js
// version : 2.18.1
// authors : Tim Wood, Iskren Chernev, Moment.js contributors
// license : MIT
// momentjs.com
import './units/index';
import { formatFunctions, makeFormatFunction } from './format/format';
import { getLocale } from './locale/locales';
import { isDateValid } from './utils/type-checks';
export function formatDate(date, format, locale, isUTC, offset) {
if (offset === void 0) { offset = 0; }
var _locale = getLocale(locale || 'en');
if (!_locale) {
throw new Error("Locale \"" + locale + "\" is not defined, please add it with \"defineLocale(...)\"");
}
var _format = format || (isUTC ? 'YYYY-MM-DDTHH:mm:ss[Z]' : 'YYYY-MM-DDTHH:mm:ssZ');
var output = formatMoment(date, _format, _locale, isUTC, offset);
if (!output) {
return output;
}
return _locale.postformat(output);
}
// format date using native date object
export function formatMoment(date, _format, locale, isUTC, offset) {
if (offset === void 0) { offset = 0; }
if (!isDateValid(date)) {
return locale.invalidDate;
}
var format = expandFormat(_format, locale);
formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);
return formatFunctions[format](date, locale, isUTC, offset);
}
export function expandFormat(_format, locale) {
var format = _format;
var i = 5;
var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
var replaceLongDateFormatTokens = function (input) {
return locale.formatLongDate(input) || input;
};
localFormattingTokens.lastIndex = 0;
while (i >= 0 && localFormattingTokens.test(format)) {
format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
localFormattingTokens.lastIndex = 0;
i -= 1;
}
return format;
}
//# sourceMappingURL=format.js.map