UNPKG

@hitachivantara/uikit-react-core

Version:
50 lines (49 loc) 1.87 kB
import { createDatesArray, isRange } from "./utils.js"; //#region src/Calendar/model.ts /** * Calendar builder for a specific month and year. * Returns an array of date objects. */ var CalendarModel = class { month; year; dates = []; constructor(month, year) { this.updateModel(month, year); } /** * Updates the model with the received month and year * * @param month - Number of the month (1 to 12). * @param year - Number of the year. * @memberof CalendarModel */ updateModel = (month, year) => { let validMonth = month; let validYear = year; if (!Number.isInteger(validMonth)) validMonth = (/* @__PURE__ */ new Date()).getMonth() + 1; if (!Number.isInteger(validYear)) validYear = (/* @__PURE__ */ new Date()).getFullYear(); this.month = validMonth; this.year = validYear; this.dates = createDatesArray(validMonth, validYear); }; }; var generateModelFromDate = (seedValue) => { let calendarModel; if (typeof seedValue === "string") { const today = /* @__PURE__ */ new Date(); calendarModel = new CalendarModel(today.getMonth() + 1, today.getFullYear()); } else if (isRange(seedValue)) calendarModel = new CalendarModel(seedValue.startDate.getMonth() + 1, seedValue.startDate.getFullYear()); else calendarModel = new CalendarModel(seedValue.getMonth() + 1, seedValue.getFullYear()); return calendarModel; }; var generateCalendarModel = (seedValue, visibleMonth, visibleYear) => { let calendarModel; if (visibleMonth && visibleYear) calendarModel = new CalendarModel(visibleMonth, visibleYear); else if (visibleMonth && !visibleYear) calendarModel = new CalendarModel(visibleMonth, seedValue.getFullYear()); else if (!visibleMonth && visibleYear) calendarModel = new CalendarModel(1, visibleYear); else calendarModel = generateModelFromDate(seedValue); return calendarModel; }; //#endregion export { generateCalendarModel };