match.cjs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. "use strict";
  2. exports.match = void 0;
  3. var _index = require("../../_lib/buildMatchPatternFn.cjs");
  4. var _index2 = require("../../_lib/buildMatchFn.cjs");
  5. const matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i;
  6. const parseOrdinalNumberPattern = /\d+/i;
  7. const matchEraPatterns = {
  8. narrow: /^(ق|ب)/i,
  9. abbreviated: /^(ق\.?\s?م\.?|ق\.?\s?م\.?\s?|a\.?\s?d\.?|c\.?\s?)/i,
  10. wide: /^(قبل الميلاد|قبل الميلاد|بعد الميلاد|بعد الميلاد)/i,
  11. };
  12. const parseEraPatterns = {
  13. any: [/^قبل/i, /^بعد/i],
  14. };
  15. const matchQuarterPatterns = {
  16. narrow: /^[1234]/i,
  17. abbreviated: /^ر[1234]/i,
  18. wide: /^الربع [1234]/i,
  19. };
  20. const parseQuarterPatterns = {
  21. any: [/1/i, /2/i, /3/i, /4/i],
  22. };
  23. const matchMonthPatterns = {
  24. narrow: /^[جفمأسند]/i,
  25. abbreviated: /^(جان|فيف|مار|أفر|ماي|جوا|جوي|أوت|سبت|أكت|نوف|ديس)/i,
  26. wide: /^(جانفي|فيفري|مارس|أفريل|ماي|جوان|جويلية|أوت|سبتمبر|أكتوبر|نوفمبر|ديسمبر)/i,
  27. };
  28. const parseMonthPatterns = {
  29. narrow: [
  30. /^ج/i,
  31. /^ف/i,
  32. /^م/i,
  33. /^أ/i,
  34. /^م/i,
  35. /^ج/i,
  36. /^ج/i,
  37. /^أ/i,
  38. /^س/i,
  39. /^أ/i,
  40. /^ن/i,
  41. /^د/i,
  42. ],
  43. any: [
  44. /^جان/i,
  45. /^فيف/i,
  46. /^مار/i,
  47. /^أفر/i,
  48. /^ماي/i,
  49. /^جوا/i,
  50. /^جوي/i,
  51. /^أوت/i,
  52. /^سبت/i,
  53. /^أكت/i,
  54. /^نوف/i,
  55. /^ديس/i,
  56. ],
  57. };
  58. const matchDayPatterns = {
  59. narrow: /^[حنثرخجس]/i,
  60. short: /^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,
  61. abbreviated: /^(أحد|اثن|ثلا|أرب|خمي|جمعة|سبت)/i,
  62. wide: /^(الأحد|الاثنين|الثلاثاء|الأربعاء|الخميس|الجمعة|السبت)/i,
  63. };
  64. const parseDayPatterns = {
  65. narrow: [/^ح/i, /^ن/i, /^ث/i, /^ر/i, /^خ/i, /^ج/i, /^س/i],
  66. wide: [
  67. /^الأحد/i,
  68. /^الاثنين/i,
  69. /^الثلاثاء/i,
  70. /^الأربعاء/i,
  71. /^الخميس/i,
  72. /^الجمعة/i,
  73. /^السبت/i,
  74. ],
  75. any: [/^أح/i, /^اث/i, /^ث/i, /^أر/i, /^خ/i, /^ج/i, /^س/i],
  76. };
  77. const matchDayPeriodPatterns = {
  78. narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,
  79. any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,
  80. };
  81. const parseDayPeriodPatterns = {
  82. any: {
  83. am: /^a/i,
  84. pm: /^p/i,
  85. midnight: /^mi/i,
  86. noon: /^no/i,
  87. morning: /morning/i,
  88. afternoon: /afternoon/i,
  89. evening: /evening/i,
  90. night: /night/i,
  91. },
  92. };
  93. const match = (exports.match = {
  94. ordinalNumber: (0, _index.buildMatchPatternFn)({
  95. matchPattern: matchOrdinalNumberPattern,
  96. parsePattern: parseOrdinalNumberPattern,
  97. valueCallback: (value) => parseInt(value, 10),
  98. }),
  99. era: (0, _index2.buildMatchFn)({
  100. matchPatterns: matchEraPatterns,
  101. defaultMatchWidth: "wide",
  102. parsePatterns: parseEraPatterns,
  103. defaultParseWidth: "any",
  104. }),
  105. quarter: (0, _index2.buildMatchFn)({
  106. matchPatterns: matchQuarterPatterns,
  107. defaultMatchWidth: "wide",
  108. parsePatterns: parseQuarterPatterns,
  109. defaultParseWidth: "any",
  110. valueCallback: (index) => Number(index) + 1,
  111. }),
  112. month: (0, _index2.buildMatchFn)({
  113. matchPatterns: matchMonthPatterns,
  114. defaultMatchWidth: "wide",
  115. parsePatterns: parseMonthPatterns,
  116. defaultParseWidth: "any",
  117. }),
  118. day: (0, _index2.buildMatchFn)({
  119. matchPatterns: matchDayPatterns,
  120. defaultMatchWidth: "wide",
  121. parsePatterns: parseDayPatterns,
  122. defaultParseWidth: "any",
  123. }),
  124. dayPeriod: (0, _index2.buildMatchFn)({
  125. matchPatterns: matchDayPeriodPatterns,
  126. defaultMatchWidth: "any",
  127. parsePatterns: parseDayPeriodPatterns,
  128. defaultParseWidth: "any",
  129. }),
  130. });