import type { Quarter } from '../../../../types' ; import type { Localize , LocalizeFn } from '../../../types' ; import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index' ; const eraValues = { narrow : [ 'BC' , 'AD' ] as const , abbreviated : [ 'BC' , 'AD' ] as const , wide : [ '기원전' , '서기' ] as const , } ; const quarterValues = { narrow : [ '1' , '2' , '3' , '4' ] as const , abbreviated : [ 'Q1' , 'Q2' , 'Q3' , 'Q4' ] as const , wide : [ '1분기' , '2분기' , '3분기' , '4분기' ] as const , } ; const monthValues = { narrow : [ '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' , '11' , '12' , ] as const , abbreviated : [ '1월' , '2월' , '3월' , '4월' , '5월' , '6월' , '7월' , '8월' , '9월' , '10월' , '11월' , '12월' , ] as const , wide : [ '1월' , '2월' , '3월' , '4월' , '5월' , '6월' , '7월' , '8월' , '9월' , '10월' , '11월' , '12월' , ] 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 , dirtyOptions ) => { const number = Number ( dirtyNumber ) ; const options = dirtyOptions || { } ; const unit = String ( options . unit ) ; switch ( unit ) { case 'minute' : case 'second' : return String ( number ) ; case 'date' : return number + '일' ; default : return number + '번째' ; } } ; 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' , } ) , day : buildLocalizeFn ( { values : dayValues , defaultWidth : 'wide' , } ) , dayPeriod : buildLocalizeFn ( { values : dayPeriodValues , defaultWidth : 'wide' , formattingValues : formattingDayPeriodValues , defaultFormattingWidth : 'wide' , } ) , } ; export default localize ;