index.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = void 0;
  7. var _index = _interopRequireDefault(require("../../../_lib/buildLocalizeFn/index.js"));
  8. var eraValues = {
  9. narrow: ['пр.н.е.', 'н.е.'],
  10. abbreviated: ['преди н. е.', 'н. е.'],
  11. wide: ['преди новата ера', 'новата ера']
  12. };
  13. var quarterValues = {
  14. narrow: ['1', '2', '3', '4'],
  15. abbreviated: ['1-во тримес.', '2-ро тримес.', '3-то тримес.', '4-то тримес.'],
  16. wide: ['1-во тримесечие', '2-ро тримесечие', '3-то тримесечие', '4-то тримесечие']
  17. };
  18. var monthValues = {
  19. abbreviated: ['яну', 'фев', 'мар', 'апр', 'май', 'юни', 'юли', 'авг', 'сеп', 'окт', 'ное', 'дек'],
  20. wide: ['януари', 'февруари', 'март', 'април', 'май', 'юни', 'юли', 'август', 'септември', 'октомври', 'ноември', 'декември']
  21. };
  22. var dayValues = {
  23. narrow: ['Н', 'П', 'В', 'С', 'Ч', 'П', 'С'],
  24. short: ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],
  25. abbreviated: ['нед', 'пон', 'вто', 'сря', 'чет', 'пет', 'съб'],
  26. wide: ['неделя', 'понеделник', 'вторник', 'сряда', 'четвъртък', 'петък', 'събота']
  27. };
  28. var dayPeriodValues = {
  29. wide: {
  30. am: 'преди обяд',
  31. pm: 'след обяд',
  32. midnight: 'в полунощ',
  33. noon: 'на обяд',
  34. morning: 'сутринта',
  35. afternoon: 'следобед',
  36. evening: 'вечерта',
  37. night: 'през нощта'
  38. }
  39. };
  40. function isFeminine(unit) {
  41. return unit === 'year' || unit === 'week' || unit === 'minute' || unit === 'second';
  42. }
  43. function isNeuter(unit) {
  44. return unit === 'quarter';
  45. }
  46. function numberWithSuffix(number, unit, masculine, feminine, neuter) {
  47. var suffix = isNeuter(unit) ? neuter : isFeminine(unit) ? feminine : masculine;
  48. return number + '-' + suffix;
  49. }
  50. var ordinalNumber = function ordinalNumber(dirtyNumber, options) {
  51. var number = Number(dirtyNumber);
  52. var unit = options === null || options === void 0 ? void 0 : options.unit;
  53. if (number === 0) {
  54. return numberWithSuffix(0, unit, 'ев', 'ева', 'ево');
  55. } else if (number % 1000 === 0) {
  56. return numberWithSuffix(number, unit, 'ен', 'на', 'но');
  57. } else if (number % 100 === 0) {
  58. return numberWithSuffix(number, unit, 'тен', 'тна', 'тно');
  59. }
  60. var rem100 = number % 100;
  61. if (rem100 > 20 || rem100 < 10) {
  62. switch (rem100 % 10) {
  63. case 1:
  64. return numberWithSuffix(number, unit, 'ви', 'ва', 'во');
  65. case 2:
  66. return numberWithSuffix(number, unit, 'ри', 'ра', 'ро');
  67. case 7:
  68. case 8:
  69. return numberWithSuffix(number, unit, 'ми', 'ма', 'мо');
  70. }
  71. }
  72. return numberWithSuffix(number, unit, 'ти', 'та', 'то');
  73. };
  74. var localize = {
  75. ordinalNumber: ordinalNumber,
  76. era: (0, _index.default)({
  77. values: eraValues,
  78. defaultWidth: 'wide'
  79. }),
  80. quarter: (0, _index.default)({
  81. values: quarterValues,
  82. defaultWidth: 'wide',
  83. argumentCallback: function argumentCallback(quarter) {
  84. return quarter - 1;
  85. }
  86. }),
  87. month: (0, _index.default)({
  88. values: monthValues,
  89. defaultWidth: 'wide'
  90. }),
  91. day: (0, _index.default)({
  92. values: dayValues,
  93. defaultWidth: 'wide'
  94. }),
  95. dayPeriod: (0, _index.default)({
  96. values: dayPeriodValues,
  97. defaultWidth: 'wide'
  98. })
  99. };
  100. var _default = localize;
  101. exports.default = _default;
  102. module.exports = exports.default;