semantic-ui-calendar-react
Version:
date/time picker built from semantic-ui elements
79 lines (78 loc) • 3.57 kB
TypeScript
import * as React from 'react';
export interface BaseCalendarViewProps {
/** Used for passing calendar dom element to parent component. */
onMount: (e: HTMLElement) => void;
/** Called on calendar blur. */
onBlur: () => void;
/** Whether a calendar is inside a popup or inline. */
inline: boolean;
/** An array of values to fill a calendar with (dates, or years, or anything like that). */
values: string[];
/** Called after clicking on particular value (date, year or anything like that). */
onValueClick: (e: React.SyntheticEvent, data: OnValueClickData) => void;
/** Called on calendar cell hover. */
onCellHover: (e: React.SyntheticEvent, data: any) => void;
/** Index of a cell that should be displayed as hovered. */
hoveredItemIndex?: number;
/** An array of cell positions to display as disabled. */
disabledItemIndexes?: number[];
}
export interface SingleSelectionCalendarViewProps {
/** Position of a cell to display as active. */
activeItemIndex?: number;
}
export interface RangeIndexes {
start: number | undefined;
end: number | undefined;
}
export interface RangeSelectionCalendarViewProps {
/** Currently selected range value (from - to) that is displayed in calendar header. */
currentRangeHeadingValue: string;
/** Indexes of start and end values of currently selected range (to display as active). */
activeRange: RangeIndexes;
}
export interface CalendarWithHeaderViewProps {
/** Called after click on next page button. */
onNextPageBtnClick: (e?: React.SyntheticEvent, data?: any, cb?: () => void) => void;
/** Called after click on previous page button. */
onPrevPageBtnClick: (e?: React.SyntheticEvent, data?: any, cb?: () => void) => void;
/** Whether to display previous page button as active or disabled. */
hasPrevPage: boolean;
/** Whether to display next page button as active or disabled. */
hasNextPage: boolean;
/** Called after click on calendar header. */
onHeaderClick: () => void;
}
export interface HeadingValueProps {
/** A value (date, year or anything like that) that is displayed in calendar header. */
currentHeadingValue: string;
}
export interface CalendarWithOptionalHeaderViewProps {
/** Whether a calendar has header. */
hasHeader: boolean;
/** Called after click on next page button. */
onNextPageBtnClick?: (e?: React.SyntheticEvent, data?: any, cb?: () => void) => void;
/** Called after click on previous page button. */
onPrevPageBtnClick?: (e?: React.SyntheticEvent, data?: any, cb?: () => void) => void;
/** Whether to display previous page button as active or disabled. */
hasPrevPage?: boolean;
/** Whether to display next page button as active or disabled. */
hasNextPage?: boolean;
/** A value (date, year or anything like that) that is displayed in calendar header. */
currentHeadingValue?: string;
/** Called after click on calendar header. */
onHeaderClick?: () => void;
}
export interface OnValueClickData {
[key: string]: any;
/** Position of the clicked cell. */
itemPosition: number;
/** Text content of the clicked cell. */
value: string;
}
/** Base class for picker view components. */
declare class BaseCalendarView<P extends BaseCalendarViewProps, S> extends React.Component<P, S> {
protected calendarNode: HTMLElement | undefined;
componentDidMount(): void;
}
export default BaseCalendarView;