| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | 
							- // @flow
 - 
 - import moment from 'moment';
 - 
 - import i18next from './i18next';
 - 
 - // MomentJS uses static language bundle loading, so in order to support dynamic
 - // language selection in the app we need to load all bundles that we support in
 - // the app.
 - require('moment/locale/bg');
 - require('moment/locale/de');
 - require('moment/locale/eo');
 - require('moment/locale/es');
 - require('moment/locale/fr');
 - require('moment/locale/hy-am');
 - require('moment/locale/it');
 - require('moment/locale/nb');
 - 
 - // OC is not available. Please submit OC translation to the MomentJS project.
 - 
 - require('moment/locale/pl');
 - require('moment/locale/pt');
 - require('moment/locale/pt-br');
 - require('moment/locale/ru');
 - require('moment/locale/sk');
 - require('moment/locale/sl');
 - require('moment/locale/sv');
 - require('moment/locale/tr');
 - require('moment/locale/zh-cn');
 - 
 - /**
 -  * Returns a localized date formatter initialized with a specific {@code Date}
 -  * or timestamp ({@code number}).
 -  *
 -  * @private
 -  * @param {Date | number} dateOrTimeStamp - The date or unix timestamp (ms)
 -  * to format.
 -  * @returns {Object}
 -  */
 - export function getLocalizedDateFormatter(dateOrTimeStamp: Date | number) {
 -     return moment(dateOrTimeStamp).locale(_getSupportedLocale());
 - }
 - 
 - /**
 -  * Returns a localized duration formatter initialized with a
 -  * specific duration ({@code number}).
 -  *
 -  * @private
 -  * @param {number} duration - The duration (ms)
 -  * to format.
 -  * @returns {Object}
 -  */
 - export function getLocalizedDurationFormatter(duration: number) {
 -     return moment.duration(duration).locale(_getSupportedLocale());
 - }
 - 
 - /**
 -  * A lenient locale matcher to match language and dialect if possible.
 -  *
 -  * @private
 -  * @returns {string}
 -  */
 - function _getSupportedLocale() {
 -     const i18nLocale = i18next.language;
 -     let supportedLocale;
 - 
 -     if (i18nLocale) {
 -         const localeRegexp = new RegExp('^([a-z]{2,2})(-)*([a-z]{2,2})*$');
 -         const localeResult = localeRegexp.exec(i18nLocale.toLowerCase());
 - 
 -         if (localeResult) {
 -             const currentLocaleRegexp
 -                 = new RegExp(
 -                     `^${localeResult[1]}(-)*${`(${localeResult[3]})*` || ''}`);
 - 
 -             supportedLocale
 -                 = moment.locales().find(lang => currentLocaleRegexp.exec(lang));
 -         }
 -     }
 - 
 -     return supportedLocale || 'en';
 - }
 
 
  |