From 9bf9e4c95bbf8db44d08ce6a9aa01e726573758c Mon Sep 17 00:00:00 2001 From: Alex Maclean Date: Wed, 9 May 2018 15:11:26 +1000 Subject: [PATCH 1/8] Updated type definitions to 0.15.12 --- types/react-calendar-timeline/index.d.ts | 139 +++++++++++++---------- 1 file changed, 77 insertions(+), 62 deletions(-) diff --git a/types/react-calendar-timeline/index.d.ts b/types/react-calendar-timeline/index.d.ts index 69e5d037dc..649a301bb3 100644 --- a/types/react-calendar-timeline/index.d.ts +++ b/types/react-calendar-timeline/index.d.ts @@ -1,71 +1,86 @@ -// Type definitions for react-calendar-timeline v0.8.1 +// Type definitions for react-calendar-timeline v0.15.12 // Project: https://github.com/namespace-ee/react-calendar-timeline // Definitions by: Rajab Shakirov +// Alex Maclean // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.6 /// declare module "react-calendar-timeline" { - interface ReactCalendarTimeline { - groups: { - id: number; - title: any; // string | Element (React.ClassicComponentClass); - }[]; - items:{ - id: number; - group: number; - title?: any; // string | Element (React.ClassicComponentClass); - 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; - export default ReactCalendarTimeline; + + export interface TimelineGroup { + id: number; + title: string | JSX.Element; + } + + export interface TimelineItem { + id: number; + group: number; + title?: string | JSX.Element; + start_time: any; + end_time: any; + canMove?: boolean; + canResize?: boolean; + canChangeGroup?: boolean; + className?: string; + } + + export interface TimelineContext { + visibletimeStart: number, + visibleTimeEnd: number, + timelineWidth: number + } + + export interface ReactCalendarTimelineProps { + groups: TimelineGroup[]; + items: TimelineItem[]; + 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: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; + onCanvasClick?(groupId:number, time:number, e:any): any; + onItemDoubleClick?(itemId:number, e: any, time: number): any; + moveResizeValidator?(action:"move" | "resize", itemId:number, time:number, resizeEdge: "left" | "right"): any; + defaultTimeStart?: any; + defaultTimeEnd?: any; + visibleTimeStart?: number; + visibleTimeEnd?: number; + onTimeChange?(visibleTimeStart: number, visibleTimeEnd: number, updateScrollCanvas: (start: number, end: number) => void): any; + onTimeInit?(visibleTimeStart: number, visibleTimeEnd: number): any; + onBoundsChange?(canvasTimeStart: number, canvasTimeEnd: number): any; + children?: any; + fullUpdate?: boolean; + itemRenderer?: (item: TimelineItem, context: TimelineContext) => JSX.Element; + groupRenderer?: (group: TimelineGroup, isRightSidebar: boolean) => JSX.Element; + } + let ReactCalendarTimeline : React.ClassicComponentClass; + export default ReactCalendarTimeline; } From 173f530f62d5c5b3059db900a0a33cf504b447b8 Mon Sep 17 00:00:00 2001 From: Alex Maclean Date: Thu, 10 May 2018 14:04:08 +1000 Subject: [PATCH 2/8] Added missing api --- types/react-calendar-timeline/index.d.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/types/react-calendar-timeline/index.d.ts b/types/react-calendar-timeline/index.d.ts index 649a301bb3..013e652760 100644 --- a/types/react-calendar-timeline/index.d.ts +++ b/types/react-calendar-timeline/index.d.ts @@ -44,7 +44,11 @@ declare module "react-calendar-timeline" { itemTimeStartKey: string; itemTimeEndKey: string; }; + selected?: number[]; sidebarWidth?: number; + sidebarContent?: any; + rightSidebarWidth?: number; + rightSidebarContent?: any; dragSnap?: number; minResizeWidth?: number; fixedHeader?: "fixed" | "none"; From 9f85c6e169398dea19dae58ca0702906ebef5bba Mon Sep 17 00:00:00 2001 From: Alex Maclean Date: Thu, 10 May 2018 14:07:43 +1000 Subject: [PATCH 3/8] relaxed type safety --- types/react-calendar-timeline/index.d.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/types/react-calendar-timeline/index.d.ts b/types/react-calendar-timeline/index.d.ts index 013e652760..5726e08365 100644 --- a/types/react-calendar-timeline/index.d.ts +++ b/types/react-calendar-timeline/index.d.ts @@ -11,13 +11,13 @@ declare module "react-calendar-timeline" { export interface TimelineGroup { id: number; - title: string | JSX.Element; + title: any; } export interface TimelineItem { id: number; group: number; - title?: string | JSX.Element; + title?: any; start_time: any; end_time: any; canMove?: boolean; @@ -82,8 +82,8 @@ declare module "react-calendar-timeline" { onBoundsChange?(canvasTimeStart: number, canvasTimeEnd: number): any; children?: any; fullUpdate?: boolean; - itemRenderer?: (item: TimelineItem, context: TimelineContext) => JSX.Element; - groupRenderer?: (group: TimelineGroup, isRightSidebar: boolean) => JSX.Element; + itemRenderer?: (item: TimelineItem, context: TimelineContext) => any; + groupRenderer?: (group: TimelineGroup, isRightSidebar: boolean) => any; } let ReactCalendarTimeline : React.ClassicComponentClass; export default ReactCalendarTimeline; From 1b2c3539da5e40fd5aa720909074139ad0e07ca1 Mon Sep 17 00:00:00 2001 From: Alex Maclean Date: Thu, 10 May 2018 15:34:43 +1000 Subject: [PATCH 4/8] Added missing API. Fixed incorrect. --- types/react-calendar-timeline/index.d.ts | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/types/react-calendar-timeline/index.d.ts b/types/react-calendar-timeline/index.d.ts index 5726e08365..86c79ca7ae 100644 --- a/types/react-calendar-timeline/index.d.ts +++ b/types/react-calendar-timeline/index.d.ts @@ -8,16 +8,16 @@ /// declare module "react-calendar-timeline" { - - export interface TimelineGroup { + + export interface TimelineGroup { id: number; - title: any; + title: React.ReactNode; } export interface TimelineItem { id: number; group: number; - title?: any; + title?: React.ReactNode; start_time: any; end_time: any; canMove?: boolean; @@ -51,18 +51,21 @@ declare module "react-calendar-timeline" { rightSidebarContent?: any; dragSnap?: number; minResizeWidth?: number; - fixedHeader?: "fixed" | "none"; - zIndexStart?: 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; useResizeHandle?: boolean; + showCursorLine?: boolean; stackItems?: boolean; traditionalZoom?: boolean; itemTouchSendsClick?: boolean; @@ -70,8 +73,9 @@ declare module "react-calendar-timeline" { 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; - onCanvasClick?(groupId:number, time:number, e:any): any; onItemDoubleClick?(itemId:number, e: any, time: number): any; + onCanvasClick?(groupId:number, time:number, e:any): any; + onCanvasDoubleClick?(groupId:number, time:number, e:any): any; moveResizeValidator?(action:"move" | "resize", itemId:number, time:number, resizeEdge: "left" | "right"): any; defaultTimeStart?: any; defaultTimeEnd?: any; @@ -80,10 +84,12 @@ declare module "react-calendar-timeline" { onTimeChange?(visibleTimeStart: number, visibleTimeEnd: number, updateScrollCanvas: (start: number, end: number) => void): any; onTimeInit?(visibleTimeStart: number, visibleTimeEnd: number): any; onBoundsChange?(canvasTimeStart: number, canvasTimeEnd: number): any; + onZoom?(timelineContext: TimelineContext): any; children?: any; fullUpdate?: boolean; - itemRenderer?: (item: TimelineItem, context: TimelineContext) => any; - groupRenderer?: (group: TimelineGroup, isRightSidebar: boolean) => any; + itemRenderer?: (props: {item: TimelineItem, context: TimelineContext}) => React.ReactNode; + groupRenderer?: (props: {group: TimelineGroup, isRightSidebar: boolean}) => React.ReactNode; + minimumWidthForItemContentVisibility?: number; } let ReactCalendarTimeline : React.ClassicComponentClass; export default ReactCalendarTimeline; From 20d62b5477c55888a6e22e7a6e56cfe0d4101aa7 Mon Sep 17 00:00:00 2001 From: Alex Maclean Date: Wed, 16 May 2018 11:12:01 +1000 Subject: [PATCH 5/8] Fixed indentation --- types/react-calendar-timeline/index.d.ts | 118 +++++++++++------------ 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/types/react-calendar-timeline/index.d.ts b/types/react-calendar-timeline/index.d.ts index 86c79ca7ae..26a3df52cd 100644 --- a/types/react-calendar-timeline/index.d.ts +++ b/types/react-calendar-timeline/index.d.ts @@ -1,7 +1,7 @@ // Type definitions for react-calendar-timeline v0.15.12 // Project: https://github.com/namespace-ee/react-calendar-timeline // Definitions by: Rajab Shakirov -// Alex Maclean +// Alex Maclean // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.6 @@ -9,7 +9,7 @@ declare module "react-calendar-timeline" { - export interface TimelineGroup { + export interface TimelineGroup { id: number; title: React.ReactNode; } @@ -33,63 +33,63 @@ declare module "react-calendar-timeline" { } export interface ReactCalendarTimelineProps { - groups: TimelineGroup[]; - items: TimelineItem[]; - keys?:{ - groupIdKey: string; - groupTitleKey: string; - itemIdKey: string; - itemTitleKey: string; - itemGroupKey: string; - itemTimeStartKey: string; - itemTimeEndKey: string; - }; - selected?: number[]; - sidebarWidth?: number; - sidebarContent?: any; - rightSidebarWidth?: number; - rightSidebarContent?: any; - 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; - useResizeHandle?: boolean; - showCursorLine?: boolean; - stackItems?: boolean; - traditionalZoom?: boolean; - itemTouchSendsClick?: boolean; - 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?(groupId:number, time:number, e:any): any; - moveResizeValidator?(action:"move" | "resize", itemId:number, time:number, resizeEdge: "left" | "right"): any; - defaultTimeStart?: any; - defaultTimeEnd?: any; - visibleTimeStart?: number; - visibleTimeEnd?: number; - onTimeChange?(visibleTimeStart: number, visibleTimeEnd: number, updateScrollCanvas: (start: number, end: number) => void): any; - onTimeInit?(visibleTimeStart: number, visibleTimeEnd: number): any; - onBoundsChange?(canvasTimeStart: number, canvasTimeEnd: number): any; - onZoom?(timelineContext: TimelineContext): any; - children?: any; - fullUpdate?: boolean; - itemRenderer?: (props: {item: TimelineItem, context: TimelineContext}) => React.ReactNode; - groupRenderer?: (props: {group: TimelineGroup, isRightSidebar: boolean}) => React.ReactNode; - minimumWidthForItemContentVisibility?: number; + groups: TimelineGroup[]; + items: TimelineItem[]; + keys?:{ + groupIdKey: string; + groupTitleKey: string; + itemIdKey: string; + itemTitleKey: string; + itemGroupKey: string; + itemTimeStartKey: string; + itemTimeEndKey: string; + }; + selected?: number[]; + sidebarWidth?: number; + sidebarContent?: any; + rightSidebarWidth?: number; + rightSidebarContent?: any; + 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; + useResizeHandle?: boolean; + showCursorLine?: boolean; + stackItems?: boolean; + traditionalZoom?: boolean; + itemTouchSendsClick?: boolean; + 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?(groupId:number, time:number, e:any): any; + moveResizeValidator?(action:"move" | "resize", itemId:number, time:number, resizeEdge: "left" | "right"): any; + defaultTimeStart?: any; + defaultTimeEnd?: any; + visibleTimeStart?: number; + visibleTimeEnd?: number; + onTimeChange?(visibleTimeStart: number, visibleTimeEnd: number, updateScrollCanvas: (start: number, end: number) => void): any; + onTimeInit?(visibleTimeStart: number, visibleTimeEnd: number): any; + onBoundsChange?(canvasTimeStart: number, canvasTimeEnd: number): any; + onZoom?(timelineContext: TimelineContext): any; + children?: any; + fullUpdate?: boolean; + itemRenderer?: (props: {item: TimelineItem, context: TimelineContext}) => React.ReactNode; + groupRenderer?: (props: {group: TimelineGroup, isRightSidebar: boolean}) => React.ReactNode; + minimumWidthForItemContentVisibility?: number; } let ReactCalendarTimeline : React.ClassicComponentClass; export default ReactCalendarTimeline; From 6b80387511b4e4ab007305dd1f8bc3eafb397796 Mon Sep 17 00:00:00 2001 From: Alex Maclean Date: Wed, 16 May 2018 16:03:37 +1000 Subject: [PATCH 6/8] Fixed typing. --- types/react-calendar-timeline/index.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/types/react-calendar-timeline/index.d.ts b/types/react-calendar-timeline/index.d.ts index 26a3df52cd..d5643d0e2a 100644 --- a/types/react-calendar-timeline/index.d.ts +++ b/types/react-calendar-timeline/index.d.ts @@ -87,8 +87,8 @@ declare module "react-calendar-timeline" { onZoom?(timelineContext: TimelineContext): any; children?: any; fullUpdate?: boolean; - itemRenderer?: (props: {item: TimelineItem, context: TimelineContext}) => React.ReactNode; - groupRenderer?: (props: {group: TimelineGroup, isRightSidebar: boolean}) => React.ReactNode; + itemRenderer?: (props: {item: TimelineItem, context: TimelineContext}) => React.ReactElement<{}>;; + groupRenderer?: (props: {group: TimelineGroup, isRightSidebar: boolean}) => React.ReactElement<{}>;; minimumWidthForItemContentVisibility?: number; } let ReactCalendarTimeline : React.ClassicComponentClass; From 6d9d52c150e170c5a5f2ed01d04c2d93022bf73f Mon Sep 17 00:00:00 2001 From: Alex Maclean Date: Wed, 16 May 2018 16:29:00 +1000 Subject: [PATCH 7/8] Fat fingers. --- types/react-calendar-timeline/index.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/types/react-calendar-timeline/index.d.ts b/types/react-calendar-timeline/index.d.ts index d5643d0e2a..8c523e68c6 100644 --- a/types/react-calendar-timeline/index.d.ts +++ b/types/react-calendar-timeline/index.d.ts @@ -87,8 +87,8 @@ declare module "react-calendar-timeline" { onZoom?(timelineContext: TimelineContext): any; children?: any; fullUpdate?: boolean; - itemRenderer?: (props: {item: TimelineItem, context: TimelineContext}) => React.ReactElement<{}>;; - groupRenderer?: (props: {group: TimelineGroup, isRightSidebar: boolean}) => React.ReactElement<{}>;; + itemRenderer?: (props: {item: TimelineItem, context: TimelineContext}) => React.ReactElement<{}>; + groupRenderer?: (props: {group: TimelineGroup, isRightSidebar: boolean}) => React.ReactElement<{}>; minimumWidthForItemContentVisibility?: number; } let ReactCalendarTimeline : React.ClassicComponentClass; From ca916022152dd46e86acad208759811e622a00be Mon Sep 17 00:00:00 2001 From: Alex Maclean Date: Wed, 6 Jun 2018 11:55:06 +1000 Subject: [PATCH 8/8] Updated to 0.16.3 --- types/react-calendar-timeline/index.d.ts | 155 ++++++++++++++--------- 1 file changed, 95 insertions(+), 60 deletions(-) diff --git a/types/react-calendar-timeline/index.d.ts b/types/react-calendar-timeline/index.d.ts index 8c523e68c6..2ff17f6a82 100644 --- a/types/react-calendar-timeline/index.d.ts +++ b/types/react-calendar-timeline/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for react-calendar-timeline v0.15.12 +// Type definitions for react-calendar-timeline v0.16.3 // Project: https://github.com/namespace-ee/react-calendar-timeline // Definitions by: Rajab Shakirov // Alex Maclean @@ -12,6 +12,7 @@ declare module "react-calendar-timeline" { export interface TimelineGroup { id: number; title: React.ReactNode; + rightTitle?: React.ReactNode; } export interface TimelineItem { @@ -21,9 +22,10 @@ declare module "react-calendar-timeline" { start_time: any; end_time: any; canMove?: boolean; - canResize?: boolean; + canResize?: boolean | "left" | "right" | "both"; canChangeGroup?: boolean; className?: string; + itemProps?: {}; } export interface TimelineContext { @@ -32,65 +34,98 @@ declare module "react-calendar-timeline" { timelineWidth: number } - export interface ReactCalendarTimelineProps { - groups: TimelineGroup[]; - items: TimelineItem[]; - keys?:{ - groupIdKey: string; - groupTitleKey: string; - itemIdKey: string; - itemTitleKey: string; - itemGroupKey: string; - itemTimeStartKey: string; - itemTimeEndKey: string; - }; - selected?: number[]; - sidebarWidth?: number; - sidebarContent?: any; - rightSidebarWidth?: number; - rightSidebarContent?: any; - 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; - useResizeHandle?: boolean; - showCursorLine?: boolean; - stackItems?: boolean; - traditionalZoom?: boolean; - itemTouchSendsClick?: boolean; - 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?(groupId:number, time:number, e:any): any; - moveResizeValidator?(action:"move" | "resize", itemId:number, time:number, resizeEdge: "left" | "right"): any; - defaultTimeStart?: any; - defaultTimeEnd?: any; - visibleTimeStart?: number; - visibleTimeEnd?: number; - onTimeChange?(visibleTimeStart: number, visibleTimeEnd: number, updateScrollCanvas: (start: number, end: number) => void): any; - onTimeInit?(visibleTimeStart: number, visibleTimeEnd: number): any; - onBoundsChange?(canvasTimeStart: number, canvasTimeEnd: number): any; - onZoom?(timelineContext: TimelineContext): any; - children?: any; - fullUpdate?: boolean; - itemRenderer?: (props: {item: TimelineItem, context: TimelineContext}) => React.ReactElement<{}>; - groupRenderer?: (props: {group: TimelineGroup, isRightSidebar: boolean}) => React.ReactElement<{}>; - minimumWidthForItemContentVisibility?: 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; export default ReactCalendarTimeline; + }