UNPKG

react-widgets

Version:

An à la carte set of polished, extensible, and accessible inputs built for React

70 lines (51 loc) 2.06 kB
'use strict'; var babelHelpers = require('../util/babelHelpers.js'); exports.__esModule = true; var _configure = require('../configure'); var _configure2 = babelHelpers.interopRequireDefault(_configure); exports['default'] = function (moment) { if (typeof moment !== 'function') throw new TypeError('You must provide a valid moment object'); var localField = typeof moment().locale === 'function' ? 'locale' : 'lang', hasLocaleData = !!moment.localeData; if (!hasLocaleData) throw new TypeError('The Moment localizer depends on the `localeData` api, please provide a moment object v2.2.0 or higher'); function getMoment(culture, value, format) { return culture ? moment(value, format)[localField](culture) : moment(value, format); } function endOfDecade(date) { return moment(date).add(10, 'year').add(-1, 'millisecond').toDate(); } 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) { return getMoment(culture, value, format).toDate(); }, format: function format(value, _format, culture) { return getMoment(culture, value).format(_format); } }; _configure2['default'].setDateLocalizer(localizer); return localizer; }; module.exports = exports['default'];