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 : /^(ჩვენს წელთაღრიცხვამდე|ქრისტეშობამდე|ჩვენი წელთაღრიცხვით|ქრისტეშობიდან)/i , } ; const parseEraPatterns = { any : [ /^(ჩვენს წელთაღრიცხვამდე|ქრისტეშობამდე)/i , /^(ჩვენი წელთაღრიცხვით|ქრისტეშობიდან)/i , ] as const , } ; const matchQuarterPatterns = { narrow : /^[1234]/i , abbreviated : /^[1234]-(ლი|ე)? კვ/i , wide : /^[1234]-(ლი|ე)? კვარტალი/i , } ; const parseQuarterPatterns = { any : [ /1/i , /2/i , /3/i , /4/i ] as const , } ; const matchMonthPatterns = { any : /^(ია|თე|მა|აპ|მს|ვნ|ვლ|აგ|სე|ოქ|ნო|დე)/i , } ; const parseMonthPatterns = { any : [ /^ია/i , /^თ/i , /^მარ/i , /^აპ/i , /^მაი/i , /^ი?ვნ/i , /^ი?ვლ/i , /^აგ/i , /^ს/i , /^ო/i , /^ნ/i , /^დ/i , ] as const , } ; const matchDayPatterns = { narrow : /^(კვ|ორ|სა|ოთ|ხუ|პა|შა)/i , short : /^(კვი|ორშ|სამ|ოთხ|ხუთ|პარ|შაბ)/i , wide : /^(კვირა|ორშაბათი|სამშაბათი|ოთხშაბათი|ხუთშაბათი|პარასკევი|შაბათი)/i , } ; const parseDayPatterns = { any : [ /^კვ/i , /^ორ/i , /^სა/i , /^ოთ/i , /^ხუ/i , /^პა/i , /^შა/i ] as const , } ; const matchDayPeriodPatterns = { any : /^([ap]\.?\s?m\.?|შუაღ|დილ)/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 : 'any' , 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 ;