@r365/react-calendar-timeline
Version:
react-calendar-timeline
34 lines (33 loc) • 1.77 kB
TypeScript
import { CSSProperties, ReactNode } from 'react';
import { SelectUnits } from '../utility/calendar';
import { defaultHeaderFormats } from '../default-config';
import { IntervalRenderer, SidebarHeaderChildrenFnProps, TimelineDate, TimelineTimeSteps } from '../types/main';
type UnitType = keyof typeof defaultHeaderFormats;
export interface DateHeaderProps<Data> {
style?: CSSProperties | undefined;
className?: string | undefined;
unit?: keyof TimelineTimeSteps | 'primaryHeader' | undefined;
timelineUnit: SelectUnits;
labelFormat?: (([startTime, endTime]: [TimelineDate, TimelineDate], unit: UnitType | 'primaryHeader', labelWidth: number) => string) | undefined;
intervalRenderer?: (props: IntervalRenderer<Data>) => ReactNode;
headerData?: Data | undefined;
children?: ((props: SidebarHeaderChildrenFnProps<Data>) => ReactNode) | undefined;
height?: number | undefined;
}
export type DateHeaderWrapper<Data> = {
unit?: keyof TimelineTimeSteps | 'primaryHeader';
labelFormat?: typeof formatLabel;
style?: CSSProperties;
className?: string;
intervalRenderer?: (props: IntervalRenderer<Data>) => ReactNode;
headerData?: Data;
height?: number;
};
export declare function DateHeader<Data>({ labelFormat, unit, style, className, intervalRenderer, headerData, height, }: DateHeaderWrapper<Data>): import("react/jsx-runtime").JSX.Element;
declare function formatLabel([timeStart]: [TimelineDate, TimelineDate], unit: keyof typeof defaultHeaderFormats, labelWidth: number, formatOptions?: Record<string, {
long: Intl.DateTimeFormatOptions;
mediumLong: Intl.DateTimeFormatOptions;
medium: Intl.DateTimeFormatOptions;
short: Intl.DateTimeFormatOptions;
}>): string;
export default DateHeader;