import type { Quarter } from '../../../../types' ; import type { Match } from '../../../types' ; import buildMatchFn from '../../../_lib/buildMatchFn/index' ; import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index' ; const matchOrdinalNumberPattern = /^(\d+)(લ|જ|થ|ઠ્ઠ|મ)?/i ; const parseOrdinalNumberPattern = /\d+/i ; const matchEraPatterns = { narrow : /^(ઈસપૂ|ઈસ)/i , abbreviated : /^(ઈ\.સ\.પૂર્વે|ઈ\.સ\.)/i , wide : /^(ઈસવીસન\sપૂર્વે|ઈસવીસન)/i , } ; const parseEraPatterns = { any : [ /^ઈસપૂ/i , /^ઈસ/i ] as const , } ; const matchQuarterPatterns = { narrow : /^[1234]/i , abbreviated : /^q[1234]/i , wide : /^[1234](લો|જો|થો)? ત્રિમાસ/i , } ; const parseQuarterPatterns = { any : [ /1/i , /2/i , /3/i , /4/i ] as const , } ; const matchMonthPatterns = { narrow : /^[જાફેમાએમેજૂજુઓસઓનડિ]/i , abbreviated : /^(જાન્યુ|ફેબ્રુ|માર્ચ|એપ્રિલ|મે|જૂન|જુલાઈ|ઑગસ્ટ|સપ્ટે|ઓક્ટો|નવે|ડિસે)/i , wide : /^(જાન્યુઆરી|ફેબ્રુઆરી|માર્ચ|એપ્રિલ|મે|જૂન|જુલાઇ|ઓગસ્ટ|સપ્ટેમ્બર|ઓક્ટોબર|નવેમ્બર|ડિસેમ્બર)/i , } ; const parseMonthPatterns = { narrow : [ /^જા/i , /^ફે/i , /^મા/i , /^એ/i , /^મે/i , /^જૂ/i , /^જુ/i , /^ઑગ/i , /^સ/i , /^ઓક્ટો/i , /^ન/i , /^ડિ/i , ] as const , any : [ /^જા/i , /^ફે/i , /^મા/i , /^એ/i , /^મે/i , /^જૂ/i , /^જુ/i , /^ઑગ/i , /^સ/i , /^ઓક્ટો/i , /^ન/i , /^ડિ/i , ] as const , } ; const matchDayPatterns = { narrow : /^(ર|સો|મં|બુ|ગુ|શુ|શ)/i , short : /^(ર|સો|મં|બુ|ગુ|શુ|શ)/i , abbreviated : /^(રવિ|સોમ|મંગળ|બુધ|ગુરુ|શુક્ર|શનિ)/i , wide : /^(રવિવાર|સોમવાર|મંગળવાર|બુધવાર|ગુરુવાર|શુક્રવાર|શનિવાર)/i , } ; const parseDayPatterns = { narrow : [ /^ર/i , /^સો/i , /^મં/i , /^બુ/i , /^ગુ/i , /^શુ/i , /^શ/i ] as const , any : [ /^ર/i , /^સો/i , /^મં/i , /^બુ/i , /^ગુ/i , /^શુ/i , /^શ/i ] as const , } ; const matchDayPeriodPatterns = { narrow : /^(a|p|મ\.?|સ|બ|સાં|રા)/i , any : /^(a|p|મ\.?|સ|બ|સાં|રા)/i , } ; const parseDayPeriodPatterns = { any : { am : /^a/i , pm : /^p/i , midnight : /^મ\.?/i , noon : /^બ/i , morning : /સ/i , afternoon : /બ/i , evening : /સાં/i , night : /રા/i , } , } ; const match = { ordinalNumber : buildMatchPatternFn ( { matchPattern : matchOrdinalNumberPattern , parsePattern : parseOrdinalNumberPattern , valueCallback : ( value ) => parseInt ( value , 10 ) , } ) , era : buildMatchFn ( { matchPatterns : matchEraPatterns , defaultMatchWidth : 'wide' , parsePatterns : parseEraPatterns , defaultParseWidth : 'any' , } ) , quarter : buildMatchFn ( { matchPatterns : matchQuarterPatterns , defaultMatchWidth : 'wide' , parsePatterns : parseQuarterPatterns , defaultParseWidth : 'any' , valueCallback : ( index ) => ( index + 1 ) as Quarter , } ) , month : buildMatchFn ( { matchPatterns : matchMonthPatterns , defaultMatchWidth : 'wide' , parsePatterns : parseMonthPatterns , defaultParseWidth : 'any' , } ) , day : buildMatchFn ( { matchPatterns : matchDayPatterns , defaultMatchWidth : 'wide' , parsePatterns : parseDayPatterns , defaultParseWidth : 'any' , } ) , dayPeriod : buildMatchFn ( { matchPatterns : matchDayPeriodPatterns , defaultMatchWidth : 'any' , parsePatterns : parseDayPeriodPatterns , defaultParseWidth : 'any' , } ) , } ; export default match ;