/**-----------------------------------------------------------------------------------------
* 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](slug:overview_gantt).
*
* Use the Gantt component to display and manage project tasks and dependencies in a timeline view.
*
* @example
* ```ts
* import { Component } from '@angular/core';
* import { GanttComponent, DependencyType } from '@progress/kendo-angular-gantt';
*
* @Component({
* selector: 'my-app',
* template: `
*
*
*
*
*
*
*
*
* `
* })
* export class AppComponent {
* public data: Task[] = [
* {
* id: 1,
* title: 'Planning',
* start: new Date('2024-01-01'),
* end: new Date('2024-01-05'),
* subtasks: []
* }
* ];
* public dependencies = [
* { id: 1, fromId: 1, toId: 2, type: DependencyType.FS }
* ];
* }
* ```
*
* @remarks
* Supported children components are:
* {@link GanttColumnComponent},
* {@link GanttSpanColumnComponent},
* {@link GanttColumnGroupComponent},
* {@link TimelineDayViewComponent},
* {@link TimelineWeekViewComponent},
* {@link TimelineMonthViewComponent},
* {@link TimelineYearViewComponent},
* {@link CustomMessagesComponent}.
*/
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;
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;
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);
get columns(): QueryList;
/**
* Sets the fields used to extract task data from the `data` array items.
* The `id` field is also used as a unique identifier for TreeList data items.
* If not set, task data items must match the [`GanttTask`](slug:api_gantt_gantttask) interface.
*/
set taskModelFields(fields: GanttTaskModelFields);
/**
* Sets the fields used to extract dependency data from the `dependencies` array items.
* If not set, dependency data items must match the [`GanttDependency`](slug:api_gantt_ganttdependency) interface.
*/
set dependencyModelFields(fields: GanttDependencyModelFields);
/**
* A query list of all declared views.
*/
views: QueryList;
/**
* Sets the active timeline view.
* @default 'week'
*/
set activeView(view: TimelineViewType);
get activeView(): TimelineViewType;
/**
* @hidden
*
*/
get activeViewCurrentTimeMarker(): boolean | CurrentTimeSettings;
/**
* Gets or sets the Gantt data.
* The task data items must match the [`GanttTask`]({% slug api_gantt_gantttask %}) interface or use [`taskModelFields`]({% slug api_gantt_ganttcomponent %}#toc-taskmodelfields).
*/
set data(data: any[]);
get data(): any[];
/**
* Specifies a callback to determine if a task is selected ([see example]({% slug selection_gantt %}#toc-custom-selection)).
* Set [`selectable`]({% slug api_gantt_ganttcomponent %}#toc-selectable) to `true` to use this callback.
*/
isSelected: (dataItem: object) => boolean;
/**
* Specifies a callback to validate new dependencies.
* Use this callback to control the valid dependencies that users can create ([see example]({% slug editing_drag_create_dependencies_gantt %}#toc-validation)).
*/
validateNewDependency: (dependency: object) => boolean;
/**
* Fires when the Gantt selection changes through user interaction.
* The event data contains the affected items and the action type.
*/
selectionChange: EventEmitter;
/**
* Enables or disables selection in the Gantt ([see example]({% slug selection_gantt %}#toc-custom-selection)).
* Set to `true` to allow 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.
* @default false
*/
selectable: boolean;
/**
* Configures the toolbar position and content.
* Set `position`, `addTaskTool`, and `viewSelectorTool` as needed.
*/
set toolbarSettings(value: ToolbarSettings);
get toolbarSettings(): ToolbarSettings;
/**
* Sets the `aria-label` attribute value for the toolbar.
* Use this to improve accessibility.
* @default "Toolbar"
*/
toolbarAriaLabel: string;
/**
* Sets the callback function to retrieve child items for a data item.
*/
set fetchChildren(fn: (dataItem: any) => Observable