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 : [ '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 : [ 'ינו׳' , 'פבר׳' , 'מרץ' , 'אפר׳' , 'מאי' , 'יוני' , 'יולי' , 'אוג׳' , 'ספט׳' , 'אוק׳' , 'נוב׳' , 'דצמ׳' , ] 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 ) ; if ( number <= 0 || number > 10 ) return String ( number ) ; const unit = String ( options ?. unit ) ; const isFemale = [ 'year' , 'hour' , 'minute' , 'second' ] . indexOf ( unit ) >= 0 ; const male = [ 'ראשון' , 'שני' , 'שלישי' , 'רביעי' , 'חמישי' , 'שישי' , 'שביעי' , 'שמיני' , 'תשיעי' , 'עשירי' , ] ; const female = [ 'ראשונה' , 'שנייה' , 'שלישית' , 'רביעית' , 'חמישית' , 'שישית' , 'שביעית' , 'שמינית' , 'תשיעית' , 'עשירית' , ] ; const index = number - 1 ; return isFemale ? female [ index ] : male [ index ] ; } ; 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 ;