@hello-week/core
v0.2.0
Published
## Overview
Readme
Hello Week - Core
Overview
This is a lightweight and customizable calendar utility library designed to manage dates, weeks, and calendar options for a variety of applications.
It includes functions to handle selected, highlighted, and disabled dates, with configuration options for locales, date formats, and week start preferences.
Installation
npm install @hello-week/coreUsage
import { Calendar } from "@hello-week/core";
const calendar = new Calendar({
lang: "en-US",
highlightedToday: true,
selectedDates: [new Date()],
disabledPastDates: true,
});
calendar.setMonth(3); // Set the calendar to April
console.log(calendar.getDays()); // Get the days of April
console.log(calendar.getWeekDays()); // Get the weekdays starting from MondayTypes
DateOrArrayDates
Represents either a single date or a range of dates:
export type DateOrArrayDates = (Date | [Date, Date])[];HighlightedDates<T>
Defines highlighted dates and additional metadata:
export interface HighlightedDates<T> {
days: DateOrArrayDates;
data?: T;
}CalendarOptions<T>
Options for customizing the calendar:
export interface CalendarOptions<T> {
defaultDate?: Date;
lang?: Intl.LocalesArgument;
formatDate?: Intl.DateTimeFormatOptions;
weekStart?: WeekdaysValues;
selectedDates?: DateOrArrayDates;
highlightedDates?: HighlightedDates<T>[];
disabledDates?: DateOrArrayDates;
disabledPastDates?: boolean;
disabledDaysOfWeek?: WeekdaysValues[];
minDate?: Date;
maxDate?: Date;
locked?: boolean;
highlightedToday?: boolean;
}DayOptions<T>
Represents a single day's details:
export interface DayOptions<T> {
date: Date;
dateFormatted: string;
dateObject: {
day: string;
month: string;
year: string;
weekday: string;
};
attributes: {
weekend: boolean;
today: boolean;
selected: boolean;
highlighted: boolean;
startRange: boolean;
inRange: boolean;
endRange: boolean;
locked: boolean;
disabled: boolean;
siblingMonthDays: boolean;
};
details?: T;
}Methods
| Name | Description |
| ---------------------------------------------------------------------- | --------------------------------------------------------- |
| setOptions(prev: CalendarOptions<T>) => CalendarOptions<T>) | Modify or update calendar options. |
| setMonth(month: number) | Set the current month (0 = January, 11 = December). |
| setYear(year: number) | Set the current year. |
| prevMonth() | Navigate to the previous month. |
| nextMonth() | Navigate to the next month. |
| prevYear() | Navigate to the previous year. |
| nextYear() | Navigate to the next year. |
| setDate(date: Date) | Set the calendar to a specific date. |
| getWeekDays() | Returns the week days in the current locale. |
| getDays() | Returns the days in the current month as DayOptions[]. |
| getToday(options?: { format?: Intl.DateTimeFormatOptions }) | Get today's date formatted as a string. |
| getMonth(options?: { format?: Intl.DateTimeFormatOptions["month"] }) | Get the current month name. |
| getYear(options?: { format?: Intl.DateTimeFormatOptions["year"] }) | Get the current year. |
| getDaysHighlight() | Retrieve the highlighted dates. |
