devextreme-angular
Version:
Angular UI and visualization components based on DevExtreme widgets
1 lines • 77.6 kB
Source Map (JSON)
{"version":3,"file":"devextreme-angular-ui-gantt.mjs","sources":["../../../dist/ui/gantt/index.ts","../../../dist/ui/gantt/devextreme-angular-ui-gantt.ts"],"sourcesContent":["/*!\n * devextreme-angular\n * Version: 25.1.4\n * Build date: Tue Aug 05 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n TransferState,\r\n Component,\r\n NgModule,\r\n ElementRef,\r\n NgZone,\r\n PLATFORM_ID,\r\n Inject,\r\n\r\n Input,\r\n Output,\r\n OnDestroy,\r\n EventEmitter,\r\n OnChanges,\r\n DoCheck,\r\n SimpleChanges,\r\n ContentChildren,\r\n QueryList\r\n} from '@angular/core';\r\n\r\n\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { dxGanttColumn, dxGanttContextMenu, dxGanttFilterRow, dxGanttHeaderFilter, ContentReadyEvent, ContextMenuPreparingEvent, CustomCommandEvent, DependencyDeletedEvent, DependencyDeletingEvent, DependencyInsertedEvent, DependencyInsertingEvent, DisposingEvent, InitializedEvent, OptionChangedEvent, ResourceAssignedEvent, ResourceAssigningEvent, ResourceDeletedEvent, ResourceDeletingEvent, ResourceInsertedEvent, ResourceInsertingEvent, ResourceManagerDialogShowingEvent, ResourceUnassignedEvent, ResourceUnassigningEvent, ScaleCellPreparedEvent, SelectionChangedEvent, TaskClickEvent, TaskDblClickEvent, TaskDeletedEvent, TaskDeletingEvent, TaskEditDialogShowingEvent, TaskInsertedEvent, TaskInsertingEvent, TaskMovingEvent, TaskUpdatedEvent, TaskUpdatingEvent, GanttScaleType, dxGanttSorting, dxGanttStripLine, GanttTaskTitlePosition, dxGanttToolbar } from 'devextreme/ui/gantt';\r\nimport { DataSourceOptions } from 'devextreme/data/data_source';\r\nimport { Store } from 'devextreme/data/store';\r\nimport { FirstDayOfWeek } from 'devextreme/common';\r\n\r\nimport DxGantt from 'devextreme/ui/gantt';\r\n\r\n\r\nimport {\r\n DxComponent,\r\n DxTemplateHost,\r\n DxIntegrationModule,\r\n DxTemplateModule,\r\n NestedOptionHost,\r\n IterableDifferHelper,\r\n WatcherHelper\r\n} from 'devextreme-angular/core';\r\n\r\nimport { DxiColumnModule } from 'devextreme-angular/ui/nested';\r\nimport { DxoFormatModule } from 'devextreme-angular/ui/nested';\r\nimport { DxoHeaderFilterModule } from 'devextreme-angular/ui/nested';\r\nimport { DxoSearchModule } from 'devextreme-angular/ui/nested';\r\nimport { DxoContextMenuModule } from 'devextreme-angular/ui/nested';\r\nimport { DxiItemModule } from 'devextreme-angular/ui/nested';\r\nimport { DxoDependenciesModule } from 'devextreme-angular/ui/nested';\r\nimport { DxoEditingModule } from 'devextreme-angular/ui/nested';\r\nimport { DxoFilterRowModule } from 'devextreme-angular/ui/nested';\r\nimport { DxoOperationDescriptionsModule } from 'devextreme-angular/ui/nested';\r\nimport { DxoTextsModule } from 'devextreme-angular/ui/nested';\r\nimport { DxoResourceAssignmentsModule } from 'devextreme-angular/ui/nested';\r\nimport { DxoResourcesModule } from 'devextreme-angular/ui/nested';\r\nimport { DxoScaleTypeRangeModule } from 'devextreme-angular/ui/nested';\r\nimport { DxoSortingModule } from 'devextreme-angular/ui/nested';\r\nimport { DxiStripLineModule } from 'devextreme-angular/ui/nested';\r\nimport { DxoTasksModule } from 'devextreme-angular/ui/nested';\r\nimport { DxoToolbarModule } from 'devextreme-angular/ui/nested';\r\nimport { DxoValidationModule } from 'devextreme-angular/ui/nested';\r\n\r\nimport { DxiGanttColumnModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttColumnHeaderFilterModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttColumnHeaderFilterSearchModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttContextMenuModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxiGanttContextMenuItemModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxiGanttContextMenuItemItemModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttDependenciesModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttEditingModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttFilterRowModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttFormatModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttGanttHeaderFilterModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttGanttHeaderFilterSearchModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttHeaderFilterModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxiGanttItemModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttOperationDescriptionsModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttResourceAssignmentsModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttResourcesModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttScaleTypeRangeModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttSearchModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttSortingModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxiGanttStripLineModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttTasksModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttTextsModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttToolbarModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxiGanttToolbarItemModule } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxoGanttValidationModule } from 'devextreme-angular/ui/gantt/nested';\r\n\r\nimport { DxiColumnComponent } from 'devextreme-angular/ui/nested';\r\nimport { DxiStripLineComponent } from 'devextreme-angular/ui/nested';\r\n\r\nimport { DxiGanttColumnComponent } from 'devextreme-angular/ui/gantt/nested';\r\nimport { DxiGanttStripLineComponent } from 'devextreme-angular/ui/gantt/nested';\r\n\r\n\r\n/**\r\n * The Gantt is a UI component that displays the task flow and dependencies between tasks.\r\n\r\n */\r\n@Component({\r\n selector: 'dx-gantt',\r\n standalone: true,\r\n template: '',\r\n host: { ngSkipHydration: 'true' },\r\n imports: [ DxIntegrationModule ],\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n})\r\nexport class DxGanttComponent extends DxComponent implements OnDestroy, OnChanges, DoCheck {\r\n instance: DxGantt = null;\r\n\r\n /**\r\n * Specifies the shortcut key that sets focus on the UI component.\r\n \r\n */\r\n @Input()\r\n get accessKey(): string | undefined {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value: string | undefined) {\r\n this._setOption('accessKey', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies whether the UI component changes its visual state as a result of user interaction.\r\n \r\n */\r\n @Input()\r\n get activeStateEnabled(): boolean {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value: boolean) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies whether users can select tasks in the Gantt.\r\n \r\n */\r\n @Input()\r\n get allowSelection(): boolean {\r\n return this._getOption('allowSelection');\r\n }\r\n set allowSelection(value: boolean) {\r\n this._setOption('allowSelection', value);\r\n }\r\n\r\n\r\n /**\r\n * An array of columns in the Gantt.\r\n \r\n */\r\n @Input()\r\n get columns(): Array<dxGanttColumn | string> {\r\n return this._getOption('columns');\r\n }\r\n set columns(value: Array<dxGanttColumn | string>) {\r\n this._setOption('columns', value);\r\n }\r\n\r\n\r\n /**\r\n * Configures the context menu settings.\r\n \r\n */\r\n @Input()\r\n get contextMenu(): dxGanttContextMenu {\r\n return this._getOption('contextMenu');\r\n }\r\n set contextMenu(value: dxGanttContextMenu) {\r\n this._setOption('contextMenu', value);\r\n }\r\n\r\n\r\n /**\r\n * Configures dependencies.\r\n \r\n */\r\n @Input()\r\n get dependencies(): { dataSource?: Array<any> | DataSource | DataSourceOptions | null | Store | string, keyExpr?: Function | string, predecessorIdExpr?: Function | string, successorIdExpr?: Function | string, typeExpr?: Function | string } {\r\n return this._getOption('dependencies');\r\n }\r\n set dependencies(value: { dataSource?: Array<any> | DataSource | DataSourceOptions | null | Store | string, keyExpr?: Function | string, predecessorIdExpr?: Function | string, successorIdExpr?: Function | string, typeExpr?: Function | string }) {\r\n this._setOption('dependencies', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies whether the UI component responds to user interaction.\r\n \r\n */\r\n @Input()\r\n get disabled(): boolean {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value: boolean) {\r\n this._setOption('disabled', value);\r\n }\r\n\r\n\r\n /**\r\n * Configures edit properties.\r\n \r\n */\r\n @Input()\r\n get editing(): { allowDependencyAdding?: boolean, allowDependencyDeleting?: boolean, allowResourceAdding?: boolean, allowResourceDeleting?: boolean, allowResourceUpdating?: boolean, allowTaskAdding?: boolean, allowTaskDeleting?: boolean, allowTaskResourceUpdating?: boolean, allowTaskUpdating?: boolean, enabled?: boolean } {\r\n return this._getOption('editing');\r\n }\r\n set editing(value: { allowDependencyAdding?: boolean, allowDependencyDeleting?: boolean, allowResourceAdding?: boolean, allowResourceDeleting?: boolean, allowResourceUpdating?: boolean, allowTaskAdding?: boolean, allowTaskDeleting?: boolean, allowTaskResourceUpdating?: boolean, allowTaskUpdating?: boolean, enabled?: boolean }) {\r\n this._setOption('editing', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies the global attributes to be attached to the UI component's container element.\r\n \r\n */\r\n @Input()\r\n get elementAttr(): Record<string, any> {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value: Record<string, any>) {\r\n this._setOption('elementAttr', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies the end date of the date interval in the Gantt chart.\r\n \r\n */\r\n @Input()\r\n get endDateRange(): Date {\r\n return this._getOption('endDateRange');\r\n }\r\n set endDateRange(value: Date) {\r\n this._setOption('endDateRange', value);\r\n }\r\n\r\n\r\n /**\r\n * Configures filter row settings.\r\n \r\n */\r\n @Input()\r\n get filterRow(): dxGanttFilterRow {\r\n return this._getOption('filterRow');\r\n }\r\n set filterRow(value: dxGanttFilterRow) {\r\n this._setOption('filterRow', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies the first day of a week.\r\n \r\n */\r\n @Input()\r\n get firstDayOfWeek(): FirstDayOfWeek | undefined {\r\n return this._getOption('firstDayOfWeek');\r\n }\r\n set firstDayOfWeek(value: FirstDayOfWeek | undefined) {\r\n this._setOption('firstDayOfWeek', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies whether the UI component can be focused using keyboard navigation.\r\n \r\n */\r\n @Input()\r\n get focusStateEnabled(): boolean {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value: boolean) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n\r\n\r\n /**\r\n * Configures the header filter settings.\r\n \r\n */\r\n @Input()\r\n get headerFilter(): dxGanttHeaderFilter {\r\n return this._getOption('headerFilter');\r\n }\r\n set headerFilter(value: dxGanttHeaderFilter) {\r\n this._setOption('headerFilter', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies the UI component's height.\r\n \r\n */\r\n @Input()\r\n get height(): number | string | undefined {\r\n return this._getOption('height');\r\n }\r\n set height(value: number | string | undefined) {\r\n this._setOption('height', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies text for a hint that appears when a user pauses on the UI component.\r\n \r\n */\r\n @Input()\r\n get hint(): string | undefined {\r\n return this._getOption('hint');\r\n }\r\n set hint(value: string | undefined) {\r\n this._setOption('hint', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies whether the UI component changes its state when a user pauses on it.\r\n \r\n */\r\n @Input()\r\n get hoverStateEnabled(): boolean {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value: boolean) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n\r\n\r\n /**\r\n * Configures resource assignments.\r\n \r\n */\r\n @Input()\r\n get resourceAssignments(): { dataSource?: Array<any> | DataSource | DataSourceOptions | null | Store | string, keyExpr?: Function | string, resourceIdExpr?: Function | string, taskIdExpr?: Function | string } {\r\n return this._getOption('resourceAssignments');\r\n }\r\n set resourceAssignments(value: { dataSource?: Array<any> | DataSource | DataSourceOptions | null | Store | string, keyExpr?: Function | string, resourceIdExpr?: Function | string, taskIdExpr?: Function | string }) {\r\n this._setOption('resourceAssignments', value);\r\n }\r\n\r\n\r\n /**\r\n * Configures task resources.\r\n \r\n */\r\n @Input()\r\n get resources(): { colorExpr?: Function | string, dataSource?: Array<any> | DataSource | DataSourceOptions | null | Store | string, keyExpr?: Function | string, textExpr?: Function | string } {\r\n return this._getOption('resources');\r\n }\r\n set resources(value: { colorExpr?: Function | string, dataSource?: Array<any> | DataSource | DataSourceOptions | null | Store | string, keyExpr?: Function | string, textExpr?: Function | string }) {\r\n this._setOption('resources', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies the root task's identifier.\r\n \r\n */\r\n @Input()\r\n get rootValue(): any {\r\n return this._getOption('rootValue');\r\n }\r\n set rootValue(value: any) {\r\n this._setOption('rootValue', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies the zoom level of tasks in the Gantt chart.\r\n \r\n */\r\n @Input()\r\n get scaleType(): GanttScaleType {\r\n return this._getOption('scaleType');\r\n }\r\n set scaleType(value: GanttScaleType) {\r\n this._setOption('scaleType', value);\r\n }\r\n\r\n\r\n /**\r\n * Configures zoom range settings.\r\n \r\n */\r\n @Input()\r\n get scaleTypeRange(): { max?: GanttScaleType, min?: GanttScaleType } {\r\n return this._getOption('scaleTypeRange');\r\n }\r\n set scaleTypeRange(value: { max?: GanttScaleType, min?: GanttScaleType }) {\r\n this._setOption('scaleTypeRange', value);\r\n }\r\n\r\n\r\n /**\r\n * Allows you to select a row or determine which row is selected.\r\n \r\n */\r\n @Input()\r\n get selectedRowKey(): any | undefined {\r\n return this._getOption('selectedRowKey');\r\n }\r\n set selectedRowKey(value: any | undefined) {\r\n this._setOption('selectedRowKey', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies whether to display dependencies between tasks.\r\n \r\n */\r\n @Input()\r\n get showDependencies(): boolean {\r\n return this._getOption('showDependencies');\r\n }\r\n set showDependencies(value: boolean) {\r\n this._setOption('showDependencies', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies whether to display task resources.\r\n \r\n */\r\n @Input()\r\n get showResources(): boolean {\r\n return this._getOption('showResources');\r\n }\r\n set showResources(value: boolean) {\r\n this._setOption('showResources', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies whether to show/hide horizontal faint lines that separate tasks.\r\n \r\n */\r\n @Input()\r\n get showRowLines(): boolean {\r\n return this._getOption('showRowLines');\r\n }\r\n set showRowLines(value: boolean) {\r\n this._setOption('showRowLines', value);\r\n }\r\n\r\n\r\n /**\r\n * Configures sort settings.\r\n \r\n */\r\n @Input()\r\n get sorting(): dxGanttSorting {\r\n return this._getOption('sorting');\r\n }\r\n set sorting(value: dxGanttSorting) {\r\n this._setOption('sorting', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies the start date of the date interval in the Gantt chart.\r\n \r\n */\r\n @Input()\r\n get startDateRange(): Date {\r\n return this._getOption('startDateRange');\r\n }\r\n set startDateRange(value: Date) {\r\n this._setOption('startDateRange', value);\r\n }\r\n\r\n\r\n /**\r\n * Configures strip lines.\r\n \r\n */\r\n @Input()\r\n get stripLines(): Array<dxGanttStripLine> {\r\n return this._getOption('stripLines');\r\n }\r\n set stripLines(value: Array<dxGanttStripLine>) {\r\n this._setOption('stripLines', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies the number of the element when the Tab key is used for navigating.\r\n \r\n */\r\n @Input()\r\n get tabIndex(): number {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value: number) {\r\n this._setOption('tabIndex', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies custom content for the task.\r\n \r\n */\r\n @Input()\r\n get taskContentTemplate(): any {\r\n return this._getOption('taskContentTemplate');\r\n }\r\n set taskContentTemplate(value: any) {\r\n this._setOption('taskContentTemplate', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies the width of task list columns in pixels.\r\n \r\n */\r\n @Input()\r\n get taskListWidth(): number {\r\n return this._getOption('taskListWidth');\r\n }\r\n set taskListWidth(value: number) {\r\n this._setOption('taskListWidth', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies custom content for the tooltip that displays the task's progress while the progress handler is resized in the UI.\r\n \r\n */\r\n @Input()\r\n get taskProgressTooltipContentTemplate(): any {\r\n return this._getOption('taskProgressTooltipContentTemplate');\r\n }\r\n set taskProgressTooltipContentTemplate(value: any) {\r\n this._setOption('taskProgressTooltipContentTemplate', value);\r\n }\r\n\r\n\r\n /**\r\n * Configures tasks.\r\n \r\n */\r\n @Input()\r\n get tasks(): { colorExpr?: Function | string, dataSource?: Array<any> | DataSource | DataSourceOptions | null | Store | string, endExpr?: Function | string, keyExpr?: Function | string, parentIdExpr?: Function | string, progressExpr?: Function | string, startExpr?: Function | string, titleExpr?: Function | string } {\r\n return this._getOption('tasks');\r\n }\r\n set tasks(value: { colorExpr?: Function | string, dataSource?: Array<any> | DataSource | DataSourceOptions | null | Store | string, endExpr?: Function | string, keyExpr?: Function | string, parentIdExpr?: Function | string, progressExpr?: Function | string, startExpr?: Function | string, titleExpr?: Function | string }) {\r\n this._setOption('tasks', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies custom content for the tooltip that displays the task's start and end time while the task is resized in the UI.\r\n \r\n */\r\n @Input()\r\n get taskTimeTooltipContentTemplate(): any {\r\n return this._getOption('taskTimeTooltipContentTemplate');\r\n }\r\n set taskTimeTooltipContentTemplate(value: any) {\r\n this._setOption('taskTimeTooltipContentTemplate', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies a task's title position.\r\n \r\n */\r\n @Input()\r\n get taskTitlePosition(): GanttTaskTitlePosition {\r\n return this._getOption('taskTitlePosition');\r\n }\r\n set taskTitlePosition(value: GanttTaskTitlePosition) {\r\n this._setOption('taskTitlePosition', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies custom content for the task tooltip.\r\n \r\n */\r\n @Input()\r\n get taskTooltipContentTemplate(): any {\r\n return this._getOption('taskTooltipContentTemplate');\r\n }\r\n set taskTooltipContentTemplate(value: any) {\r\n this._setOption('taskTooltipContentTemplate', value);\r\n }\r\n\r\n\r\n /**\r\n * Configures toolbar settings.\r\n \r\n */\r\n @Input()\r\n get toolbar(): dxGanttToolbar {\r\n return this._getOption('toolbar');\r\n }\r\n set toolbar(value: dxGanttToolbar) {\r\n this._setOption('toolbar', value);\r\n }\r\n\r\n\r\n /**\r\n * Configures validation properties.\r\n \r\n */\r\n @Input()\r\n get validation(): { autoUpdateParentTasks?: boolean, enablePredecessorGap?: boolean, validateDependencies?: boolean } {\r\n return this._getOption('validation');\r\n }\r\n set validation(value: { autoUpdateParentTasks?: boolean, enablePredecessorGap?: boolean, validateDependencies?: boolean }) {\r\n this._setOption('validation', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies whether the UI component is visible.\r\n \r\n */\r\n @Input()\r\n get visible(): boolean {\r\n return this._getOption('visible');\r\n }\r\n set visible(value: boolean) {\r\n this._setOption('visible', value);\r\n }\r\n\r\n\r\n /**\r\n * Specifies the UI component's width.\r\n \r\n */\r\n @Input()\r\n get width(): number | string | undefined {\r\n return this._getOption('width');\r\n }\r\n set width(value: number | string | undefined) {\r\n this._setOption('width', value);\r\n }\r\n\r\n /**\r\n \r\n * A function that is executed when the UI component is rendered and each time the component is repainted.\r\n \r\n \r\n */\r\n @Output() onContentReady: EventEmitter<ContentReadyEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed before the context menu is rendered.\r\n \r\n \r\n */\r\n @Output() onContextMenuPreparing: EventEmitter<ContextMenuPreparingEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed after a custom command item was clicked. Allows you to implement a custom command's functionality.\r\n \r\n \r\n */\r\n @Output() onCustomCommand: EventEmitter<CustomCommandEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed when a dependency is deleted.\r\n \r\n \r\n */\r\n @Output() onDependencyDeleted: EventEmitter<DependencyDeletedEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed before a dependency is deleted.\r\n \r\n \r\n */\r\n @Output() onDependencyDeleting: EventEmitter<DependencyDeletingEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed when a dependency is inserted.\r\n \r\n \r\n */\r\n @Output() onDependencyInserted: EventEmitter<DependencyInsertedEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed before a dependency is inserted.\r\n \r\n \r\n */\r\n @Output() onDependencyInserting: EventEmitter<DependencyInsertingEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed before the UI component is disposed of.\r\n \r\n \r\n */\r\n @Output() onDisposing: EventEmitter<DisposingEvent>;\r\n\r\n /**\r\n \r\n * A function used in JavaScript frameworks to save the UI component instance.\r\n \r\n \r\n */\r\n @Output() onInitialized: EventEmitter<InitializedEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed after a UI component property is changed.\r\n \r\n \r\n */\r\n @Output() onOptionChanged: EventEmitter<OptionChangedEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed when a resource is assigned to a task.\r\n \r\n \r\n */\r\n @Output() onResourceAssigned: EventEmitter<ResourceAssignedEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed before a resource is assigned to a task.\r\n \r\n \r\n */\r\n @Output() onResourceAssigning: EventEmitter<ResourceAssigningEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed when a resource is deleted.\r\n \r\n \r\n */\r\n @Output() onResourceDeleted: EventEmitter<ResourceDeletedEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed before a resource is deleted.\r\n \r\n \r\n */\r\n @Output() onResourceDeleting: EventEmitter<ResourceDeletingEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed when a resource is inserted.\r\n \r\n \r\n */\r\n @Output() onResourceInserted: EventEmitter<ResourceInsertedEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed before a resource is inserted.\r\n \r\n \r\n */\r\n @Output() onResourceInserting: EventEmitter<ResourceInsertingEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed before the Resource Manager dialog is shown.\r\n \r\n \r\n */\r\n @Output() onResourceManagerDialogShowing: EventEmitter<ResourceManagerDialogShowingEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed when a resource is unassigned from a task.\r\n \r\n \r\n */\r\n @Output() onResourceUnassigned: EventEmitter<ResourceUnassignedEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed before a resource is unassigned from a task.\r\n \r\n \r\n */\r\n @Output() onResourceUnassigning: EventEmitter<ResourceUnassigningEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed before a scale cell is prepared.\r\n \r\n \r\n */\r\n @Output() onScaleCellPrepared: EventEmitter<ScaleCellPreparedEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed after users select a task or clear its selection.\r\n \r\n \r\n */\r\n @Output() onSelectionChanged: EventEmitter<SelectionChangedEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed when a user clicks a task.\r\n \r\n \r\n */\r\n @Output() onTaskClick: EventEmitter<TaskClickEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed when a user double-clicks a task.\r\n \r\n \r\n */\r\n @Output() onTaskDblClick: EventEmitter<TaskDblClickEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed when a task is deleted.\r\n \r\n \r\n */\r\n @Output() onTaskDeleted: EventEmitter<TaskDeletedEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed before a task is deleted.\r\n \r\n \r\n */\r\n @Output() onTaskDeleting: EventEmitter<TaskDeletingEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed before the edit dialog is shown.\r\n \r\n \r\n */\r\n @Output() onTaskEditDialogShowing: EventEmitter<TaskEditDialogShowingEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed when a task is inserted.\r\n \r\n \r\n */\r\n @Output() onTaskInserted: EventEmitter<TaskInsertedEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed before a task is inserted.\r\n \r\n \r\n */\r\n @Output() onTaskInserting: EventEmitter<TaskInsertingEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed before a task is moved.\r\n \r\n \r\n */\r\n @Output() onTaskMoving: EventEmitter<TaskMovingEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed when a task is updated.\r\n \r\n \r\n */\r\n @Output() onTaskUpdated: EventEmitter<TaskUpdatedEvent>;\r\n\r\n /**\r\n \r\n * A function that is executed before a task is updated.\r\n \r\n \r\n */\r\n @Output() onTaskUpdating: EventEmitter<TaskUpdatingEvent>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() accessKeyChange: EventEmitter<string | undefined>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() activeStateEnabledChange: EventEmitter<boolean>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() allowSelectionChange: EventEmitter<boolean>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() columnsChange: EventEmitter<Array<dxGanttColumn | string>>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() contextMenuChange: EventEmitter<dxGanttContextMenu>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() dependenciesChange: EventEmitter<{ dataSource?: Array<any> | DataSource | DataSourceOptions | null | Store | string, keyExpr?: Function | string, predecessorIdExpr?: Function | string, successorIdExpr?: Function | string, typeExpr?: Function | string }>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() disabledChange: EventEmitter<boolean>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() editingChange: EventEmitter<{ allowDependencyAdding?: boolean, allowDependencyDeleting?: boolean, allowResourceAdding?: boolean, allowResourceDeleting?: boolean, allowResourceUpdating?: boolean, allowTaskAdding?: boolean, allowTaskDeleting?: boolean, allowTaskResourceUpdating?: boolean, allowTaskUpdating?: boolean, enabled?: boolean }>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() elementAttrChange: EventEmitter<Record<string, any>>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() endDateRangeChange: EventEmitter<Date>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() filterRowChange: EventEmitter<dxGanttFilterRow>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() firstDayOfWeekChange: EventEmitter<FirstDayOfWeek | undefined>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() focusStateEnabledChange: EventEmitter<boolean>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() headerFilterChange: EventEmitter<dxGanttHeaderFilter>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() heightChange: EventEmitter<number | string | undefined>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() hintChange: EventEmitter<string | undefined>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() hoverStateEnabledChange: EventEmitter<boolean>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() resourceAssignmentsChange: EventEmitter<{ dataSource?: Array<any> | DataSource | DataSourceOptions | null | Store | string, keyExpr?: Function | string, resourceIdExpr?: Function | string, taskIdExpr?: Function | string }>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() resourcesChange: EventEmitter<{ colorExpr?: Function | string, dataSource?: Array<any> | DataSource | DataSourceOptions | null | Store | string, keyExpr?: Function | string, textExpr?: Function | string }>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() rootValueChange: EventEmitter<any>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() scaleTypeChange: EventEmitter<GanttScaleType>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() scaleTypeRangeChange: EventEmitter<{ max?: GanttScaleType, min?: GanttScaleType }>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() selectedRowKeyChange: EventEmitter<any | undefined>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() showDependenciesChange: EventEmitter<boolean>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() showResourcesChange: EventEmitter<boolean>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() showRowLinesChange: EventEmitter<boolean>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() sortingChange: EventEmitter<dxGanttSorting>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() startDateRangeChange: EventEmitter<Date>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() stripLinesChange: EventEmitter<Array<dxGanttStripLine>>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() tabIndexChange: EventEmitter<number>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() taskContentTemplateChange: EventEmitter<any>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() taskListWidthChange: EventEmitter<number>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() taskProgressTooltipContentTemplateChange: EventEmitter<any>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() tasksChange: EventEmitter<{ colorExpr?: Function | string, dataSource?: Array<any> | DataSource | DataSourceOptions | null | Store | string, endExpr?: Function | string, keyExpr?: Function | string, parentIdExpr?: Function | string, progressExpr?: Function | string, startExpr?: Function | string, titleExpr?: Function | string }>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() taskTimeTooltipContentTemplateChange: EventEmitter<any>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() taskTitlePositionChange: EventEmitter<GanttTaskTitlePosition>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() taskTooltipContentTemplateChange: EventEmitter<any>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() toolbarChange: EventEmitter<dxGanttToolbar>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() validationChange: EventEmitter<{ autoUpdateParentTasks?: boolean, enablePredecessorGap?: boolean, validateDependencies?: boolean }>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() visibleChange: EventEmitter<boolean>;\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() widthChange: EventEmitter<number | string | undefined>;\r\n\r\n\r\n\r\n\r\n @ContentChildren(DxiGanttColumnComponent)\r\n get columnsChildren(): QueryList<DxiGanttColumnComponent> {\r\n return this._getOption('columns');\r\n }\r\n set columnsChildren(value) {\r\n this._setChildren('columns', value, 'DxiGanttColumnComponent');\r\n }\r\n\r\n @ContentChildren(DxiGanttStripLineComponent)\r\n get stripLinesChildren(): QueryList<DxiGanttStripLineComponent> {\r\n return this._getOption('stripLines');\r\n }\r\n set stripLinesChildren(value) {\r\n this._setChildren('stripLines', value, 'DxiGanttStripLineComponent');\r\n }\r\n\r\n\r\n @ContentChildren(DxiColumnComponent)\r\n get columnsLegacyChildren(): QueryList<DxiColumnComponent> {\r\n return this._getOption('columns');\r\n }\r\n set columnsLegacyChildren(value) {\r\n this._setChildren('columns', value, 'DxiColumnComponent');\r\n }\r\n\r\n @ContentChildren(DxiStripLineComponent)\r\n get stripLinesLegacyChildren(): QueryList<DxiStripLineComponent> {\r\n return this._getOption('stripLines');\r\n }\r\n set stripLinesLegacyChildren(value) {\r\n this._setChildren('stripLines', value, 'DxiStripLineComponent');\r\n }\r\n\r\n\r\n\r\n\r\n constructor(elementRef: ElementRef, ngZone: NgZone, templateHost: DxTemplateHost,\r\n private _watcherHelper: WatcherHelper,\r\n private _idh: IterableDifferHelper,\r\n optionHost: NestedOptionHost,\r\n transferState: TransferState,\r\n @Inject(PLATFORM_ID) platformId: any) {\r\n\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'contextMenuPreparing', emit: 'onContextMenuPreparing' },\r\n { subscribe: 'customCommand', emit: 'onCustomCommand' },\r\n { subscribe: 'dependencyDeleted', emit: 'onDependencyDeleted' },\r\n { subscribe: 'dependencyDeleting', emit: 'onDependencyDeleting' },\r\n { subscribe: 'dependencyInserted', emit: 'onDependencyInserted' },\r\n { subscribe: 'dependencyInserting', emit: 'onDependencyInserting' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'resourceAssigned', emit: 'onResourceAssigned' },\r\n { subscribe: 'resourceAssigning', emit: 'onResourceAssigning' },\r\n { subscribe: 'resourceDeleted', emit: 'onResourceDeleted' },\r\n { subscribe: 'resourceDeleting', emit: 'onResourceDeleting' },\r\n { subscribe: 'resourceInserted', emit: 'onResourceInserted' },\r\n { subscribe: 'resourceInserting', emit: 'onResourceInserting' },\r\n { subscribe: 'resourceManagerDialogShowing', emit: 'onResourceManagerDialogShowing' },\r\n { subscribe: 'resourceUnassigned', emit: 'onResourceUnassigned' },\r\n { subscribe: 'resourceUnassigning', emit: 'onResourceUnassigning' },\r\n { subscribe: 'scaleCellPrepared', emit: 'onScaleCellPrepared' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { subscribe: 'taskClick', emit: 'onTaskClick' },\r\n { subscribe: 'taskDblClick', emit: 'onTaskDblClick' },\r\n { subscribe: 'taskDeleted', emit: 'onTaskDeleted' },\r\n { subscribe: 'taskDeleting', emit: 'onTaskDeleting' },\r\n { subscribe: 'taskEditDialogShowing', emit: 'onTaskEditDialogShowing' },\r\n { subscribe: 'taskInserted', emit: 'onTaskInserted' },\r\n { subscribe: 'taskInserting', emit: 'onTaskInserting' },\r\n { subscribe: 'taskMoving', emit: 'onTaskMoving' },\r\n { subscribe: 'taskUpdated', emit: 'onTaskUpdated' },\r\n { subscribe: 'taskUpdating', emit: 'onTaskUpdating' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'allowSelectionChange' },\r\n { emit: 'columnsChange' },\r\n { emit: 'contextMenuChange' },\r\n { emit: 'dependenciesChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'editingChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'endDateRangeChange' },\r\n { emit: 'filterRowChange' },\r\n { emit: 'firstDayOfWeekChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'headerFilterChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'resourceAssignmentsChange' },\r\n { emit: 'resourcesChange' },\r\n { emit: 'rootValueChange' },\r\n { emit: 'scaleTypeChange' },\r\n { emit: 'scaleTypeRangeChange' },\r\n { emit: 'selectedRowKeyChange' },\r\n { emit: 'showDependenciesChange' },\r\n { emit: 'showResourcesChange' },\r\n { emit: 'showRowLinesChange' },\r\n { emit: 'sortingChange' },\r\n { emit: 'startDateRangeChange' },\r\n { emit: 'stripLinesChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'taskContentTemplateChange' },\r\n { emit: 'taskListWidthChange' },\r\n { emit: 'taskProgressTooltipContentTemplateChange' },\r\n { emit: 'tasksChange' },\r\n { emit: 'taskTimeTooltipContentTemplateChange' },\r\n { emit: 'taskTitlePositionChange' },\r\n { emit: 'taskTooltipContentTemplateChange' },\r\n { emit: 'toolbarChange' },\r\n { emit: 'validationChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n\r\n protected _createInstance(element, options) {\r\n\r\n return new DxGantt(element, options);\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('columns', changes);\r\n this.setupChanges('stripLines', changes);\r\n }\r\n\r\n setupChanges(prop: string, changes: SimpleChanges) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n\r\n ngDoCheck() {\r\n this._idh.doCheck('columns');\r\n this._idh.doCheck('stripLines');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n\r\n _setOption(name: string, value: any) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n DxGanttComponent,\r\n DxiColumnModule,\r\n DxoFormatModule,\r\n DxoHeaderFilterModule,\r\n DxoSearchModule,\r\n DxoContextMenuModule,\r\n DxiItemModule,\r\n DxoDependenciesModule,\r\n DxoEditingModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoTextsModule,\r\n DxoResourceAssignmentsModule,\r\n DxoResourcesModule,\r\n DxoScaleTypeRangeModule,\r\n DxoSortingModule,\r\n DxiStripLineModule,\r\n DxoTasksModule,\r\n DxoToolbarModule,\r\n DxoValidationModule,\r\n DxiGanttColumnModule,\r\n DxoGanttColumnHeaderFilterModule,\r\n DxoGanttColumnHeaderFilterSearchModule,\r\n DxoGanttContextMenuModule,\r\n DxiGanttContextMenuItemModule,\r\n DxiGanttContextMenuItemItemModule,\r\n DxoGanttDependenciesModule,\r\n DxoGanttEditingModule,\r\n DxoGanttFilterRowModule,\r\n DxoGanttFormatModule,\r\n DxoGanttGanttHeaderFilterModule,\r\n DxoGanttGanttHeaderFilterSearchModule,\r\n DxoGanttHeaderFilterModule,\r\n DxiGanttItemModule,\r\n DxoGanttOperationDescriptionsModule,\r\n DxoGanttResourceAssignmentsModule,\r\n DxoGanttResourcesModule,\r\n DxoGanttScaleTypeRangeModule,\r\n DxoGanttSearchModule,\r\n DxoGanttSortingModule,\r\n DxiGanttStripLineModule,\r\n DxoGanttTasksModule,\r\n DxoGanttTextsModule,\r\n DxoGanttToolbarModule,\r\n DxiGanttToolbarItemModule,\r\n DxoGanttValidationModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n exports: [\r\n DxGanttComponent,\r\n DxiColumnModule,\r\n DxoFormatModule,\r\n DxoHeaderFilterModule,\r\n DxoSearchModule,\r\n DxoContextMenuModule,\r\n DxiItemModule,\r\n DxoDependenciesModule,\r\n DxoEditingModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoTextsModule,\r\n DxoResourceAssignmentsModule,\r\n DxoResourcesModule,\r\n DxoScaleTypeRangeModule,\r\n DxoSortingModule,\r\n DxiStripLineModule,\r\n DxoTasksModule,\r\n DxoToolbarModule,\r\n DxoValidationModule,\r\n DxiGanttColumnModule,\r\n DxoGanttColumnHeaderFilterModule,\r\n DxoGanttColumnHeaderFilterSearchModule,\r\n DxoGanttContextMenuModule,\r\n DxiGanttContextMenuItemModule,\r\n DxiGanttContextMenuItemItemModule,\r\n DxoGanttDependenciesModule,\r\n DxoGanttEditingModule,\r\n DxoGanttFilterRowModule,\r\n DxoGanttFormatModule,\r\n DxoGanttGanttHeaderFilterModule,\r\n DxoGanttGanttHeaderFilterSearchModule,\r\n DxoGanttHeaderFilterModule,\r\n DxiGanttItemModule,\r\n DxoGanttOperationDescriptionsModule,\r\n DxoGanttResourceAssignmentsModule,\r\n DxoGanttResourcesModule,\r\n DxoGanttScaleTypeRangeModule,\r\n DxoGanttSearchModule,\r\n DxoGanttSortingModule,\r\n DxiGanttStripLineModule,\r\n DxoGanttTasksModule,\r\n DxoGanttTextsModule,\r\n DxoGanttToolbarModule,\r\n DxiGanttToolbarItemModule,\r\n DxoGanttValidationModule,\r\n DxTemplateModule\r\n ]\r\n})\r\nexport class DxGanttModule { }\r\n\r\nexport * from 'devextreme-angular/ui/gantt/nested';\r\n\r\nimport type * as DxGanttTypes from \"devextreme/ui/gantt_types\";\r\nexport { DxGanttTypes };\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;AAWG;AAEH;AAiGA;;;AAGG;AAcG,MAAO,gBAAiB,SAAQ,WAAW,CAAA;AAslC7B,IAAA,cAAA,CAAA;AACA,IAAA,IAAA,CAAA;IAtlChB,QAAQ,GAAY,IAAI,CAAC;AAEzB;;;AAGG;AACH,IAAA,IACI