@progress/kendo-angular-gantt 17.2.1-develop.2 → 17.3.0-develop.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/directives.d.ts +3 -1
  2. package/dragging/task-drag.directive.d.ts +29 -0
  3. package/dragging/task-drag.service.d.ts +49 -0
  4. package/esm2022/directives.mjs +5 -1
  5. package/esm2022/dragging/task-drag.directive.mjs +81 -0
  6. package/esm2022/dragging/task-drag.service.mjs +231 -0
  7. package/esm2022/gantt.component.mjs +49 -9
  8. package/esm2022/gantt.module.mjs +3 -1
  9. package/esm2022/index.mjs +2 -0
  10. package/esm2022/localization/messages.mjs +13 -1
  11. package/esm2022/models/events/{task-move-start-event.interface.mjs → index.mjs} +1 -1
  12. package/esm2022/models/models.mjs +2 -1
  13. package/esm2022/package-metadata.mjs +2 -2
  14. package/esm2022/rendering/gantt-task-base.mjs +9 -1
  15. package/esm2022/rendering/gantt-task.component.mjs +20 -7
  16. package/esm2022/rendering/gantt-tasks-table-body.component.mjs +35 -12
  17. package/esm2022/template-directives/task-tooltip-template.directive.mjs +49 -0
  18. package/esm2022/timeline/gantt-timeline.component.mjs +205 -13
  19. package/fesm2022/progress-kendo-angular-gantt.mjs +681 -66
  20. package/gantt.component.d.ts +18 -2
  21. package/gantt.module.d.ts +3 -1
  22. package/index.d.ts +2 -0
  23. package/localization/messages.d.ts +9 -1
  24. package/models/events/index.d.ts +21 -0
  25. package/models/events/task-drag-event.interface.d.ts +67 -0
  26. package/models/models.d.ts +4 -24
  27. package/models/tooltip-options.interface.d.ts +28 -0
  28. package/package.json +16 -15
  29. package/rendering/gantt-task-base.d.ts +7 -1
  30. package/rendering/gantt-task.component.d.ts +1 -0
  31. package/rendering/gantt-tasks-table-body.component.d.ts +7 -2
  32. package/schematics/ngAdd/index.js +7 -7
  33. package/template-directives/task-tooltip-template.directive.d.ts +38 -0
  34. package/timeline/gantt-timeline.component.d.ts +31 -6
  35. package/esm2022/models/events/task-resize-end-event.interface.mjs +0 -5
  36. package/esm2022/models/events/task-resize-event.interface.mjs +0 -5
  37. package/esm2022/models/events/task-resize-start-event.interface.mjs +0 -5
  38. package/models/events/task-move-end-event.interface.d.ts +0 -12
  39. package/models/events/task-move-event.interface.d.ts +0 -23
  40. package/models/events/task-move-start-event.interface.d.ts +0 -15
  41. package/models/events/task-resize-end-event.interface.d.ts +0 -12
  42. package/models/events/task-resize-event.interface.d.ts +0 -23
  43. package/models/events/task-resize-start-event.interface.d.ts +0 -15
  44. /package/esm2022/models/events/{task-move-end-event.interface.mjs → task-drag-event.interface.mjs} +0 -0
  45. /package/esm2022/models/{events/task-move-event.interface.mjs → tooltip-options.interface.mjs} +0 -0
@@ -39,6 +39,8 @@ import { DragScrollSettings } from './scrolling/drag-scroll-settings';
39
39
  import { FilterableSettings } from './models/filterable-settings';
40
40
  import { CurrentTimeMarkerService } from './timeline/current-time-marker.service';
41
41
  import { CurrentTimeSettings } from './models/current-time-settings.interface';
42
+ import { GanttTaskTooltipTemplateDirective } from './template-directives/task-tooltip-template.directive';
43
+ import { TaskTooltipOptions } from './models/tooltip-options.interface';
42
44
  import * as i0 from "@angular/core";
43
45
  /**
44
46
  * Represents the Kendo UI Gantt component for Angular.
@@ -120,7 +122,7 @@ export declare class GanttComponent implements AfterContentInit, OnChanges, OnDe
120
122
  private dependencyDomService;
121
123
  private editService;
122
124
  private localizationService;
123
- private hostElement;
125
+ hostElement: ElementRef<HTMLElement>;
124
126
  private zone;
125
127
  private navigation;
126
128
  private currentTimeMarkerService;
@@ -142,6 +144,14 @@ export declare class GanttComponent implements AfterContentInit, OnChanges, OnDe
142
144
  * Therefore the `static` property needs to be set to `false`.
143
145
  */
144
146
  taskTemplate: GanttTaskTemplateDirective;
147
+ /**
148
+ * @hidden
149
+ *
150
+ * Queries the template for a task tooltip template declaration.
151
+ * In newer Angular versions the ngIf-ed value gets evaluated after the static query is resolved.
152
+ * Therefore the `static` property needs to be set to `false`.
153
+ */
154
+ taskTooltipTemplate: GanttTaskTooltipTemplateDirective;
145
155
  /**
146
156
  * @hidden
147
157
  *
@@ -388,6 +398,12 @@ export declare class GanttComponent implements AfterContentInit, OnChanges, OnDe
388
398
  */
389
399
  set dragScrollSettings(settings: DragScrollSettings);
390
400
  get dragScrollSettings(): DragScrollSettings;
401
+ /**
402
+ * Allows setting the task tooltip `position`, `callout`, and `showAfter` options.
403
+ *
404
+ * @default { position: 'top', callout: true, showAfter: 100 }
405
+ */
406
+ taskTooltipOptions: TaskTooltipOptions;
391
407
  /**
392
408
  * Fires when an item is expanded.
393
409
  */
@@ -771,5 +787,5 @@ export declare class GanttComponent implements AfterContentInit, OnChanges, OnDe
771
787
  private defaultValidateNewDependencyCallback;
772
788
  private handleKeydown;
773
789
  static ɵfac: i0.ɵɵFactoryDeclaration<GanttComponent, never>;
774
- 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; }; }, { "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", "summaryTaskTemplate", "toolbarTemplateChildren", "columns", "views"], never, true, never>;
790
+ 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>;
775
791
  }
package/gantt.module.d.ts CHANGED
@@ -30,6 +30,8 @@ import * as i24 from "./timeline/timeline-year-view.component";
30
30
  import * as i25 from "./selection/selectable.directive";
31
31
  import * as i26 from "./localization/custom-messages.component";
32
32
  import * as i27 from "./editing/add-task.component";
33
+ import * as i28 from "./dragging/task-drag.directive";
34
+ import * as i29 from "./template-directives/task-tooltip-template.directive";
33
35
  /**
34
36
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
35
37
  * definition for the Gantt component.
@@ -63,6 +65,6 @@ import * as i27 from "./editing/add-task.component";
63
65
  */
64
66
  export declare class GanttModule {
65
67
  static ɵfac: i0.ɵɵFactoryDeclaration<GanttModule, never>;
66
- static ɵmod: i0.ɵɵNgModuleDeclaration<GanttModule, never, [typeof i1.GanttComponent, typeof i2.GanttFlatBindingDirective, typeof i3.GanttHierarchyBindingDirective, typeof i4.GanttTaskContentTemplateDirective, typeof i5.GanttTaskTemplateDirective, typeof i6.GanttSummaryTaskTemplateDirective, typeof i7.ToolbarTemplateDirective, typeof i8.ViewSelectorComponent, typeof i9.GanttColumnComponent, typeof i10.GanttColumnGroupComponent, typeof i11.GanttSpanColumnComponent, typeof i12.FilterCellTemplateDirective, typeof i13.FilterMenuTemplateDirective, typeof i14.CellTemplateDirective, typeof i15.EditTemplateDirective, typeof i16.ColumnMenuTemplateDirective, typeof i17.HeaderTemplateDirective, typeof i18.FooterTemplateDirective, typeof i19.GanttExpandableDirective, typeof i20.DependencyDragCreateDirective, typeof i21.TimelineDayViewComponent, typeof i22.TimelineWeekViewComponent, typeof i23.TimelineMonthViewComponent, typeof i24.TimelineYearViewComponent, typeof i25.SelectableDirective, typeof i26.CustomMessagesComponent, typeof i27.GanttAddTaskComponent], [typeof i1.GanttComponent, typeof i2.GanttFlatBindingDirective, typeof i3.GanttHierarchyBindingDirective, typeof i4.GanttTaskContentTemplateDirective, typeof i5.GanttTaskTemplateDirective, typeof i6.GanttSummaryTaskTemplateDirective, typeof i7.ToolbarTemplateDirective, typeof i8.ViewSelectorComponent, typeof i9.GanttColumnComponent, typeof i10.GanttColumnGroupComponent, typeof i11.GanttSpanColumnComponent, typeof i12.FilterCellTemplateDirective, typeof i13.FilterMenuTemplateDirective, typeof i14.CellTemplateDirective, typeof i15.EditTemplateDirective, typeof i16.ColumnMenuTemplateDirective, typeof i17.HeaderTemplateDirective, typeof i18.FooterTemplateDirective, typeof i19.GanttExpandableDirective, typeof i20.DependencyDragCreateDirective, typeof i21.TimelineDayViewComponent, typeof i22.TimelineWeekViewComponent, typeof i23.TimelineMonthViewComponent, typeof i24.TimelineYearViewComponent, typeof i25.SelectableDirective, typeof i26.CustomMessagesComponent, typeof i27.GanttAddTaskComponent]>;
68
+ static ɵmod: i0.ɵɵNgModuleDeclaration<GanttModule, never, [typeof i1.GanttComponent, typeof i2.GanttFlatBindingDirective, typeof i3.GanttHierarchyBindingDirective, typeof i4.GanttTaskContentTemplateDirective, typeof i5.GanttTaskTemplateDirective, typeof i6.GanttSummaryTaskTemplateDirective, typeof i7.ToolbarTemplateDirective, typeof i8.ViewSelectorComponent, typeof i9.GanttColumnComponent, typeof i10.GanttColumnGroupComponent, typeof i11.GanttSpanColumnComponent, typeof i12.FilterCellTemplateDirective, typeof i13.FilterMenuTemplateDirective, typeof i14.CellTemplateDirective, typeof i15.EditTemplateDirective, typeof i16.ColumnMenuTemplateDirective, typeof i17.HeaderTemplateDirective, typeof i18.FooterTemplateDirective, typeof i19.GanttExpandableDirective, typeof i20.DependencyDragCreateDirective, typeof i21.TimelineDayViewComponent, typeof i22.TimelineWeekViewComponent, typeof i23.TimelineMonthViewComponent, typeof i24.TimelineYearViewComponent, typeof i25.SelectableDirective, typeof i26.CustomMessagesComponent, typeof i27.GanttAddTaskComponent, typeof i28.TaskDragDirective, typeof i29.GanttTaskTooltipTemplateDirective], [typeof i1.GanttComponent, typeof i2.GanttFlatBindingDirective, typeof i3.GanttHierarchyBindingDirective, typeof i4.GanttTaskContentTemplateDirective, typeof i5.GanttTaskTemplateDirective, typeof i6.GanttSummaryTaskTemplateDirective, typeof i7.ToolbarTemplateDirective, typeof i8.ViewSelectorComponent, typeof i9.GanttColumnComponent, typeof i10.GanttColumnGroupComponent, typeof i11.GanttSpanColumnComponent, typeof i12.FilterCellTemplateDirective, typeof i13.FilterMenuTemplateDirective, typeof i14.CellTemplateDirective, typeof i15.EditTemplateDirective, typeof i16.ColumnMenuTemplateDirective, typeof i17.HeaderTemplateDirective, typeof i18.FooterTemplateDirective, typeof i19.GanttExpandableDirective, typeof i20.DependencyDragCreateDirective, typeof i21.TimelineDayViewComponent, typeof i22.TimelineWeekViewComponent, typeof i23.TimelineMonthViewComponent, typeof i24.TimelineYearViewComponent, typeof i25.SelectableDirective, typeof i26.CustomMessagesComponent, typeof i27.GanttAddTaskComponent, typeof i28.TaskDragDirective, typeof i29.GanttTaskTooltipTemplateDirective]>;
67
69
  static ɵinj: i0.ɵɵInjectorDeclaration<GanttModule>;
68
70
  }
package/index.d.ts CHANGED
@@ -37,6 +37,8 @@ export { TreeListPaneOptions, TimelinePaneOptions } from './models/splitter-pane
37
37
  export { LocalizedMessagesDirective } from './localization/localized-messages.directive';
38
38
  export { CustomMessagesComponent } from './localization/custom-messages.component';
39
39
  export { CurrentTimeSettings } from './models/current-time-settings.interface';
40
+ export { TaskDragDirective } from './dragging/task-drag.directive';
41
+ export { GanttTaskTooltipTemplateDirective } from './template-directives/task-tooltip-template.directive';
40
42
  export * from './models/models';
41
43
  export * from './columns/columns';
42
44
  export * from './directives';
@@ -292,6 +292,14 @@ export declare class Messages extends ComponentMessages {
292
292
  * for the **Reset** button of the columns.
293
293
  */
294
294
  columnsReset: string;
295
+ /**
296
+ * The text shown in the task tooltip before the task start date.
297
+ */
298
+ tooltipStartDateText: string;
299
+ /**
300
+ * The text shown in the task tooltip before the task end date.
301
+ */
302
+ tooltipEndDateText: string;
295
303
  static ɵfac: i0.ɵɵFactoryDeclaration<Messages, never>;
296
- static ɵdir: i0.ɵɵDirectiveDeclaration<Messages, "kendo-gantt-messages-base", never, { "taskEditingGeneralTabTitle": { "alias": "taskEditingGeneralTabTitle"; "required": false; }; "taskEditingPredecessorsTabTitle": { "alias": "taskEditingPredecessorsTabTitle"; "required": false; }; "taskEditingSuccessorsTabTitle": { "alias": "taskEditingSuccessorsTabTitle"; "required": false; }; "taskEditingDependenciesAddButtonText": { "alias": "taskEditingDependenciesAddButtonText"; "required": false; }; "taskEditingDependenciesRemoveButtonText": { "alias": "taskEditingDependenciesRemoveButtonText"; "required": false; }; "taskEditingDependenciesGridNameColumnTitle": { "alias": "taskEditingDependenciesGridNameColumnTitle"; "required": false; }; "taskEditingDependenciesGridTypeColumnTitle": { "alias": "taskEditingDependenciesGridTypeColumnTitle"; "required": false; }; "deleteButtonText": { "alias": "deleteButtonText"; "required": false; }; "taskDeleteLabel": { "alias": "taskDeleteLabel"; "required": false; }; "taskEditingDialogTitle": { "alias": "taskEditingDialogTitle"; "required": false; }; "taskEditingDialogCloseTitle": { "alias": "taskEditingDialogCloseTitle"; "required": false; }; "confirmationDialogCloseTitle": { "alias": "confirmationDialogCloseTitle"; "required": false; }; "confirmationDialogTitle": { "alias": "confirmationDialogTitle"; "required": false; }; "addTaskText": { "alias": "addTaskText"; "required": false; }; "addChildText": { "alias": "addChildText"; "required": false; }; "addAboveText": { "alias": "addAboveText"; "required": false; }; "addBelowText": { "alias": "addBelowText"; "required": false; }; "cancelButtonText": { "alias": "cancelButtonText"; "required": false; }; "saveButtonText": { "alias": "saveButtonText"; "required": false; }; "titleFieldInputLabel": { "alias": "titleFieldInputLabel"; "required": false; }; "startFieldInputLabel": { "alias": "startFieldInputLabel"; "required": false; }; "endFieldInputLabel": { "alias": "endFieldInputLabel"; "required": false; }; "completionRatioFieldInputLabel": { "alias": "completionRatioFieldInputLabel"; "required": false; }; "confirmationDialogContent": { "alias": "confirmationDialogContent"; "required": false; }; "dayViewText": { "alias": "dayViewText"; "required": false; }; "weekViewText": { "alias": "weekViewText"; "required": false; }; "monthViewText": { "alias": "monthViewText"; "required": false; }; "yearViewText": { "alias": "yearViewText"; "required": false; }; "noRecords": { "alias": "noRecords"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "filterEqOperator": { "alias": "filterEqOperator"; "required": false; }; "filterNotEqOperator": { "alias": "filterNotEqOperator"; "required": false; }; "filterIsNullOperator": { "alias": "filterIsNullOperator"; "required": false; }; "filterIsNotNullOperator": { "alias": "filterIsNotNullOperator"; "required": false; }; "filterIsEmptyOperator": { "alias": "filterIsEmptyOperator"; "required": false; }; "filterIsNotEmptyOperator": { "alias": "filterIsNotEmptyOperator"; "required": false; }; "filterStartsWithOperator": { "alias": "filterStartsWithOperator"; "required": false; }; "filterContainsOperator": { "alias": "filterContainsOperator"; "required": false; }; "filterNotContainsOperator": { "alias": "filterNotContainsOperator"; "required": false; }; "filterEndsWithOperator": { "alias": "filterEndsWithOperator"; "required": false; }; "filterGteOperator": { "alias": "filterGteOperator"; "required": false; }; "filterGtOperator": { "alias": "filterGtOperator"; "required": false; }; "filterLteOperator": { "alias": "filterLteOperator"; "required": false; }; "filterLtOperator": { "alias": "filterLtOperator"; "required": false; }; "filterIsTrue": { "alias": "filterIsTrue"; "required": false; }; "filterIsFalse": { "alias": "filterIsFalse"; "required": false; }; "filterBooleanAll": { "alias": "filterBooleanAll"; "required": false; }; "filterAfterOrEqualOperator": { "alias": "filterAfterOrEqualOperator"; "required": false; }; "filterAfterOperator": { "alias": "filterAfterOperator"; "required": false; }; "filterBeforeOperator": { "alias": "filterBeforeOperator"; "required": false; }; "filterBeforeOrEqualOperator": { "alias": "filterBeforeOrEqualOperator"; "required": false; }; "filterFilterButton": { "alias": "filterFilterButton"; "required": false; }; "filterClearButton": { "alias": "filterClearButton"; "required": false; }; "filterAndLogic": { "alias": "filterAndLogic"; "required": false; }; "filterOrLogic": { "alias": "filterOrLogic"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "columnMenu": { "alias": "columnMenu"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "lock": { "alias": "lock"; "required": false; }; "unlock": { "alias": "unlock"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "sortAscending": { "alias": "sortAscending"; "required": false; }; "sortDescending": { "alias": "sortDescending"; "required": false; }; "sortedAscending": { "alias": "sortedAscending"; "required": false; }; "sortedDescending": { "alias": "sortedDescending"; "required": false; }; "sortedDefault": { "alias": "sortedDefault"; "required": false; }; "columnsApply": { "alias": "columnsApply"; "required": false; }; "columnsReset": { "alias": "columnsReset"; "required": false; }; }, {}, never, never, false, never>;
304
+ static ɵdir: i0.ɵɵDirectiveDeclaration<Messages, "kendo-gantt-messages-base", never, { "taskEditingGeneralTabTitle": { "alias": "taskEditingGeneralTabTitle"; "required": false; }; "taskEditingPredecessorsTabTitle": { "alias": "taskEditingPredecessorsTabTitle"; "required": false; }; "taskEditingSuccessorsTabTitle": { "alias": "taskEditingSuccessorsTabTitle"; "required": false; }; "taskEditingDependenciesAddButtonText": { "alias": "taskEditingDependenciesAddButtonText"; "required": false; }; "taskEditingDependenciesRemoveButtonText": { "alias": "taskEditingDependenciesRemoveButtonText"; "required": false; }; "taskEditingDependenciesGridNameColumnTitle": { "alias": "taskEditingDependenciesGridNameColumnTitle"; "required": false; }; "taskEditingDependenciesGridTypeColumnTitle": { "alias": "taskEditingDependenciesGridTypeColumnTitle"; "required": false; }; "deleteButtonText": { "alias": "deleteButtonText"; "required": false; }; "taskDeleteLabel": { "alias": "taskDeleteLabel"; "required": false; }; "taskEditingDialogTitle": { "alias": "taskEditingDialogTitle"; "required": false; }; "taskEditingDialogCloseTitle": { "alias": "taskEditingDialogCloseTitle"; "required": false; }; "confirmationDialogCloseTitle": { "alias": "confirmationDialogCloseTitle"; "required": false; }; "confirmationDialogTitle": { "alias": "confirmationDialogTitle"; "required": false; }; "addTaskText": { "alias": "addTaskText"; "required": false; }; "addChildText": { "alias": "addChildText"; "required": false; }; "addAboveText": { "alias": "addAboveText"; "required": false; }; "addBelowText": { "alias": "addBelowText"; "required": false; }; "cancelButtonText": { "alias": "cancelButtonText"; "required": false; }; "saveButtonText": { "alias": "saveButtonText"; "required": false; }; "titleFieldInputLabel": { "alias": "titleFieldInputLabel"; "required": false; }; "startFieldInputLabel": { "alias": "startFieldInputLabel"; "required": false; }; "endFieldInputLabel": { "alias": "endFieldInputLabel"; "required": false; }; "completionRatioFieldInputLabel": { "alias": "completionRatioFieldInputLabel"; "required": false; }; "confirmationDialogContent": { "alias": "confirmationDialogContent"; "required": false; }; "dayViewText": { "alias": "dayViewText"; "required": false; }; "weekViewText": { "alias": "weekViewText"; "required": false; }; "monthViewText": { "alias": "monthViewText"; "required": false; }; "yearViewText": { "alias": "yearViewText"; "required": false; }; "noRecords": { "alias": "noRecords"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "filterEqOperator": { "alias": "filterEqOperator"; "required": false; }; "filterNotEqOperator": { "alias": "filterNotEqOperator"; "required": false; }; "filterIsNullOperator": { "alias": "filterIsNullOperator"; "required": false; }; "filterIsNotNullOperator": { "alias": "filterIsNotNullOperator"; "required": false; }; "filterIsEmptyOperator": { "alias": "filterIsEmptyOperator"; "required": false; }; "filterIsNotEmptyOperator": { "alias": "filterIsNotEmptyOperator"; "required": false; }; "filterStartsWithOperator": { "alias": "filterStartsWithOperator"; "required": false; }; "filterContainsOperator": { "alias": "filterContainsOperator"; "required": false; }; "filterNotContainsOperator": { "alias": "filterNotContainsOperator"; "required": false; }; "filterEndsWithOperator": { "alias": "filterEndsWithOperator"; "required": false; }; "filterGteOperator": { "alias": "filterGteOperator"; "required": false; }; "filterGtOperator": { "alias": "filterGtOperator"; "required": false; }; "filterLteOperator": { "alias": "filterLteOperator"; "required": false; }; "filterLtOperator": { "alias": "filterLtOperator"; "required": false; }; "filterIsTrue": { "alias": "filterIsTrue"; "required": false; }; "filterIsFalse": { "alias": "filterIsFalse"; "required": false; }; "filterBooleanAll": { "alias": "filterBooleanAll"; "required": false; }; "filterAfterOrEqualOperator": { "alias": "filterAfterOrEqualOperator"; "required": false; }; "filterAfterOperator": { "alias": "filterAfterOperator"; "required": false; }; "filterBeforeOperator": { "alias": "filterBeforeOperator"; "required": false; }; "filterBeforeOrEqualOperator": { "alias": "filterBeforeOrEqualOperator"; "required": false; }; "filterFilterButton": { "alias": "filterFilterButton"; "required": false; }; "filterClearButton": { "alias": "filterClearButton"; "required": false; }; "filterAndLogic": { "alias": "filterAndLogic"; "required": false; }; "filterOrLogic": { "alias": "filterOrLogic"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "columnMenu": { "alias": "columnMenu"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "lock": { "alias": "lock"; "required": false; }; "unlock": { "alias": "unlock"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "sortAscending": { "alias": "sortAscending"; "required": false; }; "sortDescending": { "alias": "sortDescending"; "required": false; }; "sortedAscending": { "alias": "sortedAscending"; "required": false; }; "sortedDescending": { "alias": "sortedDescending"; "required": false; }; "sortedDefault": { "alias": "sortedDefault"; "required": false; }; "columnsApply": { "alias": "columnsApply"; "required": false; }; "columnsReset": { "alias": "columnsReset"; "required": false; }; "tooltipStartDateText": { "alias": "tooltipStartDateText"; "required": false; }; "tooltipEndDateText": { "alias": "tooltipEndDateText"; "required": false; }; }, {}, never, never, false, never>;
297
305
  }
@@ -0,0 +1,21 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ export { ClickEvent } from './click-event.interface';
6
+ export { SelectedViewChangeEvent } from './selected-view-change-event.interface';
7
+ export { DataStateChangeEvent } from './data-state-change-event.interface';
8
+ export { CellClickEvent } from './cell-click-event.interface';
9
+ export { CellCloseEvent } from './cell-close-event.interface';
10
+ export { TaskClickEvent } from './task-click-event.interface';
11
+ export { TaskAddEvent, GanttAddTaskActionItem } from './task-add-event.interface';
12
+ export { TaskEditEvent } from './task-edit-event.interface';
13
+ export { TaskEditItem } from './task-edit-event.interface';
14
+ export { EditEventDependencies } from './task-edit-event.interface';
15
+ export { DependencyAddEvent } from './dependency-add-event.interface';
16
+ export { TaskDeleteEvent } from './task-delete-event.interface';
17
+ export { ColumnLockedChangeEvent } from './column-locked-change-event.interface';
18
+ export { ColumnReorderEvent } from './column-reorder-event.interface';
19
+ export { ColumnResizeEvent } from './column-resize-event.interface';
20
+ export { ColumnVisibilityChangeEvent } from './column-visibility-change-event.interface';
21
+ export { TaskDragEvent } from './task-drag-event.interface';
@@ -0,0 +1,67 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { DragTargetDragEndEvent, DragTargetDragEvent } from "@progress/kendo-angular-utils";
6
+ import { TaskEditItem } from "./task-edit-event.interface";
7
+ /**
8
+ * The event data of the Gantt `TaskDragEvent`. The event is triggered when the end user resizes or moves a Task.
9
+ */
10
+ export interface TaskDragEvent {
11
+ /**
12
+ * The calculated new start date of the task.
13
+ */
14
+ start: Date;
15
+ /**
16
+ * The calculated new end date of the task.
17
+ */
18
+ end: Date;
19
+ /**
20
+ * The calculated new completion ratio.
21
+ */
22
+ completionRatio: number;
23
+ /**
24
+ * The drag event, triggered from the end user dragging action.
25
+ */
26
+ dragEvent: DragTargetDragEvent | DragTargetDragEndEvent;
27
+ /**
28
+ * The item object, associated with the dragged event. Contains the original data item, and its parent, allowing to access
29
+ * and update all affected ancestor tasks in the data hierarchy as necessary.
30
+ */
31
+ item: TaskEditItem;
32
+ }
33
+ /**
34
+ * @hidden
35
+ * The internal task drag event required for all necessary calculations and DOM updates
36
+ */
37
+ export interface InternalTaskDragEvent {
38
+ /**
39
+ * The calculated new start date of the task.
40
+ */
41
+ start: Date;
42
+ /**
43
+ * The calculated new end date of the task.
44
+ */
45
+ end: Date;
46
+ /**
47
+ * The calculated new completion ratio.
48
+ */
49
+ completionRatio: number;
50
+ /**
51
+ * The offset of the task DOM element, relative to the view start.
52
+ */
53
+ offset: number;
54
+ /**
55
+ * The new width of the task DOM element in pixels.
56
+ */
57
+ width: number;
58
+ /**
59
+ * The drag event, triggered from the end user dragging action.
60
+ */
61
+ dragEvent: DragTargetDragEvent | DragTargetDragEndEvent;
62
+ /**
63
+ * The item object, associated with the dragged event. Contains the original data item, and its parent, allowing to access
64
+ * and update all affected ancestor tasks in the data hierarchy as necessary.
65
+ */
66
+ item: any;
67
+ }
@@ -16,28 +16,8 @@ export { DependencyType } from './dependency-type.enum';
16
16
  export { TimelineViewType } from './timeline-view';
17
17
  export { SortSettings } from './sort-settings';
18
18
  export { ColumnSortSettings } from './sort-settings';
19
- export { ClickEvent } from './events/click-event.interface';
20
- export { SelectedViewChangeEvent } from './events/selected-view-change-event.interface';
21
- export { TaskMoveEndEvent } from './events/task-move-end-event.interface';
22
- export { TaskMoveEvent } from './events/task-move-event.interface';
23
- export { TaskMoveStartEvent } from './events/task-move-start-event.interface';
24
- export { TaskResizeEndEvent } from './events/task-resize-end-event.interface';
25
- export { TaskResizeEvent } from './events/task-resize-event.interface';
26
- export { TaskResizeStartEvent } from './events/task-resize-start-event.interface';
27
- export { DataStateChangeEvent } from './events/data-state-change-event.interface';
28
- export { CellClickEvent } from './events/cell-click-event.interface';
29
- export { CellCloseEvent } from './events/cell-close-event.interface';
30
- export { TaskClickEvent } from './events/task-click-event.interface';
31
- export { TaskAddEvent, GanttAddTaskActionItem } from './events/task-add-event.interface';
32
- export { TaskEditEvent } from './events/task-edit-event.interface';
33
- export { TaskEditItem } from './events/task-edit-event.interface';
34
- export { EditEventDependencies } from './events/task-edit-event.interface';
35
- export { DependencyAddEvent } from './events/dependency-add-event.interface';
36
- export { DragScrollSettings } from '../scrolling/drag-scroll-settings';
37
- export { TaskDeleteEvent } from './events/task-delete-event.interface';
38
- export { TimelineHeaderDateFormat } from './timeline-header-date-format';
39
- export { ColumnLockedChangeEvent } from './events/column-locked-change-event.interface';
40
- export { ColumnReorderEvent } from './events/column-reorder-event.interface';
41
- export { ColumnResizeEvent } from './events/column-resize-event.interface';
42
- export { ColumnVisibilityChangeEvent } from './events/column-visibility-change-event.interface';
19
+ export * from './events';
43
20
  export { ToolbarPosition, ToolbarSettings } from './toolbar-settings';
21
+ export { TimelineHeaderDateFormat } from './timeline-header-date-format';
22
+ export { DragScrollSettings } from './../scrolling/drag-scroll-settings';
23
+ export { TaskTooltipOptions } from './tooltip-options.interface';
@@ -0,0 +1,28 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { Position } from '@progress/kendo-angular-tooltip';
6
+ /**
7
+ * The options of the tooltip shown when a task is hovered.
8
+ */
9
+ export interface TaskTooltipOptions {
10
+ /**
11
+ * Specifies the position of the Tooltip or Popover in relation to the anchor element.
12
+ *
13
+ * @default 'left'
14
+ */
15
+ position: Position;
16
+ /**
17
+ * Specifies if the Тooltip will display a callout arrow.
18
+ *
19
+ * @default true
20
+ */
21
+ callout: boolean;
22
+ /**
23
+ * Specifies the delay in milliseconds before the Tooltip is shown.
24
+ *
25
+ * @default 100
26
+ */
27
+ showAfter: number;
28
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-gantt",
3
- "version": "17.2.1-develop.2",
3
+ "version": "17.3.0-develop.2",
4
4
  "description": "Kendo UI Angular Gantt",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -25,24 +25,25 @@
25
25
  "@angular/platform-browser": "16 - 19",
26
26
  "@progress/kendo-data-query": "^1.5.5",
27
27
  "@progress/kendo-licensing": "^1.0.2",
28
- "@progress/kendo-angular-buttons": "17.2.1-develop.2",
29
- "@progress/kendo-angular-common": "17.2.1-develop.2",
30
- "@progress/kendo-angular-dialog": "17.2.1-develop.2",
31
- "@progress/kendo-angular-dropdowns": "17.2.1-develop.2",
32
- "@progress/kendo-angular-grid": "17.2.1-develop.2",
33
- "@progress/kendo-angular-icons": "17.2.1-develop.2",
34
- "@progress/kendo-angular-inputs": "17.2.1-develop.2",
35
- "@progress/kendo-angular-intl": "17.2.1-develop.2",
36
- "@progress/kendo-angular-l10n": "17.2.1-develop.2",
37
- "@progress/kendo-angular-label": "17.2.1-develop.2",
38
- "@progress/kendo-angular-layout": "17.2.1-develop.2",
39
- "@progress/kendo-angular-popup": "17.2.1-develop.2",
40
- "@progress/kendo-angular-treelist": "17.2.1-develop.2",
28
+ "@progress/kendo-angular-buttons": "17.3.0-develop.2",
29
+ "@progress/kendo-angular-common": "17.3.0-develop.2",
30
+ "@progress/kendo-angular-dialog": "17.3.0-develop.2",
31
+ "@progress/kendo-angular-dropdowns": "17.3.0-develop.2",
32
+ "@progress/kendo-angular-grid": "17.3.0-develop.2",
33
+ "@progress/kendo-angular-icons": "17.3.0-develop.2",
34
+ "@progress/kendo-angular-inputs": "17.3.0-develop.2",
35
+ "@progress/kendo-angular-intl": "17.3.0-develop.2",
36
+ "@progress/kendo-angular-l10n": "17.3.0-develop.2",
37
+ "@progress/kendo-angular-label": "17.3.0-develop.2",
38
+ "@progress/kendo-angular-layout": "17.3.0-develop.2",
39
+ "@progress/kendo-angular-popup": "17.3.0-develop.2",
40
+ "@progress/kendo-angular-tooltip": "17.3.0-develop.2",
41
+ "@progress/kendo-angular-treelist": "17.3.0-develop.2",
41
42
  "rxjs": "^6.5.3 || ^7.0.0"
42
43
  },
43
44
  "dependencies": {
44
45
  "tslib": "^2.3.1",
45
- "@progress/kendo-angular-schematics": "17.2.1-develop.2",
46
+ "@progress/kendo-angular-schematics": "17.3.0-develop.2",
46
47
  "@progress/kendo-common": "^1.0.1",
47
48
  "@progress/kendo-date-math": "^1.5.2",
48
49
  "@progress/kendo-draggable": "^3.0.0"
@@ -4,12 +4,14 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { ChangeDetectorRef, ElementRef, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
6
6
  import { NavigationService } from '../navigation/navigation.service';
7
+ import { TimelineBaseViewService } from '../timeline/timeline-base-view.service';
7
8
  import { OptionChangesService } from '../common/option-changes.service';
8
9
  import { TaskClassFn } from '../models/class-callbacks';
9
10
  import { TimelineViewType } from '../models/timeline-view';
10
11
  import { TimelineViewService } from '../timeline/timeline-view.service';
11
12
  import { DependencyDomService } from '../dependencies/dependency-dom.service';
12
13
  import { MappingService } from '../common/mapping.service';
14
+ import { TaskDragService } from '../dragging/task-drag.service';
13
15
  import * as i0 from "@angular/core";
14
16
  /**
15
17
  * @hidden
@@ -37,7 +39,7 @@ export declare abstract class GanttTaskBase implements OnInit, OnChanges, OnDest
37
39
  taskClass: TaskClassFn;
38
40
  get ariaSelected(): string;
39
41
  get slotUnitDuration(): number;
40
- private get viewService();
42
+ get viewService(): TimelineBaseViewService;
41
43
  get slotWidth(): number;
42
44
  get taskWidth(): number;
43
45
  /**
@@ -48,10 +50,14 @@ export declare abstract class GanttTaskBase implements OnInit, OnChanges, OnDest
48
50
  */
49
51
  get taskOffset(): number;
50
52
  get completionOverlayWidth(): number;
53
+ draggedCompletionWidth: number;
54
+ protected taskDragService: TaskDragService;
55
+ protected completionDragResult: number;
51
56
  private subscriptions;
52
57
  constructor(mapper: MappingService, // left public to be available for usage in the templates
53
58
  timelineViewService: TimelineViewService, dependencyDomService: DependencyDomService, optionChangesService: OptionChangesService, cdr: ChangeDetectorRef, navigationService: NavigationService);
54
59
  ngOnInit(): void;
60
+ ngAfterViewInit(): void;
55
61
  ngOnChanges(changes: SimpleChanges): void;
56
62
  ngOnDestroy(): void;
57
63
  private updateActiveState;
@@ -21,6 +21,7 @@ export declare class GanttTaskComponent extends GanttTaskBase {
21
21
  taskTemplate: TemplateRef<any>;
22
22
  xIcon: SVGIcon;
23
23
  touchEnabled: boolean;
24
+ get showDragHandles(): boolean;
24
25
  constructor(editService: EditService, mapper: MappingService, timelineViewService: TimelineViewService, dependencyDomService: DependencyDomService, optionChangesService: OptionChangesService, cdr: ChangeDetectorRef, navigationService: NavigationService);
25
26
  onTaskDelete(): void;
26
27
  static ɵfac: i0.ɵɵFactoryDeclaration<GanttTaskComponent, never>;
@@ -2,12 +2,13 @@
2
2
  * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { TemplateRef, ElementRef } from '@angular/core';
5
+ import { TemplateRef, ElementRef, EventEmitter } from '@angular/core';
6
6
  import { TaskClassFn } from '../models/class-callbacks';
7
7
  import { TimelineViewType } from '../models/timeline-view';
8
8
  import { DependencyDomService } from '../dependencies/dependency-dom.service';
9
9
  import { MappingService } from '../common/mapping.service';
10
10
  import { ViewItem } from '../models/view-item.interface';
11
+ import { GanttTask } from '../models/gantt-task.interface';
11
12
  import * as i0 from "@angular/core";
12
13
  /**
13
14
  * @hidden
@@ -26,8 +27,12 @@ export declare class GanttTasksTableBodyComponent {
26
27
  isExpanded: (item: object) => boolean;
27
28
  isTaskSelected: (item: object) => boolean;
28
29
  renderDependencyDragClues: boolean;
30
+ taskPointerEnter: EventEmitter<GanttTask>;
31
+ taskPointerLeave: EventEmitter<undefined>;
29
32
  constructor(dependencyDomService: DependencyDomService, mapper: MappingService);
33
+ trackBy: (_: number, item: any) => any;
30
34
  isMileStone(item: ViewItem): boolean;
35
+ mapItemToTask(item: any): any;
31
36
  static ɵfac: i0.ɵɵFactoryDeclaration<GanttTasksTableBodyComponent, never>;
32
- static ɵcmp: i0.ɵɵComponentDeclaration<GanttTasksTableBodyComponent, "[kendoGanttTasksTableBody]", never, { "selectable": { "alias": "selectable"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "activeView": { "alias": "activeView"; "required": false; }; "taskContentTemplate": { "alias": "taskContentTemplate"; "required": false; }; "taskTemplate": { "alias": "taskTemplate"; "required": false; }; "summaryTaskTemplate": { "alias": "summaryTaskTemplate"; "required": false; }; "taskClass": { "alias": "taskClass"; "required": false; }; "isExpanded": { "alias": "isExpanded"; "required": false; }; "isTaskSelected": { "alias": "isTaskSelected"; "required": false; }; "renderDependencyDragClues": { "alias": "renderDependencyDragClues"; "required": false; }; }, {}, never, never, true, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<GanttTasksTableBodyComponent, "[kendoGanttTasksTableBody]", never, { "selectable": { "alias": "selectable"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "activeView": { "alias": "activeView"; "required": false; }; "taskContentTemplate": { "alias": "taskContentTemplate"; "required": false; }; "taskTemplate": { "alias": "taskTemplate"; "required": false; }; "summaryTaskTemplate": { "alias": "summaryTaskTemplate"; "required": false; }; "taskClass": { "alias": "taskClass"; "required": false; }; "isExpanded": { "alias": "isExpanded"; "required": false; }; "isTaskSelected": { "alias": "isTaskSelected"; "required": false; }; "renderDependencyDragClues": { "alias": "renderDependencyDragClues"; "required": false; }; }, { "taskPointerEnter": "taskPointerEnter"; "taskPointerLeave": "taskPointerLeave"; }, never, never, true, never>;
33
38
  }
@@ -7,16 +7,16 @@ function default_1(options) {
7
7
  // See https://github.com/telerik/kendo-schematics/issues/28
8
8
  peerDependencies: {
9
9
  // peer deps of the treelist
10
- '@progress/kendo-angular-dateinputs': '17.2.1-develop.2',
11
- '@progress/kendo-angular-excel-export': '17.2.1-develop.2',
12
- '@progress/kendo-angular-pdf-export': '17.2.1-develop.2',
13
- '@progress/kendo-angular-utils': '17.2.1-develop.2',
10
+ '@progress/kendo-angular-dateinputs': '17.3.0-develop.2',
11
+ '@progress/kendo-angular-excel-export': '17.3.0-develop.2',
12
+ '@progress/kendo-angular-pdf-export': '17.3.0-develop.2',
13
+ '@progress/kendo-angular-utils': '17.3.0-develop.2',
14
14
  '@progress/kendo-drawing': '^1.0.0',
15
15
  // peer deps of the dropdowns
16
- '@progress/kendo-angular-treeview': '17.2.1-develop.2',
17
- '@progress/kendo-angular-navigation': '17.2.1-develop.2',
16
+ '@progress/kendo-angular-treeview': '17.3.0-develop.2',
17
+ '@progress/kendo-angular-navigation': '17.3.0-develop.2',
18
18
  // peer dep of the layout
19
- '@progress/kendo-angular-progressbar': '17.2.1-develop.2',
19
+ '@progress/kendo-angular-progressbar': '17.3.0-develop.2',
20
20
  // peer dep of the icons
21
21
  '@progress/kendo-svg-icons': '^4.0.0'
22
22
  } });
@@ -0,0 +1,38 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { TemplateRef } from '@angular/core';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Represents a template that defines the whole content of the Task tooltip.
9
+ * To define the template, nest an `<ng-template>` tag
10
+ * with the `kendoGanttTaskTooltipTemplate` directive inside the `<kendo-gantt>` tag.
11
+ *
12
+ * The template context is set to the respective data item.
13
+ *
14
+ * @example
15
+ * ```ts-preview
16
+ * _@Component({
17
+ * selector: 'my-app',
18
+ * template: `
19
+ * <kendo-gantt [kendoGanttHierarchyBinding]="data">
20
+ * <ng-template kendoGanttTaskTooltipTemplate let-dataItem>
21
+ * <div [style]="'color: white; font-size: 8px;'">
22
+ * {{ dataItem.title }} - {{ dataItem.completionRatio * 100 }}% complete;
23
+ * </div>
24
+ * </ng-template>
25
+ * </kendo-gantt>
26
+ * `
27
+ * })
28
+ * class AppComponent {
29
+ * public data: any[] = sampleTasks;
30
+ * }
31
+ * ```
32
+ */
33
+ export declare class GanttTaskTooltipTemplateDirective {
34
+ templateRef: TemplateRef<any>;
35
+ constructor(templateRef: TemplateRef<any>);
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<GanttTaskTooltipTemplateDirective, [{ optional: true; }]>;
37
+ static ɵdir: i0.ɵɵDirectiveDeclaration<GanttTaskTooltipTemplateDirective, "[kendoGanttTaskTooltipTemplate]", never, {}, {}, never, never, true, never>;
38
+ }
@@ -2,23 +2,29 @@
2
2
  * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { AfterViewInit, ElementRef, EventEmitter, NgZone, OnChanges, Renderer2, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
5
+ import { AfterViewInit, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, Renderer2, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
6
6
  import { ScrollSyncService } from '../scrolling/scroll-sync.service';
7
7
  import { DependencyDomService } from '../dependencies/dependency-dom.service';
8
8
  import { ViewItem } from '../models/view-item.interface';
9
- import { TimelineViewType, TaskClassFn, DragScrollSettings } from '../models/models';
9
+ import { TimelineViewType, TaskClassFn, DragScrollSettings, GanttTask } from '../models/models';
10
10
  import { CurrentTimeMarkerService } from './current-time-marker.service';
11
11
  import { CurrentTimeSettings } from '../models/current-time-settings.interface';
12
+ import { TaskDragService } from '../dragging/task-drag.service';
13
+ import { TaskTooltipOptions } from '../models/tooltip-options.interface';
14
+ import { GanttTaskTooltipTemplateDirective } from '../template-directives/task-tooltip-template.directive';
15
+ import { GanttLocalizationService } from '../localization/gantt-localization.service';
12
16
  import * as i0 from "@angular/core";
13
17
  /**
14
18
  * @hidden
15
19
  */
16
- export declare class GanttTimelineComponent implements AfterViewInit, OnChanges {
20
+ export declare class GanttTimelineComponent implements AfterViewInit, OnChanges, OnDestroy {
17
21
  private scrollSyncService;
18
22
  private dependencyDomService;
19
23
  private renderer;
20
24
  private zone;
21
25
  private currentTimeMarkerService;
26
+ private localization;
27
+ private taskDragService;
22
28
  /**
23
29
  * Represents the scrollable container of the timeline content.
24
30
  * Used externally by the DependencyDragCreateDirective.
@@ -27,6 +33,7 @@ export declare class GanttTimelineComponent implements AfterViewInit, OnChanges
27
33
  timelineColumns: ElementRef<HTMLElement>;
28
34
  timelineHeaderWrap: ElementRef<HTMLElement>;
29
35
  tasksContainer: ElementRef<HTMLElement>;
36
+ private tooltip;
30
37
  /**
31
38
  * Represents the view container ref used for rendering the dependency drag popop.
32
39
  * Used externally by the DependencyDragCreateDirective.
@@ -49,6 +56,8 @@ export declare class GanttTimelineComponent implements AfterViewInit, OnChanges
49
56
  renderDependencyDragClues: boolean;
50
57
  dragScrollSettings: DragScrollSettings;
51
58
  currentTimeMarker: boolean | CurrentTimeSettings;
59
+ customTooltipTemplate: GanttTaskTooltipTemplateDirective;
60
+ tooltipOptions: TaskTooltipOptions;
52
61
  selectable: boolean;
53
62
  isTaskSelected: (item: object) => boolean;
54
63
  isExpanded: (item: object) => boolean;
@@ -60,13 +69,29 @@ export declare class GanttTimelineComponent implements AfterViewInit, OnChanges
60
69
  * Specifies whether the draggable will attach or detach its pointer event listeners.
61
70
  */
62
71
  get draggableEnabled(): boolean;
72
+ task: GanttTask;
73
+ dragResult: {
74
+ start: Date;
75
+ end: Date;
76
+ completionRatio: number;
77
+ };
78
+ dragging: boolean;
79
+ completion: boolean;
80
+ marquee: {
81
+ show: boolean;
82
+ left: number;
83
+ width: number;
84
+ };
85
+ dragOffset: number;
63
86
  private subscriptions;
64
- constructor(scrollSyncService: ScrollSyncService, dependencyDomService: DependencyDomService, renderer: Renderer2, zone: NgZone, currentTimeMarkerService: CurrentTimeMarkerService);
87
+ private popupRef;
88
+ constructor(scrollSyncService: ScrollSyncService, dependencyDomService: DependencyDomService, renderer: Renderer2, zone: NgZone, currentTimeMarkerService: CurrentTimeMarkerService, localization: GanttLocalizationService, taskDragService: TaskDragService);
65
89
  ngOnChanges(changes: SimpleChanges): void;
66
90
  ngAfterViewInit(): void;
67
91
  ngOnDestroy(): void;
68
92
  isNonWorking(item: any): boolean;
93
+ messageFor(token: string): string;
69
94
  private createTimeMarker;
70
- static ɵfac: i0.ɵɵFactoryDeclaration<GanttTimelineComponent, never>;
71
- static ɵcmp: i0.ɵɵComponentDeclaration<GanttTimelineComponent, "kendo-gantt-timeline", never, { "rows": { "alias": "rows"; "required": false; }; "slots": { "alias": "slots"; "required": false; }; "groupSlots": { "alias": "groupSlots"; "required": false; }; "tableWidth": { "alias": "tableWidth"; "required": false; }; "activeView": { "alias": "activeView"; "required": false; }; "taskContentTemplate": { "alias": "taskContentTemplate"; "required": false; }; "taskTemplate": { "alias": "taskTemplate"; "required": false; }; "summaryTaskTemplate": { "alias": "summaryTaskTemplate"; "required": false; }; "taskClass": { "alias": "taskClass"; "required": false; }; "renderDependencyDragClues": { "alias": "renderDependencyDragClues"; "required": false; }; "dragScrollSettings": { "alias": "dragScrollSettings"; "required": false; }; "currentTimeMarker": { "alias": "currentTimeMarker"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "isTaskSelected": { "alias": "isTaskSelected"; "required": false; }; "isExpanded": { "alias": "isExpanded"; "required": false; }; "dependencies": { "alias": "dependencies"; "required": false; }; }, { "timelineContainerPress": "timelineContainerPress"; "timelineContainerDrag": "timelineContainerDrag"; "timelineContainerRelease": "timelineContainerRelease"; }, never, never, true, never>;
95
+ static ɵfac: i0.ɵɵFactoryDeclaration<GanttTimelineComponent, [null, null, null, null, null, null, { optional: true; }]>;
96
+ static ɵcmp: i0.ɵɵComponentDeclaration<GanttTimelineComponent, "kendo-gantt-timeline", never, { "rows": { "alias": "rows"; "required": false; }; "slots": { "alias": "slots"; "required": false; }; "groupSlots": { "alias": "groupSlots"; "required": false; }; "tableWidth": { "alias": "tableWidth"; "required": false; }; "activeView": { "alias": "activeView"; "required": false; }; "taskContentTemplate": { "alias": "taskContentTemplate"; "required": false; }; "taskTemplate": { "alias": "taskTemplate"; "required": false; }; "summaryTaskTemplate": { "alias": "summaryTaskTemplate"; "required": false; }; "taskClass": { "alias": "taskClass"; "required": false; }; "renderDependencyDragClues": { "alias": "renderDependencyDragClues"; "required": false; }; "dragScrollSettings": { "alias": "dragScrollSettings"; "required": false; }; "currentTimeMarker": { "alias": "currentTimeMarker"; "required": false; }; "customTooltipTemplate": { "alias": "customTooltipTemplate"; "required": false; }; "tooltipOptions": { "alias": "tooltipOptions"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "isTaskSelected": { "alias": "isTaskSelected"; "required": false; }; "isExpanded": { "alias": "isExpanded"; "required": false; }; "dependencies": { "alias": "dependencies"; "required": false; }; }, { "timelineContainerPress": "timelineContainerPress"; "timelineContainerDrag": "timelineContainerDrag"; "timelineContainerRelease": "timelineContainerRelease"; }, never, never, true, never>;
72
97
  }
@@ -1,5 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- export {};
@@ -1,5 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- export {};
@@ -1,5 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- export {};