mithril-materialized
Version:
A materialize library for mithril.
77 lines (76 loc) • 2.86 kB
TypeScript
import { FactoryComponent } from 'mithril';
import { InputAttrs } from './input-options';
export interface DatePickerI18n {
cancel?: string;
clear?: string;
done?: string;
previousMonth?: string;
nextMonth?: string;
months?: string[];
monthsShort?: string[];
weekdays?: string[];
weekdaysShort?: string[];
weekdaysAbbrev?: string[];
}
export interface DatePickerOptions {
/** Close when date is selected */
autoClose?: boolean;
/** The default output format for the input field value */
format?: string;
/** Custom parse function */
parse?: (dateString: string, format: string) => Date | null;
/** The initial date to view when first opened */
defaultDate?: Date;
/** Make the defaultDate the initial selected value */
setDefaultDate?: boolean;
/** Disable weekends */
disableWeekends?: boolean;
/** Custom function to disable specific days */
disableDayFn?: (date: Date) => boolean;
/** First day of week (0: Sunday, 1: Monday etc) */
firstDay?: number;
/** The earliest date that can be selected */
minDate?: Date;
/** The latest date that can be selected */
maxDate?: Date;
/** Number of years either side, or array of upper/lower range */
yearRange?: number | number[];
/** Show clear button */
showClearBtn?: boolean;
/** Show week numbers */
showWeekNumbers?: boolean;
/** Week numbering system: 'iso' (ISO 8601) or 'local' (local convention) */
weekNumbering?: 'iso' | 'local';
/** Internationalization */
i18n?: DatePickerI18n;
/** Enable date range selection mode for selecting start and end dates */
dateRange?: boolean;
/** Initial start date for range selection */
initialStartDate?: Date;
/** Initial end date for range selection */
initialEndDate?: Date;
/** Minimum number of days between start and end dates */
minDateRange?: number;
/** Maximum number of days between start and end dates */
maxDateRange?: number;
/** Callback when date is selected (single date or range start/end) */
onSelect?: (date: Date, endDate?: Date) => void;
/** Callback when picker is opened */
onOpen?: () => void;
/** Callback when picker is closed */
onClose?: () => void;
}
export interface DatePickerAttrs extends InputAttrs<string>, DatePickerOptions {
/** Date format attribute (alternative to format property) */
format?: string;
/** Year range attribute (alternative to yearRange property) */
yearrange?: string;
/** Legacy: Date label (use label instead) */
dateLabel?: string;
/** Legacy: Display format (use format instead) */
displayFormat?: string;
}
/**
* Enhanced DatePicker component based on Materialize CSS datepicker
*/
export declare const DatePicker: FactoryComponent<DatePickerAttrs>;