vue-persian-calendar-datepicker
Version:
A Vue 3 Persian calendar and datepicker with official Iranian holidays, Jalali, Hijri, and Gregorian date support.
183 lines (182 loc) • 5.36 kB
TypeScript
interface CalendarDay {
day: number;
display: string;
title: string;
isToday: boolean;
isSelected: boolean;
isFriday: boolean;
isHoliday: boolean;
isDisabled: boolean;
weekDay: number;
events?: {
persianEvents: string[];
hijriEvents: string[];
};
}
interface ColorScheme {
background?: string;
text?: string;
navButton?: string;
navButtonHover?: string;
dayNameBg?: string;
dayNameText?: string;
dayBg?: string;
dayText?: string;
dayHover?: string;
todayBg?: string;
todayText?: string;
selectedBg?: string;
selectedText?: string;
fridayBg?: string;
fridayText?: string;
infoBg?: string;
infoText?: string;
border?: string;
disabledOpacity?: number;
}
interface Props {
from?: number[];
to?: number[];
showInfo?: boolean;
showEvents?: boolean;
fontFamily?: string;
defaultDate?: number[] | string | null;
showOccasions?: boolean;
theme?: 'light' | 'dark' | 'auto';
lightColors?: ColorScheme;
darkColors?: ColorScheme;
}
declare function __VLS_template(): {
attrs: Partial<{}>;
slots: {
header?(_: {
selectedDay: number[];
persianMonthName: (month: number) => string;
handleNextYear: () => void;
handlePrevYear: () => void;
handleNextMonth: () => void;
handlePrevMonth: () => void;
}): any;
'year-selector'?(_: {
year: number;
handleNextYear: () => void;
handlePrevYear: () => void;
}): any;
'next-year-icon'?(_: {}): any;
'year-display'?(_: {
year: number;
}): any;
'prev-year-icon'?(_: {}): any;
'month-selector'?(_: {
month: number;
monthName: string;
handleNextMonth: () => void;
handlePrevMonth: () => void;
}): any;
'next-month-icon'?(_: {}): any;
'month-display'?(_: {
month: number;
monthName: string;
}): any;
'prev-month-icon'?(_: {}): any;
'day-names'?(_: {
dayNames: string[];
}): any;
'day-name'?(_: {
day: string;
index: number;
}): any;
'calendar-grid'?(_: {
calendarDays: CalendarDay[];
selectDay: (day: CalendarDay) => void;
getDayClasses: (day: CalendarDay) => {
'calendar-day': boolean;
today: boolean;
selected: boolean;
friday: boolean;
holiday: boolean;
disabled: boolean;
'has-event': boolean | undefined;
};
}): any;
'day-cell'?(_: {
day: CalendarDay;
index: number;
}): any;
'day-info'?(_: {
persianInfo: string;
hijriInfo: string;
gregorianInfo: string;
selectedDay: number[];
}): any;
'persian-info'?(_: {
info: string;
}): any;
'hijri-info'?(_: {
info: string;
}): any;
'gregorian-info'?(_: {
info: string;
}): any;
events?(_: {
events: {
persianEvents: string[];
hijriEvents: string[];
officialWorldEvents: string[];
unofficialWorldEvents: string[];
};
}): any;
'persian-events'?(_: {
events: string[];
}): any;
'persian-event'?(_: {
event: string;
index: number;
}): any;
'hijri-events'?(_: {
events: string[];
}): any;
'hijri-event'?(_: {
event: string;
index: number;
}): any;
footer?(_: {
selectedDay: number[];
currentEvents: {
persianEvents: string[];
hijriEvents: string[];
officialWorldEvents: string[];
unofficialWorldEvents: string[];
};
}): any;
};
refs: {};
rootEl: HTMLDivElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<Props, {
setDate: (date: number[] | string | null) => void;
setDateFromGregorian: (gregorianDate: number[] | string) => void;
getSelectedDate: () => number[];
goToToday: () => void;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
"select-date": (date: any) => any;
"update-today": () => any;
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
"onSelect-date"?: ((date: any) => any) | undefined;
"onUpdate-today"?: (() => any) | undefined;
}>, {
showInfo: boolean;
showEvents: boolean;
fontFamily: string;
defaultDate: number[] | string | null;
showOccasions: boolean;
theme: "light" | "dark" | "auto";
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
new (): {
$slots: S;
};
};