semantic-ui-calendar-react
Version:
date/time picker built from semantic-ui elements
76 lines (75 loc) • 3.19 kB
TypeScript
/// <reference types="react" />
import * as PropTypes from 'prop-types';
import BaseInput, { BaseInputProps, BaseInputState, DateRelatedProps, DisableValuesProps, EnableValuesProps, MinMaxValueProps, MultimodeProps } from './BaseInput';
declare type CalendarMode = 'year' | 'month' | 'day';
export interface DateInputProps extends BaseInputProps, DateRelatedProps, MultimodeProps, DisableValuesProps, EnableValuesProps, MinMaxValueProps {
/** Display mode to start. */
startMode?: CalendarMode;
}
export interface DateInputOnChangeData extends DateInputProps {
value: string;
}
interface DateInputState extends BaseInputState {
mode: CalendarMode;
year: number;
month: number;
date: number;
}
declare class DateInput extends BaseInput<DateInputProps, DateInputState> {
/**
* Component responsibility:
* - parse input value
* - handle underlying picker change
*/
static readonly defaultProps: {
dateFormat: string;
startMode: string;
preserveViewMode: boolean;
inline: boolean;
icon: string;
};
static readonly propTypes: {
/** Currently selected value. */
value: PropTypes.Validator<string>;
/** Moment date formatting string. */
dateFormat: PropTypes.Requireable<string>;
/** Date to display initially when no date is selected. */
initialDate: PropTypes.Requireable<string | {} | Date>;
/** Date or list of dates that are displayed as disabled. */
disable: PropTypes.Requireable<string | {} | Date | {}[]>;
/** Date or list of dates that are enabled (the rest are disabled). */
enable: PropTypes.Requireable<string | {} | Date | {}[]>;
/** Maximum date that can be selected. */
maxDate: PropTypes.Requireable<string | {} | Date>;
/** Minimum date that can be selected. */
minDate: PropTypes.Requireable<string | {} | Date>;
/** Preserve viewmode on focus? */
preserveViewMode: PropTypes.Requireable<boolean>;
/** Display mode to start. */
startMode: PropTypes.Requireable<string>;
/** If true, popup closes after selecting a date-time. */
closable: PropTypes.Requireable<boolean>;
/**
* Called on clear.
*
* @param {SyntheticEvent} event - React's original SyntheticEvent.
* @param {object} data - All props and proposed value.
*/
onClear: PropTypes.Requireable<(...args: any[]) => any>;
/** Using the clearable setting will let users remove their selection from a calendar. */
clearable: PropTypes.Requireable<boolean>;
/** Optional Icon to display inside the clearable Input. */
clearIcon: PropTypes.Requireable<any>;
};
constructor(props: DateInputProps);
render(): JSX.Element;
private getDateParams;
private getPicker;
private switchToNextModeUndelayed;
private switchToNextMode;
private switchToPrevModeUndelayed;
private switchToPrevMode;
private onFocus;
private handleSelect;
}
export default DateInput;