import { IIdObject } from "./id-object";
export interface ITimelineItem extends IIdObject {
/**
* Name of item. Needs only for view.
*/
name: string;
/**
* Date when item starts. If 'streamItems' property is not empty then 'startDate' will be cleared.
*/
startDate?: Date;
/**
* Date when item ends. If 'streamItems' property is not empty then 'endDate' will be cleared.
*/
endDate?: Date;
/**
* Allows to disable / enable resize to left
*/
canResizeLeft?: boolean;
/**
* Allows to disable / enable resize to right
*/
canResizeRight?: boolean;
/**
* Disable / enable vertical item dragging
*/
canDragY?: boolean;
/**
* Disable / enable horizontal item dragging
*/
canDragX?: boolean;
/**
* These items will be determined like children and will be displayed under the current item in separate rows.
*/
childrenItems?: ITimelineItem[];
/**
* Transforms current item into the stream. It allows adding multiple items into one row.
* Can't be used simultaneously with the startDate/endDate of the current item.
* Also these items can't contain childrenItems.
*/
streamItems?: (Omit, 'childrenItems'>)[];
/**
* Show / hide inner items. Can toggle in left panel. Works only if item has not empty array in "innerItems" property.
*/
childrenItemsExpanded?: boolean;
/**
* Here can be added some custom data about item. It not uses in the library.
*/
meta?: Meta;
/**
* Trigger Change Detection in component created for this item.
*/
updateView?(): void;
_width?: number;
_left?: number;
_streamLevels?: ITimelineItem[][];
}