react-calendar-timeline
Version:
react-calendar-timeline
43 lines (42 loc) • 1.79 kB
TypeScript
import { Component } from 'react';
import { ItemProps } from './Item';
import { Id, TimelineGroupBase, TimelineItemBase, TimelineKeys } from '../types/main';
import { ItemDimension } from '../types/dimension';
export type CanResize = true | false | 'left' | 'right' | 'both';
type ItemsProps<CustomItem extends TimelineItemBase<number>> = {
groups: TimelineGroupBase[];
items: CustomItem[];
dimensionItems: ItemDimension[];
selected?: Id[];
canvasTimeStart: number;
canvasTimeEnd: number;
canvasWidth: number;
dragSnap?: number;
minResizeWidth?: number;
selectedItem?: Id;
canChangeGroup?: boolean;
canMove?: boolean;
canResize?: CanResize;
canSelect?: boolean;
keys: TimelineKeys;
moveResizeValidator?: ItemProps<CustomItem>['moveResizeValidator'];
itemSelect: ItemProps<CustomItem>['onSelect'];
itemDrag: ItemProps<CustomItem>['onDrag'];
itemDrop: ItemProps<CustomItem>['onDrop'];
itemResizing: ItemProps<CustomItem>['onResizing'];
itemResized: ItemProps<CustomItem>['onResized'];
onItemDoubleClick: ItemProps<CustomItem>['onItemDoubleClick'];
onItemContextMenu?: ItemProps<CustomItem>['onContextMenu'];
itemRenderer?: ItemProps<CustomItem>['itemRenderer'];
groupTops: number[];
useResizeHandle?: boolean;
scrollRef: HTMLElement | null;
};
type ItemsState = object;
export default class Items<CustomItem extends TimelineItemBase<number>> extends Component<ItemsProps<CustomItem>, ItemsState> {
shouldComponentUpdate(nextProps: ItemsProps<CustomItem>): boolean;
isSelected(item: CustomItem, itemIdKey: string): boolean;
getVisibleItems(canvasTimeStart: number, canvasTimeEnd: number): CustomItem[];
render(): import("react/jsx-runtime").JSX.Element;
}
export {};