nepali-sambat
Version:
React datepicker using Bikram Sambat calendar
80 lines (71 loc) • 2.71 kB
TypeScript
import React from 'react';
interface CustomDate {
year: number;
month: number;
day: number;
}
type CustomDateFormatOptions = {
format?: "YYYY-MM-DD" | "DD-MM-YYYY" | "MM/DD/YYYY" | "YYYY/MM/DD" | string;
lang?: "eng" | "nep";
separator?: string;
};
interface DatePickerProps {
value?: CustomDate | null;
onChange?: (date: CustomDate) => void;
placeholder?: string;
disabled?: boolean;
minDate?: CustomDate;
maxDate?: CustomDate;
formatOptions?: CustomDateFormatOptions;
className?: object;
inputClassName?: string;
calendarClassName?: string;
position?: "bottom" | "top" | "auto";
dayClassName?: string;
selectedDayClassName?: string;
todayClassName?: string;
disabledDayClassName?: string;
icon: any;
}
interface CalendarProps {
lang?: "eng" | "nep";
selectedDate?: CustomDate | null;
viewDate: CustomDate;
onDateSelect: (date: CustomDate) => void;
onViewDateChange: (date: CustomDate) => void;
minDate?: CustomDate;
maxDate?: CustomDate;
calendarClassName?: string;
dayClassName?: string;
selectedDayClassName?: string;
todayClassName?: string;
disabledDayClassName?: string;
className?: object;
}
interface DateInputProps {
value?: CustomDate | null;
onChange?: (value: string) => void;
onSelect?: (date: CustomDate | null) => void;
placeholder?: string;
disabled?: boolean;
formatOptions?: CustomDateFormatOptions;
className?: string;
onFocus?: () => void;
onBlur?: () => void;
}
declare const NepaliDatePicker: React.FC<DatePickerProps>;
declare const NepaliCalendar: React.FC<CalendarProps>;
declare const DateInput: React.FC<DateInputProps>;
declare function convertADToBS(adDate: Date): CustomDate;
declare function convertBSToAD(bsDate: CustomDate): CustomDate;
declare function getTodayBS(): CustomDate;
declare function getDaysInMonth(year: number, month: number): number;
declare function isValidBsDate(date: CustomDate): boolean;
declare function isDateInRange(date: CustomDate, minDate?: CustomDate, maxDate?: CustomDate): boolean;
declare function formatDate(date: CustomDate, options?: CustomDateFormatOptions): string;
declare function parseDate(dateStr: string, format?: string): CustomDate | null;
declare const bsMonthsEng: string[];
declare const bsMonthsNep: string[];
declare const bsDaysEng: string[];
declare const bsDaysNep: string[];
export { NepaliCalendar as Calendar, type CustomDate, DateInput, type DatePickerProps, NepaliDatePicker, bsDaysEng, bsDaysNep, bsMonthsEng, bsMonthsNep, convertADToBS, convertBSToAD, formatDate, getDaysInMonth, getTodayBS, isDateInRange, isValidBsDate, parseDate };