UNPKG

redux-autoform-utils

Version:

Common javascript files to all the redux-autoform related projects

74 lines (58 loc) 2.62 kB
'use strict'; 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'];