import isNumber from '../utils/is-number'; import { getLocale } from './locales'; import { createUTC } from '../create/utc';
function get (format, index, field, setter) {
var locale = getLocale(); var utc = createUTC().set(setter, index); return locale[field](utc, format);
}
function listMonthsImpl (format, index, field) {
if (isNumber(format)) { index = format; format = undefined; } format = format || ''; if (index != null) { return get(format, index, field, 'month'); } var i; var out = []; for (i = 0; i < 12; i++) { out[i] = get(format, i, field, 'month'); } return out;
}
// () // (5) // (fmt, 5) // (fmt) // (true) // (true, 5) // (true, fmt, 5) // (true, fmt) function listWeekdaysImpl (localeSorted, format, index, field) {
if (typeof localeSorted === 'boolean') { if (isNumber(format)) { index = format; format = undefined; } format = format || ''; } else { format = localeSorted; index = format; localeSorted = false; if (isNumber(format)) { index = format; format = undefined; } format = format || ''; } var locale = getLocale(), shift = localeSorted ? locale._week.dow : 0; if (index != null) { return get(format, (index + shift) % 7, field, 'day'); } var i; var out = []; for (i = 0; i < 7; i++) { out[i] = get(format, (i + shift) % 7, field, 'day'); } return out;
}
export function listMonths (format, index) {
return listMonthsImpl(format, index, 'months');
}
export function listMonthsShort (format, index) {
return listMonthsImpl(format, index, 'monthsShort');
}
export function listWeekdays (localeSorted, format, index) {
return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
}
export function listWeekdaysShort (localeSorted, format, index) {
return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
}
export function listWeekdaysMin (localeSorted, format, index) {
return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
}