src/datepicker/engine/format-months-calendar.ts
import {
DatepickerFormatOptions,
MonthsCalendarViewModel,
CalendarCellViewModel
} from '../models/index';
import { startOf } from '../../chronos/utils/start-end-of';
import { formatDate } from '../../chronos/format';
import { createMatrix } from '../utils/matrix-utils';
const height = 4;
const width = 3;
const shift = { month: 1 };
export function formatMonthsCalendar(
viewDate: Date,
formatOptions: DatepickerFormatOptions
): MonthsCalendarViewModel {
const initialDate = startOf(viewDate, 'year');
const matrixOptions = { width, height, initialDate, shift };
const monthMatrix = createMatrix<
CalendarCellViewModel
>(matrixOptions, date => ({
date,
label: formatDate(date, formatOptions.monthLabel, formatOptions.locale)
}));
return {
months: monthMatrix,
monthTitle: '',
yearTitle: formatDate(
viewDate,
formatOptions.yearTitle,
formatOptions.locale
)
};
}