index.js 3.6 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: /^ל(ספירה|פנה״ס)/i,
  8. wide: /^ל(פני ה)?ספירה/i
  9. };
  10. var parseEraPatterns = {
  11. any: [/^לפ/i, /^לס/i]
  12. };
  13. var matchQuarterPatterns = {
  14. narrow: /^[1234]/i,
  15. abbreviated: /^q[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: /^\d+/i,
  23. abbreviated: /^(ינו|פבר|מרץ|אפר|מאי|יוני|יולי|אוג|ספט|אוק|נוב|דצמ)׳?/i,
  24. wide: /^(ינואר|פברואר|מרץ|אפריל|מאי|יוני|יולי|אוגוסט|ספטמבר|אוקטובר|נובמבר|דצמבר)/i
  25. };
  26. var parseMonthPatterns = {
  27. narrow: [/^1$/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^7/i, /^8/i, /^9/i, /^10/i, /^11/i, /^12/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. abbreviated: [/א׳$/i, /ב׳$/i, /ג׳$/i, /ד׳$/i, /ה׳$/i, /ו׳$/i, /^ש/i],
  38. wide: [/ן$/i, /ני$/i, /לישי$/i, /עי$/i, /מישי$/i, /שישי$/i, /ת$/i],
  39. any: [/^א/i, /^ב/i, /^ג/i, /^ד/i, /^ה/i, /^ו/i, /^ש/i]
  40. };
  41. var matchDayPeriodPatterns = {
  42. any: /^(אחר ה|ב)?(חצות|צהריים|בוקר|ערב|לילה|אחה״צ|לפנה״צ)/i
  43. };
  44. var parseDayPeriodPatterns = {
  45. any: {
  46. am: /^לפ/i,
  47. pm: /^אחה/i,
  48. midnight: /^ח/i,
  49. noon: /^צ/i,
  50. morning: /בוקר/i,
  51. afternoon: /בצ|אחר/i,
  52. evening: /ערב/i,
  53. night: /לילה/i
  54. }
  55. };
  56. var ordinalName = ['רא', 'שנ', 'של', 'רב', 'ח', 'שי', 'שב', 'שמ', 'ת', 'ע'];
  57. var match = {
  58. ordinalNumber: buildMatchPatternFn({
  59. matchPattern: matchOrdinalNumberPattern,
  60. parsePattern: parseOrdinalNumberPattern,
  61. valueCallback: function valueCallback(value) {
  62. var number = parseInt(value, 10);
  63. return isNaN(number) ? ordinalName.indexOf(value) + 1 : number;
  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;