import type { Quarter } from '../../../../types' ; import type { Localize , LocalizeFn } from '../../../types' ; import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index' ; const eraValues = { narrow : [ 'R' , 'A' ] as const , abbreviated : [ 'RC' , 'AD' ] as const , wide : [ 'ro Chrìosta' , 'anno domini' ] as const , } ; const quarterValues = { narrow : [ '1' , '2' , '3' , '4' ] as const , abbreviated : [ 'C1' , 'C2' , 'C3' , 'C4' ] as const , wide : [ "a' chiad chairteal" , 'an dàrna cairteal' , 'an treas cairteal' , 'an ceathramh cairteal' , ] as const , } ; const monthValues = { narrow : [ 'F' , 'G' , 'M' , 'G' , 'C' , 'Ò' , 'I' , 'L' , 'S' , 'D' , 'S' , 'D' ] as const , abbreviated : [ 'Faoi' , 'Gear' , 'Màrt' , 'Gibl' , 'Cèit' , 'Ògmh' , 'Iuch' , 'Lùn' , 'Sult' , 'Dàmh' , 'Samh' , 'Dùbh' , ] as const , wide : [ 'Am Faoilleach' , 'An Gearran' , 'Am Màrt' , 'An Giblean' , 'An Cèitean' , 'An t-Ògmhios' , 'An t-Iuchar' , 'An Lùnastal' , 'An t-Sultain' , 'An Dàmhair' , 'An t-Samhain' , 'An Dùbhlachd' , ] as const , } ; const dayValues = { narrow : [ 'D' , 'L' , 'M' , 'C' , 'A' , 'H' , 'S' ] as const , short : [ 'Dò' , 'Lu' , 'Mà' , 'Ci' , 'Ar' , 'Ha' , 'Sa' ] as const , abbreviated : [ 'Did' , 'Dil' , 'Dim' , 'Dic' , 'Dia' , 'Dih' , 'Dis' ] as const , wide : [ 'Didòmhnaich' , 'Diluain' , 'Dimàirt' , 'Diciadain' , 'Diardaoin' , 'Dihaoine' , 'Disathairne' , ] as const , } ; const dayPeriodValues = { narrow : { am : 'm' , pm : 'f' , midnight : 'm.o.' , noon : 'm.l.' , morning : 'madainn' , afternoon : 'feasgar' , evening : 'feasgar' , night : 'oidhche' , } , abbreviated : { am : 'M.' , pm : 'F.' , midnight : 'meadhan oidhche' , noon : 'meadhan là' , morning : 'madainn' , afternoon : 'feasgar' , evening : 'feasgar' , night : 'oidhche' , } , wide : { am : 'm.' , pm : 'f.' , midnight : 'meadhan oidhche' , noon : 'meadhan là' , morning : 'madainn' , afternoon : 'feasgar' , evening : 'feasgar' , night : 'oidhche' , } , } ; const formattingDayPeriodValues = { narrow : { am : 'm' , pm : 'f' , midnight : 'm.o.' , noon : 'm.l.' , morning : 'sa mhadainn' , afternoon : 'feasgar' , evening : 'feasgar' , night : 'air an oidhche' , } , abbreviated : { am : 'M.' , pm : 'F.' , midnight : 'meadhan oidhche' , noon : 'meadhan là' , morning : 'sa mhadainn' , afternoon : 'feasgar' , evening : 'feasgar' , night : 'air an oidhche' , } , wide : { am : 'm.' , pm : 'f.' , midnight : 'meadhan oidhche' , noon : 'meadhan là' , morning : 'sa mhadainn' , afternoon : 'feasgar' , evening : 'feasgar' , night : 'air an oidhche' , } , } ; const ordinalNumber = ( dirtyNumber ) => { const number = Number ( dirtyNumber ) ; const rem100 = number % 100 ; if ( rem100 > 20 || rem100 < 10 ) { switch ( rem100 % 10 ) { case 1 : return number + 'd' ; case 2 : return number + 'na' ; } } if ( rem100 === 12 ) { return number + 'na' ; } return number + 'mh' ; } ; 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 ;