Merge pull request #25631 from acemac/master

Updated react-calendar-timeline type definitions to 0.15.12
This commit is contained in:
Mine Starks
2018-06-11 10:46:08 -07:00
committed by GitHub
+122 -62
View File
@@ -1,71 +1,131 @@
// Type definitions for react-calendar-timeline v0.8.1
// Type definitions for react-calendar-timeline v0.16.3
// Project: https://github.com/namespace-ee/react-calendar-timeline
// Definitions by: Rajab Shakirov <https://github.com/radziksh>
// Alex Maclean <https://github.com/acemac>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.6
/// <reference types="react"/>
declare module "react-calendar-timeline" {
interface ReactCalendarTimeline {
groups: {
id: number;
title: any; // string | Element (React.ClassicComponentClass<any>);
}[];
items:{
id: number;
group: number;
title?: any; // string | Element (React.ClassicComponentClass<any>);
start_time: any;
end_time: any;
canMove?: boolean;
canResize?: boolean;
canChangeGroup?: boolean;
className?: string;
}[];
keys?:{
groupIdKey: string;
groupTitleKey: string;
itemIdKey: string;
itemTitleKey: string;
itemGroupKey: string;
itemTimeStartKey: string;
itemTimeEndKey: string;
};
sidebarWidth?: number;
dragSnap?: number;
minResizeWidth?: number;
fixedHeader?: "fixed" | "none";
zIndexStart?: number;
lineHeight?: number;
headerLabelGroupHeight?: number;
headerLabelHeight?: number;
itemHeightRatio?: number;
minZoom?: number;
maxZoom?: number;
canMove?: boolean;
canChangeGroup?: boolean;
canResize?: boolean;
useResizeHandle?: boolean;
stackItems?: boolean;
traditionalZoom?: boolean;
itemTouchSendsClick?: boolean;
onItemMove?(itemId:any, dragTime:any, newGroupOrder:any): any;
onItemResize?(itemId:any, newResizeEnd:any): any;
onItemSelect?(itemId:any): any;
onItemClick?(itemId:any): any;
onCanvasClick?(groupId:any, time:any, e:any): any;
onItemDoubleClick?(itemId:any): any;
moveResizeValidator?(action:any, itemId:any, time:any): any;
defaultTimeStart?: any;
defaultTimeEnd?: any;
visibleTimeStart?: number;
visibleTimeEnd?: number;
onTimeChange?(visibleTimeStart:any, visibleTimeEnd:any): any;
onTimeInit?(visibleTimeStart:any, visibleTimeEnd:any): any;
onBoundsChange?(canvasTimeStart:any, canvasTimeEnd:any): any;
children?: any;
}
let ReactCalendarTimeline : React.ClassicComponentClass<ReactCalendarTimeline>;
export default ReactCalendarTimeline;
export interface TimelineGroup {
id: number;
title: React.ReactNode;
rightTitle?: React.ReactNode;
}
export interface TimelineItem {
id: number;
group: number;
title?: React.ReactNode;
start_time: any;
end_time: any;
canMove?: boolean;
canResize?: boolean | "left" | "right" | "both";
canChangeGroup?: boolean;
className?: string;
itemProps?: {};
}
export interface TimelineContext {
visibletimeStart: number,
visibleTimeEnd: number,
timelineWidth: number
}
export interface TimelineTimeSteps {
second: number,
minute: number,
hour: number,
day: number,
month: number,
year: number
}
export interface TimelineHeaderLabelFormat {
yearShort: string,
yearLong: string,
monthShort: string,
monthMedium: string,
monthMediumLong: string,
monthLong: string,
dayShort: string,
dayLong: string,
hourShort: string,
hourMedium: string,
hourMediumLong: string,
hourLong: string,
time: string
}
export interface ReactCalendarTimelineProps {
groups: TimelineGroup[];
items: TimelineItem[];
keys?:{
groupIdKey: string;
groupTitleKey: string;
itemIdKey: string;
itemTitleKey: string;
itemGroupKey: string;
itemTimeStartKey: string;
itemTimeEndKey: string;
};
defaultTimeStart?: any;
defaultTimeEnd?: any;
visibleTimeStart?: any;
visibleTimeEnd?: any;
selected?: number[];
sidebarWidth?: number;
sidebarContent?: React.ReactNode;
rightSidebarWidth?: number;
rightSidebarContent?: React.ReactNode;
dragSnap?: number;
minResizeWidth?: number;
stickyOffset?: number;
stickyHeader?: boolean;
headerRef?: any;
lineHeight?: number;
headerLabelGroupHeight?: number;
headerLabelHeight?: number;
itemHeightRatio?: number;
minZoom?: number;
maxZoom?: number;
clickTolerance?: number;
canMove?: boolean;
canChangeGroup?: boolean;
canResize?: boolean | "left" | "right" | "both";
useResizeHandle?: boolean;
showCursorLine?: boolean;
stackItems?: boolean;
traditionalZoom?: boolean;
itemTouchSendsClick?: boolean;
timeSteps?: TimelineTimeSteps,
onItemMove?(itemId: number, dragTime: number, newGroupOrder: number): any;
onItemResize?(itemId: number, newResizeEnd: number, edge: "left" | "right"): any;
onItemSelect?(itemId: number, e: any, time: number): any;
onItemClick?(itemId: number, e: any, time: number): any;
onItemDoubleClick?(itemId: number, e: any, time: number): any;
onCanvasClick?(groupId:number, time:number, e:any): any;
onCanvasDoubleClick?(group: TimelineGroup, time: number, e: any): any;
onCanvasContextMenu?(group: TimelineGroup, time: number, e: any): any;
onZoom?(timelineContext: TimelineContext): any;
moveResizeValidator?(action:"move" | "resize", itemId: number, time: number, resizeEdge: "left" | "right"): any;
headerLabelFormats?: TimelineHeaderLabelFormat,
subHeaderLabelFormats?: TimelineHeaderLabelFormat,
onTimeChange?(visibleTimeStart: number, visibleTimeEnd: number, updateScrollCanvas: (start: number, end: number) => void): any;
onTimeInit?(canvasTimeStart: number, canvasTimeEnd: number): any;
onBoundsChange?(canvasTimeStart: number, canvasTimeEnd: number): any;
itemRenderer?: (props: {item: TimelineItem, context: TimelineContext}) => React.ReactElement<{}>;
groupRenderer?: (props: {group: TimelineGroup, isRightSidebar: boolean}) => React.ReactElement<{}>;
minimumWidthForItemContentVisibility?: number;
children?: any;
}
export const defaultHeaderLabelFormats: TimelineHeaderLabelFormat;
export const defaultSubHeaderLabelFormats: TimelineHeaderLabelFormat;
let ReactCalendarTimeline : React.ClassicComponentClass<ReactCalendarTimelineProps>;
export default ReactCalendarTimeline;
}