@hitachivantara/uikit-react-core
Version:
UI Kit Core React components.
50 lines (49 loc) • 1.87 kB
JavaScript
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 };