88 lines
3.1 KiB
TypeScript
88 lines
3.1 KiB
TypeScript
import React from "react";
|
|
import { Area, Grid as IGrid, HoursInDayDiffTime, Line as ILine, Mode, Overlap, ProgramOverlaps, DragAndDrop, Timezone, Snap, GridCell } from "../helpers/interfaces";
|
|
import { Timeline as ITimeline, CurrentTimeIndicator } from "../helpers/interfaces";
|
|
import { ProgramItem, ChannelWithPosition, DateTime, Position, BaseTimeFormat, DragMouseUp } from "../helpers/types";
|
|
interface LayoutProps {
|
|
isToday: boolean;
|
|
isVerticalMode?: boolean;
|
|
isRTL?: boolean;
|
|
isBaseTimeFormat?: BaseTimeFormat;
|
|
isSidebar?: boolean;
|
|
isTimeline?: boolean;
|
|
isLine?: boolean;
|
|
isCurrentTime?: boolean;
|
|
isResize?: boolean;
|
|
programs: ProgramItem[];
|
|
programOverlaps: ProgramOverlaps;
|
|
layerOverlapLevel: number;
|
|
channels: ChannelWithPosition[];
|
|
channelOverlapsCount: Record<string, number>;
|
|
startDate: DateTime;
|
|
endDate: DateTime;
|
|
hoursInDays: HoursInDayDiffTime[];
|
|
scrollY: number;
|
|
dayWidth: number;
|
|
hourWidth: number;
|
|
days: string[];
|
|
months: string[];
|
|
currentDate: string;
|
|
numberOfDays: number;
|
|
numberOfHoursInDay: number;
|
|
numberOfMonths: number;
|
|
monthWidth: number;
|
|
offsetStartHoursRange: number;
|
|
sidebarWidth: number;
|
|
timelineHeight: number;
|
|
itemHeight: number;
|
|
liveRefreshTime: number;
|
|
snap?: Snap;
|
|
mode: Mode;
|
|
dnd: DragAndDrop;
|
|
overlapMode: Overlap["mode"];
|
|
timelineDividers: number;
|
|
timezone: Timezone;
|
|
areas: Area[];
|
|
gridItems: {
|
|
position: Position;
|
|
channel: ChannelWithPosition;
|
|
}[];
|
|
grid: IGrid;
|
|
overlap: Overlap;
|
|
isProgramVisible: (position: Position, overlapsCount: number) => boolean;
|
|
isChannelVisible: (position: Pick<Position, "top" | "height">) => boolean;
|
|
isTimelineVisible: (position: Pick<Position, "left" | "width">) => boolean;
|
|
dragMouseUp: (position: DragMouseUp) => void;
|
|
resizeMouseUp: (data: any) => void;
|
|
openChannelGroupTree: (data: ChannelWithPosition) => void;
|
|
onScroll: (e: React.UIEvent<HTMLDivElement, UIEvent> & {
|
|
target: Element;
|
|
}) => void;
|
|
onLayoutBgClick?: () => void;
|
|
renderProgram?: (v: {
|
|
program: ProgramItem;
|
|
isRTL: boolean;
|
|
isVerticalMode: boolean;
|
|
isBaseTimeFormat: BaseTimeFormat;
|
|
startDate: DateTime;
|
|
liveRefreshTime: number;
|
|
dayWidth: number;
|
|
hourWidth: number;
|
|
itemHeight: number;
|
|
contentHeight: number;
|
|
snap?: Snap;
|
|
mode: Mode;
|
|
dnd: DragAndDrop;
|
|
dragMouseUp: (data: DragMouseUp) => void;
|
|
resizeMouseUp: (data: any) => void;
|
|
}) => React.ReactNode;
|
|
renderChannel?: (v: {
|
|
channel: ChannelWithPosition;
|
|
}) => React.ReactNode;
|
|
renderTimeline?: (v: ITimeline) => React.ReactNode;
|
|
renderLine?: (v: ILine) => React.ReactNode;
|
|
renderCurrentTime?: (v: CurrentTimeIndicator) => React.ReactElement;
|
|
renderGridCell?: (v: GridCell) => React.ReactElement;
|
|
}
|
|
export declare const Layout: React.ForwardRefExoticComponent<LayoutProps & React.RefAttributes<HTMLDivElement>>;
|
|
export {};
|