UNPKG

ngx-bootstrap

Version:
143 lines 5.59 kB
import { getHours } from '../utils/date-getters'; import { getDayOfWeek } from '../units/day-of-week'; //! moment.js locale configuration //! locale : Ukrainian [uk] //! author : zemlanin : https://github.com/zemlanin //! Author : Menelion Elensúle : https://github.com/Oire function plural(word, num) { let forms = word.split('_'); return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); } function relativeTimeWithPlural(num, withoutSuffix, key) { let format = { ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд', mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин', dd: 'день_дні_днів', MM: 'місяць_місяці_місяців', yy: 'рік_роки_років' }; if (key === 'm') { return withoutSuffix ? 'хвилина' : 'хвилину'; } if (key === 'h') { return withoutSuffix ? 'година' : 'годину'; } return num + ' ' + plural(format[key], +num); } function weekdaysCaseReplace(date, format, isUTC) { let weekdays = { nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'), accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'), genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_') }; if (!date) { return weekdays.nominative; } let nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ? 'accusative' : ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ? 'genitive' : 'nominative'); return weekdays[nounCase][getDayOfWeek(date, isUTC)]; } function processHoursFunction(str) { return function (date) { return str + 'о' + (getHours(date) === 11 ? 'б' : '') + '] LT'; }; } export const ukLocale = { abbr: 'uk', months: { format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'), standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_') }, monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'), weekdays: weekdaysCaseReplace, weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D MMMM YYYY р.', LLL: 'D MMMM YYYY р., HH:mm', LLLL: 'dddd, D MMMM YYYY р., HH:mm' }, calendar: { sameDay: processHoursFunction('[Сьогодні '), nextDay: processHoursFunction('[Завтра '), lastDay: processHoursFunction('[Вчора '), nextWeek: processHoursFunction('[У] dddd ['), lastWeek(date) { switch (getDayOfWeek(date)) { case 0: case 3: case 5: case 6: return processHoursFunction('[Минулої] dddd [')(date); case 1: case 2: case 4: return processHoursFunction('[Минулого] dddd [')(date); } }, sameElse: 'L' }, relativeTime: { future: 'за %s', past: '%s тому', s: 'декілька секунд', ss: relativeTimeWithPlural, m: relativeTimeWithPlural, mm: relativeTimeWithPlural, h: 'годину', hh: relativeTimeWithPlural, d: 'день', dd: relativeTimeWithPlural, M: 'місяць', MM: relativeTimeWithPlural, y: 'рік', yy: relativeTimeWithPlural }, // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason meridiemParse: /ночі|ранку|дня|вечора/, isPM(input) { return /^(дня|вечора)$/.test(input); }, meridiem(hour, minute, isLower) { if (hour < 4) { return 'ночі'; } else if (hour < 12) { return 'ранку'; } else if (hour < 17) { return 'дня'; } else { return 'вечора'; } }, dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, ordinal(_num, period) { const num = Number(_num); switch (period) { case 'M': case 'd': case 'DDD': case 'w': case 'W': return num + '-й'; case 'D': return num + '-го'; default: return num.toString(); } }, week: { dow: 1, doy: 7 // The week that contains Jan 1st is the first week of the year. } }; //# sourceMappingURL=uk.js.map