import type { Quarter } from '../../../../types' ; import type { Localize , LocalizeFn } from '../../../types' ; import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index' ; const eraValues = { narrow : [ 'до н.э.' , 'н.э.' ] as const , abbreviated : [ 'до н. э.' , 'н. э.' ] as const , wide : [ 'до нашей эры' , 'нашей эры' ] as const , } ; const quarterValues = { narrow : [ '1' , '2' , '3' , '4' ] as const , abbreviated : [ '1-й кв.' , '2-й кв.' , '3-й кв.' , '4-й кв.' ] as const , wide : [ '1-й квартал' , '2-й квартал' , '3-й квартал' , '4-й квартал' ] as const , } ; const monthValues = { narrow : [ 'Я' , 'Ф' , 'М' , 'А' , 'М' , 'И' , 'И' , 'А' , 'С' , 'О' , 'Н' , 'Д' ] as const , abbreviated : [ 'янв.' , 'фев.' , 'март' , 'апр.' , 'май' , 'июнь' , 'июль' , 'авг.' , 'сент.' , 'окт.' , 'нояб.' , 'дек.' , ] as const , wide : [ 'январь' , 'февраль' , 'март' , 'апрель' , 'май' , 'июнь' , 'июль' , 'август' , 'сентябрь' , 'октябрь' , 'ноябрь' , 'декабрь' , ] as const , } ; const formattingMonthValues = { narrow : [ 'Я' , 'Ф' , 'М' , 'А' , 'М' , 'И' , 'И' , 'А' , 'С' , 'О' , 'Н' , 'Д' ] as const , abbreviated : [ 'янв.' , 'фев.' , 'мар.' , 'апр.' , 'мая' , 'июн.' , 'июл.' , 'авг.' , 'сент.' , 'окт.' , 'нояб.' , 'дек.' , ] as const , wide : [ 'января' , 'февраля' , 'марта' , 'апреля' , 'мая' , 'июня' , 'июля' , 'августа' , 'сентября' , 'октября' , 'ноября' , 'декабря' , ] as const , } ; const dayValues = { narrow : [ 'В' , 'П' , 'В' , 'С' , 'Ч' , 'П' , 'С' ] as const , short : [ 'вс' , 'пн' , 'вт' , 'ср' , 'чт' , 'пт' , 'сб' ] as const , abbreviated : [ 'вск' , 'пнд' , 'втр' , 'срд' , 'чтв' , 'птн' , 'суб' ] as const , wide : [ 'воскресенье' , 'понедельник' , 'вторник' , 'среда' , 'четверг' , 'пятница' , 'суббота' , ] as const , } ; const dayPeriodValues = { narrow : { am : 'ДП' , pm : 'ПП' , midnight : 'полн.' , noon : 'полд.' , morning : 'утро' , afternoon : 'день' , evening : 'веч.' , night : 'ночь' , } , abbreviated : { am : 'ДП' , pm : 'ПП' , midnight : 'полн.' , noon : 'полд.' , morning : 'утро' , afternoon : 'день' , evening : 'веч.' , night : 'ночь' , } , wide : { am : 'ДП' , pm : 'ПП' , midnight : 'полночь' , noon : 'полдень' , morning : 'утро' , afternoon : 'день' , evening : 'вечер' , night : 'ночь' , } , } ; const formattingDayPeriodValues = { narrow : { am : 'ДП' , pm : 'ПП' , midnight : 'полн.' , noon : 'полд.' , morning : 'утра' , afternoon : 'дня' , evening : 'веч.' , night : 'ночи' , } , abbreviated : { am : 'ДП' , pm : 'ПП' , midnight : 'полн.' , noon : 'полд.' , morning : 'утра' , afternoon : 'дня' , evening : 'веч.' , night : 'ночи' , } , wide : { am : 'ДП' , pm : 'ПП' , midnight : 'полночь' , noon : 'полдень' , morning : 'утра' , afternoon : 'дня' , evening : 'вечера' , night : 'ночи' , } , } ; const ordinalNumber = ( dirtyNumber , options ) => { const number = Number ( dirtyNumber ) ; const unit = options ?. unit ; let suffix ; if ( unit === 'date' ) { suffix = '-е' ; } else if ( unit === 'week' || unit === 'minute' || unit === 'second' ) { suffix = '-я' ; } else { suffix = '-й' ; } return number + suffix ; } ; const localize = { ordinalNumber , era : buildLocalizeFn ( { values : eraValues , defaultWidth : 'wide' , } ) , quarter : buildLocalizeFn ( { values : quarterValues , defaultWidth : 'wide' , argumentCallback : ( quarter ) => ( quarter - 1 ) as Quarter , } ) , month : buildLocalizeFn ( { values : monthValues , defaultWidth : 'wide' , formattingValues : formattingMonthValues , defaultFormattingWidth : 'wide' , } ) , day : buildLocalizeFn ( { values : dayValues , defaultWidth : 'wide' , } ) , dayPeriod : buildLocalizeFn ( { values : dayPeriodValues , defaultWidth : 'any' , formattingValues : formattingDayPeriodValues , defaultFormattingWidth : 'wide' , } ) , } ; export default localize ;