index.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _index = _interopRequireDefault(require("../../../_lib/buildLocalizeFn/index.js"));
  7. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  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. function ordinalNumber(dirtyNumber, dirtyOptions) {
  51. var options = dirtyOptions || {};
  52. var unit = String(options.unit);
  53. var number = Number(dirtyNumber);
  54. if (number === 0) {
  55. return numberWithSuffix(0, unit, 'ев', 'ева', 'ево');
  56. } else if (number % 1000 === 0) {
  57. return numberWithSuffix(number, unit, 'ен', 'на', 'но');
  58. } else if (number % 100 === 0) {
  59. return numberWithSuffix(number, unit, 'тен', 'тна', 'тно');
  60. }
  61. var rem100 = number % 100;
  62. if (rem100 > 20 || rem100 < 10) {
  63. switch (rem100 % 10) {
  64. case 1:
  65. return numberWithSuffix(number, unit, 'ви', 'ва', 'во');
  66. case 2:
  67. return numberWithSuffix(number, unit, 'ри', 'ра', 'ро');
  68. case 7:
  69. case 8:
  70. return numberWithSuffix(number, unit, 'ми', 'ма', 'мо');
  71. }
  72. }
  73. return numberWithSuffix(number, unit, 'ти', 'та', 'то');
  74. }
  75. var localize = {
  76. ordinalNumber: ordinalNumber,
  77. era: (0, _index.default)({
  78. values: eraValues,
  79. defaultWidth: 'wide'
  80. }),
  81. quarter: (0, _index.default)({
  82. values: quarterValues,
  83. defaultWidth: 'wide',
  84. argumentCallback: function (quarter) {
  85. return Number(quarter) - 1;
  86. }
  87. }),
  88. month: (0, _index.default)({
  89. values: monthValues,
  90. defaultWidth: 'wide'
  91. }),
  92. day: (0, _index.default)({
  93. values: dayValues,
  94. defaultWidth: 'wide'
  95. }),
  96. dayPeriod: (0, _index.default)({
  97. values: dayPeriodValues,
  98. defaultWidth: 'wide'
  99. })
  100. };
  101. var _default = localize;
  102. exports.default = _default;
  103. module.exports = exports.default;