UNPKG

@progress/kendo-angular-gantt

Version:
798 lines (797 loc) 35.1 kB
/**----------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the project root for more information *-------------------------------------------------------------------------------------------*/ import { EventEmitter, OnChanges, QueryList, SimpleChanges, Renderer2, AfterContentInit, OnDestroy, ElementRef, NgZone } from '@angular/core'; import { FormGroup } from '@angular/forms'; import { TreeListComponent, DataBoundTreeComponent, ExpandableTreeComponent, SelectionChangeEvent as TreeListSelectionChangeEvent, CellClickEvent as TreeListCellClickEvent } from '@progress/kendo-angular-treelist'; import { CompositeFilterDescriptor, SortDescriptor } from '@progress/kendo-data-query'; import { Day } from '@progress/kendo-date-math'; import { Observable } from 'rxjs'; import { GanttTimelineComponent } from './timeline/gantt-timeline.component'; import { GanttColumnBase } from './columns/columns'; import { DataStateChangeEvent, ColumnMenuSettings, RowClassFn, TaskClassFn, ColumnVisibilityChangeEvent, ColumnResizeEvent, ColumnLockedChangeEvent, ColumnReorderEvent, ColumnReorderConfig, GanttTaskModelFields, GanttDependencyModelFields, SortSettings, CellClickEvent, TaskClickEvent, DependencyAddEvent, TaskDeleteEvent } from './models/models'; import { LocalizationService } from '@progress/kendo-angular-l10n'; import { TimelineViewService } from './timeline/timeline-view.service'; import { TimelineViewType } from './models/timeline-view'; import { TimelineBaseViewService } from './timeline/timeline-base-view.service'; import { ScrollSyncService } from './scrolling/scroll-sync.service'; import { DependencyDomService } from './dependencies/dependency-dom.service'; import { MappingService } from './common/mapping.service'; import { OptionChangesService } from './common/option-changes.service'; import { EditService } from './editing/edit.service'; import { NavigationService } from './navigation/navigation.service'; import { TimelinePaneOptions, TreeListPaneOptions } from './models/splitter-pane-options.interface'; import { GanttTaskTemplateDirective } from './template-directives/task-template.directive'; import { GanttSummaryTaskTemplateDirective } from './template-directives/summary-task-template.directive'; import { GanttTaskContentTemplateDirective } from './template-directives/task-content-template.directive'; import { ToolbarTemplateDirective } from './toolbar/toolbar-template.directive'; import { ToolbarSettings } from './models/toolbar-settings'; import { ExpandEvent } from './expanded-state/expand-event'; import { ViewBase } from './timeline/view-base'; import { SelectionChangeEvent } from './selection/selection-change-event'; import { TaskEditEvent } from './models/events/task-edit-event.interface'; import { CellCloseEvent } from './models/events/cell-close-event.interface'; import { CellCloseEvent as TreeListCellCloseEvent } from '@progress/kendo-angular-treelist'; import { TaskAddEvent } from './models/events/task-add-event.interface'; import { ViewItem } from './models/view-item.interface'; import { DragScrollSettings } from './scrolling/drag-scroll-settings'; import { FilterableSettings } from './models/filterable-settings'; import { CurrentTimeMarkerService } from './timeline/current-time-marker.service'; import { CurrentTimeSettings } from './models/current-time-settings.interface'; import { GanttTaskTooltipTemplateDirective } from './template-directives/task-tooltip-template.directive'; import { TaskTooltipOptions } from './models/tooltip-options.interface'; import { IntlService } from '@progress/kendo-angular-intl'; import * as i0 from "@angular/core"; /** * Represents the Kendo UI Gantt component for Angular. * * @example * ```ts-preview * _@Component({ * selector: 'my-app', * template: ` * <kendo-gantt * [style.height.px]="500" * [kendoGanttHierarchyBinding]="data" * childrenField="subtasks" * [dependencies]="dependencies"> * <kendo-gantt-column * field="title" * title="Task" * [width]="200" * [expandable]="true"></kendo-gantt-column> * <kendo-gantt-column * field="start" * title="Start" * format="dd-MMM-yyyy" * [width]="120"></kendo-gantt-column> * <kendo-gantt-column * field="end" * title="End" * format="dd-MMM-yyyy" * [width]="120"></kendo-gantt-column> * <kendo-gantt-timeline-day-view></kendo-gantt-timeline-day-view> * <kendo-gantt-timeline-week-view></kendo-gantt-timeline-week-view> * <kendo-gantt-timeline-month-view></kendo-gantt-timeline-month-view> * </kendo-gantt> * ` * }) * class AppComponent { * public data: Task[] = [{ * id: 7, title: 'Validation and R&D', start: new Date('2014-06-02T00:00:00.000Z'), * end: new Date('2014-06-19T00:00:00.000Z'), completionRatio: 0.45708333333333334, * subtasks: [ * { id: 18, title: 'Project Kickoff', start: new Date('2014-06-02T00:00:00.000Z'), * end: new Date('2014-06-02T00:00:00.000Z'), completionRatio: 0.23 }, * { id: 11, title: 'Research', start: new Date('2014-06-02T00:00:00.000Z'), * end: new Date('2014-06-07T00:00:00.000Z'), completionRatio: 0.5766666666666667, * subtasks: [ * { id: 19, title: 'Validation', start: new Date('2014-06-02T00:00:00.000Z'), * end: new Date('2014-06-04T00:00:00.000Z'), completionRatio: 0.25 }, * { id: 39, title: 'Specification', start: new Date('2014-06-04T00:00:00.000Z'), * end: new Date('2014-06-07T00:00:00.000Z'), completionRatio: 0.66 }] * }, { id: 13, title: 'Implementation', start: new Date('2014-06-08T00:00:00.000Z'), * end: new Date('2014-06-19T00:00:00.000Z'), completionRatio: 0.77, * subtasks: [ * { id: 24, title: 'Prototype', start: new Date('2014-06-08T00:00:00.000Z'), * end: new Date('2014-06-14T00:00:00.000Z'), completionRatio: 0.77 }, * { id: 29, title: 'UI and Interaction', start: new Date('2014-06-14T00:00:00.000Z'), * end: new Date('2014-06-19T00:00:00.000Z'), completionRatio: 0.6 }] * }, { id: 17, title: 'Release', start: new Date('2014-06-19T00:00:00.000Z'), * end: new Date('2014-06-19T00:00:00.000Z'), completionRatio: 0 }] * }]; * * public dependencies: GanttDependency[] = [ * { id: 528, fromId: 18, toId: 19, type: DependencyType.FS }, * { id: 529, fromId: 19, toId: 39, type: DependencyType.FS }, * { id: 535, fromId: 24, toId: 29, type: DependencyType.FS }, * { id: 551, fromId: 13, toId: 29, type: DependencyType.FF }, * { id: 777, fromId: 7, toId: 11, type: DependencyType.SF }, * { id: 556, fromId: 39, toId: 24, type: DependencyType.FS }, * { id: 546, fromId: 29, toId: 17, type: DependencyType.FS }, * ]; * } * ``` */ export declare class GanttComponent implements AfterContentInit, OnChanges, OnDestroy, DataBoundTreeComponent, ExpandableTreeComponent { private timelineViewService; private scrollSyncService; private renderer; private mapper; private optionChangesService; private dependencyDomService; private editService; private localizationService; hostElement: ElementRef<HTMLElement>; private zone; private navigation; private currentTimeMarkerService; private intlService; localeId: string; treeList: TreeListComponent; timeline: GanttTimelineComponent; /** * @hidden * * Queries the template for a task content template declaration. * In newer Angular versions the ngIf-ed value gets evaluated after the static query is resolved. * Therefore the `static` property needs to be set to `false`. */ taskContentTemplate: GanttTaskContentTemplateDirective; /** * @hidden * * Queries the template for a task template declaration. * In newer Angular versions the ngIf-ed value gets evaluated after the static query is resolved. * Therefore the `static` property needs to be set to `false`. */ taskTemplate: GanttTaskTemplateDirective; /** * @hidden * * Queries the template for a task tooltip template declaration. * In newer Angular versions the ngIf-ed value gets evaluated after the static query is resolved. * Therefore the `static` property needs to be set to `false`. */ taskTooltipTemplate: GanttTaskTooltipTemplateDirective; /** * @hidden * * Queries the template for a task summary template declaration. * In newer Angular versions the ngIf-ed value gets evaluated after the static query is resolved. * Therefore the `static` property needs to be set to `false`. */ summaryTaskTemplate: GanttSummaryTaskTemplateDirective; toolbarTemplateChildren: QueryList<ToolbarTemplateDirective>; get toolbarTemplate(): ToolbarTemplateDirective; set toolbarTemplate(customToolbarTemplate: ToolbarTemplateDirective); /** * @hidden */ roleDescription: string; get hostRoleDescriptionAttr(): string; /** * @hidden */ role: string; get hostRoleAttr(): string; hostClasses: boolean; get dir(): string; /** * A query list of all declared columns. */ set columns(columns: QueryList<GanttColumnBase>); get columns(): QueryList<GanttColumnBase>; /** * Sets the fields which will be used to extract the task data from the provided `data` array items. * The `id` field is also used as a TreeList data item unique identifier (defaults to `'id'`). * * > If no object is provided, the Gantt task data items will have to conform to the [`GanttTask`]({% slug api_gantt_gantttask %}) interface. */ set taskModelFields(fields: GanttTaskModelFields); /** * Sets the fields which will be used to extract the dependency data from the provided `dependencies` array items. * * > If no object is provided, the Gantt dependency data items will have to conform to the [`GanttDependency`]({% slug api_gantt_ganttdependency %}) interface. */ set dependencyModelFields(fields: GanttDependencyModelFields); /** * A query list of all declared views. */ views: QueryList<ViewBase>; /** * The active timeline view. * @default 'week' */ set activeView(view: TimelineViewType); get activeView(): TimelineViewType; /** * @hidden * */ get activeViewCurrentTimeMarker(): boolean | CurrentTimeSettings; /** * Gets or sets the data of the Gantt. * * > The task data items should either conform to the [`GanttTask`]({% slug api_gantt_gantttask %}) interface, or a [`taskModelFields`]({% slug api_gantt_ganttcomponent %}#toc-taskmodelfields) object has to be provided. */ set data(data: any[]); get data(): any[]; /** * Specifies a callback that determines if the given task is selected ([see example]({% slug selection_gantt %}#toc-custom-selection)). * * > The [`selectable`]({% slug api_gantt_ganttcomponent %}#toc-selectable) prop has to be set to `true` in order for this callback to be executed. */ isSelected: (dataItem: object) => boolean; /** * Specifies a callback that determines if a new dependency is valid. * Used when evaluating if an attempt to create a new dependency will result in a valid link between the two tasks * [see example]({% slug editing_drag_create_dependencies_gantt %}#toc-validation). * * By defalut, dependencies are deemed invalid when: * - The two tasks are in a parent-child relationship. * - The two tasks are already dependent on one another. Only one dependency is allowed per pair. * - The start or end times of the two tasks are incompatible with the attempted dependency type. */ validateNewDependency: (dependency: object) => boolean; /** * Fires when the Gantt selection is changed through user interaction. * * Holds data about the affected [`items`]({% slug api_gantt_selectionchangeevent %}#toc-items) and the attempted [`action`]({% slug api_gantt_selectionchangeevent %}#toc-action): * - `select` - Triggered on `click` or `ctrl + click` on deselected items. * - `remove` - Triggered on `ctrl + click` on selected items. */ selectionChange: EventEmitter<SelectionChangeEvent>; /** * Enables or disables the Gantt selection mechanism ([see example]({% slug selection_gantt %}#toc-custom-selection)). * * > When set to `true`, the [`isSelected`]({% slug api_gantt_ganttcomponent %}#toc-isselected) callback has to be provided. * > When applied, the [`SelectableDirective`]({% slug api_gantt_selectabledirective %}) sets `selectable` to `true` internally. */ selectable: boolean; /** * The toolbar configuration. Defines the position and content of the toolbar(s). * The available properties are `position`, `addTaskTool`, and `viewSelectorTool`. * All are optional and default to `top`. * * The possible values for each option are: * - `top`&mdash;Positions the toolbar above the Gantt panes. Renders the respective tool in the top toolbar. * - `bottom`&mdash;Positions the toolbar below the Gantt panes. Renders the respective tool in the bottom toolbar. * - `both`&mdash;Displays two toolbar instances. Positions the first one above, * and the second one - below the Gantt panes. Renders the respective tool in the both toolbars. * - `none`&mdash;No toolbar is rendered when used for setting `position`. * No add task or view selector tool is rendered when used for setting `addTaskTool` or `viewSelectorTool`. */ set toolbarSettings(value: ToolbarSettings); get toolbarSettings(): ToolbarSettings; /** * Allows setting the toolbar(s) `aria-label` attribute value as necessary to comply with accessibility requirements. * Typically, toolbars need an `aria-label` when there is more than one toolbar in the application. */ toolbarAriaLabel: string; /** * Gets or sets the callback function that retrieves the child items for a particular item. */ set fetchChildren(fn: (dataItem: any) => Observable<object[]> | object[]); get fetchChildren(): (dataItem: any) => Observable<object[]> | object[]; /** * Gets or sets the callback function that indicates if a particular item has child items. */ set hasChildren(fn: (dataItem: any) => boolean); get hasChildren(): (dataItem: any) => boolean; /** * Defines the dependencies that will be drawn between the rendered tasks. * * > The dependency data items should either conform to the [`GanttDependency`]({% slug api_gantt_ganttdependency %}) interface, or a [`dependencyModelFields`]({% slug api_gantt_ganttcomponent %}#toc-dependencymodelfields) object has to be provided. */ dependencies: any[]; /** * Enables the sorting of the Gantt columns that have their `field` option set. */ sortable: SortSettings; /** * The descriptors by which the data will be sorted. */ sort: SortDescriptor[]; /** * Enables the filtering of the Gantt columns that have their `field` option set. * * @default false */ filterable: boolean; /** * The descriptor by which the data will be filtered. */ filter: CompositeFilterDescriptor; /** * The start time of the work day. * Accepts string values in the `HH:mm` format. */ workDayStart: string; /** * The end time of the work day. * Accepts string values in the `HH:mm` format. */ workDayEnd: string; /** * The start of the work week (index based). */ workWeekStart: Day; /** * The end of the work week (index based). */ workWeekEnd: Day; /** * When `true`, the user can use dedicated shortcuts to interact with the Gantt. * By default, navigation is enabled for the TreeList and Timeline parts of the component, * ([see example]({% slug keyboard_navigation_gantt %})). * * @default true */ navigable: boolean; /** * The options of the timeline splitter pane. By default the pane is `collapsible`, * `resizable`, not `collapsed`, and its `size` is `'50%'`. */ set timelinePaneOptions(value: TimelinePaneOptions); get timelinePaneOptions(): TimelinePaneOptions; /** * The options of the treelist splitter pane. * By default the pane is `collapsible` and not `collapsed`. */ set treeListPaneOptions(value: TreeListPaneOptions); get treeListPaneOptions(): TreeListPaneOptions; /** * Defines a function that is executed for every task in the component. * The classes returned from the function are applied to the task wrapper element. */ set taskClass(fn: TaskClassFn); get taskClass(): TaskClassFn; /** * Defines a function that is executed for every data row in the component. */ set rowClass(fn: RowClassFn); get rowClass(): RowClassFn; /** * The name of the field which contains the unique identifier of the task data item. * Defaults to 'id'. */ get taskIdField(): any; /** * Sets the callback function that indicates if a particular item is expanded. * If no callback is set, all items will be expanded and no expand icons will be rendered. */ isExpanded: (item: object) => boolean; /** * Indicates whether the Gantt columns will be resized during initialization so that they fit their headers and row content. * Columns with autoSize set to false are excluded. * * @default false */ columnsAutoSize: boolean; /** * Specifies the Gantt current time marker settings. * The settings will be applied for all views. * If the `currentTimeMarker` is set for a view then it takes precedence. * * @default true */ currentTimeMarker: boolean | CurrentTimeSettings; /** * Specifies if the column menu of the columns will be displayed. * * @default false */ columnMenu: boolean | ColumnMenuSettings; /** * If set to true, the user can reorder columns by dragging their header cells. * * @default false */ columnsReorderable: boolean; /** * If set to true, the user can resize columns by dragging the edges (resize handles) of their header cells. * * @default false */ columnsResizable: boolean; /** * Specifies the settings for auto-scrolling during dragging * when the pointer moves outside of the container bounderies * [see example]({% slug editing_drag_create_dependencies_gantt %}#toc-auto-scrolling). */ set dragScrollSettings(settings: DragScrollSettings); get dragScrollSettings(): DragScrollSettings; /** * Allows setting the task tooltip `position`, `callout`, and `showAfter` options. * * @default { position: 'top', callout: true, showAfter: 100 } */ taskTooltipOptions: TaskTooltipOptions; /** * Fires when an item is expanded. */ rowExpand: EventEmitter<ExpandEvent>; /** * Fires when a Gantt task in the timeline pane is double-clicked. The data item, associated with the clicked task, * is available in the event data. Use the event handler to open a task editing dialog as necessary. */ taskDblClick: EventEmitter<TaskClickEvent>; /** * Fires when the user double clicks a cell. */ cellDblClick: EventEmitter<CellClickEvent>; /** * Fires when the user leaves an edited cell. */ cellClose: EventEmitter<CellCloseEvent>; /** * Fires when the end user clicks the `Delete` button in the task editing dialog, * the task delete icon, or presses the `Delete` key on the keyboard when a task in the timeline is focused. * Use the event handler to open a confirmation dialog when necessary. */ taskDelete: EventEmitter<TaskDeleteEvent>; /** * Fires when an item is collapsed. */ rowCollapse: EventEmitter<ExpandEvent>; /** * Fires when the user confirms deleting a task. */ remove: EventEmitter<TaskEditEvent>; /** * Fires when the user cancels editing a task. */ cancel: EventEmitter<TaskEditEvent>; /** * Fires when the user saves an edited task. */ save: EventEmitter<TaskEditEvent>; /** * Fires when the user adds a task. */ taskAdd: EventEmitter<TaskAddEvent>; /** * Fires when the user adds a dependency via dragging * [see example]({% slug editing_drag_create_dependencies_gantt %}#toc-basic-concepts). */ dependencyAdd: EventEmitter<DependencyAddEvent>; /** * Fires when the sorting of the Gantt is changed. * You have to handle the event yourself and sort the data. */ sortChange: EventEmitter<SortDescriptor[]>; /** * Fires when the Gantt filter is modified. * You have to handle the event yourself and filter the data. */ filterChange: EventEmitter<CompositeFilterDescriptor>; /** * Fires when the filter or sort state of the Gantt is changed. */ dataStateChange: EventEmitter<DataStateChangeEvent>; /** * Fires when the collapsed state of the treelist pane is changed. */ treeListPaneCollapsedChange: EventEmitter<boolean>; /** * Fires when the collapsed state of the timeline pane is changed. */ timelinePaneCollapsedChange: EventEmitter<boolean>; /** * Fires each time the user resizes the timeline pane. */ timelinePaneSizeChange: EventEmitter<string>; /** * Fires each time the user selects a different view type. The event data contains the type of the newly selected view. */ activeViewChange: EventEmitter<TimelineViewType>; /** * Fires when the user completes the resizing of the column. */ columnResize: EventEmitter<ColumnResizeEvent[]>; /** * Fires when the user completes the reordering of the column. */ columnReorder: EventEmitter<ColumnReorderEvent>; /** * Fires when the user changes the visibility of the columns from the column menu or column chooser. */ columnVisibilityChange: EventEmitter<ColumnVisibilityChangeEvent>; /** * @hidden * * Fires when the user changes the locked state of the columns from the column menu or by reordering the columns. */ columnLockedChange: EventEmitter<ColumnLockedChangeEvent>; /** * Fires when a cell is clicked. */ cellClick: EventEmitter<CellClickEvent>; /** * Fires when a task is clicked. */ taskClick: EventEmitter<TaskClickEvent>; /** * @hidden */ get renderedTreeListItems(): any[]; /** * @hidden */ get viewItems(): ViewItem[]; /** * @hidden */ get filterMenu(): FilterableSettings; /** * @hidden * * Specifies whether the dependency drag clues will be rendered. * Set internally by the dependency-drag-create directive. * * @default false */ renderDependencyDragClues: boolean; /** * @hidden */ timelineSlots: any[]; /** * @hidden */ timelineGroupSlots: any[]; /** * @hidden */ tableWidth: number; /** * @hidden */ get viewService(): TimelineBaseViewService; /** * @hidden * * Retrieves the `isSelected` callback if `selectable` is set to `true` * Otherwise returns the default callback, which always returns `false`. */ get isTaskSelected(): (dataItem: any) => boolean; /** * @hidden * * Used by the GanttExpandableDirective. */ get idGetter(): any; /** * @hidden * * Used by the views selector. */ get viewTypes(): TimelineViewType[]; /** * @hidden * * Used by the GanttExpandableDirective. */ expandStateChange: EventEmitter<any>; /** * @hidden */ showEditingDialog: boolean; /** * @hidden */ showConfirmationDialog: boolean; /** * @hidden */ get isInEditMode(): boolean; /** * @hidden */ showLicenseWatermark: boolean; private _columns; private _data; private _dragScrollSettings; private _timelinePaneOptions; private _treeListPaneOptions; private _customToolbarTemplate; private _rowClass; private _taskClass; private _activeView; private _toolbarSettings; private _fetchChildren; private _hasChildren; private lastTreeListCellClick; private direction; private rtl; private editItem; private optionChangesSubscriptions; private editServiceSubscription; private localizationSubscription; private intlSubscription; private keydownListenerDisposers; constructor(timelineViewService: TimelineViewService, scrollSyncService: ScrollSyncService, renderer: Renderer2, mapper: MappingService, optionChangesService: OptionChangesService, dependencyDomService: DependencyDomService, editService: EditService, localizationService: LocalizationService, hostElement: ElementRef<HTMLElement>, zone: NgZone, navigation: NavigationService, currentTimeMarkerService: CurrentTimeMarkerService, intlService: IntlService, localeId: string); ngOnChanges(changes: SimpleChanges): void; ngAfterViewInit(): void; ngAfterContentInit(): void; ngOnDestroy(): void; /** * Focuses the last active cell or task in the Gantt. * If no item has previously been focused, the first cell of the TreeList part will receive focus, * ([see example]({% slug keyboard_navigation_gantt %}#toc-controlling-the-focus)). */ focus(): void; /** * Focuses the targeted cell in the TreeList part of the component, * ([see example]({% slug keyboard_navigation_gantt %}#toc-controlling-the-focus)). */ focusCell(rowIndex: number, colIndex: number): void; /** * Focuses the targeted task in the Timeline part of the component, * ([see example]({% slug keyboard_navigation_gantt %}#toc-controlling-the-focus)). */ focusTask(taskIndex: number): void; /** * Applies the minimum possible width for the specified column, * so that the whole text fits without wrapping. This method expects the Gantt * to be resizable (set `resizable` to `true`). * Makes sense to execute this method only after the Gantt is already populated with data. */ autoFitColumn(column: GanttColumnBase): void; /** * Adjusts the width of the specified columns to fit the entire content, including headers, without wrapping. * If no columns are specified, `autoFitColumns` is applied to all columns. * * This method requires the Gantt to be resizable (set `resizable` to `true`). */ autoFitColumns(columns?: Array<GanttColumnBase> | QueryList<GanttColumnBase>): void; /** * Clears the already loaded children for the dataItem so that the Gantt will fetch them again the next time it is rendered. */ reload(dataItem: any, reloadChildren?: boolean): void; /** * Changes the position of the specified column. * The reordering of columns operates only on the level * which is inferred by the source column. * For the `reorderColumn` method to work properly, * the `source` column has to be visible. * * @param {ColumnBase} source - The column whose position will be changed. * @param {number} destIndex - The new position of the column. * @param {ColumnReorderConfig} options - Additional options. */ reorderColumn(source: GanttColumnBase, destIndex: number, options?: ColumnReorderConfig): void; /** * Forces the TreeList to evaluate if some data items have changed and re-renders the rows information, if needed. * Recalculates and re-renders the Timeline period, if needed. * Redraws changed dependencies, if needed. * Executes all row-related callbacks anew. */ updateView(): void; /** * Opens the task editing dialog. */ editTask(dataItem: any, formGroup: FormGroup): void; /** * Closes the task editing dialog. */ closeTaskDialog(): void; /** * Opens the delete task confirmation dialog. */ openConfirmationDialog(): void; /** * @hidden */ handleConfirmationDialogClose(): void; /** * Opens a cell for editing. */ editCell(dataItem: any, column: number | string | any, formGroup?: FormGroup): void; /** * Closes an edited cell. */ closeCell(): void; /** * @hidden */ handleCellClose(e: TreeListCellCloseEvent): void; /** * @hidden */ onTreeListCollapsedChange(collapsed: boolean): void; /** * @hidden */ onTimelineCollapsedChange(collapsed: boolean): void; /** * @hidden */ loadTimelineData(): void; /** * @hidden */ showToolbar(position: string): boolean; /** * @hidden */ handleColumnVisibilityChange(event: ColumnVisibilityChangeEvent): void; /** * @hidden */ onTimelinePaneSizeChange(e: string): void; /** * @hidden */ handleTimelineRightClick(event: PointerEvent): void; /** * @hidden */ handleTimelineClick(event: PointerEvent): void; /** * @hidden */ handleTreeListDoubleClick(event: PointerEvent): void; /** * @hidden */ handleTreeListSelectionChange(event: TreeListSelectionChangeEvent): void; /** * @hidden */ handleTreeListCellClick(event: TreeListCellClickEvent): void; /** * @hidden */ handleDeleteConfirmation(): void; /** * @hidden */ handleTimelineMouseDown(event: MouseEvent): void; /** * @hidden */ handleTimelineDblClick(event: PointerEvent): void; /** * @hidden */ getText(token: string): string; /** * @hidden */ changeActiveView(view: TimelineViewType): void; /** * @hidden */ notifyTaskClick(event: PointerEvent | KeyboardEvent, dataItem: any, itemIndex: number): void; /** * @hidden */ notifySelectionChange(dataItem: any, action: 'select' | 'remove'): void; /** * @hidden */ notifyTaskDelete(task: any): void; /** * @hidden */ isSameSelection(action: 'select' | 'remove', dataItem: any): boolean; /** * @hidden */ getSelectionAction({ ctrlKey, metaKey }: PointerEvent | KeyboardEvent, dataItem: any): 'select' | 'remove'; private updateTreeListGroupClass; /** * Used to hide the vertical scrollbar */ private updateTreeListMargin; private get activeTimelineIndex(); private getActiveViewOptions; private getFirstSelectedItem; private defaultValidateNewDependencyCallback; private handleKeydown; static ɵfac: i0.ɵɵFactoryDeclaration<GanttComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<GanttComponent, "kendo-gantt", ["kendoGantt"], { "roleDescription": { "alias": "aria-roledescription"; "required": false; }; "role": { "alias": "role"; "required": false; }; "taskModelFields": { "alias": "taskModelFields"; "required": false; }; "dependencyModelFields": { "alias": "dependencyModelFields"; "required": false; }; "activeView": { "alias": "activeView"; "required": false; }; "data": { "alias": "data"; "required": false; }; "isSelected": { "alias": "isSelected"; "required": false; }; "validateNewDependency": { "alias": "validateNewDependency"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "toolbarSettings": { "alias": "toolbarSettings"; "required": false; }; "toolbarAriaLabel": { "alias": "toolbarAriaLabel"; "required": false; }; "fetchChildren": { "alias": "fetchChildren"; "required": false; }; "hasChildren": { "alias": "hasChildren"; "required": false; }; "dependencies": { "alias": "dependencies"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "filterable": { "alias": "filterable"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "workDayStart": { "alias": "workDayStart"; "required": false; }; "workDayEnd": { "alias": "workDayEnd"; "required": false; }; "workWeekStart": { "alias": "workWeekStart"; "required": false; }; "workWeekEnd": { "alias": "workWeekEnd"; "required": false; }; "navigable": { "alias": "navigable"; "required": false; }; "timelinePaneOptions": { "alias": "timelinePaneOptions"; "required": false; }; "treeListPaneOptions": { "alias": "treeListPaneOptions"; "required": false; }; "taskClass": { "alias": "taskClass"; "required": false; }; "rowClass": { "alias": "rowClass"; "required": false; }; "isExpanded": { "alias": "isExpanded"; "required": false; }; "columnsAutoSize": { "alias": "columnsAutoSize"; "required": false; }; "currentTimeMarker": { "alias": "currentTimeMarker"; "required": false; }; "columnMenu": { "alias": "columnMenu"; "required": false; }; "columnsReorderable": { "alias": "columnsReorderable"; "required": false; }; "columnsResizable": { "alias": "columnsResizable"; "required": false; }; "dragScrollSettings": { "alias": "dragScrollSettings"; "required": false; }; "taskTooltipOptions": { "alias": "taskTooltipOptions"; "required": false; }; }, { "selectionChange": "selectionChange"; "rowExpand": "rowExpand"; "taskDblClick": "taskDblClick"; "cellDblClick": "cellDblClick"; "cellClose": "cellClose"; "taskDelete": "taskDelete"; "rowCollapse": "rowCollapse"; "remove": "remove"; "cancel": "cancel"; "save": "save"; "taskAdd": "taskAdd"; "dependencyAdd": "dependencyAdd"; "sortChange": "sortChange"; "filterChange": "filterChange"; "dataStateChange": "dataStateChange"; "treeListPaneCollapsedChange": "treeListPaneCollapsedChange"; "timelinePaneCollapsedChange": "timelinePaneCollapsedChange"; "timelinePaneSizeChange": "timelinePaneSizeChange"; "activeViewChange": "activeViewChange"; "columnResize": "columnResize"; "columnReorder": "columnReorder"; "columnVisibilityChange": "columnVisibilityChange"; "columnLockedChange": "columnLockedChange"; "cellClick": "cellClick"; "taskClick": "taskClick"; }, ["taskContentTemplate", "taskTemplate", "taskTooltipTemplate", "summaryTaskTemplate", "toolbarTemplateChildren", "columns", "views"], never, true, never>; }