@josmangarsal/pragmatic-scheduler
Version:
React resource scheduler
130 lines (129 loc) • 4.75 kB
TypeScript
import React from 'react';
import 'react-grid-layout/css/styles.css';
import 'react-resizable/css/styles.css';
import { BoxProps } from '@mui/material';
import { ScheduleDay, Resource, CalEvent, Config, DivisionDetail, GridCellLayout } from '../types';
declare module '@mui/material/styles' {
interface TypographyVariants {
tableHeader: React.CSSProperties;
}
interface TypographyVariantsOptions {
tableHeader?: React.CSSProperties;
}
}
declare module '@mui/material/Typography' {
interface TypographyPropsVariantOverrides {
tableHeader: true;
}
}
export declare const SchedulerContext: React.Context<{
activeDate: Date;
days: ScheduleDay[];
resources: Resource[];
events: CalEvent[];
config: Config;
calendarBounds: {
start: Date;
end: Date;
range: number;
totalDivisions: number;
};
onEventChange?: ((event: CalEvent) => void) | undefined;
HeaderRow?: React.FC<{
days: ScheduleDay[];
}> | undefined;
ResourceCell?: React.FC<{
resource: Resource;
}> | undefined;
ResourceHeader?: React.FC<{}> | undefined;
UnassignedHeader?: React.FC<{}> | undefined;
UnAssignedBoxProps?: BoxProps<"div", {}> | undefined;
GridCell?: React.FC<{
layout: GridCellLayout;
}> | undefined;
EventTile?: React.FC<{
event: CalEvent;
}> | undefined;
extendFrom?: (() => void) | undefined;
extendTo?: (() => void) | undefined;
changeDates?: ((start: Date, end: Date) => void) | undefined;
extendWithScroll?: boolean | undefined;
ExtendLeftIconButton?: React.FC<{
onClick: () => void;
}> | undefined;
ExtendRightIconButton?: React.FC<{
onClick: () => void;
}> | undefined;
ScrollLeftIconButton?: React.FC<{
onClick: () => void;
disabled?: boolean | undefined;
}> | undefined;
ScrollRightIconButton?: React.FC<{
onClick: () => void;
disabled?: boolean | undefined;
}> | undefined;
goNow?: boolean | undefined;
lockNow?: boolean | undefined;
GoNowIconButton?: React.FC<{
onClick: () => void;
}> | undefined;
LockNowIconButton?: React.FC<{
locked: boolean;
onClick: () => void;
}> | undefined;
resizingEvent: CalEvent | null;
setResizingEvent: React.Dispatch<React.SetStateAction<CalEvent | null>>;
dndCreatingEvent?: boolean | undefined;
}>;
export declare const Scheduler: ({ activeDate, divisionDetails, resources, events, config, onEventChange, HeaderRow, ResourceCell, ResourceHeader, UnassignedHeader, UnAssignedBoxProps, GridCell, EventTile, extendFrom, extendTo, extendWithScroll, changeDates, ExtendLeftIconButton, ExtendRightIconButton, ScrollLeftIconButton, ScrollRightIconButton, firstDay: firstDayProp, lastDay: lastDayProp, goNow, lockNow, GoNowIconButton, LockNowIconButton, dndCreatingEvent, }: {
activeDate: Date;
divisionDetails?: DivisionDetail[] | undefined;
resources: Resource[];
events: CalEvent[];
config?: Config | undefined;
onEventChange?: ((event: CalEvent) => void) | undefined;
HeaderRow?: React.FC<{
days: ScheduleDay[];
}> | undefined;
ResourceCell?: React.FC<{
resource: Resource;
}> | undefined;
ResourceHeader?: React.FC<{}> | undefined;
UnassignedHeader?: React.FC<{}> | undefined;
UnAssignedBoxProps?: BoxProps<"div", {}> | undefined;
GridCell?: React.FC<{
layout: GridCellLayout;
}> | undefined;
EventTile?: React.FC<{
event: CalEvent;
}> | undefined;
extendFrom?: (() => void) | undefined;
extendTo?: (() => void) | undefined;
changeDates?: ((start: Date, end: Date) => void) | undefined;
extendWithScroll?: boolean | undefined;
ExtendLeftIconButton?: React.FC<{
onClick: () => void;
}> | undefined;
ExtendRightIconButton?: React.FC<{
onClick: () => void;
}> | undefined;
ScrollLeftIconButton?: React.FC<{
onClick: () => void;
disabled?: boolean | undefined;
}> | undefined;
ScrollRightIconButton?: React.FC<{
onClick: () => void;
disabled?: boolean | undefined;
}> | undefined;
firstDay?: Date | undefined;
lastDay?: Date | undefined;
goNow?: boolean | undefined;
lockNow?: boolean | undefined;
GoNowIconButton?: React.FC<{
onClick: () => void;
}> | undefined;
LockNowIconButton?: React.FC<{
onClick: () => void;
}> | undefined;
dndCreatingEvent?: boolean | undefined;
}) => import("@emotion/react/jsx-runtime").JSX.Element;