index.js 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import buildMatchFn from "../../../_lib/buildMatchFn/index.js";
  2. import buildMatchPatternFn from "../../../_lib/buildMatchPatternFn/index.js";
  3. var matchOrdinalNumberPattern = /^(\d+)(-?[врмт][аи]|-?т?(ен|на)|-?(ев|ева))?/i;
  4. var parseOrdinalNumberPattern = /\d+/i;
  5. var matchEraPatterns = {
  6. narrow: /^((пр)?н\.?\s?е\.?)/i,
  7. abbreviated: /^((пр)?н\.?\s?е\.?)/i,
  8. wide: /^(преди новата ера|новата ера|нова ера)/i
  9. };
  10. var parseEraPatterns = {
  11. any: [/^п/i, /^н/i]
  12. };
  13. var matchQuarterPatterns = {
  14. narrow: /^[1234]/i,
  15. abbreviated: /^[1234](-?[врт]?o?)? тримес.?/i,
  16. wide: /^[1234](-?[врт]?о?)? тримесечие/i
  17. };
  18. var parseQuarterPatterns = {
  19. any: [/1/i, /2/i, /3/i, /4/i]
  20. };
  21. var matchDayPatterns = {
  22. narrow: /^[нпвсч]/i,
  23. short: /^(нд|пн|вт|ср|чт|пт|сб)/i,
  24. abbreviated: /^(нед|пон|вто|сря|чет|пет|съб)/i,
  25. wide: /^(неделя|понеделник|вторник|сряда|четвъртък|петък|събота)/i
  26. };
  27. var parseDayPatterns = {
  28. narrow: [/^н/i, /^п/i, /^в/i, /^с/i, /^ч/i, /^п/i, /^с/i],
  29. any: [/^н[ед]/i, /^п[он]/i, /^вт/i, /^ср/i, /^ч[ет]/i, /^п[ет]/i, /^с[ъб]/i]
  30. };
  31. var matchMonthPatterns = {
  32. abbreviated: /^(яну|фев|мар|апр|май|юни|юли|авг|сеп|окт|ное|дек)/i,
  33. wide: /^(януари|февруари|март|април|май|юни|юли|август|септември|октомври|ноември|декември)/i
  34. };
  35. var parseMonthPatterns = {
  36. any: [/^я/i, /^ф/i, /^мар/i, /^ап/i, /^май/i, /^юн/i, /^юл/i, /^ав/i, /^се/i, /^окт/i, /^но/i, /^де/i]
  37. };
  38. var matchDayPeriodPatterns = {
  39. any: /^(преди о|след о|в по|на о|през|веч|сут|следо)/i
  40. };
  41. var parseDayPeriodPatterns = {
  42. any: {
  43. am: /^преди о/i,
  44. pm: /^след о/i,
  45. midnight: /^в пол/i,
  46. noon: /^на об/i,
  47. morning: /^сут/i,
  48. afternoon: /^следо/i,
  49. evening: /^веч/i,
  50. night: /^през н/i
  51. }
  52. };
  53. var match = {
  54. ordinalNumber: buildMatchPatternFn({
  55. matchPattern: matchOrdinalNumberPattern,
  56. parsePattern: parseOrdinalNumberPattern,
  57. valueCallback: function valueCallback(value) {
  58. return parseInt(value, 10);
  59. }
  60. }),
  61. era: buildMatchFn({
  62. matchPatterns: matchEraPatterns,
  63. defaultMatchWidth: 'wide',
  64. parsePatterns: parseEraPatterns,
  65. defaultParseWidth: 'any'
  66. }),
  67. quarter: buildMatchFn({
  68. matchPatterns: matchQuarterPatterns,
  69. defaultMatchWidth: 'wide',
  70. parsePatterns: parseQuarterPatterns,
  71. defaultParseWidth: 'any',
  72. valueCallback: function valueCallback(index) {
  73. return index + 1;
  74. }
  75. }),
  76. month: buildMatchFn({
  77. matchPatterns: matchMonthPatterns,
  78. defaultMatchWidth: 'wide',
  79. parsePatterns: parseMonthPatterns,
  80. defaultParseWidth: 'any'
  81. }),
  82. day: buildMatchFn({
  83. matchPatterns: matchDayPatterns,
  84. defaultMatchWidth: 'wide',
  85. parsePatterns: parseDayPatterns,
  86. defaultParseWidth: 'any'
  87. }),
  88. dayPeriod: buildMatchFn({
  89. matchPatterns: matchDayPeriodPatterns,
  90. defaultMatchWidth: 'any',
  91. parsePatterns: parseDayPeriodPatterns,
  92. defaultParseWidth: 'any'
  93. })
  94. };
  95. export default match;