@syncfusion/ej2-gantt
Version:
Essential JS 2 Gantt Component
1,246 lines (1,245 loc) • 41.9 kB
TypeScript
import { PdfTreeGridCell } from './../export/pdf-base/pdf-grid-table';
import { PdfBorders } from './../export/pdf-base/pdf-borders';
import { ColumnModel } from './../models/column';
import { PointF, PdfColor, PdfFontFamily, PdfFontStyle, PdfStringFormat, PdfTrueTypeFont, PdfStandardFont, PdfTextWebLink, PdfImage, PdfPen } from '@syncfusion/ej2-pdf-export';
import { ContextMenuType, PdfPageSize, PageOrientation, ExportType, PdfTheme, TaskType, ContentType, PdfPageNumberType, PdfDashStyle, PdfHAlign, PdfVAlign, ConstraintType, ViolationType } from './enum';
import { ContextMenuOpenEventArgs as GridContextMenuOpenEventArgs } from '@syncfusion/ej2-grids';
import { ContextMenuClickEventArgs as GridContextMenuClickEventArgs } from '@syncfusion/ej2-grids';
import { RecordDoubleClickEventArgs as GridRecordDoubleClickEventArgs } from '@syncfusion/ej2-grids';
import { RowSelectingEventArgs as GridRowSelectingEventArgs } from '@syncfusion/ej2-grids';
import { CellSelectingEventArgs as GridCellSelectingEventArgs } from '@syncfusion/ej2-grids';
import { RowDeselectEventArgs as GridRowDeselectEventArgs } from '@syncfusion/ej2-grids';
import { RowSelectEventArgs as GridRowSelectEventArgs, RowDataBoundEventArgs as GridRowDataBoundEventArgs } from '@syncfusion/ej2-grids';
import { Column } from '../models/column';
import { TooltipEventArgs } from '@syncfusion/ej2-popups';
import { TimelineViewMode } from '../base/enum';
import { TimelineTierSettingsModel } from '../models/timeline-settings-model';
import { EventMarkerModel } from '../models/event-marker-model';
import { PdfPaddings } from '../export/pdf-base/index';
/**
* Specifies Gantt-chart interfaces
*
*/
export interface IGanttData {
/** Defines the child records of task. */
childRecords?: IGanttData[];
/** Defines the expanded state of task. */
expanded?: boolean;
/** Defines the properties which used in internal calculations. */
ganttProperties?: ITaskData;
/** Defines gantt data has child records or not. */
hasChildRecords?: boolean;
/** Defines the index of task. */
index?: number;
/** Defines the level of task. */
level?: number;
/** Defines the direct parent item of task. */
parentItem?: IParent;
/** Defines the parent unique id of task. */
parentUniqueID?: string;
/** Defines the data which specified in data source.
*
* @isGenericType true
*/
taskData?: Object;
/** Defines the unique id of task. */
uniqueID?: string;
/** Defines the indicators value of task. */
indicators?: IIndicator[];
/** Defines the delete . */
isDelete?: boolean;
/** Defines the critical path of task. */
isCritical?: boolean;
/** Defines the slack value of critical path task. */
slack?: string | number;
}
export interface IGanttTaskInfo {
/** The baseline width of the task. */
baselineWidth?: number;
/** The baseline left position of the task. */
baselineLeft?: number;
/** Indicates whether the task is on the critical path. */
isCritical?: boolean;
/** The slack value for a critical path task. */
slack?: string | number;
/** The width of the task's progress bar. */
progressWidth?: number;
/** The left position of an auto-scheduled task. */
autoTaskLeft?: number;
/** The width of an auto-scheduled task. */
autoTaskWidth?: number;
/** The left position of a manually scheduled task. */
manualTaskLeft?: number;
/** The width of a manually scheduled task. */
manualTaskWidth?: number;
/** The segments of the task. */
segments?: ITaskSegment[];
/** The Work Breakdown Structure (WBS) code for the task. */
wbsCode?: string;
/** The WBS predecessor code for the task. */
wbsPredecessor?: string;
/** Indicates whether the task is auto-scheduleable. */
isAutoSchedule?: boolean;
/** The left position of an auto-scheduled taskbar within a manually scheduled parent task. */
manualTaskAutoLeft?: number;
/** The width of an auto-scheduled taskbar within a manually scheduled parent task. */
manualTaskAutoWidth?: number;
/** The start date of an auto-scheduled taskbar within a manually scheduled parent task. */
manualTaskAutoStartDate?: Date;
/** The end date of an auto-scheduled taskbar within a manually scheduled parent task. */
manualTaskAutoEndDate?: Date;
}
export interface IParent {
/** Defines the unique id of task. */
uniqueID?: string;
/** Defines the expanded state of task. */
expanded?: boolean;
/** Defines the level of task. */
level?: number;
/** Defines the id of task. */
taskId?: string;
/** Defines the index of task. */
index?: number;
}
export interface ITaskData {
/** Defines the baselineleft of task. */
baselineLeft?: number;
/** Defines the baseline startdate of task. */
baselineStartDate?: Date;
/** Defines the baseline enddate of task. */
baselineEndDate?: Date;
/** Defines the baseline width of task. */
baselineWidth?: number;
/** Defines the end date of task. */
endDate?: Date;
/** Defines the css class of task. */
cssClass?: string;
/** Defines the duration of task. */
duration?: number;
/** Defines the duration unit of task. */
durationUnit?: string;
/** Defines the task is auto schedule-able or not. */
isAutoSchedule?: boolean;
/** Defines the task is milestone or not. */
isMilestone?: boolean;
/** Defines the left of task. */
left?: number;
/** Defines the critical path of task. */
isCritical?: boolean;
/** Defines the slack value of critical path task. */
slack?: string | number;
/** Defines the progress of task. */
progress?: number;
/** Defines the progress width of task. */
progressWidth?: number;
/** Defines the resource info of task. */
resourceInfo?: Object[];
/** Defines the resource names of task. */
resourceNames?: string;
/** Defines the start date of task. */
startDate?: Date;
/** Defines the notes of task. */
notes?: string;
/** Defines the predecessors name of task. */
predecessorsName?: string | number | object[];
/** Defines the predecessor of task. */
predecessor?: IPredecessor[];
/** Defines the id of task. */
taskId?: string;
/** Defines the parent id of task. */
parentId?: string;
/** Defines the name of task. */
taskName?: string;
/** Defines the width of task. */
width?: number;
/** Defines the indicators of task. */
indicators?: IIndicator[];
/** Defines the unique id of task. */
uniqueID?: string;
/** Defines the total progress of task. */
totalProgress?: number;
/** Defines the total duration of task. */
totalDuration?: number;
/** Defines the work of the task. */
work?: number;
/** Defines the work unit of task. */
workUnit?: string;
/** Defines task type */
taskType?: TaskType;
/** Defines the auto scheduled task's start date. */
autoStartDate?: Date;
/** Defines the auto scheduled task's end date. */
autoEndDate?: Date;
/** Defines the auto scheduled task's duration */
autoDuration?: number;
/** Defines the auto scheduled task's left. */
autoLeft?: number;
/** Defines the auto scheduled task's width. */
autoWidth?: number;
/** It have taskId for ProjectView and uniqueID for resourceView */
rowUniqueID?: string;
/** Defines work timeline ranges. */
workTimelineRanges?: IWorkTimelineRanges[];
/** Defines overlap index. */
eOverlapIndex?: number;
/** Defines whether overlapped with other taskbar or not. */
eOverlapped?: boolean;
/** Defines task segments. */
segments?: ITaskSegment[];
/**
* Defines shared task unique ids.
*/
sharedTaskUniqueIds?: string[];
/** Defines the wbs value for each task */
wbsCode?: string;
/** Defines the wbs predecessor value for each task */
wbsPredecessor?: string;
/** Defines the constraint date of the task. */
constraintDate?: Date;
/** Defines the constraint type of the task. */
constraintType?: ConstraintType;
}
export interface ITaskSegment {
/** Defines start date of the segment */
startDate?: Date;
/** Defines end date of the segment */
endDate?: Date;
/** Defines the duration of the segment. */
duration?: number;
/** Defines the width of a segment. */
width?: number;
/** Defines the progress width of a segment. */
progressWidth?: number;
/** Defines the left position of a segment. */
left?: number;
/** Defines the segment index */
segmentIndex?: number;
/** Defines the duration between 2 segments */
offsetDuration?: number;
/** Set for displaying progress in split taskbar */
showProgress?: boolean;
}
export interface IWorkTimelineRanges {
/** Defines start date of task */
startDate?: Date;
/** Defines end date of task */
endDate?: Date;
/** Defines left value of resource usage/resource histogram. */
left?: number;
/** Defines width of the resource usage/resource histogram. */
width?: number;
/** Defines height of the resource usage/resource histogram. */
height?: number;
/** Defines per day work. */
workPerDay?: number;
/** Defines whether resource is over allocate or not. */
isOverAllocated?: boolean;
/** Defines the task. */
task?: IGanttData;
/** Defines start date of task */
from?: Date;
/** Defines start date of task */
to?: Date;
}
export interface IGanttColumn {
/** Defines column name */
field?: string;
/** Defines header text of column */
headerText?: string;
/** Defines edit type of column */
editType?: string;
/** Defines mapping name of column */
mappingName?: string;
/** Defines whether editing is enabled or not */
allowEditing: boolean;
/** Defines width of column */
width: number;
/** Defines format of column */
format: string;
/** Defines whether column is visible or not */
visible: boolean;
}
export interface IIndicator {
/** Defines the date of indicator. */
date?: Date | string;
/** Defines the icon class of indicator. */
iconClass?: string;
/** Defines the pdf image of indicator. */
base64?: string;
/** Defines the name of indicator. */
name?: string;
/** Defines the tooltip of indicator. */
tooltip?: string;
}
export interface IWorkingTimeRange {
/** Defines the from date. */
from?: number;
/** Defines the to date. */
to?: number;
/** Defines whether it is working day or not. */
isWorking?: boolean;
/** Defines the color to render. */
color?: string;
/** Defines the interval between from and to dates. */
interval?: number;
}
export interface IQueryTaskbarInfoEventArgs {
/** Defines the data. */
data: IGanttData;
/** Defines the row element. */
rowElement: Element;
/** Defines the taskbar element. */
taskbarElement: Element;
/** Defines the taskbar background color. */
taskbarBgColor?: string;
/** Defines the taskbar border color. */
taskbarBorderColor?: string;
/** Defines the progressbar background color. */
progressBarBgColor?: string;
/** Defines the milestone color. */
milestoneColor?: string;
/** Defines the right label color. */
rightLabelColor?: string;
/** Defines the left label color. */
leftLabelColor?: string;
/** Defines the task label color. */
taskLabelColor?: string;
/** Defines the baseline color. */
baselineColor?: string;
/** Defines the taskbar type. */
taskbarType: string;
}
export interface IGanttCellFormatter {
/** Method to format the cell value of date columns. */
getValue(column: Column, data: Object): Object;
}
export interface ITaskbarEditedEventArgs {
/** Defines the editingFields. */
editingFields?: ITaskData;
/** Defines the data. */
data?: IGanttData;
/** Defines the index of edited task. */
recordIndex?: number;
/** Defines the previous value of editing task. */
previousData?: ITaskData;
/** Defines the type of taskbar edit action. */
taskBarEditAction?: string;
/** Defines the duration roundoff. */
roundOffDuration?: boolean;
/** Defines the event is cancel-able or not. */
cancel?: boolean;
/** Defines the action. */
action?: string;
/** Defines the target element. */
target?: Element;
/** Defines the segment index. */
segmentIndex?: number;
}
export interface IKeyPressedEventArgs {
/** Defines the request type. */
requestType?: string;
/** Defines the key action. */
action?: string;
/** Defines the event. */
keyEvent?: Event;
}
export interface ITaskDeletedEventArgs {
/** Defines the deleted records */
deletedRecordCollection?: IGanttData[];
/** Defines the updated records */
updatedRecordCollection?: IGanttData[];
/** Defines the event is cancel-able or not. */
cancel?: boolean;
/** Defines the event action. */
action?: string;
}
export interface IDependencyEditData {
id?: string;
text?: string;
value?: string;
}
export interface IPredecessor {
/** Defines the from value of predecessor. */
from?: string;
/** Defines the to value of predecessor. */
to?: string;
/** Defines the type of predecessor. */
type?: string;
/** Defines the offset value of predecessor. */
offset?: number;
/** Defines the offset unit of predecessor. */
offsetUnit?: string;
/** Defines the predecessor is drawn-able or not. */
isDrawn?: boolean;
}
export interface IValidateArgs {
/** Defines the gantt data. */
data?: IGanttData;
/** Defines the record index. */
recordIndex?: number;
/** Defines the request type */
requestType?: string;
/** Defines whether to cancel the action or not */
cancel?: boolean;
/** Defines the validation mode. */
validateMode?: IValidateMode;
/** Defines the edited arguments. */
editEventArgs?: object;
/** Defines the type of constraint violation. */
violationType?: ViolationType;
}
export interface ITimeSpanEventArgs {
/** Defines the project start date. */
projectStartDate?: Date;
/** Defines the project end date. */
ProjectEndDate?: Date;
/** Defines the timeline roundoff state. */
isTimelineRoundOff?: boolean;
/** Defines the request type. */
requestType?: string;
/** Defines the event is cancel-able or not. */
cancel?: boolean;
/** Defines the action. */
action?: string;
}
export interface IValidateMode {
respectLink?: boolean;
removeLink?: boolean;
preserveLinkWithEditing?: boolean;
/**
* If false, reverts edits violating Must Start On (MSO)
* and shows dialog with violationType: "MustStartOn".
*/
respectMustStartOn?: boolean;
/**
* If false, reverts edits violating Must Finish On (MFO)
* and shows dialog with violationType: "MustFinishOn".
*/
respectMustFinishOn?: boolean;
/**
* If false, reverts edits violating Start No Later Than (SNLT)
* and shows dialog with violationType: "StartNoLaterThan".
*/
respectStartNoLaterThan?: boolean;
/**
* If false, reverts edits violating Finish No Later Than (FNLT)
* and shows dialog with violationType: "FinishNoLaterThan".
*/
respectFinishNoLaterThan?: boolean;
}
export interface IActionBeginEventArgs {
/** Defines the action type. */
requestType?: string;
/** Defines the gantt record. */
data?: IGanttData | IGanttData[];
/** Defines the modified records. */
modifiedRecords?: IGanttData[];
/** Defines the modified task data. */
modifiedTaskData?: object[] | object;
/** Defines the event is cancel-able or not. */
cancel?: boolean;
/** Defines the taskbar edit action. */
taskBarEditAction?: string;
/** Defines the event action. */
action?: string;
/** Defines the target element. */
target?: Element;
}
export interface IValidateLinkedTaskArgs {
editMode?: string;
data?: IGanttData;
requestType?: string;
validateMode?: IValidateMode;
cancel?: boolean;
}
export interface IConnectorLineObject {
parentLeft?: number;
childLeft?: number;
parentWidth?: number;
childWidth?: number;
parentIndex?: number;
childIndex?: number;
rowHeight?: number;
type?: string;
connectorLineId?: string;
milestoneParent?: boolean;
milestoneChild?: boolean;
parentIndexInCurrentView?: number;
childIndexInCurrentView?: number;
isCritical?: boolean;
parentEndPoint?: number;
childEndPoint?: number;
}
export interface ISplitterResizedEventArgs {
/** Defines the element. */
element?: HTMLElement;
/** Defines the event. */
event?: Event;
/** Defines the size of resized pane. */
paneSize?: number[];
/** Defines the pane. */
pane?: HTMLElement[];
/** Defines the index of resizing pane. */
index?: number[];
/** Defines the separator. */
separator?: HTMLElement;
/** Defines the event is cancel-able or not. */
cancel?: boolean;
}
export interface PredecessorTooltip {
/** Defines the from id of predecessor. */
fromId?: string;
/** Defines the to id of predecessor. */
toId?: string;
/** Defines the from name of predecessor. */
fromName?: string;
/** Defines the to name of predecessor. */
toName?: string;
/** Defines the link type of predecessor. */
linkType?: string;
/** Defines the link text of predecessor. */
linkText?: string;
/** Defines the offset value of predecessor. */
offset?: number;
/** Defines the offset unit of predecessor. */
offsetUnit?: string;
/** Defines the offset string value of predecessor. */
offsetString?: string;
}
export interface BeforeTooltipRenderEventArgs {
/** Defines the data. */
data?: BeforeTooltipRenderEventArgsData;
/** Defines the original event arguments of tooltip control. */
args?: TooltipEventArgs;
/** Defines the content. */
content?: string | Element | Function;
/** Cancel the tooltip */
cancel?: boolean;
}
export interface QueryCellInfoEventArgs {
/** Defines the row data associated with this cell. */
data?: IGanttData;
/** Defines the cell element. */
cell?: Element;
/** Defines the column object associated with this cell. */
column?: Column;
/** Defines the no. of columns to be spanned */
colSpan?: number;
/** Defines the no. of rows to be spanned */
rowSpan?: number;
/** Defines the current action. */
requestType?: string;
/** Define the foreignKey row data associated with this column */
foreignKeyData?: Object;
}
/**
* Extending IGanttData and PredecessorTooltip interfaces for data used in BeforeTooltipRenderEventArgs interface.
*/
export interface BeforeTooltipRenderEventArgsData extends IGanttData, PredecessorTooltip {
}
export interface IDependencyEventArgs {
/** Specifies the predecessor task of dependency. */
fromItem?: IGanttData;
/** Specifies the successor task of dependency. */
toItem?: IGanttData;
/** Defines the new predecessor string. */
newPredecessorString?: string;
/** Defines the dependency link is valid or not */
isValidLink?: boolean;
/** Defines the request type. */
requestType?: string;
/** Defines predecessor object */
predecessor?: IPredecessor;
}
export interface ITaskAddedEventArgs {
/** Specifies the newly added task data with Gantt properties. */
data?: IGanttData[] | IGanttData;
/** Specifies the newly added task data without custom Gantt properties. */
newTaskData?: object[] | object;
/** Defines the modified records. */
modifiedRecords?: IGanttData[];
/** Defines the modified task data. */
modifiedTaskData?: object[] | object;
/** Defines the record index. */
recordIndex?: number | number[];
/** Defines the event is cancel-able or not. */
cancel?: boolean;
/** Defines the action. */
action?: string;
/** Defines the request type. */
requestType?: string;
/** Defines the row position. */
rowPosition?: string;
}
export interface ICollapsingEventArgs {
/** Defines the TreeGrid row element */
gridRow: Node;
/** Defines the Gantt chart row element */
chartRow: Node;
/** Defines the name of the action. */
name?: string;
/** Defines the parent row data. */
data?: IGanttData;
/** Cancel the row expanding action */
cancel?: boolean;
}
export interface ContextMenuOpenEventArgs extends GridContextMenuOpenEventArgs {
/** Defines the TreeGrid row element */
gridRow?: Element;
/** Defines the chart row element */
chartRow?: Element;
/** Defines the selected row record */
rowData?: IGanttData;
/** Defines the context menu type */
type?: ContextMenuType;
/** Defines the hidden items collection */
hideItems?: string[];
/** Defines the sub menu hidden items collection */
hideChildItems?: string[];
/** Defines the disabled items collection */
disableItems?: string[];
/** Defines the target element. */
target?: Element;
top?: number;
left?: number;
}
export interface ContextMenuClickEventArgs extends GridContextMenuClickEventArgs {
/** Defines the selected row record */
rowData?: IGanttData;
/** Defines the context menu type */
type?: ContextMenuType;
}
export declare type ITimelineFormatter = (date?: Date, format?: string, tier?: string, mode?: string) => string;
export interface ZoomEventArgs {
/** Defines the request type. */
requestType?: string;
/** Defines the zoom action. */
action?: string;
/** Defines Zoom timeline settings. */
timeline?: ZoomTimelineSettings;
/** Defines the cancel option value. */
cancel?: boolean;
}
export interface ZoomTimelineSettings {
/** Defines the timeline view mode. */
timelineViewMode?: TimelineViewMode;
/** Defines top tier values. */
topTier?: TimelineTierSettingsModel;
/** Defines bottom tier values. */
bottomTier?: TimelineTierSettingsModel;
/** Defines timeline unit size. */
timelineUnitSize?: number;
/** Defines the week start day. */
weekStartDay?: number;
/** Defines weekend background color. */
weekendBackground?: string;
/** Defines showTooltip whether the tooltip will rendered or not. */
showTooltip?: boolean;
/** Defines perDay width. */
perDayWidth?: number;
/** Defines zooming level. */
level?: number;
/** Defines the updateTimescaleView. */
updateTimescaleView?: boolean;
}
/** @private */
export interface MousePoint {
pageX?: number;
pageY?: number;
}
/** @private */
export interface ITemplateData {
expanded?: boolean;
hasChildRecords?: boolean;
index?: number;
level?: number;
baselineLeft?: number;
baselineWidth?: number;
taskStartDate?: Date;
taskEndDate?: Date;
taskDuration?: number;
taskDurationUnit?: string;
taskPredecessorsName?: string;
taskResourceNames?: string;
isAutoSchedule?: boolean;
isMilestone?: boolean;
left?: number;
progressWidth?: number;
width?: number;
}
export interface RowSelectingEventArgs extends GridRowSelectingEventArgs {
/** Defines the data collections. */
data: IGanttData;
}
export interface RowSelectEventArgs extends GridRowSelectEventArgs {
/** Defines the data collections. */
data: IGanttData;
}
export interface RowDataBoundEventArgs extends GridRowDataBoundEventArgs {
/** Defines the data collections. */
data: IGanttData;
/** Defines the row element. */
row?: Element;
}
export interface RowDeselectEventArgs extends GridRowDeselectEventArgs {
/** Defines the selected/deselected row index. */
rowIndex?: number;
/** Defines the data collections. */
data?: IGanttData[];
/** Defines the selected/deselected row. */
row?: Element;
}
export interface IEventMarkerInfo {
id?: number;
left?: number;
label?: string;
date?: Date;
}
export interface ActionCompleteArgs extends ZoomEventArgs, IKeyPressedEventArgs {
element?: HTMLElement;
requestType?: string;
data?: IGanttData[];
modifiedRecords?: IGanttData[];
modifiedTaskData?: IGanttData[];
cancel?: boolean;
/** Specifies the newly added task data without custom Gantt properties.
*
* @isGenericType true
*/
newTaskData?: object;
/** Defines the record index. */
recordIndex?: number;
/** Defines the action. */
action?: string;
/** Defines the type of event. */
type?: string;
}
export interface ActionBeginArgs extends IDependencyEventArgs {
rowData?: IGanttData;
name?: string;
requestType?: string;
cancel?: boolean;
data?: IGanttData[];
modifiedRecords?: IGanttData[];
/**
* @isGenericType true
*/
modifiedTaskData?: object[];
/** Specifies the newly added task data without custom Gantt properties.
*
* @isGenericType true
*/
newTaskData?: object;
/** Defines the split date on context click action */
splitDate?: Date;
/** Defines the array of merge items indexes on context click action */
mergeSegmentIndexes?: {
firstSegmentIndex: number;
secondSegmentIndex: number;
}[];
/** Defines the record index. */
recordIndex?: number;
/** Defines the action. */
action?: string;
/** Defines the type of event. */
type?: string;
/** Defines the target element. */
target?: Element;
}
export interface CellEditArgs {
/** Defines the cancel option value. */
cancel?: boolean;
/** Defines the current row. */
row?: Element;
/** Defines the validation rules. */
validationRules?: Object;
/** Defines the name of the event. */
type?: string;
/** Defines foreign data object */
foreignKeyData?: Object;
/** Defines the row data object. */
rowData?: IGanttData;
/** Defines the column name. */
columnName?: string;
/** Defines the cell object. */
cell?: Element;
/** Defines the column object. */
columnObject?: Column;
/** Defines the cell value. */
value?: string;
/** Defines isForeignKey option value. */
isForeignKey?: boolean;
/** Defines the primaryKey. */
primaryKey?: string[];
}
export interface CellSelectingEventArgs extends GridCellSelectingEventArgs {
/** Defines the previously selected cell index */
previousRowCellIndex?: number;
}
export interface ScrollArgs {
/** Defines the action. */
action?: string;
/** Defines the action type. */
requestType?: string;
/** Defines the scroll direction. */
scrollDirection?: string;
/** Defines the scroll left value. */
scrollLeft?: number;
/** Defines the scroll top value. */
scrollTop?: number;
/** Defines the previous scroll top value. */
previousScrollTop?: number;
/** Defines the previous scroll left value. */
previousScrollLeft?: number;
}
export interface ITaskbarClickEventArgs {
/** Defines the taskbar element. */
taskbarElement?: Element;
/** Defines the data of record. */
data?: IGanttData;
/** Defines the row index of record. */
rowIndex?: number;
/** Defines the target element. */
target?: Element;
}
export interface RecordDoubleClickEventArgs extends GridRecordDoubleClickEventArgs {
/** Defines the row element. */
row?: Element;
/** Defines the data of record. */
rowData?: IGanttData;
/** Defines the row index of record. */
rowIndex?: number;
/** Defines the target element. */
target?: Element;
}
export interface RowDropEventArgs {
/** Defines the selected row's element. */
rows?: Element[];
/** Defines the target element from which drag starts. */
target?: Element;
/** Defines the type of the element to be dragged.
*
* @hidden
*/
draggableType?: string;
/** Defines the selected row data.
*
* @isGenericType true
*/
data?: Object[];
/** Defines the drag element from index. */
fromIndex?: number;
/** Defines the target element from index. */
dropIndex?: number;
/** Define the mouse event */
originalEvent?: object;
cancel?: boolean;
/** Defines drop position of the dragged record */
dropPosition?: string;
/** Defines the request type. */
requestType?: string;
/** Defines the modified records. */
modifiedRecords?: IGanttData[];
/** Defines the modified records. */
dropRecord?: IGanttData;
}
export interface IMouseMoveEventArgs {
/** Defines the row data. */
data?: IGanttData;
/** Defines the column. */
column?: Object;
/** Defines the timeline date. */
date?: Date;
/** Defines the original event. */
originalEvent?: Object;
/** Defines the predecessor. */
predecessor?: PredecessorTooltip;
/** Defines the indicator. */
indicator?: IIndicator;
/** Defines the event markers. */
eventMarkers?: EventMarkerModel;
}
export interface PdfExportProperties {
/** Defines the Pdf orientation. */
pageOrientation?: PageOrientation;
/** Defines the Pdf page size. */
pageSize?: PdfPageSize;
/** Enable the footer. */
enableFooter?: boolean;
/** Enable the header. */
enableHeader?: boolean;
/** Indicates whether to show the hidden columns in exported Pdf */
includeHiddenColumn?: boolean;
/** Defines the theme for exported Gantt */
theme?: PdfTheme;
/** Defines the style for exported Gantt */
ganttStyle?: IGanttStyle;
/** Defines the file name for the exported file */
fileName?: string;
/** Indicates to export current data or all data */
exportType?: ExportType;
/** Indicates whether to show the predecessors in exported Pdf */
showPredecessorLines?: boolean;
/** Defines the export options in rendering each row fit to the PDF page width */
fitToWidthSettings?: FitToWidthSettings;
/** Defines the Pdf header. */
header?: PdfHeader;
/** Defines the Pdf footer. */
footer?: PdfFooter;
}
export interface PdfQueryCellInfoEventArgs {
/** Defines the column of the current cell. */
column?: ColumnModel;
/** Defines the style of the current cell. */
style?: PdfGanttCellStyle;
/** Defines the value of the current cell. */
value?: Date | string | number | boolean | PdfTextWebLink | PdfImage;
/** Defines the data of the cell */
data?: Object;
/** Defines the current PDF cell */
cell?: PdfTreeGridCell;
/** Defines the image details */
image?: Image;
/** Defines the hyperlink of the cell */
hyperLink?: Hyperlink;
}
export interface Image {
/** Defines the base 64 string for image */
base64: string;
/** Defines the height for the image */
height?: number;
/** Defines the height for the image */
width?: number;
}
export interface Hyperlink {
/** Defines the Url for hyperlink */
target?: string;
/** Defines the display text for hyperlink */
displayText?: string;
}
export interface TimelineDetails {
startPoint?: number;
endPoint?: number;
startDate?: Date;
endDate?: Date;
dayStartDate?: Date;
totalWidth?: number;
startIndex?: number;
endIndex?: number;
pageStartPoint?: PointF;
}
export interface PageDetail {
startPoint?: PointF;
width?: number;
height?: number;
pageStartX?: number;
}
export interface TimelineFormat {
width?: number;
height?: number;
value?: string;
isWeekend?: boolean;
style?: PdfGanttCellStyle;
isFinished?: boolean;
completedWidth?: number;
startDate?: Date;
endDate?: Date;
}
export interface PdfGanttFontStyle {
/** Defines the font size */
fontSize?: number;
/** Defines the font style */
fontStyle?: PdfFontStyle;
/** Defines the font color */
fontColor?: PdfColor;
/** Defines the background color of the cell */
backgroundColor?: PdfColor;
/** Defines the border color of the cell */
borderColor?: PdfColor;
/** Defines the format of the cell value */
format?: PdfStringFormat;
/** Defines the fontFamily*/
fontFamily?: PdfFontFamily;
/** Defines the fontBrush*/
fontBrush?: PdfColor;
}
export interface PdfGanttCellStyle extends PdfGanttFontStyle {
/** Defines the cell borders */
borders?: PdfBorders;
/** Defines the cell padding */
padding?: PdfPaddings;
}
export interface ITaskbarStyle {
/** Defines the parent taskbar background color */
parentTaskColor?: PdfColor;
/** Defines the parent progressbar background color */
parentProgressColor?: PdfColor;
/** Defines the parent taskbar border color */
parentTaskBorderColor?: PdfColor;
/** Defines the child taskbar background color */
taskColor?: PdfColor;
/** Defines the child progressbar background color */
progressColor?: PdfColor;
/** Defines the child taskbar border color */
taskBorderColor?: PdfColor;
/** Defines the milestone background color */
milestoneColor?: PdfColor;
/** Defines the progress text color */
progressFontColor?: PdfColor;
/** Defines the critical task color */
criticalTaskColor?: PdfColor;
/** Defines the critical child progressbar background color */
criticalProgressColor?: PdfColor;
/** Defines the child taskbar border color */
criticalTaskBorderColor?: PdfColor;
/** Defines the baseline color */
baselineColor?: PdfColor;
/** Defines the baseline border color */
baselineBorderColor?: PdfColor;
/** Defines the split line background color */
splitLineBackground?: PdfColor;
/** Defines the unscheduled taskbar background color */
unscheduledTaskBarColor?: PdfColor;
/** Defines the manualParent Background color */
manualParentBackground?: PdfColor;
/** Defines the manualParent Progress color */
manualParentProgress?: PdfColor;
/** Defines the manualChild Background color */
manualChildBackground?: PdfColor;
/** Defines the manualChild Progress color */
manualChildProgress?: PdfColor;
/** Defines the manual line color */
manualLineColor?: PdfColor;
/** Defines the manualParent Background color */
manualParentBorder?: PdfColor;
/** Defines the manualChild Background color */
manualChildBorder?: PdfColor;
/** Defines the segment color collections */
taskSegmentStyles?: ITaskSegmentStyles[];
}
export interface ITaskSegmentStyles {
/** Defines the segment taskbar background color */
taskColor?: PdfColor;
/** Defines the segment progressbar background color */
progressColor?: PdfColor;
/** Defines the segment taskbar border color */
taskBorderColor?: PdfColor;
}
export interface FitToWidthSettings {
/** Specifies whether to export gantt data where each row is adjusted and rendered to fit the PDF document page size. */
isFitToWidth?: boolean;
/** Specifies the grid width in percentage while exporting. */
gridWidth?: string;
/** Specifies the chart width in percentage while exporting. */
chartWidth?: string;
}
export interface IGanttStyle {
/** Defines the columnHeader style. */
columnHeader?: PdfGanttCellStyle;
/** Defines the font family. */
fontFamily?: PdfFontFamily;
/** Defines the cell style. */
cell?: PdfGanttCellStyle;
/** Defines the taskbar style. */
taskbar?: ITaskbarStyle;
/** Defines the font style. */
label?: PdfGanttCellStyle;
/** Defines the timeline style. */
timeline?: PdfGanttCellStyle;
/** Defines the chart line color. */
chartGridLineColor?: PdfColor;
/** Defines the connector line color. */
connectorLineColor?: PdfColor;
/** Defines the critical connector line color. */
criticalConnectorLineColor?: PdfColor;
/** Defines the footer format. */
footer?: PdfGanttCellStyle;
/** Defines the font of the theme. */
font?: PdfTrueTypeFont;
/** Defines the event marker customization to rely with theme. */
eventMarker?: PdfEventMarkerStyle;
/** Defines the holidays customization to rely with theme. */
holiday?: PdfGanttCellStyle;
}
export interface PdfEventMarkerStyle {
/** Defines the event marker label style */
label?: PdfGanttCellStyle;
/** Defines the event marker line style */
lineStyle?: PdfPen;
}
export interface PdfQueryTimelineCellInfoEventArgs {
/** Defines the timeline cell */
timelineCell?: PdfGanttCellStyle;
/** Specify the value of the timeline cell */
value?: string;
}
export interface PdfQueryTaskbarInfoEventArgs {
/** Defines the Taskbar style */
taskbar?: ITaskbarStyle;
/** Specify the value of the task data */
data?: IGanttData;
/** Defines the Indicator */
indicators?: IIndicator[];
/**
* Defines the customized string content or image for the left, right and task label
* */
labelSettings?: ILabel;
/**
* Defines the taskbar element appearance customizations and provides options to add image and string in taskbar
* */
taskbarTemplate?: ITemplateDetails;
}
export interface ILabel {
/**
* Defines the customized string content or image for the leftLabel
* */
leftLabel?: ITemplateDetails;
/**
* Defines the customized string content or image for the rightLabel
* */
rightLabel?: ITemplateDetails;
/**
* Defines the customized string content or image for the task label
* */
taskLabel?: ITemplateDetails;
/**
* Specifies the label of left.
*
* @private
*/
left?: number;
/**
* Specifies the isLeftCalculated or not.
*
* @private
*/
isLeftCalculated?: boolean;
}
export interface ITemplateDetails {
/** Defines the value of template content. */
value?: string;
/** Defines the image of a template content. */
image?: Image[];
/** Defines the appearance customization details of the template content */
fontStyle?: PdfGanttFontStyle;
}
export interface PdfColumnHeaderQueryCellInfoEventArgs {
/** Defines the PDF grid current cell. */
cell?: PdfTreeGridCell;
/** Defines the style of the current cell. */
style?: PdfGanttCellStyle;
/** Defines the current cell with column */
column?: ColumnModel;
/** Specify the value of the column header cell */
value?: string | Object;
/** Specify the image of the column header cell */
image?: PdfImage;
/** Defines the customized string content or image for the header cell */
headerTemplate?: ITemplateDetails;
}
/** @private */
export interface TaskLabel {
value?: string;
left?: number;
isCompleted?: boolean;
isLeftCalculated?: boolean;
}
/**
* public Enum for `PdfHorizontalOverflowType`.
*
* @private
*/
export declare enum PdfHorizontalOverflowType {
/**
* Specifies the type of `NextPage`.
*
* @private
*/
NextPage = 0,
/**
* Specifies the type of `LastPage`.
*
* @private
*/
LastPage = 1
}
export interface PdfHeader {
/** Defines the header content distance from top. */
fromTop?: number;
/** Defines the height of header content. */
height?: number;
/** Defines the header contents. */
contents?: PdfHeaderFooterContent[];
}
export interface PdfFooter {
/** Defines the footer content distance from bottom. */
fromBottom?: number;
/** Defines the height of footer content. */
height?: number;
/** Defines the footer contents */
contents?: PdfHeaderFooterContent[];
}
export interface PdfHeaderFooterContent {
/** Defines the content type */
type: ContentType;
/** Defines the page number type */
pageNumberType?: PdfPageNumberType;
/** Defines the style of content */
style?: PdfContentStyle;
/** Defines the pdf points for drawing line */
points?: PdfPoints;
/** Defines the format for customizing page number */
format?: string;
/** Defines the position of the content */
position?: PdfPosition;
/** Defines the size of content */
size?: PdfSize;
/** Defines the base64 string for image content type */
src?: string;
/** Defines the value for content */
value?: any;
/** Defines the font for the content */
font?: PdfStandardFont | PdfTrueTypeFont;
/** Defines the alignment of header */
stringFormat?: PdfStringFormat;
}
export interface PdfContentStyle {
/** Defines the pen color. */
penColor?: string;
/** Defines the pen size. */
penSize?: number;
/** Defines the dash style. */
dashStyle?: PdfDashStyle;
/** Defines the text brush color. */
textBrushColor?: string;
/** Defines the text pen color. */
textPenColor?: string;
/** Defines the font size. */
fontSize?: number;
/** Defines the horizontal alignment. */
hAlign?: PdfHAlign;
/** Defines the vertical alignment. */
vAlign?: PdfVAlign;
}
export interface PdfPoints {
/** Defines the x1 position */
x1: number;
/** Defines the y1 position */
y1: number;
/** Defines the x2 position */
x2: number;
/** Defines the y2 position */
y2: number;
}
export interface PdfPosition {
/** Defines the x position */
x: number;
/** Defines the y position */
y: number;
}
export interface PdfSize {
/** Defines the height */
height: number;
/** Defines the width */
width: number;
}