@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
68 lines (67 loc) • 2.09 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const utils = require("./utils.cjs");
class CalendarModel {
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 = utils.createDatesArray(validMonth, validYear);
};
}
const generateModelFromDate = (seedValue) => {
let calendarModel;
if (typeof seedValue === "string") {
const today = /* @__PURE__ */ new Date();
calendarModel = new CalendarModel(
today.getMonth() + 1,
today.getFullYear()
);
} else if (utils.isRange(seedValue)) {
calendarModel = new CalendarModel(
seedValue.startDate.getMonth() + 1,
seedValue.startDate.getFullYear()
);
} else {
calendarModel = new CalendarModel(
seedValue.getMonth() + 1,
seedValue.getFullYear()
);
}
return calendarModel;
};
const 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;
};
exports.default = CalendarModel;
exports.generateCalendarModel = generateCalendarModel;