@josmangarsal/pragmatic-scheduler
Version:
React resource scheduler
74 lines (73 loc) • 1.73 kB
TypeScript
import GridLayout from 'react-grid-layout';
export type ScheduleDay = {
date: Date;
dateEnd: Date;
divisions: Division[];
};
export type Division = {
name: string;
startTime: Date;
endTime: Date;
order?: number;
};
export type DivisionDetail = {
name: string;
startHour: number;
endHour: number;
};
export type Resource = {
name: string;
id: string;
data?: unknown;
};
export type CalEvent = {
id: string;
title: string;
startTime: Date;
endTime: Date;
resourceId?: string;
bgColor?: string;
textColor?: string;
draggable?: boolean;
resizable?: boolean;
allowOverlap?: boolean;
data?: unknown;
};
export type Config = {
resourceColumnWidth: number;
rowHeight: number;
divisionWidth: number;
unAssignedRows?: number;
divisionParts: number;
daysToDisplay: number;
previousDaysToDisplay?: number;
rowsToDisplay?: number;
};
export type GridCellLayout = GridLayout.Layout & {
day: ScheduleDay;
division: Division;
resourceId: string;
};
export type IntervalOption = {
label: string;
value: number;
};
export type ExtendedGridLayout = GridLayout.Layout & OverflowData;
export type InfoFlowData = {
scrollRef: HTMLDivElement | null;
dataGridProps: GridLayout.Layout;
config: Config;
};
export type OverflowData = {
leftOverflow: boolean;
middleOverflow: number | null;
rightOverflow: boolean;
};
export type SchedulerViewControlsProps = {
prevDays?: number;
startDate?: Date;
setStartDate?: () => void;
endDate?: Date;
setEndDate?: () => void;
interval?: number;
};