index.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var formatDistanceLocale = {
  7. lessThanXSeconds: {
  8. one: {
  9. regular: 'mniej niż sekunda',
  10. past: 'mniej niż sekundę',
  11. future: 'mniej niż sekundę'
  12. },
  13. twoFour: 'mniej niż {{count}} sekundy',
  14. other: 'mniej niż {{count}} sekund'
  15. },
  16. xSeconds: {
  17. one: {
  18. regular: 'sekunda',
  19. past: 'sekundę',
  20. future: 'sekundę'
  21. },
  22. twoFour: '{{count}} sekundy',
  23. other: '{{count}} sekund'
  24. },
  25. halfAMinute: {
  26. one: 'pół minuty',
  27. twoFour: 'pół minuty',
  28. other: 'pół minuty'
  29. },
  30. lessThanXMinutes: {
  31. one: {
  32. regular: 'mniej niż minuta',
  33. past: 'mniej niż minutę',
  34. future: 'mniej niż minutę'
  35. },
  36. twoFour: 'mniej niż {{count}} minuty',
  37. other: 'mniej niż {{count}} minut'
  38. },
  39. xMinutes: {
  40. one: {
  41. regular: 'minuta',
  42. past: 'minutę',
  43. future: 'minutę'
  44. },
  45. twoFour: '{{count}} minuty',
  46. other: '{{count}} minut'
  47. },
  48. aboutXHours: {
  49. one: {
  50. regular: 'około godziny',
  51. past: 'około godziny',
  52. future: 'około godzinę'
  53. },
  54. twoFour: 'około {{count}} godziny',
  55. other: 'około {{count}} godzin'
  56. },
  57. xHours: {
  58. one: {
  59. regular: 'godzina',
  60. past: 'godzinę',
  61. future: 'godzinę'
  62. },
  63. twoFour: '{{count}} godziny',
  64. other: '{{count}} godzin'
  65. },
  66. xDays: {
  67. one: {
  68. regular: 'dzień',
  69. past: 'dzień',
  70. future: '1 dzień'
  71. },
  72. twoFour: '{{count}} dni',
  73. other: '{{count}} dni'
  74. },
  75. aboutXWeeks: {
  76. one: 'około tygodnia',
  77. twoFour: 'około {{count}} tygodni',
  78. other: 'około {{count}} tygodni'
  79. },
  80. xWeeks: {
  81. one: 'tydzień',
  82. twoFour: '{{count}} tygodnie',
  83. other: '{{count}} tygodni'
  84. },
  85. aboutXMonths: {
  86. one: 'około miesiąc',
  87. twoFour: 'około {{count}} miesiące',
  88. other: 'około {{count}} miesięcy'
  89. },
  90. xMonths: {
  91. one: 'miesiąc',
  92. twoFour: '{{count}} miesiące',
  93. other: '{{count}} miesięcy'
  94. },
  95. aboutXYears: {
  96. one: 'około rok',
  97. twoFour: 'około {{count}} lata',
  98. other: 'około {{count}} lat'
  99. },
  100. xYears: {
  101. one: 'rok',
  102. twoFour: '{{count}} lata',
  103. other: '{{count}} lat'
  104. },
  105. overXYears: {
  106. one: 'ponad rok',
  107. twoFour: 'ponad {{count}} lata',
  108. other: 'ponad {{count}} lat'
  109. },
  110. almostXYears: {
  111. one: 'prawie rok',
  112. twoFour: 'prawie {{count}} lata',
  113. other: 'prawie {{count}} lat'
  114. }
  115. };
  116. function declensionGroup(scheme, count) {
  117. if (count === 1) {
  118. return scheme.one;
  119. }
  120. var rem100 = count % 100;
  121. // ends with 11-20
  122. if (rem100 <= 20 && rem100 > 10) {
  123. return scheme.other;
  124. }
  125. var rem10 = rem100 % 10;
  126. // ends with 2, 3, 4
  127. if (rem10 >= 2 && rem10 <= 4) {
  128. return scheme.twoFour;
  129. }
  130. return scheme.other;
  131. }
  132. function declension(scheme, count, time) {
  133. var group = declensionGroup(scheme, count);
  134. var finalText = typeof group === 'string' ? group : group[time];
  135. return finalText.replace('{{count}}', String(count));
  136. }
  137. var formatDistance = function formatDistance(token, count, options) {
  138. var scheme = formatDistanceLocale[token];
  139. if (!(options !== null && options !== void 0 && options.addSuffix)) {
  140. return declension(scheme, count, 'regular');
  141. }
  142. if (options.comparison && options.comparison > 0) {
  143. return 'za ' + declension(scheme, count, 'future');
  144. } else {
  145. return declension(scheme, count, 'past') + ' temu';
  146. }
  147. };
  148. var _default = formatDistance;
  149. exports.default = _default;
  150. module.exports = exports.default;