mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-23 04:49:15 +08:00
194 lines
6.6 KiB
TypeScript
194 lines
6.6 KiB
TypeScript
// Type definitions for react-big-calendar 0.18
|
|
// Project: https://github.com/intljusticemission/react-big-calendar
|
|
// Definitions by: Piotr Witek <https://github.com/piotrwitek>
|
|
// Austin Turner <https://github.com/paustint>
|
|
// Krzysztof Bezrąk <https://github.com/pikpok>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
// TypeScript Version: 2.6
|
|
|
|
import * as React from 'react';
|
|
|
|
export type stringOrDate = string | Date;
|
|
export type View = 'month' | 'week' | 'work_week' | 'day' | 'agenda';
|
|
export type Navigate = 'PREV' | 'NEXT' | 'TODAY' | 'DATE';
|
|
export interface Format {
|
|
/**
|
|
* Format for the day of the month heading in the Month view.
|
|
* e.g. "01", "02", "03", etc
|
|
*/
|
|
dateFormat?: string;
|
|
|
|
/**
|
|
* A day of the week format for Week and Day headings,
|
|
* e.g. "Wed 01/04"
|
|
*
|
|
*/
|
|
dayFormat?: string;
|
|
|
|
/**
|
|
* Week day name format for the Month week day headings,
|
|
* e.g: "Sun", "Mon", "Tue", etc
|
|
*
|
|
*/
|
|
weekdayFormat?: string;
|
|
|
|
/**
|
|
* The timestamp cell formats in Week and Time views, e.g. "4:00 AM"
|
|
*/
|
|
timeGutterFormat?: string;
|
|
|
|
/**
|
|
* Toolbar header format for the Month view, e.g "2015 April"
|
|
*
|
|
*/
|
|
monthHeaderFormat?: string;
|
|
|
|
/**
|
|
* Toolbar header format for the Week views, e.g. "Mar 29 - Apr 04"
|
|
*/
|
|
dayRangeHeaderFormat?: string;
|
|
|
|
/**
|
|
* Toolbar header format for the Day view, e.g. "Wednesday Apr 01"
|
|
*/
|
|
dayHeaderFormat?: string;
|
|
|
|
/**
|
|
* Toolbar header format for the Agenda view, e.g. "4/1/2015 — 5/1/2015"
|
|
*/
|
|
agendaHeaderFormat?: string;
|
|
|
|
/**
|
|
* A time range format for selecting time slots, e.g "8:00am — 2:00pm"
|
|
*/
|
|
selectRangeFormat?: string;
|
|
|
|
agendaDateFormat?: string;
|
|
agendaTimeFormat?: string;
|
|
agendaTimeRangeFormat?: string;
|
|
|
|
/**
|
|
* Time range displayed on events.
|
|
*/
|
|
eventTimeRangeFormat?: string;
|
|
|
|
/**
|
|
* An optional event time range for events that continue onto another day
|
|
*/
|
|
eventTimeRangeStartFormat?: string;
|
|
|
|
/**
|
|
* An optional event time range for events that continue from another day
|
|
*/
|
|
eventTimeRangeEndFormat?: string;
|
|
}
|
|
|
|
export interface Components {
|
|
event?: React.SFC | React.Component | React.ComponentClass | JSX.Element;
|
|
eventWrapper?: React.SFC | React.Component | React.ComponentClass | JSX.Element;
|
|
dayWrapper?: React.SFC | React.Component | React.ComponentClass | JSX.Element;
|
|
dateCellWrapper?: React.SFC | React.Component | React.ComponentClass | JSX.Element;
|
|
toolbar?: React.SFC | React.Component | React.ComponentClass | JSX.Element;
|
|
agenda?: {
|
|
date?: React.SFC | React.Component | React.ComponentClass | JSX.Element;
|
|
time?: React.SFC | React.Component | React.ComponentClass | JSX.Element;
|
|
event?: React.SFC | React.Component | React.ComponentClass | JSX.Element;
|
|
};
|
|
day?: {
|
|
header?: React.SFC | React.Component | React.ComponentClass | JSX.Element;
|
|
event?: React.SFC | React.Component | React.ComponentClass | JSX.Element;
|
|
};
|
|
week?: {
|
|
header?: React.SFC | React.Component | React.ComponentClass | JSX.Element;
|
|
event?: React.SFC | React.Component | React.ComponentClass | JSX.Element;
|
|
};
|
|
month?: {
|
|
header?: React.SFC | React.Component | React.ComponentClass | JSX.Element;
|
|
dateHeader?: React.SFC | React.Component | React.ComponentClass | JSX.Element;
|
|
event?: React.SFC | React.Component | React.ComponentClass | JSX.Element;
|
|
};
|
|
}
|
|
|
|
export interface Messages {
|
|
date?: string;
|
|
time?: string;
|
|
event?: string;
|
|
allDay?: string;
|
|
week?: string;
|
|
work_week?: string;
|
|
day?: string;
|
|
month?: string;
|
|
previous?: string;
|
|
next?: string;
|
|
yesterday?: string;
|
|
tomorrow?: string;
|
|
today?: string;
|
|
agenda?: string;
|
|
showMore?: (count: number) => string;
|
|
}
|
|
|
|
export interface BigCalendarProps extends React.Props<BigCalendar> {
|
|
date?: stringOrDate;
|
|
now?: Date;
|
|
view?: View;
|
|
events?: object[];
|
|
onNavigate?: (newDate: Date, action: Navigate) => void;
|
|
onView?: (view: View) => void;
|
|
onDrillDown?: (date: Date, view: View) => void;
|
|
onSelectSlot?: (slotInfo: { start: stringOrDate, end: stringOrDate, slots: Date[] | string[], action: 'select' | 'click' | 'doubleClick' }) => void;
|
|
onDoubleClickEvent?: (event: object, e: React.SyntheticEvent<HTMLElement>) => void;
|
|
onSelectEvent?: (event: object, e: React.SyntheticEvent<HTMLElement>) => void;
|
|
onSelecting?: (range: { start: stringOrDate, end: stringOrDate }) => boolean | undefined | null;
|
|
selected?: any;
|
|
views?: View[] | {
|
|
month: boolean | React.SFC | React.Component,
|
|
week: boolean | React.SFC | React.Component,
|
|
myweek: boolean | React.SFC | React.Component,
|
|
};
|
|
drilldownView?: View | null;
|
|
getDrilldownView?: ((targetDate: Date, currentViewName: View, configuredViewNames: View[]) => void) | null;
|
|
length?: number;
|
|
toolbar?: boolean;
|
|
popup?: boolean;
|
|
popupOffset?: number | { x: number, y: number };
|
|
selectable?: boolean | 'ignoreEvents';
|
|
longPressThreshold?: number;
|
|
step?: number;
|
|
timeslots?: number;
|
|
rtl?: boolean;
|
|
eventPropGetter?: (event: object, start: stringOrDate, end: stringOrDate, isSelected: boolean) => { className?: string, style?: React.CSSProperties };
|
|
slotPropGetter?: (date: Date) => { className?: string, style?: object };
|
|
dayPropGetter?: (date: Date) => { className?: string, style?: object };
|
|
showMultiDayTimes?: boolean;
|
|
min?: stringOrDate;
|
|
max?: stringOrDate;
|
|
scrollToTime?: Date;
|
|
culture?: string;
|
|
formats?: Format;
|
|
components?: Components;
|
|
messages?: Messages;
|
|
titleAccessor?: string | ((event: any) => string);
|
|
allDayAccessor?: string | ((event: any) => boolean);
|
|
startAccessor?: string | ((event: any) => Date);
|
|
endAccessor?: string | ((event: any) => Date);
|
|
resourceAccessor?: string | ((event: any) => any);
|
|
resources?: any[];
|
|
resourceIdAccessor?: string | ((event: any) => any);
|
|
resourceTitleAccessor?: string | ((event: any) => string);
|
|
defaultView?: View;
|
|
defaultDate?: Date;
|
|
className?: string;
|
|
elementProps?: React.HTMLAttributes<HTMLElement>;
|
|
}
|
|
|
|
export default class BigCalendar extends React.Component<BigCalendarProps> {
|
|
/**
|
|
* Setup the localizer by providing the moment Object
|
|
*/
|
|
static momentLocalizer(momentInstance: object): void;
|
|
/**
|
|
* Setup the localizer by providing the globalize Object
|
|
*/
|
|
static globalizeLocalizer(globalizeInstance: object): void;
|
|
}
|