redux-autoform-utils
Version:
Common javascript files to all the redux-autoform related projects
74 lines (58 loc) • 2.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (moment) {
if (!moment) throw Error('\'moment\' should be truthy');
if (typeof moment !== 'function') throw new TypeError('You must provide a valid moment object');
var localField = typeof moment().locale === 'function' ? 'locale' : 'lang';
if (!moment.localeData) throw new TypeError('The Moment localizer depends on the `localeData` api, please provide a moment object v2.2.0 or higher');
var getMoment = function getMoment(culture, value, format) {
return culture ? moment(value, format)[localField](culture) : moment(value, format);
};
var endOfDecade = function endOfDecade(date) {
return moment(date).add(10, 'year').add(-1, 'millisecond').toDate();
};
var endOfCentury = function endOfCentury(date) {
return moment(date).add(100, 'year').add(-1, 'millisecond').toDate();
};
var localizer = {
formats: {
date: 'L',
time: 'LT',
default: 'lll',
header: 'MMMM YYYY',
footer: 'LL',
weekday: 'dd',
dayOfMonth: 'DD',
month: 'MMM',
year: 'YYYY',
decade: function decade(date, culture, localizer) {
return localizer.format(date, 'YYYY', culture) + ' - ' + localizer.format(endOfDecade(date), 'YYYY', culture);
},
century: function century(date, culture, localizer) {
return localizer.format(date, 'YYYY', culture) + ' - ' + localizer.format(endOfCentury(date), 'YYYY', culture);
}
},
firstOfWeek: function firstOfWeek(culture) {
return moment.localeData(culture).firstDayOfWeek();
},
parse: function parse(value, format, culture) {
if (!value) return undefined; // localizers should return undefined for empty inputs
var m = getMoment(culture, value, format);
if (m.isValid()) return m.toDate();else {
//is ISO-8601?
m = getMoment(culture, value, moment.ISO_8601);
if (m.isValid()) return m.format(format);
}
return null; // localizers should return nul for invalid inputs
},
format: function format(value, _format, culture) {
return getMoment(culture, value).format(_format);
}
};
(0, _dateLocalizer.setDateLocalizer)(localizer);
return localizer;
};
var _dateLocalizer = require('./dateLocalizer');
module.exports = exports['default'];