Added partial definition for React-Big-Scheduler (#35095)

* Added partial definition for React-Big-Scheduler

* Removed invalid package.json file

* Updated TS version to match React dependency

* Fixed errors from test
This commit is contained in:
Trent Jones 2019-05-08 07:43:01 +08:00 committed by Jesse Trinity
parent 82a98ba6a6
commit 65c223ac80
5 changed files with 188 additions and 0 deletions

153
types/react-big-scheduler/index.d.ts vendored Normal file
View File

@ -0,0 +1,153 @@
// Type definitions for react-big-scheduler 0.2
// Project: https://github.com/StephenChou1017/react-big-scheduler
// Definitions by: Trent Jones <https://github.com/FizzBuzz791>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.8
import * as React from "react";
import * as moment from "moment";
export class Scheduler extends React.Component<SchedulerProps, any> { }
export interface SchedulerProps {
schedulerData: SchedulerData;
prevClick(schedulerData: SchedulerData): void;
nextClick(schedulerData: SchedulerData): void;
onSelectDate(schedulerData: SchedulerData, date: string): void;
onViewChange(schedulerData: SchedulerData, view: View): void;
}
export class SchedulerData {
localeMoment(date: string): moment.Moment;
cellUnit: CellUnits;
viewType: ViewTypes;
startDate: string;
constructor(
date?: string,
viewType?: ViewTypes,
showAgenda?: boolean,
isEventPerspective?: boolean,
newConfig?: SchedulerDataConfig,
newBehaviours?: object,
localeMoment?: typeof moment
);
setResources(resources: Resource[]): void;
setEvents(events: Event[]): void;
prev(): void;
next(): void;
setViewType(
viewType?: ViewTypes,
showAgenda?: boolean,
isEventPerspective?: boolean
): void;
setDate(date?: string): void;
}
export enum CellUnits {
Day,
Hour
}
export enum ViewTypes {
Day,
Week,
Month,
Quarter,
Year,
Custom,
Custom1,
Custom2
}
export interface View {
viewName?: string;
viewType: ViewTypes;
showAgenda: boolean;
isEventPerspective: boolean;
}
export interface Event {
id: number;
start: string;
end: string;
resourceId: string;
title: string;
bgColor?: string;
rrule?: string;
}
export interface Resource {
id: string;
name: string;
}
export interface SchedulerDataConfig {
schedulerWidth?: number | string;
schedulerMaxHeight?: number;
tableHeaderHeight?: number;
agendaResourceTableWidth?: number;
agendaMaxEventWidth?: number;
dayResourceTableWidth?: number;
weekResourceTableWidth?: number;
monthResourceTableWidth?: number;
yearResourceTableWidth?: number;
quarterResourceTableWidth?: number;
dayCellWidth?: number;
weekCellWidth?: number;
monthCellWidth?: number;
yearCellWidth?: number;
quarterCellWidth?: number;
dayMaxEvents?: number;
weekMaxEvents?: number;
monthMaxEvents?: number;
yearMaxEvents?: number;
quarterMaxEvents?: number;
eventItemHeight?: number;
eventItemLineHeight?: number;
nonAgendaSlotMinHeight?: number;
dayStartFrom?: number;
dayStopTo?: number;
defaultEventBgColor?: string;
selectedAreaColor?: string;
nonWorkingTimeHeadColor?: string;
nonWorkingTimeHeadBgColor?: string;
nonWorkingTimeBodyBgColor?: string;
summaryColor?: string;
summaryPos?: SummaryPos;
startResizable?: boolean;
endResizable?: boolean;
movable?: boolean;
creatable?: boolean;
crossResourceMove?: boolean;
checkConflict?: boolean;
scrollToSpecialMomentEnabled?: boolean;
eventItemPopoverEnabled?: boolean;
calendarPopoverEnabled?: boolean;
recurringEventsEnabled?: boolean;
headerEnabled?: boolean;
displayWeekend?: boolean;
relativeMove?: boolean;
minuteStep?: number;
views?: View[];
resourceName?: string;
}
export enum SummaryPos {
Top,
TopRight,
TopLeft,
Bottom,
BottomRight,
BottomLeft
}
export interface SchedulerDataBehaviors {
isNonWorkingTimeFunc?(schedulerData: SchedulerData, time: string): boolean;
getCustomDateFunc?(
schedulerData: SchedulerData,
num: number,
date?: string
): { startDate: string; endDate: string; cellUnit: CellUnits };
}

View File

@ -0,0 +1,6 @@
{
"private": true,
"dependencies": {
"moment": "^2.18.1"
}
}

View File

@ -0,0 +1,5 @@
import { SchedulerData } from 'react-big-scheduler';
const sd = new SchedulerData();
sd.next(); // #ExpectType void

View File

@ -0,0 +1,23 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"react-big-scheduler-tests.ts"
]
}

View File

@ -0,0 +1 @@
{ "extends": "dtslint/dt.json" }