index.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. import buildMatchFn from "../../../_lib/buildMatchFn/index.js";
  2. import buildMatchPatternFn from "../../../_lib/buildMatchPatternFn/index.js";
  3. var matchOrdinalNumberPattern = /^(\d+)(af|ail|ydd|ed|fed|eg|ain)?/i;
  4. var parseOrdinalNumberPattern = /\d+/i;
  5. var matchEraPatterns = {
  6. narrow: /^(c|o)/i,
  7. abbreviated: /^(c\.?\s?c\.?|o\.?\s?c\.?)/i,
  8. wide: /^(cyn christ|ar ôl crist|ar ol crist)/i
  9. };
  10. var parseEraPatterns = {
  11. wide: [/^c/i, /^(ar ôl crist|ar ol crist)/i],
  12. any: [/^c/i, /^o/i]
  13. };
  14. var matchQuarterPatterns = {
  15. narrow: /^[1234]/i,
  16. abbreviated: /^ch[1234]/i,
  17. wide: /^(chwarter 1af)|([234](ail|ydd)? chwarter)/i
  18. };
  19. var parseQuarterPatterns = {
  20. any: [/1/i, /2/i, /3/i, /4/i]
  21. };
  22. var matchMonthPatterns = {
  23. narrow: /^(i|ch|m|e|g|a|h|t|rh)/i,
  24. abbreviated: /^(ion|chwe|maw|ebr|mai|meh|gor|aws|med|hyd|tach|rhag)/i,
  25. wide: /^(ionawr|chwefror|mawrth|ebrill|mai|mehefin|gorffennaf|awst|medi|hydref|tachwedd|rhagfyr)/i
  26. };
  27. var parseMonthPatterns = {
  28. narrow: [/^i/i, /^ch/i, /^m/i, /^e/i, /^m/i, /^m/i, /^g/i, /^a/i, /^m/i, /^h/i, /^t/i, /^rh/i],
  29. any: [/^io/i, /^ch/i, /^maw/i, /^e/i, /^mai/i, /^meh/i, /^g/i, /^a/i, /^med/i, /^h/i, /^t/i, /^rh/i]
  30. };
  31. var matchDayPatterns = {
  32. narrow: /^(s|ll|m|i|g)/i,
  33. short: /^(su|ll|ma|me|ia|gw|sa)/i,
  34. abbreviated: /^(sul|llun|maw|mer|iau|gwe|sad)/i,
  35. wide: /^dydd (sul|llun|mawrth|mercher|iau|gwener|sadwrn)/i
  36. };
  37. var parseDayPatterns = {
  38. narrow: [/^s/i, /^ll/i, /^m/i, /^m/i, /^i/i, /^g/i, /^s/i],
  39. wide: [/^dydd su/i, /^dydd ll/i, /^dydd ma/i, /^dydd me/i, /^dydd i/i, /^dydd g/i, /^dydd sa/i],
  40. any: [/^su/i, /^ll/i, /^ma/i, /^me/i, /^i/i, /^g/i, /^sa/i]
  41. };
  42. var matchDayPeriodPatterns = {
  43. narrow: /^(b|h|hn|hd|(yn y|y|yr|gyda'r) (bore|prynhawn|nos|hwyr))/i,
  44. any: /^(y\.?\s?[bh]\.?|hanner nos|hanner dydd|(yn y|y|yr|gyda'r) (bore|prynhawn|nos|hwyr))/i
  45. };
  46. var parseDayPeriodPatterns = {
  47. any: {
  48. am: /^b|(y\.?\s?b\.?)/i,
  49. pm: /^h|(y\.?\s?h\.?)|(yr hwyr)/i,
  50. midnight: /^hn|hanner nos/i,
  51. noon: /^hd|hanner dydd/i,
  52. morning: /bore/i,
  53. afternoon: /prynhawn/i,
  54. evening: /^gyda'r nos$/i,
  55. night: /blah/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: 'any'
  92. }),
  93. dayPeriod: buildMatchFn({
  94. matchPatterns: matchDayPeriodPatterns,
  95. defaultMatchWidth: 'any',
  96. parsePatterns: parseDayPeriodPatterns,
  97. defaultParseWidth: 'any'
  98. })
  99. };
  100. export default match;