nessprim-planby-pro/dist/Epg/hooks/useEpg.d.ts
2024-08-04 16:14:27 -06:00

185 lines
6.1 KiB
TypeScript

import React from "react";
import { Area, ChannelWithOmittedUuid, DragAndDrop, Grid, HoursInDay, Mode, Overlap, ProgramOverlaps, ProgramWithOmittedUuid, Snap, Theme, Timezone } from "../helpers/interfaces";
import { DateTime, BaseTimeFormat, Position, InitialScrollPositions, ProgramItem, DragMouseUp, ResizeMouseUp, ChannelWithPosition } from "../helpers/types";
interface useEpgProps {
isVerticalMode?: boolean;
isRTL?: boolean;
isBaseTimeFormat?: BaseTimeFormat;
isSidebar?: boolean;
isTimeline?: boolean;
isLine?: boolean;
isCurrentTime?: boolean;
isInitialScrollToNow?: boolean;
isResize?: boolean;
initialScrollPositions?: InitialScrollPositions;
channels: ChannelWithOmittedUuid[];
epg: ProgramWithOmittedUuid[];
width?: number;
height?: number;
startDate?: DateTime;
endDate?: DateTime;
liveRefreshTime?: number;
mode?: Mode;
timezone?: Timezone;
overlap?: Overlap;
timelineDividers?: number;
snap?: Snap;
grid?: Grid;
dnd?: DragAndDrop;
areas?: Area[];
hoursInDays?: HoursInDay[];
theme?: Theme;
globalStyles?: string;
dayWidth?: number;
sidebarWidth?: number;
timelineHeight?: number;
itemHeight?: number;
itemOverscan?: number;
channelMapKey?: string;
programChannelMapKey?: string;
}
export declare function useEpg(props: useEpgProps): {
isLayoutBottom: (offset?: number) => boolean;
isLayoutRight: (offset?: number) => boolean;
getEpgProps: () => {
isVerticalMode: boolean;
isRTL: boolean;
isSidebar: boolean;
isLine: boolean;
isTimeline: boolean;
width: number | undefined;
height: number | undefined;
sidebarWidth: number;
timelineHeight: number;
ref: React.RefObject<HTMLDivElement>;
theme: Theme;
globalStyles: string | undefined;
};
getLayoutProps: () => {
ref: React.RefObject<HTMLDivElement>;
numberOfMonths: number;
numberOfHoursInDay: number;
monthWidth: number;
offsetStartHoursRange: number;
numberOfDays: number;
days: string[];
months: string[];
isVerticalMode: boolean;
isRTL: boolean;
isBaseTimeFormat: boolean;
isSidebar: boolean;
isTimeline: boolean;
isLine: boolean;
isCurrentTime: boolean;
isProgramVisible: (position: Position, overlapsCount: number) => boolean;
isChannelVisible: (position: Pick<Position, "top" | "height">) => boolean;
isTimelineVisible: (position: Pick<Position, "left" | "width">) => boolean;
isToday: boolean;
isResize: boolean;
programs: {
position: {
width: number;
height: number;
top: number;
left: number;
edgeEnd: number;
};
data: {
since: string;
till: string;
channelUuid: string;
id: string;
index: number;
title: string;
description: string;
image: string;
channelIndex: number;
channelPosition: Pick<Position, "top" | "height">;
fixedVisibility?: boolean | undefined;
parentChannelUuid?: string | undefined;
};
}[];
programOverlaps: ProgramOverlaps;
channels: ChannelWithPosition[];
channelOverlapsCount: Record<string, number>;
layerOverlapLevel: number;
snap: Snap | undefined;
grid: Grid;
gridItems: {
position: {
top: number;
left: number;
width: number;
height: number;
edgeEnd: number;
};
channel: ChannelWithPosition;
}[];
dnd: DragAndDrop;
startDate: DateTime;
endDate: DateTime;
hoursInDays: import("../helpers").HoursInDayDiffTime[];
liveRefreshTime: number;
scrollY: number;
dayWidth: number;
hourWidth: number;
sidebarWidth: number;
timelineHeight: number;
itemHeight: number;
currentDate: string;
mode: {
type: "day" | "week" | "month";
style?: "default" | "modern" | undefined;
};
timezone: {
enabled: boolean;
zone: string;
mode: string;
};
timelineDividers: number;
overlapMode: "stack" | "layer";
overlap: {
enabled: boolean;
mode: "stack" | "layer";
layerOverlapLevel?: number | undefined;
};
areas: Area[];
openChannelGroupTree: (data: ChannelWithPosition) => void;
onScroll: (e: React.UIEvent<HTMLDivElement, UIEvent> & {
target: Element;
}) => void;
dragMouseUp: (props: DragMouseUp) => Promise<void>;
resizeMouseUp: (props: ResizeMouseUp) => void;
};
getLayoutData: (events: ProgramItem[]) => {
[x: string]: any;
channelUuid: string;
id: string;
index: number;
title: string;
description: string;
since: string | number | Date;
till: string | number | Date;
image: string;
channelIndex: number;
channelPosition: Pick<Position, "top" | "height">;
fixedVisibility?: boolean | undefined;
parentChannelUuid?: string | undefined;
}[];
getDropItemData: (data: ProgramWithOmittedUuid) => {
since: string;
till: string;
channelUuid?: string | undefined;
id: string;
title: string;
image: string;
};
onScrollToNow: () => void;
onScrollTop: (value?: number) => void;
onScrollLeft: (value?: number) => void;
onScrollRight: (value?: number) => void;
scrollY: number;
scrollX: number;
};
export {};