index.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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: /^(Ք|Մ)/i,
  7. abbreviated: /^(Ք\.?\s?Ա\.?|Մ\.?\s?Թ\.?\s?Ա\.?|Մ\.?\s?Թ\.?|Ք\.?\s?Հ\.?)/i,
  8. wide: /^(քրիստոսից առաջ|մեր թվարկությունից առաջ|մեր թվարկության|քրիստոսից հետո)/i
  9. };
  10. var parseEraPatterns = {
  11. any: [/^ք/i, /^մ/i]
  12. };
  13. var matchQuarterPatterns = {
  14. narrow: /^[1234]/i,
  15. abbreviated: /^ք[1234]/i,
  16. wide: /^[1234]((-|֊)?(ին|րդ)) քառորդ/i
  17. };
  18. var parseQuarterPatterns = {
  19. any: [/1/i, /2/i, /3/i, /4/i]
  20. };
  21. var matchMonthPatterns = {
  22. narrow: /^[հփմաօսնդ]/i,
  23. abbreviated: /^(հուն|փետ|մար|ապր|մայ|հուն|հուլ|օգս|սեպ|հոկ|նոյ|դեկ)/i,
  24. wide: /^(հունվար|փետրվար|մարտ|ապրիլ|մայիս|հունիս|հուլիս|օգոստոս|սեպտեմբեր|հոկտեմբեր|նոյեմբեր|դեկտեմբեր)/i
  25. };
  26. var parseMonthPatterns = {
  27. narrow: [/^հ/i, /^փ/i, /^մ/i, /^ա/i, /^մ/i, /^հ/i, /^հ/i, /^օ/i, /^ս/i, /^հ/i, /^ն/i, /^դ/i],
  28. any: [/^հու/i, /^փ/i, /^մար/i, /^ա/i, /^մայ/i, /^հուն/i, /^հուլ/i, /^օ/i, /^ս/i, /^հոկ/i, /^ն/i, /^դ/i]
  29. };
  30. var matchDayPatterns = {
  31. narrow: /^[եչհոշկ]/i,
  32. short: /^(կր|եր|եք|չք|հգ|ուր|շբ)/i,
  33. abbreviated: /^(կիր|երկ|երք|չոր|հնգ|ուրբ|շաբ)/i,
  34. wide: /^(կիրակի|երկուշաբթի|երեքշաբթի|չորեքշաբթի|հինգշաբթի|ուրբաթ|շաբաթ)/i
  35. };
  36. var parseDayPatterns = {
  37. narrow: [/^կ/i, /^ե/i, /^ե/i, /^չ/i, /^հ/i, /^(ո|Ո)/, /^շ/i],
  38. short: [/^կ/i, /^եր/i, /^եք/i, /^չ/i, /^հ/i, /^(ո|Ո)/, /^շ/i],
  39. abbreviated: [/^կ/i, /^երկ/i, /^երք/i, /^չ/i, /^հ/i, /^(ո|Ո)/, /^շ/i],
  40. wide: [/^կ/i, /^երկ/i, /^երե/i, /^չ/i, /^հ/i, /^(ո|Ո)/, /^շ/i]
  41. };
  42. var matchDayPeriodPatterns = {
  43. narrow: /^([ap]|կեսգշ|կեսօր|(առավոտը?|ցերեկը?|երեկո(յան)?|գիշերը?))/i,
  44. any: /^([ap]\.?\s?m\.?|կեսգիշեր(ին)?|կեսօր(ին)?|(առավոտը?|ցերեկը?|երեկո(յան)?|գիշերը?))/i
  45. };
  46. var parseDayPeriodPatterns = {
  47. any: {
  48. am: /^a/i,
  49. pm: /^p/i,
  50. midnight: /կեսգիշեր/i,
  51. noon: /կեսօր/i,
  52. morning: /առավոտ/i,
  53. afternoon: /ցերեկ/i,
  54. evening: /երեկո/i,
  55. night: /գիշեր/i
  56. }
  57. };
  58. var match = {
  59. ordinalNumber: buildMatchPatternFn({
  60. matchPattern: matchOrdinalNumberPattern,
  61. parsePattern: parseOrdinalNumberPattern,
  62. valueCallback: function valueCallback(value) {
  63. return parseInt(value, 10);
  64. }
  65. }),
  66. era: buildMatchFn({
  67. matchPatterns: matchEraPatterns,
  68. defaultMatchWidth: 'wide',
  69. parsePatterns: parseEraPatterns,
  70. defaultParseWidth: 'any'
  71. }),
  72. quarter: buildMatchFn({
  73. matchPatterns: matchQuarterPatterns,
  74. defaultMatchWidth: 'wide',
  75. parsePatterns: parseQuarterPatterns,
  76. defaultParseWidth: 'any',
  77. valueCallback: function valueCallback(index) {
  78. return index + 1;
  79. }
  80. }),
  81. month: buildMatchFn({
  82. matchPatterns: matchMonthPatterns,
  83. defaultMatchWidth: 'wide',
  84. parsePatterns: parseMonthPatterns,
  85. defaultParseWidth: 'any'
  86. }),
  87. day: buildMatchFn({
  88. matchPatterns: matchDayPatterns,
  89. defaultMatchWidth: 'wide',
  90. parsePatterns: parseDayPatterns,
  91. defaultParseWidth: 'wide'
  92. }),
  93. dayPeriod: buildMatchFn({
  94. matchPatterns: matchDayPeriodPatterns,
  95. defaultMatchWidth: 'any',
  96. parsePatterns: parseDayPeriodPatterns,
  97. defaultParseWidth: 'any'
  98. })
  99. };
  100. export default match;