index.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import buildMatchFn from "../../../_lib/buildMatchFn/index.js";
  2. import buildMatchPatternFn from "../../../_lib/buildMatchPatternFn/index.js";
  3. var matchOrdinalNumberPattern = /^(\d+)/;
  4. var parseOrdinalNumberPattern = /\d+/i;
  5. var matchEraPatterns = {
  6. narrow: /^(ق|ب)/g,
  7. abbreviated: /^(ق.م|ب.م)/g,
  8. wide: /^(قبل الميلاد|بعد الميلاد)/g
  9. };
  10. var parseEraPatterns = {
  11. any: [/^ق/g, /^ب/g]
  12. };
  13. var matchQuarterPatterns = {
  14. narrow: /^[1234]/,
  15. abbreviated: /^ر[1234]/,
  16. wide: /^الربع (الأول|الثاني|الثالث|الرابع)/
  17. };
  18. var parseQuarterPatterns = {
  19. wide: [/الربع الأول/, /الربع الثاني/, /الربع الثالث/, /الربع الرابع/],
  20. any: [/1/, /2/, /3/, /4/]
  21. };
  22. var matchMonthPatterns = {
  23. narrow: /^(ي|ف|م|أ|س|ن|د)/,
  24. abbreviated: /^(ينا|فبر|مارس|أبريل|مايو|يونـ|يولـ|أغسـ|سبتـ|أكتـ|نوفـ|ديسـ)/,
  25. wide: /^(يناير|فبراير|مارس|أبريل|مايو|يونيو|يوليو|أغسطس|سبتمبر|أكتوبر|نوفمبر|ديسمبر)/
  26. };
  27. var parseMonthPatterns = {
  28. narrow: [/^ي/, /^ف/, /^م/, /^أ/, /^م/, /^ي/, /^ي/, /^أ/, /^س/, /^أ/, /^ن/, /^د/],
  29. any: [/^ينا/, /^فبر/, /^مارس/, /^أبريل/, /^مايو/, /^يون/, /^يول/, /^أغس/, /^سبت/, /^أكت/, /^نوف/, /^ديس/]
  30. };
  31. var matchDayPatterns = {
  32. narrow: /^(ح|ن|ث|ر|خ|ج|س)/,
  33. short: /^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/,
  34. abbreviated: /^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/,
  35. wide: /^(الأحد|الاثنين|الثلاثاء|الأربعاء|الخميس|الجمعة|السبت)/
  36. };
  37. var parseDayPatterns = {
  38. narrow: [/^ح/, /^ن/, /^ث/, /^ر/, /^خ/, /^ج/, /^س/],
  39. any: [/أحد/, /اثنين/, /ثلاثاء/, /أربعاء/, /خميس/, /جمعة/, /سبت/]
  40. };
  41. var matchDayPeriodPatterns = {
  42. narrow: /^(ص|م|ن|ظ|في الصباح|بعد الظهر|في المساء|في الليل)/,
  43. abbreviated: /^(ص|م|نصف الليل|ظهراً|في الصباح|بعد الظهر|في المساء|في الليل)/,
  44. wide: /^(ص|م|نصف الليل|في الصباح|ظهراً|بعد الظهر|في المساء|في الليل)/,
  45. any: /^(ص|م|صباح|ظهر|مساء|ليل)/
  46. };
  47. var parseDayPeriodPatterns = {
  48. any: {
  49. am: /^ص/,
  50. pm: /^م/,
  51. midnight: /^ن/,
  52. noon: /^ظ/,
  53. morning: /^ص/,
  54. afternoon: /^بعد/,
  55. evening: /^م/,
  56. night: /^ل/
  57. }
  58. };
  59. var match = {
  60. ordinalNumber: buildMatchPatternFn({
  61. matchPattern: matchOrdinalNumberPattern,
  62. parsePattern: parseOrdinalNumberPattern,
  63. valueCallback: function valueCallback(value) {
  64. return parseInt(value, 10);
  65. }
  66. }),
  67. era: buildMatchFn({
  68. matchPatterns: matchEraPatterns,
  69. defaultMatchWidth: 'wide',
  70. parsePatterns: parseEraPatterns,
  71. defaultParseWidth: 'any'
  72. }),
  73. quarter: buildMatchFn({
  74. matchPatterns: matchQuarterPatterns,
  75. defaultMatchWidth: 'wide',
  76. parsePatterns: parseQuarterPatterns,
  77. defaultParseWidth: 'any',
  78. valueCallback: function valueCallback(index) {
  79. return index + 1;
  80. }
  81. }),
  82. month: buildMatchFn({
  83. matchPatterns: matchMonthPatterns,
  84. defaultMatchWidth: 'wide',
  85. parsePatterns: parseMonthPatterns,
  86. defaultParseWidth: 'any'
  87. }),
  88. day: buildMatchFn({
  89. matchPatterns: matchDayPatterns,
  90. defaultMatchWidth: 'wide',
  91. parsePatterns: parseDayPatterns,
  92. defaultParseWidth: 'any'
  93. }),
  94. dayPeriod: buildMatchFn({
  95. matchPatterns: matchDayPeriodPatterns,
  96. defaultMatchWidth: 'any',
  97. parsePatterns: parseDayPeriodPatterns,
  98. defaultParseWidth: 'any'
  99. })
  100. };
  101. export default match;