@progress/kendo-angular-gantt 17.0.0-develop.8 → 17.0.0

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 (163) hide show
  1. package/binding-directives/flat-binding.directive.d.ts +1 -1
  2. package/binding-directives/hierarchy-binding.directive.d.ts +1 -1
  3. package/columns/column-base.component.d.ts +1 -74
  4. package/columns/column-group.component.d.ts +1 -80
  5. package/columns/column.component.d.ts +1 -80
  6. package/columns/span-column.component.d.ts +1 -90
  7. package/dependencies/gantt-dependency.directive.d.ts +1 -1
  8. package/dragging/dependency-drag-create.directive.d.ts +1 -1
  9. package/editing/add-task.component.d.ts +1 -1
  10. package/editing/dependencies-table.component.d.ts +1 -1
  11. package/editing/edit-dialog.component.d.ts +1 -1
  12. package/{esm2020 → esm2022}/binding-directives/flat-binding.directive.mjs +7 -3
  13. package/{esm2020 → esm2022}/binding-directives/hierarchy-binding.directive.mjs +7 -3
  14. package/{esm2020 → esm2022}/columns/cell-template.directive.mjs +4 -3
  15. package/esm2022/columns/column-base.component.mjs +22 -0
  16. package/esm2022/columns/column-group.component.mjs +66 -0
  17. package/{esm2020 → esm2022}/columns/column-menu-template.directive.mjs +4 -3
  18. package/{esm2020 → esm2022}/columns/column.component.mjs +37 -65
  19. package/{esm2020 → esm2022}/columns/edit-template.directive.mjs +4 -3
  20. package/{esm2020 → esm2022}/columns/filter-cell-template.directive.mjs +4 -3
  21. package/{esm2020 → esm2022}/columns/filter-menu-template.directive.mjs +4 -3
  22. package/{esm2020 → esm2022}/columns/footer-template.directive.mjs +4 -3
  23. package/{esm2020 → esm2022}/columns/header-template.directive.mjs +4 -3
  24. package/esm2022/columns/span-column.component.mjs +66 -0
  25. package/{esm2020 → esm2022}/common/mapping.service.mjs +5 -7
  26. package/{esm2020 → esm2022}/common/option-changes.service.mjs +6 -8
  27. package/{esm2020 → esm2022}/dependencies/dependency-dom.service.mjs +21 -12
  28. package/{esm2020 → esm2022}/dependencies/gantt-dependency.directive.mjs +10 -4
  29. package/{esm2020 → esm2022}/dragging/dependency-drag-create.directive.mjs +41 -18
  30. package/{esm2020 → esm2022}/dragging/drag-validation-tooltip.component.mjs +24 -12
  31. package/{esm2020 → esm2022}/editing/add-task.component.mjs +31 -28
  32. package/{esm2020 → esm2022}/editing/dependencies-table.component.mjs +22 -15
  33. package/{esm2020 → esm2022}/editing/edit-dialog.component.mjs +14 -8
  34. package/{esm2020 → esm2022}/editing/edit.service.mjs +23 -17
  35. package/{esm2020 → esm2022}/editing/task-fields.component.mjs +8 -5
  36. package/{esm2020 → esm2022}/expanded-state/expand-event.mjs +4 -0
  37. package/{esm2020 → esm2022}/expanded-state/expandable.directive.mjs +3 -3
  38. package/{esm2020 → esm2022}/gantt.component.mjs +434 -364
  39. package/{esm2020 → esm2022}/gantt.module.mjs +31 -31
  40. package/{esm2020 → esm2022}/localization/custom-messages.component.mjs +9 -8
  41. package/{esm2020 → esm2022}/localization/gantt-localization.service.mjs +4 -3
  42. package/{esm2020 → esm2022}/localization/localized-messages.directive.mjs +9 -8
  43. package/esm2022/localization/messages.mjs +441 -0
  44. package/esm2022/models/events/cell-close-event.interface.mjs +45 -0
  45. package/{esm2020 → esm2022}/navigation/navigation.service.mjs +40 -35
  46. package/{esm2020 → esm2022}/package-metadata.mjs +2 -2
  47. package/{esm2020 → esm2022}/rendering/gantt-header-table-body.component.mjs +7 -7
  48. package/{esm2020 → esm2022}/rendering/gantt-milestone-task.component.mjs +11 -11
  49. package/{esm2020 → esm2022}/rendering/gantt-summary-task.component.mjs +16 -14
  50. package/{esm2020 → esm2022}/rendering/gantt-task-base.mjs +37 -18
  51. package/{esm2020 → esm2022}/rendering/gantt-task.component.mjs +14 -11
  52. package/{esm2020 → esm2022}/rendering/gantt-tasks-table-body.component.mjs +20 -8
  53. package/{esm2020 → esm2022}/scrolling/scroll-sync.service.mjs +9 -6
  54. package/{esm2020 → esm2022}/scrolling/timeline-scroll.directive.mjs +10 -4
  55. package/{esm2020 → esm2022}/scrolling/timeline-scroll.service.mjs +6 -8
  56. package/{esm2020 → esm2022}/selection/selectable.directive.mjs +18 -14
  57. package/{esm2020 → esm2022}/template-directives/summary-task-template.directive.mjs +4 -3
  58. package/{esm2020 → esm2022}/template-directives/task-content-template.directive.mjs +4 -3
  59. package/{esm2020 → esm2022}/template-directives/task-template.directive.mjs +4 -3
  60. package/{esm2020 → esm2022}/timeline/current-time-marker.service.mjs +36 -27
  61. package/{esm2020 → esm2022}/timeline/gantt-timeline.component.mjs +54 -16
  62. package/{esm2020 → esm2022}/timeline/timeline-base-view.service.mjs +6 -3
  63. package/{esm2020 → esm2022}/timeline/timeline-day-view.component.mjs +12 -12
  64. package/{esm2020 → esm2022}/timeline/timeline-day-view.service.mjs +4 -3
  65. package/{esm2020 → esm2022}/timeline/timeline-month-view.component.mjs +12 -12
  66. package/{esm2020 → esm2022}/timeline/timeline-month-view.service.mjs +4 -3
  67. package/{esm2020 → esm2022}/timeline/timeline-view.service.mjs +5 -4
  68. package/{esm2020 → esm2022}/timeline/timeline-week-view.component.mjs +12 -12
  69. package/{esm2020 → esm2022}/timeline/timeline-week-view.service.mjs +4 -3
  70. package/{esm2020 → esm2022}/timeline/timeline-year-view.component.mjs +12 -12
  71. package/{esm2020 → esm2022}/timeline/timeline-year-view.service.mjs +4 -3
  72. package/{esm2020 → esm2022}/timeline/view-base.mjs +22 -9
  73. package/{esm2020 → esm2022}/toolbar/toolbar-navigation.service.mjs +6 -4
  74. package/{esm2020 → esm2022}/toolbar/toolbar-template.directive.mjs +8 -7
  75. package/{esm2020 → esm2022}/toolbar/toolbar.component.mjs +21 -12
  76. package/{esm2020 → esm2022}/toolbar/view-selector.component.mjs +19 -14
  77. package/expanded-state/expandable.directive.d.ts +1 -1
  78. package/{fesm2020 → fesm2022}/progress-kendo-angular-gantt.mjs +1579 -1114
  79. package/gantt.component.d.ts +1 -1
  80. package/localization/messages.d.ts +1 -1
  81. package/models/cell-content-type.interface.d.ts +1 -1
  82. package/models/class-callbacks.d.ts +2 -2
  83. package/models/events/task-edit-event.interface.d.ts +1 -1
  84. package/models/filterable-settings.d.ts +1 -1
  85. package/models/sort-settings.d.ts +2 -2
  86. package/models/timeline-view.d.ts +1 -1
  87. package/models/toolbar-settings.d.ts +1 -1
  88. package/package.json +25 -31
  89. package/rendering/gantt-header-table-body.component.d.ts +1 -1
  90. package/rendering/gantt-summary-task.component.d.ts +1 -1
  91. package/rendering/gantt-task-base.d.ts +1 -1
  92. package/rendering/gantt-task.component.d.ts +1 -1
  93. package/rendering/gantt-tasks-table-body.component.d.ts +1 -1
  94. package/schematics/ngAdd/index.js +8 -8
  95. package/scrolling/scroll-sync.service.d.ts +2 -2
  96. package/scrolling/timeline-scroll.directive.d.ts +1 -1
  97. package/selection/selectable.directive.d.ts +1 -1
  98. package/timeline/gantt-timeline.component.d.ts +1 -1
  99. package/timeline/view-base.d.ts +1 -1
  100. package/toolbar/toolbar-template.directive.d.ts +1 -1
  101. package/toolbar/toolbar.component.d.ts +1 -1
  102. package/toolbar/view-selector.component.d.ts +1 -1
  103. package/utils.d.ts +1 -1
  104. package/esm2020/columns/column-base.component.mjs +0 -55
  105. package/esm2020/columns/column-group.component.mjs +0 -101
  106. package/esm2020/columns/span-column.component.mjs +0 -120
  107. package/esm2020/localization/messages.mjs +0 -157
  108. package/esm2020/models/events/cell-close-event.interface.mjs +0 -14
  109. package/fesm2015/progress-kendo-angular-gantt.mjs +0 -8219
  110. /package/{esm2020 → esm2022}/columns/columns.mjs +0 -0
  111. /package/{esm2020 → esm2022}/common/default-callbacks.mjs +0 -0
  112. /package/{esm2020 → esm2022}/dependencies/dom-dependency-args.mjs +0 -0
  113. /package/{esm2020 → esm2022}/dependencies/utils.mjs +0 -0
  114. /package/{esm2020 → esm2022}/directives.mjs +0 -0
  115. /package/{esm2020 → esm2022}/editing/utils.mjs +0 -0
  116. /package/{esm2020 → esm2022}/index.mjs +0 -0
  117. /package/{esm2020 → esm2022}/models/cell-content-type.interface.mjs +0 -0
  118. /package/{esm2020 → esm2022}/models/class-callbacks.mjs +0 -0
  119. /package/{esm2020 → esm2022}/models/column-menu-settings.interface.mjs +0 -0
  120. /package/{esm2020 → esm2022}/models/column-reorder-config.mjs +0 -0
  121. /package/{esm2020 → esm2022}/models/current-time-settings.interface.mjs +0 -0
  122. /package/{esm2020 → esm2022}/models/date-range.interface.mjs +0 -0
  123. /package/{esm2020 → esm2022}/models/dependency-type.enum.mjs +0 -0
  124. /package/{esm2020 → esm2022}/models/events/cell-click-event.interface.mjs +0 -0
  125. /package/{esm2020 → esm2022}/models/events/click-event.interface.mjs +0 -0
  126. /package/{esm2020 → esm2022}/models/events/column-locked-change-event.interface.mjs +0 -0
  127. /package/{esm2020 → esm2022}/models/events/column-reorder-event.interface.mjs +0 -0
  128. /package/{esm2020 → esm2022}/models/events/column-resize-event.interface.mjs +0 -0
  129. /package/{esm2020 → esm2022}/models/events/column-visibility-change-event.interface.mjs +0 -0
  130. /package/{esm2020 → esm2022}/models/events/data-state-change-event.interface.mjs +0 -0
  131. /package/{esm2020 → esm2022}/models/events/dependency-add-event.interface.mjs +0 -0
  132. /package/{esm2020 → esm2022}/models/events/selected-view-change-event.interface.mjs +0 -0
  133. /package/{esm2020 → esm2022}/models/events/task-add-event.interface.mjs +0 -0
  134. /package/{esm2020 → esm2022}/models/events/task-click-event.interface.mjs +0 -0
  135. /package/{esm2020 → esm2022}/models/events/task-delete-event.interface.mjs +0 -0
  136. /package/{esm2020 → esm2022}/models/events/task-edit-event.interface.mjs +0 -0
  137. /package/{esm2020 → esm2022}/models/events/task-move-end-event.interface.mjs +0 -0
  138. /package/{esm2020 → esm2022}/models/events/task-move-event.interface.mjs +0 -0
  139. /package/{esm2020 → esm2022}/models/events/task-move-start-event.interface.mjs +0 -0
  140. /package/{esm2020 → esm2022}/models/events/task-resize-end-event.interface.mjs +0 -0
  141. /package/{esm2020 → esm2022}/models/events/task-resize-event.interface.mjs +0 -0
  142. /package/{esm2020 → esm2022}/models/events/task-resize-start-event.interface.mjs +0 -0
  143. /package/{esm2020 → esm2022}/models/filterable-settings.mjs +0 -0
  144. /package/{esm2020 → esm2022}/models/gantt-dependency-model-fields.interface.mjs +0 -0
  145. /package/{esm2020 → esm2022}/models/gantt-dependency.interface.mjs +0 -0
  146. /package/{esm2020 → esm2022}/models/gantt-task-model-fields.interface.mjs +0 -0
  147. /package/{esm2020 → esm2022}/models/gantt-task.interface.mjs +0 -0
  148. /package/{esm2020 → esm2022}/models/models.mjs +0 -0
  149. /package/{esm2020 → esm2022}/models/slot.interface.mjs +0 -0
  150. /package/{esm2020 → esm2022}/models/sort-settings.mjs +0 -0
  151. /package/{esm2020 → esm2022}/models/splitter-pane-options.interface.mjs +0 -0
  152. /package/{esm2020 → esm2022}/models/timeline-header-date-format.mjs +0 -0
  153. /package/{esm2020 → esm2022}/models/timeline-options.interface.mjs +0 -0
  154. /package/{esm2020 → esm2022}/models/timeline-view.mjs +0 -0
  155. /package/{esm2020 → esm2022}/models/toolbar-settings.mjs +0 -0
  156. /package/{esm2020 → esm2022}/models/view-item.interface.mjs +0 -0
  157. /package/{esm2020 → esm2022}/navigation/navigation-models.mjs +0 -0
  158. /package/{esm2020 → esm2022}/navigation/utils.mjs +0 -0
  159. /package/{esm2020 → esm2022}/progress-kendo-angular-gantt.mjs +0 -0
  160. /package/{esm2020 → esm2022}/scrolling/drag-scroll-settings.mjs +0 -0
  161. /package/{esm2020 → esm2022}/scrolling/utils.mjs +0 -0
  162. /package/{esm2020 → esm2022}/selection/selection-change-event.mjs +0 -0
  163. /package/{esm2020 → esm2022}/utils.mjs +0 -0
@@ -40,8 +40,8 @@ const packageMetadata = {
40
40
  name: '@progress/kendo-angular-gantt',
41
41
  productName: 'Kendo UI for Angular',
42
42
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
43
- publishDate: 1729170438,
44
- version: '17.0.0-develop.8',
43
+ publishDate: 1731414248,
44
+ version: '17.0.0',
45
45
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
46
46
  };
47
47
 
@@ -114,11 +114,14 @@ const getIndexFromViewDigitKeyCode = (keyCode) => {
114
114
  * @hidden
115
115
  */
116
116
  class ScrollSyncService {
117
+ ngZone;
118
+ changes = new Subject();
119
+ elements = [];
120
+ subscriptions = new Subscription();
121
+ syncingTimeline;
122
+ syncingTreeList;
117
123
  constructor(ngZone) {
118
124
  this.ngZone = ngZone;
119
- this.changes = new Subject();
120
- this.elements = [];
121
- this.subscriptions = new Subscription();
122
125
  this.subscriptions.add(this.changes.subscribe(args => {
123
126
  this.scroll(args);
124
127
  }));
@@ -176,10 +179,10 @@ class ScrollSyncService {
176
179
  }
177
180
  });
178
181
  }
182
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScrollSyncService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
183
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScrollSyncService });
179
184
  }
180
- ScrollSyncService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScrollSyncService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
181
- ScrollSyncService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScrollSyncService });
182
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScrollSyncService, decorators: [{
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScrollSyncService, decorators: [{
183
186
  type: Injectable
184
187
  }], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
185
188
 
@@ -531,10 +534,6 @@ const elementFromPoint = (clientX, clientY) => {
531
534
  * @hidden
532
535
  */
533
536
  class MappingService {
534
- constructor() {
535
- this._taskFields = { ...DEFAULT_TASK_MODEL_FIELDS };
536
- this._dependencyFields = { ...DEFAULT_DEPENDENCY_MODEL_FIELDS };
537
- }
538
537
  /**
539
538
  * Gets or sets the model fields for the task data items.
540
539
  * Uses the default values for fields which are not specified.
@@ -555,6 +554,8 @@ class MappingService {
555
554
  get dependencyFields() {
556
555
  return this._dependencyFields;
557
556
  }
557
+ _taskFields = { ...DEFAULT_TASK_MODEL_FIELDS };
558
+ _dependencyFields = { ...DEFAULT_DEPENDENCY_MODEL_FIELDS };
558
559
  /**
559
560
  * Retrieves the value for the specified task field.
560
561
  * Supports nested fields as well (e.g. 'manager.id').
@@ -575,10 +576,10 @@ class MappingService {
575
576
  }
576
577
  return getter(this.dependencyFields[field])(dataItem);
577
578
  }
579
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MappingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
580
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MappingService });
578
581
  }
579
- MappingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MappingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
580
- MappingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MappingService });
581
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MappingService, decorators: [{
582
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MappingService, decorators: [{
582
583
  type: Injectable
583
584
  }] });
584
585
 
@@ -586,15 +587,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
586
587
  * @hidden
587
588
  */
588
589
  class DependencyDomService {
589
- constructor(mapper) {
590
- this.mapper = mapper;
591
- this.notifier = new Subject();
592
- /**
593
- * Maps each rendered task to its HTML element.
594
- * Uses the task ID field value as key.
595
- */
596
- this.tasks = new Map();
597
- }
590
+ mapper;
598
591
  /**
599
592
  * Emits each time some of the tasks or the view have changed.
600
593
  * Fires also on the first change of the table rows and the parent container.
@@ -609,6 +602,23 @@ class DependencyDomService {
609
602
  timelineRow: this.timelineRow
610
603
  };
611
604
  }
605
+ notifier = new Subject();
606
+ /**
607
+ * The row element in the Timeline part of the Gantt.
608
+ */
609
+ timelineRow;
610
+ /**
611
+ * Used to get retrieve the offset of the task elements relative to the parent container.
612
+ */
613
+ contentContainer;
614
+ /**
615
+ * Maps each rendered task to its HTML element.
616
+ * Uses the task ID field value as key.
617
+ */
618
+ tasks = new Map();
619
+ constructor(mapper) {
620
+ this.mapper = mapper;
621
+ }
612
622
  ngOnDestroy() {
613
623
  this.tasks.clear();
614
624
  this.tasks = null;
@@ -638,10 +648,10 @@ class DependencyDomService {
638
648
  notifyChanges() {
639
649
  this.notifier.next(this.dependencyDomArgs);
640
650
  }
651
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DependencyDomService, deps: [{ token: MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
652
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DependencyDomService });
641
653
  }
642
- DependencyDomService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DependencyDomService, deps: [{ token: MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
643
- DependencyDomService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DependencyDomService });
644
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DependencyDomService, decorators: [{
654
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DependencyDomService, decorators: [{
645
655
  type: Injectable
646
656
  }], ctorParameters: function () { return [{ type: MappingService }]; } });
647
657
 
@@ -651,30 +661,15 @@ const MS_PER_MINUTE = 60 * MS_PER_SECOND;
651
661
  * @hidden
652
662
  */
653
663
  class CurrentTimeMarkerService {
654
- constructor(renderer, cdr) {
655
- this.renderer = renderer;
656
- this.cdr = cdr;
657
- this.slots = [];
658
- this.rows = [];
659
- this.now = new Date(Date.now());
660
- this.createTimeMarker = () => {
661
- if (!isDocumentAvailable()) {
662
- return;
663
- }
664
- this.removeTimeMarker();
665
- if (this.slotIndex >= 0) {
666
- this.now = new Date(Date.now());
667
- this.timeMarkerDiv = this.renderer.createElement('div');
668
- this.renderer.addClass(this.timeMarkerDiv, 'k-current-time');
669
- this.renderer.setStyle(this.timeMarkerDiv, 'width', '1px');
670
- this.renderer.setStyle(this.timeMarkerDiv, 'top', '0px');
671
- this.renderer.setStyle(this.timeMarkerDiv, `${this.rtl ? 'right' : 'left'}`, this.deltaOffset + 'px');
672
- this.renderer.appendChild(this.container.nativeElement, this.timeMarkerDiv);
673
- this.renderer.setStyle(this.timeMarkerDiv, 'height', this.height + 'px');
674
- this.currentTimeTimeout = setTimeout(this.createTimeMarker, this.interval || MS_PER_MINUTE);
675
- }
676
- };
677
- }
664
+ renderer;
665
+ cdr;
666
+ container;
667
+ slots = [];
668
+ rows = [];
669
+ currentTimeMarker;
670
+ rowHeight;
671
+ rtl;
672
+ activeView;
678
673
  get deltaOffset() {
679
674
  if (this.slotIndex >= 0) {
680
675
  const total = this.slots[this.slotIndex].end.getTime() - this.slots[this.slotIndex].start.getTime();
@@ -703,6 +698,13 @@ class CurrentTimeMarkerService {
703
698
  }
704
699
  return this.currentTimeMarker?.updateInterval || MS_PER_MINUTE;
705
700
  }
701
+ now = new Date(Date.now());
702
+ currentTimeTimeout;
703
+ timeMarkerDiv;
704
+ constructor(renderer, cdr) {
705
+ this.renderer = renderer;
706
+ this.cdr = cdr;
707
+ }
706
708
  ngOnDestroy() {
707
709
  clearTimeout(this.currentTimeTimeout);
708
710
  }
@@ -713,10 +715,27 @@ class CurrentTimeMarkerService {
713
715
  this.cdr.detectChanges();
714
716
  }
715
717
  }
718
+ createTimeMarker = () => {
719
+ if (!isDocumentAvailable()) {
720
+ return;
721
+ }
722
+ this.removeTimeMarker();
723
+ if (this.slotIndex >= 0) {
724
+ this.now = new Date(Date.now());
725
+ this.timeMarkerDiv = this.renderer.createElement('div');
726
+ this.renderer.addClass(this.timeMarkerDiv, 'k-current-time');
727
+ this.renderer.setStyle(this.timeMarkerDiv, 'width', '1px');
728
+ this.renderer.setStyle(this.timeMarkerDiv, 'top', '0px');
729
+ this.renderer.setStyle(this.timeMarkerDiv, `${this.rtl ? 'right' : 'left'}`, this.deltaOffset + 'px');
730
+ this.renderer.appendChild(this.container.nativeElement, this.timeMarkerDiv);
731
+ this.renderer.setStyle(this.timeMarkerDiv, 'height', this.height + 'px');
732
+ this.currentTimeTimeout = setTimeout(this.createTimeMarker, this.interval || MS_PER_MINUTE);
733
+ }
734
+ };
735
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CurrentTimeMarkerService, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Injectable });
736
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CurrentTimeMarkerService });
716
737
  }
717
- CurrentTimeMarkerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CurrentTimeMarkerService, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Injectable });
718
- CurrentTimeMarkerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CurrentTimeMarkerService });
719
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CurrentTimeMarkerService, decorators: [{
738
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CurrentTimeMarkerService, decorators: [{
720
739
  type: Injectable
721
740
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; } });
722
741
 
@@ -923,13 +942,19 @@ const MIN_DISTANCE_BEFORE_TURN = 10;
923
942
  * @hidden
924
943
  */
925
944
  class GanttDependencyDirective {
945
+ polyline;
946
+ zone;
947
+ renderer;
948
+ mapper;
949
+ dependencyDomService;
950
+ dependency;
951
+ subscriptions = new Subscription();
926
952
  constructor(polyline, zone, renderer, mapper, dependencyDomService) {
927
953
  this.polyline = polyline;
928
954
  this.zone = zone;
929
955
  this.renderer = renderer;
930
956
  this.mapper = mapper;
931
957
  this.dependencyDomService = dependencyDomService;
932
- this.subscriptions = new Subscription();
933
958
  this.subscriptions.add(dependencyDomService.taskChanges
934
959
  .pipe(switchMap(changes =>
935
960
  // reacts only on the very last event emission,
@@ -969,10 +994,10 @@ class GanttDependencyDirective {
969
994
  const parsedCoords = points.map(({ left, top }) => `${left},${top}`).join(' ');
970
995
  this.renderer.setAttribute(this.polyline.nativeElement, 'points', parsedCoords);
971
996
  }
997
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttDependencyDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: MappingService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Directive });
998
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GanttDependencyDirective, isStandalone: true, selector: "[kendoGanttDependency]", inputs: { dependency: "dependency" }, usesOnChanges: true, ngImport: i0 });
972
999
  }
973
- GanttDependencyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttDependencyDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: MappingService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Directive });
974
- GanttDependencyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttDependencyDirective, isStandalone: true, selector: "[kendoGanttDependency]", inputs: { dependency: "dependency" }, usesOnChanges: true, ngImport: i0 });
975
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttDependencyDirective, decorators: [{
1000
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttDependencyDirective, decorators: [{
976
1001
  type: Directive,
977
1002
  args: [{
978
1003
  selector: '[kendoGanttDependency]',
@@ -986,38 +1011,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
986
1011
  * @hidden
987
1012
  */
988
1013
  class NavigationService {
989
- constructor(zone, renderer, scrollSyncService) {
990
- this.zone = zone;
991
- this.renderer = renderer;
992
- this.scrollSyncService = scrollSyncService;
993
- /**
994
- * Notifies when the tasks' focused and interactive (tabindex) state has changed.
995
- *
996
- * All tasks are rendered with tabindex="-1".
997
- * When one is clicked, or when some navigation key keyboard key is pressed, it should be focused, assigned the focus class, and its tabindex updated to 0.
998
- * All other tasks should get -1 tabindex and have the focus class removed from them.
999
- */
1000
- this.taskStatusChanges = new Subject();
1001
- /**
1002
- * Keeps track of whether the Timeline part is focused.
1003
- * Used when the index of the task elements change (tasks are changed, pushed to, spliced from, etc.)
1004
- * and their status should be updated accordingly.
1005
- */
1006
- this.isTimelineFocused = false;
1007
- /**
1008
- * Keeps track of which part has last been focused.
1009
- * Used when calling `gantt.focus()` to determine which part of the component should receive focus.
1010
- */
1011
- this.treeListLastActive = false;
1012
- /**
1013
- * Keeps track of which part has last been focused.
1014
- * Used when calling `gantt.focus()` to determine which part of the component should receive focus.
1015
- */
1016
- this.timelineLastActive = false;
1017
- this._enabled = false;
1018
- this._activeTimelineIndex = 0;
1019
- this._activeTreeListCell = { rowIndex: 0, colIndex: 0 };
1020
- }
1014
+ zone;
1015
+ renderer;
1016
+ scrollSyncService;
1017
+ /**
1018
+ * Notifies when the tasks' focused and interactive (tabindex) state has changed.
1019
+ *
1020
+ * All tasks are rendered with tabindex="-1".
1021
+ * When one is clicked, or when some navigation key keyboard key is pressed, it should be focused, assigned the focus class, and its tabindex updated to 0.
1022
+ * All other tasks should get -1 tabindex and have the focus class removed from them.
1023
+ */
1024
+ taskStatusChanges = new Subject();
1021
1025
  /**
1022
1026
  * Specifies whether navigation is enabled.
1023
1027
  */
@@ -1062,6 +1066,12 @@ class NavigationService {
1062
1066
  const colIndex = fitToRange(this._activeTreeListCell.colIndex, firstAvailableIndex, lastAvailableColIndex);
1063
1067
  return { rowIndex, colIndex };
1064
1068
  }
1069
+ /**
1070
+ * Keeps track of whether the Timeline part is focused.
1071
+ * Used when the index of the task elements change (tasks are changed, pushed to, spliced from, etc.)
1072
+ * and their status should be updated accordingly.
1073
+ */
1074
+ isTimelineFocused = false;
1065
1075
  /**
1066
1076
  * The TreeList row index takes into account the header and filter rows.
1067
1077
  * Used when translating Timeline task indices to TreeList row indices.
@@ -1070,6 +1080,26 @@ class NavigationService {
1070
1080
  // captures nested group header rows + filter row if we start supporting it at some point
1071
1081
  return this.metadata.treeListElement.querySelectorAll('.k-grid-header tr').length;
1072
1082
  }
1083
+ /**
1084
+ * Keeps track of which part has last been focused.
1085
+ * Used when calling `gantt.focus()` to determine which part of the component should receive focus.
1086
+ */
1087
+ treeListLastActive = false;
1088
+ /**
1089
+ * Keeps track of which part has last been focused.
1090
+ * Used when calling `gantt.focus()` to determine which part of the component should receive focus.
1091
+ */
1092
+ timelineLastActive = false;
1093
+ metadata;
1094
+ _enabled = false;
1095
+ _activeTimelineIndex = 0;
1096
+ _activeTreeListCell = { rowIndex: 0, colIndex: 0 };
1097
+ eventListenerDisposers;
1098
+ constructor(zone, renderer, scrollSyncService) {
1099
+ this.zone = zone;
1100
+ this.renderer = renderer;
1101
+ this.scrollSyncService = scrollSyncService;
1102
+ }
1073
1103
  initialize(metadata) {
1074
1104
  // no private property setters in TypeScript, so use a getter and a poorly named private prop for this value
1075
1105
  this._enabled = true;
@@ -1232,10 +1262,10 @@ class NavigationService {
1232
1262
  focusTreeList() {
1233
1263
  this.metadata.treeList.focus();
1234
1264
  }
1265
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService, deps: [{ token: i0.NgZone }, { token: i0.Renderer2 }, { token: ScrollSyncService }], target: i0.ɵɵFactoryTarget.Injectable });
1266
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService });
1235
1267
  }
1236
- NavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NavigationService, deps: [{ token: i0.NgZone }, { token: i0.Renderer2 }, { token: ScrollSyncService }], target: i0.ɵɵFactoryTarget.Injectable });
1237
- NavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NavigationService });
1238
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NavigationService, decorators: [{
1268
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService, decorators: [{
1239
1269
  type: Injectable
1240
1270
  }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.Renderer2 }, { type: ScrollSyncService }]; } });
1241
1271
 
@@ -1243,20 +1273,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1243
1273
  * @hidden
1244
1274
  */
1245
1275
  class EditService {
1246
- constructor(mapper) {
1247
- this.mapper = mapper;
1248
- this.showEditingDialog = new Subject();
1249
- this.taskDelete = new Subject();
1250
- this.editEvent = new Subject();
1251
- this.addEvent = new Subject();
1252
- this.predecessors = [];
1253
- this.successors = [];
1254
- this.updatedItems = [];
1255
- this.deletedItems = [];
1256
- this.itemIndex = (item, data) => {
1257
- return data.findIndex(dataItem => this.mapper.extractFromTask(dataItem, 'id') === this.mapper.extractFromTask(item, 'id'));
1258
- };
1259
- }
1276
+ mapper;
1277
+ showEditingDialog = new Subject();
1278
+ taskDelete = new Subject();
1279
+ editEvent = new Subject();
1280
+ addEvent = new Subject();
1281
+ taskFormGroup;
1282
+ dataItem;
1283
+ getSelectedItem;
1284
+ hasChildren;
1285
+ fetchChildren;
1260
1286
  set dependencies(items) {
1261
1287
  // Can this whole thing be moved to edit-dialog? Dependencies might not be needed here
1262
1288
  const dataItemId = this.mapper.extractFromTask(this.dataItem, 'id');
@@ -1266,6 +1292,13 @@ class EditService {
1266
1292
  get dependencies() {
1267
1293
  return [...this.predecessors, ...this.successors];
1268
1294
  }
1295
+ predecessors = [];
1296
+ successors = [];
1297
+ updatedItems = [];
1298
+ deletedItems = [];
1299
+ constructor(mapper) {
1300
+ this.mapper = mapper;
1301
+ }
1269
1302
  createEditDialog(dataItem, taskFormGroup, dependencies) {
1270
1303
  this.dataItem = dataItem;
1271
1304
  this.taskFormGroup = taskFormGroup;
@@ -1331,13 +1364,16 @@ class EditService {
1331
1364
  }
1332
1365
  return of(children);
1333
1366
  }
1367
+ itemIndex = (item, data) => {
1368
+ return data.findIndex(dataItem => this.mapper.extractFromTask(dataItem, 'id') === this.mapper.extractFromTask(item, 'id'));
1369
+ };
1334
1370
  isNew(item) {
1335
1371
  return !isPresent(this.mapper.extractFromDependency(item, 'id'));
1336
1372
  }
1373
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditService, deps: [{ token: MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
1374
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditService });
1337
1375
  }
1338
- EditService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditService, deps: [{ token: MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
1339
- EditService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditService });
1340
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditService, decorators: [{
1376
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditService, decorators: [{
1341
1377
  type: Injectable
1342
1378
  }], ctorParameters: function () { return [{ type: MappingService }]; } });
1343
1379
 
@@ -1345,11 +1381,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1345
1381
  * @hidden
1346
1382
  */
1347
1383
  class OptionChangesService {
1348
- constructor() {
1349
- this.viewChanges = new EventEmitter();
1350
- this.columnChanges = new EventEmitter();
1351
- this.dateFormatChanges = new EventEmitter();
1352
- }
1384
+ viewChanges = new EventEmitter();
1385
+ columnChanges = new EventEmitter();
1386
+ dateFormatChanges = new EventEmitter();
1353
1387
  notifyColumnChanges() {
1354
1388
  this.columnChanges.emit();
1355
1389
  }
@@ -1359,10 +1393,10 @@ class OptionChangesService {
1359
1393
  notifyDateFormatChanges() {
1360
1394
  this.dateFormatChanges.emit();
1361
1395
  }
1396
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OptionChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1397
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OptionChangesService });
1362
1398
  }
1363
- OptionChangesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OptionChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1364
- OptionChangesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OptionChangesService });
1365
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OptionChangesService, decorators: [{
1399
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OptionChangesService, decorators: [{
1366
1400
  type: Injectable
1367
1401
  }] });
1368
1402
 
@@ -1392,11 +1426,15 @@ const END_OF_DAY_DATE = new Date(1980, 0, 1, 23, 59, 59, 999);
1392
1426
  * @hidden
1393
1427
  */
1394
1428
  let TimelineBaseViewService = class TimelineBaseViewService {
1429
+ intlService;
1430
+ mapper;
1431
+ localeId;
1432
+ options;
1433
+ _viewStart = 0;
1395
1434
  constructor(intlService, mapper, localeId) {
1396
1435
  this.intlService = intlService;
1397
1436
  this.mapper = mapper;
1398
1437
  this.localeId = localeId;
1399
- this._viewStart = 0;
1400
1438
  }
1401
1439
  get viewStart() {
1402
1440
  return this._viewStart;
@@ -1568,6 +1606,7 @@ TimelineBaseViewService = __decorate([
1568
1606
  * @hidden
1569
1607
  */
1570
1608
  class TimelineDayViewService extends TimelineBaseViewService {
1609
+ localeId;
1571
1610
  constructor(intlService, mapper, localeId) {
1572
1611
  super(intlService, mapper, localeId);
1573
1612
  this.localeId = localeId;
@@ -1615,10 +1654,10 @@ class TimelineDayViewService extends TimelineBaseViewService {
1615
1654
  slots.push(daySlots, hourSlots);
1616
1655
  return slots;
1617
1656
  }
1657
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineDayViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1658
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineDayViewService });
1618
1659
  }
1619
- TimelineDayViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineDayViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1620
- TimelineDayViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineDayViewService });
1621
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineDayViewService, decorators: [{
1660
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineDayViewService, decorators: [{
1622
1661
  type: Injectable
1623
1662
  }], ctorParameters: function () { return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
1624
1663
  type: Inject,
@@ -1629,6 +1668,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1629
1668
  * @hidden
1630
1669
  */
1631
1670
  class TimelineMonthViewService extends TimelineBaseViewService {
1671
+ localeId;
1632
1672
  constructor(intlService, mapper, localeId) {
1633
1673
  super(intlService, mapper, localeId);
1634
1674
  this.localeId = localeId;
@@ -1674,10 +1714,10 @@ class TimelineMonthViewService extends TimelineBaseViewService {
1674
1714
  slots.push(months, weeks);
1675
1715
  return slots;
1676
1716
  }
1717
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineMonthViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1718
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineMonthViewService });
1677
1719
  }
1678
- TimelineMonthViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineMonthViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1679
- TimelineMonthViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineMonthViewService });
1680
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineMonthViewService, decorators: [{
1720
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineMonthViewService, decorators: [{
1681
1721
  type: Injectable
1682
1722
  }], ctorParameters: function () { return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
1683
1723
  type: Inject,
@@ -1688,6 +1728,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1688
1728
  * @hidden
1689
1729
  */
1690
1730
  class TimelineWeekViewService extends TimelineBaseViewService {
1731
+ localeId;
1691
1732
  constructor(intlService, mapper, localeId) {
1692
1733
  super(intlService, mapper, localeId);
1693
1734
  this.localeId = localeId;
@@ -1729,10 +1770,10 @@ class TimelineWeekViewService extends TimelineBaseViewService {
1729
1770
  slots.push(weeks, days);
1730
1771
  return slots;
1731
1772
  }
1773
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineWeekViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1774
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineWeekViewService });
1732
1775
  }
1733
- TimelineWeekViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineWeekViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1734
- TimelineWeekViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineWeekViewService });
1735
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineWeekViewService, decorators: [{
1776
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineWeekViewService, decorators: [{
1736
1777
  type: Injectable
1737
1778
  }], ctorParameters: function () { return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
1738
1779
  type: Inject,
@@ -1743,6 +1784,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1743
1784
  * @hidden
1744
1785
  */
1745
1786
  class TimeLineYearViewService extends TimelineBaseViewService {
1787
+ localeId;
1746
1788
  constructor(intlService, mapper, localeId) {
1747
1789
  super(intlService, mapper, localeId);
1748
1790
  this.localeId = localeId;
@@ -1779,10 +1821,10 @@ class TimeLineYearViewService extends TimelineBaseViewService {
1779
1821
  slots.push(years, months);
1780
1822
  return slots;
1781
1823
  }
1824
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimeLineYearViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1825
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimeLineYearViewService });
1782
1826
  }
1783
- TimeLineYearViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimeLineYearViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1784
- TimeLineYearViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimeLineYearViewService });
1785
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimeLineYearViewService, decorators: [{
1827
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimeLineYearViewService, decorators: [{
1786
1828
  type: Injectable
1787
1829
  }], ctorParameters: function () { return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
1788
1830
  type: Inject,
@@ -1802,18 +1844,19 @@ const services = {
1802
1844
  * @hidden
1803
1845
  */
1804
1846
  class TimelineViewService {
1847
+ injector;
1848
+ viewChange = new EventEmitter();
1805
1849
  constructor(injector) {
1806
1850
  this.injector = injector;
1807
- this.viewChange = new EventEmitter();
1808
1851
  }
1809
1852
  service(view) {
1810
1853
  const serviceType = services[view];
1811
1854
  return serviceType ? this.injector.get(serviceType) : null;
1812
1855
  }
1856
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineViewService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
1857
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineViewService });
1813
1858
  }
1814
- TimelineViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineViewService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
1815
- TimelineViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineViewService });
1816
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineViewService, decorators: [{
1859
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineViewService, decorators: [{
1817
1860
  type: Injectable
1818
1861
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
1819
1862
 
@@ -1827,24 +1870,29 @@ const FOCUSED_CLASS = 'k-focus';
1827
1870
  * @hidden
1828
1871
  */
1829
1872
  class GanttTaskBase {
1830
- constructor(mapper, // left public to be available for usage in the templates
1831
- timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
1832
- this.mapper = mapper;
1833
- this.timelineViewService = timelineViewService;
1834
- this.dependencyDomService = dependencyDomService;
1835
- this.optionChangesService = optionChangesService;
1836
- this.cdr = cdr;
1837
- this.navigationService = navigationService;
1838
- this.wrapperClass = true;
1839
- this.subscriptions = new Subscription();
1840
- this.subscriptions.add(this.optionChangesService.viewChanges
1841
- .subscribe(() => this.cdr.markForCheck()));
1842
- this.subscriptions.add(this.navigationService.taskStatusChanges
1843
- .subscribe(this.updateActiveState.bind(this)));
1844
- }
1873
+ mapper;
1874
+ timelineViewService;
1875
+ dependencyDomService;
1876
+ optionChangesService;
1877
+ cdr;
1878
+ navigationService;
1879
+ wrapperClass = true;
1845
1880
  get taskIndexAttribute() {
1846
1881
  return this.index;
1847
1882
  }
1883
+ /**
1884
+ * Points to the `.k-task` element of the template (present in all three task types).
1885
+ */
1886
+ taskElement;
1887
+ dataItem;
1888
+ index;
1889
+ level;
1890
+ renderDependencyDragClues;
1891
+ selectable;
1892
+ isSelected;
1893
+ // better to be set in a service and retrieved from it whenever needed?
1894
+ activeView;
1895
+ taskClass;
1848
1896
  get ariaSelected() {
1849
1897
  // assigning null will not render the attribute at all (desired in selectable="false" mode)
1850
1898
  return this.selectable ? String(this.isSelected(this.dataItem)) : null;
@@ -1904,6 +1952,20 @@ class GanttTaskBase {
1904
1952
  // fall-back to 0 in case no completionRatio is provided
1905
1953
  return isNumber(overlayWidth) ? overlayWidth : 0;
1906
1954
  }
1955
+ subscriptions = new Subscription();
1956
+ constructor(mapper, // left public to be available for usage in the templates
1957
+ timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
1958
+ this.mapper = mapper;
1959
+ this.timelineViewService = timelineViewService;
1960
+ this.dependencyDomService = dependencyDomService;
1961
+ this.optionChangesService = optionChangesService;
1962
+ this.cdr = cdr;
1963
+ this.navigationService = navigationService;
1964
+ this.subscriptions.add(this.optionChangesService.viewChanges
1965
+ .subscribe(() => this.cdr.markForCheck()));
1966
+ this.subscriptions.add(this.navigationService.taskStatusChanges
1967
+ .subscribe(this.updateActiveState.bind(this)));
1968
+ }
1907
1969
  ngOnChanges(changes) {
1908
1970
  if (isPresent(changes['dataItem'])) {
1909
1971
  if (isPresent(changes['dataItem'].previousValue)) {
@@ -1936,10 +1998,10 @@ class GanttTaskBase {
1936
1998
  this.taskElement.nativeElement.classList.remove(FOCUSED_CLASS);
1937
1999
  }
1938
2000
  }
2001
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttTaskBase, deps: [{ token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Directive });
2002
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GanttTaskBase, selector: "kendo-gantt-task-base", inputs: { dataItem: "dataItem", index: "index", level: "level", renderDependencyDragClues: "renderDependencyDragClues", selectable: "selectable", isSelected: "isSelected", activeView: "activeView", taskClass: "taskClass" }, host: { properties: { "class.k-task-wrap": "this.wrapperClass", "attr.data-task-index": "this.taskIndexAttribute", "style.left.px": "this.taskOffset" } }, viewQueries: [{ propertyName: "taskElement", first: true, predicate: ["task"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0 });
1939
2003
  }
1940
- GanttTaskBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskBase, deps: [{ token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Directive });
1941
- GanttTaskBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttTaskBase, selector: "kendo-gantt-task-base", inputs: { dataItem: "dataItem", index: "index", level: "level", renderDependencyDragClues: "renderDependencyDragClues", selectable: "selectable", isSelected: "isSelected", activeView: "activeView", taskClass: "taskClass" }, host: { properties: { "class.k-task-wrap": "this.wrapperClass", "attr.data-task-index": "this.taskIndexAttribute", "style.left.px": "this.taskOffset" } }, viewQueries: [{ propertyName: "taskElement", first: true, predicate: ["task"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0 });
1942
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskBase, decorators: [{
2004
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttTaskBase, decorators: [{
1943
2005
  type: Directive,
1944
2006
  args: [{
1945
2007
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -1979,24 +2041,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1979
2041
  * @hidden
1980
2042
  */
1981
2043
  class GanttTaskComponent extends GanttTaskBase {
2044
+ editService;
2045
+ taskContentTemplate;
2046
+ taskTemplate;
2047
+ xIcon = xIcon;
2048
+ touchEnabled = touchEnabled;
1982
2049
  constructor(editService, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
1983
2050
  super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
1984
2051
  this.editService = editService;
1985
- this.xIcon = xIcon;
1986
- this.touchEnabled = touchEnabled;
1987
2052
  }
1988
2053
  onTaskDelete() {
1989
2054
  this.editService.dataItem = this.dataItem;
1990
2055
  this.editService.taskDelete.next(this.dataItem);
1991
2056
  }
1992
- }
1993
- GanttTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskComponent, deps: [{ token: EditService }, { token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
1994
- GanttTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttTaskComponent, isStandalone: true, selector: "kendo-gantt-task", inputs: { taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate" }, providers: [
1995
- {
1996
- provide: GanttTaskBase,
1997
- useExisting: forwardRef(() => GanttTaskComponent)
1998
- }
1999
- ], usesInheritance: true, ngImport: i0, template: `
2057
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttTaskComponent, deps: [{ token: EditService }, { token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
2058
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GanttTaskComponent, isStandalone: true, selector: "kendo-gantt-task", inputs: { taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate" }, providers: [
2059
+ {
2060
+ provide: GanttTaskBase,
2061
+ useExisting: forwardRef(() => GanttTaskComponent)
2062
+ }
2063
+ ], usesInheritance: true, ngImport: i0, template: `
2000
2064
  <div
2001
2065
  #task
2002
2066
  class="k-task k-task-single"
@@ -2068,7 +2132,8 @@ GanttTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
2068
2132
  </div>
2069
2133
  </ng-container>
2070
2134
  `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
2071
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskComponent, decorators: [{
2135
+ }
2136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttTaskComponent, decorators: [{
2072
2137
  type: Component,
2073
2138
  args: [{
2074
2139
  selector: 'kendo-gantt-task',
@@ -2163,25 +2228,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2163
2228
  * @hidden
2164
2229
  */
2165
2230
  class GanttSummaryTaskComponent extends GanttTaskBase {
2166
- constructor(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
2167
- super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
2168
- this.summaryWrapperClass = true;
2169
- this.touchEnabled = touchEnabled;
2170
- }
2231
+ summaryWrapperClass = true;
2232
+ template;
2233
+ isExpanded;
2234
+ touchEnabled = touchEnabled;
2171
2235
  get ariaExpanded() {
2172
2236
  // if no callback is provided, all child items are displayed and the item is regarded as expanded
2173
2237
  // replicates the TreeList aria-expanded behavior
2174
2238
  const isExpanded = !isPresent(this.isExpanded) || this.isExpanded(this.dataItem);
2175
2239
  return String(isExpanded);
2176
2240
  }
2177
- }
2178
- GanttSummaryTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttSummaryTaskComponent, deps: [{ token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
2179
- GanttSummaryTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttSummaryTaskComponent, isStandalone: true, selector: "kendo-gantt-summary-task", inputs: { template: "template", isExpanded: "isExpanded" }, host: { properties: { "class.k-summary-wrap": "this.summaryWrapperClass" } }, providers: [
2180
- {
2181
- provide: GanttTaskBase,
2182
- useExisting: forwardRef(() => GanttSummaryTaskComponent)
2183
- }
2184
- ], usesInheritance: true, ngImport: i0, template: `
2241
+ constructor(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
2242
+ super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
2243
+ }
2244
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttSummaryTaskComponent, deps: [{ token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
2245
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GanttSummaryTaskComponent, isStandalone: true, selector: "kendo-gantt-summary-task", inputs: { template: "template", isExpanded: "isExpanded" }, host: { properties: { "class.k-summary-wrap": "this.summaryWrapperClass" } }, providers: [
2246
+ {
2247
+ provide: GanttTaskBase,
2248
+ useExisting: forwardRef(() => GanttSummaryTaskComponent)
2249
+ }
2250
+ ], usesInheritance: true, ngImport: i0, template: `
2185
2251
  <div
2186
2252
  #task
2187
2253
  role="treeitem"
@@ -2226,7 +2292,8 @@ GanttSummaryTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
2226
2292
  </div>
2227
2293
  </ng-container>
2228
2294
  `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
2229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttSummaryTaskComponent, decorators: [{
2295
+ }
2296
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttSummaryTaskComponent, decorators: [{
2230
2297
  type: Component,
2231
2298
  args: [{
2232
2299
  selector: 'kendo-gantt-summary-task',
@@ -2297,19 +2364,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2297
2364
  * @hidden
2298
2365
  */
2299
2366
  class GanttMilestoneTaskComponent extends GanttTaskBase {
2367
+ milestoneWrapperClass = true;
2368
+ touchEnabled = touchEnabled;
2300
2369
  constructor(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
2301
2370
  super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
2302
- this.milestoneWrapperClass = true;
2303
- this.touchEnabled = touchEnabled;
2304
2371
  }
2305
- }
2306
- GanttMilestoneTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttMilestoneTaskComponent, deps: [{ token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
2307
- GanttMilestoneTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttMilestoneTaskComponent, isStandalone: true, selector: "kendo-gantt-milestone-task", host: { properties: { "class.k-milestone-wrap": "this.milestoneWrapperClass" } }, providers: [
2308
- {
2309
- provide: GanttTaskBase,
2310
- useExisting: forwardRef(() => GanttMilestoneTaskComponent)
2311
- }
2312
- ], usesInheritance: true, ngImport: i0, template: `
2372
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttMilestoneTaskComponent, deps: [{ token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
2373
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GanttMilestoneTaskComponent, isStandalone: true, selector: "kendo-gantt-milestone-task", host: { properties: { "class.k-milestone-wrap": "this.milestoneWrapperClass" } }, providers: [
2374
+ {
2375
+ provide: GanttTaskBase,
2376
+ useExisting: forwardRef(() => GanttMilestoneTaskComponent)
2377
+ }
2378
+ ], usesInheritance: true, ngImport: i0, template: `
2313
2379
  <div
2314
2380
  #task
2315
2381
  role="treeitem"
@@ -2334,7 +2400,8 @@ GanttMilestoneTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.
2334
2400
  </div>
2335
2401
  </ng-container>
2336
2402
  `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2337
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttMilestoneTaskComponent, decorators: [{
2403
+ }
2404
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttMilestoneTaskComponent, decorators: [{
2338
2405
  type: Component,
2339
2406
  args: [{
2340
2407
  selector: 'kendo-gantt-milestone-task',
@@ -2381,10 +2448,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2381
2448
  * @hidden
2382
2449
  */
2383
2450
  class GanttTasksTableBodyComponent {
2384
- constructor(dependencyDomService, mapper) {
2385
- this.dependencyDomService = dependencyDomService;
2386
- this.mapper = mapper;
2387
- }
2451
+ dependencyDomService;
2452
+ mapper;
2388
2453
  set timelineRow(timelineRow) {
2389
2454
  // register the row value only when the first row is rendered
2390
2455
  // with server-side data-binding, the rows rendering could be delayed
@@ -2392,12 +2457,25 @@ class GanttTasksTableBodyComponent {
2392
2457
  this.dependencyDomService.registerTimelineRow(timelineRow.nativeElement);
2393
2458
  }
2394
2459
  }
2460
+ selectable;
2461
+ rows;
2462
+ activeView;
2463
+ taskContentTemplate;
2464
+ taskTemplate;
2465
+ summaryTaskTemplate;
2466
+ taskClass;
2467
+ isExpanded;
2468
+ isTaskSelected;
2469
+ renderDependencyDragClues;
2470
+ constructor(dependencyDomService, mapper) {
2471
+ this.dependencyDomService = dependencyDomService;
2472
+ this.mapper = mapper;
2473
+ }
2395
2474
  isMileStone(item) {
2396
2475
  return !item.hasChildren && isEqual(this.mapper.extractFromTask(item.data, 'start'), this.mapper.extractFromTask(item.data, 'end'));
2397
2476
  }
2398
- }
2399
- GanttTasksTableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTasksTableBodyComponent, deps: [{ token: DependencyDomService }, { token: MappingService }], target: i0.ɵɵFactoryTarget.Component });
2400
- GanttTasksTableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttTasksTableBodyComponent, isStandalone: true, selector: "[kendoGanttTasksTableBody]", inputs: { selectable: "selectable", rows: "rows", activeView: "activeView", taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate", summaryTaskTemplate: "summaryTaskTemplate", taskClass: "taskClass", isExpanded: "isExpanded", isTaskSelected: "isTaskSelected", renderDependencyDragClues: "renderDependencyDragClues" }, viewQueries: [{ propertyName: "timelineRow", first: true, predicate: ["timelineRow"], descendants: true }], ngImport: i0, template: `
2477
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttTasksTableBodyComponent, deps: [{ token: DependencyDomService }, { token: MappingService }], target: i0.ɵɵFactoryTarget.Component });
2478
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GanttTasksTableBodyComponent, isStandalone: true, selector: "[kendoGanttTasksTableBody]", inputs: { selectable: "selectable", rows: "rows", activeView: "activeView", taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate", summaryTaskTemplate: "summaryTaskTemplate", taskClass: "taskClass", isExpanded: "isExpanded", isTaskSelected: "isTaskSelected", renderDependencyDragClues: "renderDependencyDragClues" }, viewQueries: [{ propertyName: "timelineRow", first: true, predicate: ["timelineRow"], descendants: true }], ngImport: i0, template: `
2401
2479
  <tr class="k-table-row" #timelineRow *ngFor="let item of rows; let index = index">
2402
2480
  <td class="k-table-td">
2403
2481
  <kendo-gantt-milestone-task
@@ -2445,7 +2523,8 @@ GanttTasksTableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14
2445
2523
  </td>
2446
2524
  </tr>
2447
2525
  `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GanttMilestoneTaskComponent, selector: "kendo-gantt-milestone-task" }, { kind: "component", type: GanttSummaryTaskComponent, selector: "kendo-gantt-summary-task", inputs: ["template", "isExpanded"] }, { kind: "component", type: GanttTaskComponent, selector: "kendo-gantt-task", inputs: ["taskContentTemplate", "taskTemplate"] }] });
2448
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTasksTableBodyComponent, decorators: [{
2526
+ }
2527
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttTasksTableBodyComponent, decorators: [{
2449
2528
  type: Component,
2450
2529
  args: [{
2451
2530
  // eslint-disable-next-line @angular-eslint/component-selector
@@ -2550,11 +2629,9 @@ var ScrollAxis;
2550
2629
  * The scrolling is performed based on client (viewport) coordinates.
2551
2630
  */
2552
2631
  class TimelineScrollService {
2553
- constructor() {
2554
- this.horizontalScroll = new Subject();
2555
- this.verticalScroll = new Subject();
2556
- this.scrollCancel = new Subject();
2557
- }
2632
+ horizontalScroll = new Subject();
2633
+ verticalScroll = new Subject();
2634
+ scrollCancel = new Subject();
2558
2635
  ngOnDestroy() {
2559
2636
  this.horizontalScroll.complete();
2560
2637
  this.verticalScroll.complete();
@@ -2569,10 +2646,10 @@ class TimelineScrollService {
2569
2646
  requestScrollCancel() {
2570
2647
  this.scrollCancel.next();
2571
2648
  }
2649
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineScrollService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2650
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineScrollService });
2572
2651
  }
2573
- TimelineScrollService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineScrollService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2574
- TimelineScrollService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineScrollService });
2575
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineScrollService, decorators: [{
2652
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineScrollService, decorators: [{
2576
2653
  type: Injectable
2577
2654
  }] });
2578
2655
 
@@ -2651,11 +2728,17 @@ const getViewportBoundaries = (element) => {
2651
2728
  * @hidden
2652
2729
  */
2653
2730
  class TimelineScrollableDirective {
2731
+ timelineScrollableContainer;
2732
+ scrollService;
2733
+ zone;
2734
+ scrollSettings;
2735
+ subscriptions = new Subscription();
2736
+ verticalScrollInterval;
2737
+ horizontalScrollInterval;
2654
2738
  constructor(timelineScrollableContainer, scrollService, zone) {
2655
2739
  this.timelineScrollableContainer = timelineScrollableContainer;
2656
2740
  this.scrollService = scrollService;
2657
2741
  this.zone = zone;
2658
- this.subscriptions = new Subscription();
2659
2742
  this.subscriptions.add(this.scrollService.horizontalScroll
2660
2743
  .subscribe(this.scrollHorizontallyTo.bind(this)));
2661
2744
  this.subscriptions.add(this.scrollService.verticalScroll
@@ -2700,10 +2783,10 @@ class TimelineScrollableDirective {
2700
2783
  this.horizontalScrollInterval = null;
2701
2784
  }
2702
2785
  }
2786
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineScrollableDirective, deps: [{ token: i0.ElementRef }, { token: TimelineScrollService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
2787
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TimelineScrollableDirective, isStandalone: true, selector: "[kendoGanttTimelineScrollable]", inputs: { scrollSettings: "scrollSettings" }, ngImport: i0 });
2703
2788
  }
2704
- TimelineScrollableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineScrollableDirective, deps: [{ token: i0.ElementRef }, { token: TimelineScrollService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
2705
- TimelineScrollableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: TimelineScrollableDirective, isStandalone: true, selector: "[kendoGanttTimelineScrollable]", inputs: { scrollSettings: "scrollSettings" }, ngImport: i0 });
2706
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineScrollableDirective, decorators: [{
2789
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineScrollableDirective, decorators: [{
2707
2790
  type: Directive,
2708
2791
  args: [{
2709
2792
  selector: '[kendoGanttTimelineScrollable]',
@@ -2717,12 +2800,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2717
2800
  * @hidden
2718
2801
  */
2719
2802
  class GanttHeaderTableBodyComponent {
2720
- constructor() {
2721
- this.tbodyClass = true;
2722
- }
2723
- }
2724
- GanttHeaderTableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttHeaderTableBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2725
- GanttHeaderTableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttHeaderTableBodyComponent, isStandalone: true, selector: "[kendoGanttHeaderTableBody]", inputs: { groupSlots: "groupSlots", slots: "slots" }, host: { properties: { "class.k-table-tbody": "this.tbodyClass" } }, ngImport: i0, template: `
2803
+ tbodyClass = true;
2804
+ groupSlots;
2805
+ slots;
2806
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttHeaderTableBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2807
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GanttHeaderTableBodyComponent, isStandalone: true, selector: "[kendoGanttHeaderTableBody]", inputs: { groupSlots: "groupSlots", slots: "slots" }, host: { properties: { "class.k-table-tbody": "this.tbodyClass" } }, ngImport: i0, template: `
2726
2808
  <tr class="k-table-row">
2727
2809
  <td *ngFor="let item of groupSlots" [attr.colspan]="item.span" class="k-header k-table-td">{{ item.text }}</td>
2728
2810
  </tr>
@@ -2731,7 +2813,8 @@ GanttHeaderTableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
2731
2813
  <td *ngFor="let item of slots" class="k-header k-table-td" [attr.colspan]="item.span === 7 ? item.span : 1" [attr.title]="item.text">{{ item.text }}</td>
2732
2814
  </tr>
2733
2815
  `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
2734
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttHeaderTableBodyComponent, decorators: [{
2816
+ }
2817
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttHeaderTableBodyComponent, decorators: [{
2735
2818
  type: Component,
2736
2819
  args: [{
2737
2820
  // eslint-disable-next-line @angular-eslint/component-selector
@@ -2761,18 +2844,62 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2761
2844
  * @hidden
2762
2845
  */
2763
2846
  class GanttTimelineComponent {
2847
+ scrollSyncService;
2848
+ dependencyDomService;
2849
+ renderer;
2850
+ zone;
2851
+ currentTimeMarkerService;
2852
+ /**
2853
+ * Represents the scrollable container of the timeline content.
2854
+ * Used externally by the DependencyDragCreateDirective.
2855
+ */
2856
+ timelineContent;
2857
+ timelineColumns;
2858
+ timelineHeaderWrap;
2859
+ tasksContainer;
2860
+ /**
2861
+ * Represents the view container ref used for rendering the dependency drag popop.
2862
+ * Used externally by the DependencyDragCreateDirective.
2863
+ */
2864
+ dragPopupContainer;
2865
+ /**
2866
+ * Represents the polyline element used for rendering the dependency drag editing interaction.
2867
+ * Used externally by the DependencyDragCreateDirective.
2868
+ */
2869
+ dependencyDragCreatePolyline;
2870
+ rows;
2871
+ slots;
2872
+ groupSlots;
2873
+ tableWidth;
2874
+ activeView;
2875
+ taskContentTemplate;
2876
+ taskTemplate;
2877
+ summaryTaskTemplate;
2878
+ taskClass;
2879
+ renderDependencyDragClues;
2880
+ dragScrollSettings;
2881
+ currentTimeMarker;
2882
+ selectable;
2883
+ isTaskSelected;
2884
+ isExpanded;
2885
+ dependencies = [];
2886
+ // as all drag-and-drop operations are on the timeline container, use a single draggable instance
2887
+ timelineContainerPress = new EventEmitter();
2888
+ timelineContainerDrag = new EventEmitter();
2889
+ timelineContainerRelease = new EventEmitter();
2890
+ /**
2891
+ * Specifies whether the draggable will attach or detach its pointer event listeners.
2892
+ */
2893
+ get draggableEnabled() {
2894
+ return this.renderDependencyDragClues;
2895
+ }
2896
+ subscriptions = new Subscription();
2764
2897
  constructor(scrollSyncService, dependencyDomService, renderer, zone, currentTimeMarkerService) {
2765
2898
  this.scrollSyncService = scrollSyncService;
2766
2899
  this.dependencyDomService = dependencyDomService;
2767
2900
  this.renderer = renderer;
2768
2901
  this.zone = zone;
2769
2902
  this.currentTimeMarkerService = currentTimeMarkerService;
2770
- this.dependencies = [];
2771
- // as all drag-and-drop operations are on the timeline container, use a single draggable instance
2772
- this.timelineContainerPress = new EventEmitter();
2773
- this.timelineContainerDrag = new EventEmitter();
2774
- this.timelineContainerRelease = new EventEmitter();
2775
- this.subscriptions = new Subscription();
2776
2903
  this.subscriptions.add(
2777
2904
  // task changes indicates change in row content, number, height, etc.
2778
2905
  this.dependencyDomService.taskChanges
@@ -2789,12 +2916,6 @@ class GanttTimelineComponent {
2789
2916
  this.renderer.setStyle(this.timelineColumns.nativeElement, 'height', `${(this.rows || []).length * timelineRowHeight}px`);
2790
2917
  }));
2791
2918
  }
2792
- /**
2793
- * Specifies whether the draggable will attach or detach its pointer event listeners.
2794
- */
2795
- get draggableEnabled() {
2796
- return this.renderDependencyDragClues;
2797
- }
2798
2919
  ngOnChanges(changes) {
2799
2920
  if (changes['currentTimeMarker']) {
2800
2921
  this.createTimeMarker();
@@ -2824,9 +2945,8 @@ class GanttTimelineComponent {
2824
2945
  }
2825
2946
  });
2826
2947
  }
2827
- }
2828
- GanttTimelineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTimelineComponent, deps: [{ token: ScrollSyncService }, { token: DependencyDomService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: CurrentTimeMarkerService }], target: i0.ɵɵFactoryTarget.Component });
2829
- GanttTimelineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttTimelineComponent, isStandalone: true, selector: "kendo-gantt-timeline", inputs: { rows: "rows", slots: "slots", groupSlots: "groupSlots", tableWidth: "tableWidth", activeView: "activeView", taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate", summaryTaskTemplate: "summaryTaskTemplate", taskClass: "taskClass", renderDependencyDragClues: "renderDependencyDragClues", dragScrollSettings: "dragScrollSettings", currentTimeMarker: "currentTimeMarker", selectable: "selectable", isTaskSelected: "isTaskSelected", isExpanded: "isExpanded", dependencies: "dependencies" }, outputs: { timelineContainerPress: "timelineContainerPress", timelineContainerDrag: "timelineContainerDrag", timelineContainerRelease: "timelineContainerRelease" }, viewQueries: [{ propertyName: "timelineContent", first: true, predicate: ["timelineContent"], descendants: true, static: true }, { propertyName: "timelineColumns", first: true, predicate: ["timelineColumns"], descendants: true, static: true }, { propertyName: "timelineHeaderWrap", first: true, predicate: ["timelineHeaderWrap"], descendants: true, static: true }, { propertyName: "tasksContainer", first: true, predicate: ["tasksContainer"], descendants: true, static: true }, { propertyName: "dragPopupContainer", first: true, predicate: ["dragPopupContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "dependencyDragCreatePolyline", first: true, predicate: ["dependencyDragCreatePolyline"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
2948
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttTimelineComponent, deps: [{ token: ScrollSyncService }, { token: DependencyDomService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: CurrentTimeMarkerService }], target: i0.ɵɵFactoryTarget.Component });
2949
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GanttTimelineComponent, isStandalone: true, selector: "kendo-gantt-timeline", inputs: { rows: "rows", slots: "slots", groupSlots: "groupSlots", tableWidth: "tableWidth", activeView: "activeView", taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate", summaryTaskTemplate: "summaryTaskTemplate", taskClass: "taskClass", renderDependencyDragClues: "renderDependencyDragClues", dragScrollSettings: "dragScrollSettings", currentTimeMarker: "currentTimeMarker", selectable: "selectable", isTaskSelected: "isTaskSelected", isExpanded: "isExpanded", dependencies: "dependencies" }, outputs: { timelineContainerPress: "timelineContainerPress", timelineContainerDrag: "timelineContainerDrag", timelineContainerRelease: "timelineContainerRelease" }, viewQueries: [{ propertyName: "timelineContent", first: true, predicate: ["timelineContent"], descendants: true, static: true }, { propertyName: "timelineColumns", first: true, predicate: ["timelineColumns"], descendants: true, static: true }, { propertyName: "timelineHeaderWrap", first: true, predicate: ["timelineHeaderWrap"], descendants: true, static: true }, { propertyName: "tasksContainer", first: true, predicate: ["tasksContainer"], descendants: true, static: true }, { propertyName: "dragPopupContainer", first: true, predicate: ["dragPopupContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "dependencyDragCreatePolyline", first: true, predicate: ["dependencyDragCreatePolyline"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
2830
2950
  <div class="k-gantt-timeline k-grid k-grid-md">
2831
2951
  <div class="k-grid-header">
2832
2952
  <div #timelineHeaderWrap class="k-grid-header-wrap">
@@ -2930,7 +3050,8 @@ GanttTimelineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
2930
3050
  </div>
2931
3051
  </div>
2932
3052
  `, isInline: true, dependencies: [{ kind: "component", type: GanttHeaderTableBodyComponent, selector: "[kendoGanttHeaderTableBody]", inputs: ["groupSlots", "slots"] }, { kind: "directive", type: TimelineScrollableDirective, selector: "[kendoGanttTimelineScrollable]", inputs: ["scrollSettings"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: GanttTasksTableBodyComponent, selector: "[kendoGanttTasksTableBody]", inputs: ["selectable", "rows", "activeView", "taskContentTemplate", "taskTemplate", "summaryTaskTemplate", "taskClass", "isExpanded", "isTaskSelected", "renderDependencyDragClues"] }, { kind: "directive", type: GanttDependencyDirective, selector: "[kendoGanttDependency]", inputs: ["dependency"] }] });
2933
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTimelineComponent, decorators: [{
3053
+ }
3054
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttTimelineComponent, decorators: [{
2934
3055
  type: Component,
2935
3056
  args: [{
2936
3057
  selector: 'kendo-gantt-timeline',
@@ -3103,50 +3224,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3103
3224
  * The base class for the column components of the Gantt.
3104
3225
  */
3105
3226
  class GanttColumnBase extends ColumnBase {
3106
- /**
3107
- * Toggles the locked (frozen) state of the columns.
3108
- *
3109
- * @default false
3110
- * @hidden
3111
- */
3112
- set locked(value) {
3113
- super.locked = value;
3114
- }
3115
- get locked() {
3116
- return super.locked;
3117
- }
3227
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttColumnBase, deps: null, target: i0.ɵɵFactoryTarget.Component });
3228
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GanttColumnBase, selector: "kendo-gantt-column-base", usesInheritance: true, ngImport: i0, template: '', isInline: true });
3118
3229
  }
3119
- GanttColumnBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttColumnBase, deps: null, target: i0.ɵɵFactoryTarget.Component });
3120
- GanttColumnBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttColumnBase, selector: "kendo-gantt-column-base", inputs: { locked: "locked", lockable: "lockable", hidden: "hidden", media: "media", style: "style", headerStyle: "headerStyle", footerStyle: "footerStyle", cssClass: ["class", "cssClass"], headerClass: "headerClass", footerClass: "footerClass" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
3121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttColumnBase, decorators: [{
3230
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttColumnBase, decorators: [{
3122
3231
  type: Component,
3123
3232
  args: [{
3124
3233
  template: '',
3125
3234
  // eslint-disable-next-line @angular-eslint/directive-selector
3126
3235
  selector: 'kendo-gantt-column-base'
3127
3236
  }]
3128
- }], propDecorators: { locked: [{
3129
- type: Input
3130
- }], lockable: [{
3131
- type: Input
3132
- }], hidden: [{
3133
- type: Input
3134
- }], media: [{
3135
- type: Input
3136
- }], style: [{
3137
- type: Input
3138
- }], headerStyle: [{
3139
- type: Input
3140
- }], footerStyle: [{
3141
- type: Input
3142
- }], cssClass: [{
3143
- type: Input,
3144
- args: ['class']
3145
- }], headerClass: [{
3146
- type: Input
3147
- }], footerClass: [{
3148
- type: Input
3149
- }] } });
3237
+ }] });
3150
3238
 
3151
3239
  /**
3152
3240
  * Represents the column cell template of the Gantt.
@@ -3165,13 +3253,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3165
3253
  * - `rowIndex`&mdash;The current row index. Use it as an alias for a template variable by utilizing the `let-rowIndex="rowIndex"` syntax.
3166
3254
  */
3167
3255
  class CellTemplateDirective {
3256
+ templateRef;
3168
3257
  constructor(templateRef) {
3169
3258
  this.templateRef = templateRef;
3170
3259
  }
3260
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CellTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3261
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CellTemplateDirective, isStandalone: true, selector: "[kendoGanttCellTemplate]", ngImport: i0 });
3171
3262
  }
3172
- CellTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CellTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3173
- CellTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CellTemplateDirective, isStandalone: true, selector: "[kendoGanttCellTemplate]", ngImport: i0 });
3174
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CellTemplateDirective, decorators: [{
3263
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CellTemplateDirective, decorators: [{
3175
3264
  type: Directive,
3176
3265
  args: [{
3177
3266
  selector: '[kendoGanttCellTemplate]',
@@ -3192,13 +3281,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3192
3281
  * - `column`&mdash;Represents the Gantt column.
3193
3282
  */
3194
3283
  class ColumnMenuTemplateDirective {
3284
+ templateRef;
3195
3285
  constructor(templateRef) {
3196
3286
  this.templateRef = templateRef;
3197
3287
  }
3288
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3289
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuTemplateDirective, isStandalone: true, selector: "[kendoGanttColumnMenuTemplate]", ngImport: i0 });
3198
3290
  }
3199
- ColumnMenuTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnMenuTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3200
- ColumnMenuTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ColumnMenuTemplateDirective, isStandalone: true, selector: "[kendoGanttColumnMenuTemplate]", ngImport: i0 });
3201
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnMenuTemplateDirective, decorators: [{
3291
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuTemplateDirective, decorators: [{
3202
3292
  type: Directive,
3203
3293
  args: [{
3204
3294
  selector: '[kendoGanttColumnMenuTemplate]',
@@ -3218,13 +3308,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3218
3308
  * - `cellContext`&mdash;An object used to pass context information to built-in directives.
3219
3309
  */
3220
3310
  class FilterCellTemplateDirective {
3311
+ templateRef;
3221
3312
  constructor(templateRef) {
3222
3313
  this.templateRef = templateRef;
3223
3314
  }
3315
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterCellTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3316
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FilterCellTemplateDirective, isStandalone: true, selector: "[kendoGanttFilterCellTemplate]", ngImport: i0 });
3224
3317
  }
3225
- FilterCellTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterCellTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3226
- FilterCellTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FilterCellTemplateDirective, isStandalone: true, selector: "[kendoGanttFilterCellTemplate]", ngImport: i0 });
3227
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterCellTemplateDirective, decorators: [{
3318
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterCellTemplateDirective, decorators: [{
3228
3319
  type: Directive,
3229
3320
  args: [{
3230
3321
  selector: '[kendoGanttFilterCellTemplate]',
@@ -3243,13 +3334,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3243
3334
  * - `cellContext`&mdash;An object used to pass context information to built-in directives.
3244
3335
  */
3245
3336
  class FilterMenuTemplateDirective {
3337
+ templateRef;
3246
3338
  constructor(templateRef) {
3247
3339
  this.templateRef = templateRef;
3248
3340
  }
3341
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3342
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FilterMenuTemplateDirective, isStandalone: true, selector: "[kendoGanttFilterMenuTemplate]", ngImport: i0 });
3249
3343
  }
3250
- FilterMenuTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterMenuTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3251
- FilterMenuTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FilterMenuTemplateDirective, isStandalone: true, selector: "[kendoGanttFilterMenuTemplate]", ngImport: i0 });
3252
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterMenuTemplateDirective, decorators: [{
3344
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuTemplateDirective, decorators: [{
3253
3345
  type: Directive,
3254
3346
  args: [{
3255
3347
  selector: '[kendoGanttFilterMenuTemplate]',
@@ -3272,13 +3364,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3272
3364
  * * `field`&mdash;The name of the column field, if set.
3273
3365
  */
3274
3366
  class FooterTemplateDirective {
3367
+ templateRef;
3275
3368
  constructor(templateRef) {
3276
3369
  this.templateRef = templateRef;
3277
3370
  }
3371
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FooterTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3372
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FooterTemplateDirective, isStandalone: true, selector: "[kendoGanttFooterTemplate]", ngImport: i0 });
3278
3373
  }
3279
- FooterTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FooterTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3280
- FooterTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FooterTemplateDirective, isStandalone: true, selector: "[kendoGanttFooterTemplate]", ngImport: i0 });
3281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FooterTemplateDirective, decorators: [{
3374
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FooterTemplateDirective, decorators: [{
3282
3375
  type: Directive,
3283
3376
  args: [{
3284
3377
  selector: '[kendoGanttFooterTemplate]',
@@ -3299,13 +3392,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3299
3392
  * * `columnIndex`&mdash;Defines the current column index.
3300
3393
  */
3301
3394
  class HeaderTemplateDirective {
3395
+ templateRef;
3302
3396
  constructor(templateRef) {
3303
3397
  this.templateRef = templateRef;
3304
3398
  }
3399
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HeaderTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3400
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: HeaderTemplateDirective, isStandalone: true, selector: "[kendoGanttHeaderTemplate]", ngImport: i0 });
3305
3401
  }
3306
- HeaderTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: HeaderTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3307
- HeaderTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: HeaderTemplateDirective, isStandalone: true, selector: "[kendoGanttHeaderTemplate]", ngImport: i0 });
3308
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: HeaderTemplateDirective, decorators: [{
3402
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HeaderTemplateDirective, decorators: [{
3309
3403
  type: Directive,
3310
3404
  args: [{
3311
3405
  selector: '[kendoGanttHeaderTemplate]',
@@ -3330,13 +3424,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3330
3424
  * - `rowIndex`&mdash;The current row index. If inside a new item row, `rowIndex` is `-1`.
3331
3425
  */
3332
3426
  class EditTemplateDirective {
3427
+ templateRef;
3333
3428
  constructor(templateRef) {
3334
3429
  this.templateRef = templateRef;
3335
3430
  }
3431
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3432
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: EditTemplateDirective, isStandalone: true, selector: "[kendoGanttEditTemplate]", ngImport: i0 });
3336
3433
  }
3337
- EditTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3338
- EditTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: EditTemplateDirective, isStandalone: true, selector: "[kendoGanttEditTemplate]", ngImport: i0 });
3339
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditTemplateDirective, decorators: [{
3434
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditTemplateDirective, decorators: [{
3340
3435
  type: Directive,
3341
3436
  args: [{
3342
3437
  selector: '[kendoGanttEditTemplate]',
@@ -3347,56 +3442,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3347
3442
  }] }]; } });
3348
3443
 
3349
3444
  class GanttColumnComponent extends ColumnComponent {
3350
- constructor(options, parent) {
3351
- super(parent);
3352
- this.options = options;
3353
- this.headerTemplates = new QueryList();
3354
- this.columnMenuTemplates = new QueryList();
3355
- /**
3356
- * Defines the filter type that is displayed inside the filter row. The default value is `text`.
3357
- */
3358
- this.filter = 'text';
3359
- /**
3360
- * Defines if a filter UI will be displayed for this column. The default value is `true`.
3361
- */
3362
- this.filterable = true;
3363
- /**
3364
- * @hidden
3365
- *
3366
- * Defines the editor type.
3367
- * Used when the column enters the edit mode. The default value is `text`.
3368
- */
3369
- this.editor = 'text';
3370
- /**
3371
- * @hidden
3372
- *
3373
- * Defines whether the column is editable. The default value is `true`.
3374
- */
3375
- this.editable = true;
3376
- }
3445
+ options;
3446
+ headerTemplates = new QueryList();
3447
+ footerTemplate;
3448
+ columnMenuTemplates = new QueryList();
3449
+ template;
3450
+ editTemplate;
3451
+ filterCellTemplate;
3452
+ filterMenuTemplate;
3453
+ /**
3454
+ * Defines the filter type that is displayed inside the filter row. The default value is `text`.
3455
+ */
3456
+ filter = 'text';
3457
+ /**
3458
+ * Defines if a filter UI will be displayed for this column. The default value is `true`.
3459
+ */
3460
+ filterable = true;
3377
3461
  /**
3378
- * Toggles the locked (frozen) state of the columns.
3379
3462
  * @hidden
3380
- * @default false
3463
+ *
3464
+ * Defines the editor type.
3465
+ * Used when the column enters the edit mode. The default value is `text`.
3381
3466
  */
3382
- set locked(value) {
3383
- super.locked = value;
3384
- }
3385
- get locked() {
3386
- return super.locked;
3467
+ editor = 'text';
3468
+ /**
3469
+ * @hidden
3470
+ *
3471
+ * Defines whether the column is editable. The default value is `true`.
3472
+ */
3473
+ editable = true;
3474
+ constructor(options, parent) {
3475
+ super(parent);
3476
+ this.options = options;
3387
3477
  }
3388
3478
  ngOnChanges() {
3389
3479
  this.options.notifyColumnChanges();
3390
3480
  }
3481
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttColumnComponent, deps: [{ token: OptionChangesService }, { token: GanttColumnBase, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
3482
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GanttColumnComponent, isStandalone: true, selector: "kendo-gantt-column", inputs: { filter: "filter", filterable: "filterable", editor: "editor", editable: "editable" }, providers: [
3483
+ {
3484
+ provide: GanttColumnBase,
3485
+ useExisting: forwardRef(() => GanttColumnComponent)
3486
+ }
3487
+ ], queries: [{ propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "template", first: true, predicate: CellTemplateDirective, descendants: true }, { propertyName: "editTemplate", first: true, predicate: EditTemplateDirective, descendants: true }, { propertyName: "filterCellTemplate", first: true, predicate: FilterCellTemplateDirective, descendants: true }, { propertyName: "filterMenuTemplate", first: true, predicate: FilterMenuTemplateDirective, descendants: true }, { propertyName: "headerTemplates", predicate: HeaderTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
3391
3488
  }
3392
- GanttColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttColumnComponent, deps: [{ token: OptionChangesService }, { token: GanttColumnBase, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
3393
- GanttColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttColumnComponent, isStandalone: true, selector: "kendo-gantt-column", inputs: { format: "format", filter: "filter", filterable: "filterable", editor: "editor", editable: "editable", locked: "locked", lockable: "lockable", hidden: "hidden", media: "media", style: "style", headerStyle: "headerStyle", footerStyle: "footerStyle", cssClass: ["class", "cssClass"], headerClass: "headerClass", footerClass: "footerClass" }, providers: [
3394
- {
3395
- provide: GanttColumnBase,
3396
- useExisting: forwardRef(() => GanttColumnComponent)
3397
- }
3398
- ], queries: [{ propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "template", first: true, predicate: CellTemplateDirective, descendants: true }, { propertyName: "editTemplate", first: true, predicate: EditTemplateDirective, descendants: true }, { propertyName: "filterCellTemplate", first: true, predicate: FilterCellTemplateDirective, descendants: true }, { propertyName: "filterMenuTemplate", first: true, predicate: FilterMenuTemplateDirective, descendants: true }, { propertyName: "headerTemplates", predicate: HeaderTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
3399
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttColumnComponent, decorators: [{
3489
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttColumnComponent, decorators: [{
3400
3490
  type: Component,
3401
3491
  args: [{
3402
3492
  selector: 'kendo-gantt-column',
@@ -3436,8 +3526,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3436
3526
  }], filterMenuTemplate: [{
3437
3527
  type: ContentChild,
3438
3528
  args: [FilterMenuTemplateDirective, { static: false }]
3439
- }], format: [{
3440
- type: Input
3441
3529
  }], filter: [{
3442
3530
  type: Input
3443
3531
  }], filterable: [{
@@ -3446,70 +3534,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3446
3534
  type: Input
3447
3535
  }], editable: [{
3448
3536
  type: Input
3449
- }], locked: [{
3450
- type: Input
3451
- }], lockable: [{
3452
- type: Input
3453
- }], hidden: [{
3454
- type: Input
3455
- }], media: [{
3456
- type: Input
3457
- }], style: [{
3458
- type: Input
3459
- }], headerStyle: [{
3460
- type: Input
3461
- }], footerStyle: [{
3462
- type: Input
3463
- }], cssClass: [{
3464
- type: Input,
3465
- args: ['class']
3466
- }], headerClass: [{
3467
- type: Input
3468
- }], footerClass: [{
3469
- type: Input
3470
3537
  }] } });
3471
3538
 
3472
3539
  class GanttColumnGroupComponent extends ColumnGroupComponent {
3540
+ options;
3541
+ /**
3542
+ * @hidden
3543
+ */
3544
+ children = new QueryList();
3545
+ /**
3546
+ * @hidden
3547
+ */
3548
+ headerTemplates;
3473
3549
  constructor(options, parent) {
3474
3550
  super(parent);
3475
3551
  this.options = options;
3476
- /**
3477
- * @hidden
3478
- */
3479
- this.children = new QueryList();
3480
- /**
3481
- * Allows the column headers to be clicked and the `sortChange` event emitted.
3482
- * You have to handle the `sortChange` event yourself and sort the data.
3483
- */
3484
- this.sortable = true;
3485
3552
  if (parent && parent.isSpanColumn) {
3486
3553
  throw new Error('ColumnGroupComponent cannot be nested inside SpanColumnComponent');
3487
3554
  }
3488
3555
  }
3489
- /**
3490
- * Toggles the locked (frozen) state of the columns.
3491
- *
3492
- * @default false
3493
- * @hidden
3494
- */
3495
- set locked(value) {
3496
- super.locked = value;
3497
- }
3498
- get locked() {
3499
- return super.locked;
3500
- }
3501
3556
  ngOnChanges() {
3502
3557
  this.options.notifyColumnChanges();
3503
3558
  }
3559
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttColumnGroupComponent, deps: [{ token: OptionChangesService }, { token: GanttColumnBase, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
3560
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GanttColumnGroupComponent, isStandalone: true, selector: "kendo-gantt-column-group", providers: [
3561
+ {
3562
+ provide: GanttColumnBase,
3563
+ useExisting: forwardRef(() => GanttColumnGroupComponent)
3564
+ }
3565
+ ], queries: [{ propertyName: "children", predicate: GanttColumnBase }, { propertyName: "headerTemplates", predicate: HeaderTemplateDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
3504
3566
  }
3505
- GanttColumnGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttColumnGroupComponent, deps: [{ token: OptionChangesService }, { token: GanttColumnBase, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
3506
- GanttColumnGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttColumnGroupComponent, isStandalone: true, selector: "kendo-gantt-column-group", inputs: { locked: "locked", lockable: "lockable", hidden: "hidden", sortable: "sortable", media: "media", style: "style", headerStyle: "headerStyle", footerStyle: "footerStyle", cssClass: ["class", "cssClass"], headerClass: "headerClass", footerClass: "footerClass" }, providers: [
3507
- {
3508
- provide: GanttColumnBase,
3509
- useExisting: forwardRef(() => GanttColumnGroupComponent)
3510
- }
3511
- ], queries: [{ propertyName: "children", predicate: GanttColumnBase }, { propertyName: "headerTemplates", predicate: HeaderTemplateDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
3512
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttColumnGroupComponent, decorators: [{
3567
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttColumnGroupComponent, decorators: [{
3513
3568
  type: Component,
3514
3569
  args: [{
3515
3570
  selector: 'kendo-gantt-column-group',
@@ -3534,86 +3589,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3534
3589
  }], headerTemplates: [{
3535
3590
  type: ContentChildren,
3536
3591
  args: [HeaderTemplateDirective]
3537
- }], locked: [{
3538
- type: Input
3539
- }], lockable: [{
3540
- type: Input
3541
- }], hidden: [{
3542
- type: Input
3543
- }], sortable: [{
3544
- type: Input
3545
- }], media: [{
3546
- type: Input
3547
- }], style: [{
3548
- type: Input
3549
- }], headerStyle: [{
3550
- type: Input
3551
- }], footerStyle: [{
3552
- type: Input
3553
- }], cssClass: [{
3554
- type: Input,
3555
- args: ['class']
3556
- }], headerClass: [{
3557
- type: Input
3558
- }], footerClass: [{
3559
- type: Input
3560
3592
  }] } });
3561
3593
 
3562
3594
  class GanttSpanColumnComponent extends SpanColumnComponent {
3563
- constructor(options, parent) {
3564
- super(parent);
3565
- this.options = options;
3566
- /**
3567
- * @hidden
3568
- */
3569
- this.childColumns = new QueryList();
3570
- this.template = new QueryList();
3571
- this.editTemplate = new QueryList();
3572
- }
3595
+ options;
3573
3596
  /**
3574
- * Toggles the locked (frozen) state of the columns. Locked columns are visible
3575
- * at all times during the horizontal scrolling of the Gantt.
3576
- *
3577
- * For the option to work properly, make sure that:
3578
- * - Scrolling is enabled.
3579
- * - The `height` option of the Gantt is set.
3580
- * - The widths of all Gantt columns are explicitly set in pixels. In this way,
3581
- * the Gantt adjusts the layout of the locked and unlocked columns.
3582
- *
3583
- * @default false
3584
3597
  * @hidden
3585
3598
  */
3586
- set locked(value) {
3587
- super.locked = value;
3599
+ childColumns = new QueryList();
3600
+ template = new QueryList();
3601
+ editTemplate = new QueryList();
3602
+ constructor(options, parent) {
3603
+ super(parent);
3604
+ this.options = options;
3588
3605
  }
3589
- get locked() {
3590
- return super.locked;
3591
- }
3592
- /**
3593
- * @hidden
3594
- *
3595
- * Defines whether the edit template of the column will be rendered. The default value is `false`.
3596
- *
3597
- * > To enable the editing functionality for a spanned column, set an edit template for it.
3598
- */
3599
- set editable(value) {
3600
- super.editable = value;
3601
- }
3602
- get editable() {
3603
- return super.editable;
3604
- }
3605
- ngOnChanges() {
3606
- this.options.notifyColumnChanges();
3606
+ ngOnChanges() {
3607
+ this.options.notifyColumnChanges();
3607
3608
  }
3609
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttSpanColumnComponent, deps: [{ token: OptionChangesService }, { token: GanttColumnBase, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
3610
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GanttSpanColumnComponent, isStandalone: true, selector: "kendo-gantt-span-column", providers: [
3611
+ {
3612
+ provide: GanttColumnBase,
3613
+ useExisting: forwardRef(() => GanttSpanColumnComponent)
3614
+ }
3615
+ ], queries: [{ propertyName: "childColumns", predicate: GanttColumnComponent }, { propertyName: "template", predicate: CellTemplateDirective }, { propertyName: "editTemplate", predicate: EditTemplateDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
3608
3616
  }
3609
- GanttSpanColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttSpanColumnComponent, deps: [{ token: OptionChangesService }, { token: GanttColumnBase, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
3610
- GanttSpanColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttSpanColumnComponent, isStandalone: true, selector: "kendo-gantt-span-column", inputs: { locked: "locked", lockable: "lockable", editable: "editable", hidden: "hidden", media: "media", style: "style", headerStyle: "headerStyle", footerStyle: "footerStyle", cssClass: ["class", "cssClass"], headerClass: "headerClass", footerClass: "footerClass" }, providers: [
3611
- {
3612
- provide: GanttColumnBase,
3613
- useExisting: forwardRef(() => GanttSpanColumnComponent)
3614
- }
3615
- ], queries: [{ propertyName: "childColumns", predicate: GanttColumnComponent }, { propertyName: "template", predicate: CellTemplateDirective }, { propertyName: "editTemplate", predicate: EditTemplateDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
3616
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttSpanColumnComponent, decorators: [{
3617
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttSpanColumnComponent, decorators: [{
3617
3618
  type: Component,
3618
3619
  args: [{
3619
3620
  selector: 'kendo-gantt-span-column',
@@ -3641,29 +3642,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3641
3642
  }], editTemplate: [{
3642
3643
  type: ContentChildren,
3643
3644
  args: [EditTemplateDirective, { descendants: false }]
3644
- }], locked: [{
3645
- type: Input
3646
- }], lockable: [{
3647
- type: Input
3648
- }], editable: [{
3649
- type: Input
3650
- }], hidden: [{
3651
- type: Input
3652
- }], media: [{
3653
- type: Input
3654
- }], style: [{
3655
- type: Input
3656
- }], headerStyle: [{
3657
- type: Input
3658
- }], footerStyle: [{
3659
- type: Input
3660
- }], cssClass: [{
3661
- type: Input,
3662
- args: ['class']
3663
- }], headerClass: [{
3664
- type: Input
3665
- }], footerClass: [{
3666
- type: Input
3667
3645
  }] } });
3668
3646
 
3669
3647
  /**
@@ -3691,6 +3669,37 @@ const isSelected = () => false;
3691
3669
  * Called every time a user leaves an edited cell.
3692
3670
  */
3693
3671
  class CellCloseEvent extends PreventableEvent {
3672
+ /**
3673
+ * The data item.
3674
+ */
3675
+ dataItem;
3676
+ /**
3677
+ * Indicates if the data item is new or existing.
3678
+ */
3679
+ isNew;
3680
+ /**
3681
+ * The Gantt column that will be closed.
3682
+ */
3683
+ column;
3684
+ /**
3685
+ * The [`FormGroup`](link:site.data.urls.angular['formgroupapi']) that is used to edit the cell which will be closed.
3686
+ */
3687
+ formGroup;
3688
+ /**
3689
+ * The DOM event that caused the `cellClose` event.
3690
+ * May not be present if `cellClose` was caused by an API call.
3691
+ */
3692
+ originalEvent;
3693
+ /**
3694
+ * The `GanttComponent` instance.
3695
+ */
3696
+ sender;
3697
+ /**
3698
+ * The `TaskEditItem` associated with the edited task.
3699
+ * The parent item is accessible through the `parent` property,
3700
+ * and allows traversing all ancestors that need to be updated.
3701
+ */
3702
+ item;
3694
3703
  constructor(options) {
3695
3704
  super();
3696
3705
  Object.assign(this, options);
@@ -3703,16 +3712,17 @@ class CellCloseEvent extends PreventableEvent {
3703
3712
  * Needed to keep the Gantt's LocalizationService reference and be able to use it component's inside the TabStrip
3704
3713
  */
3705
3714
  class GanttLocalizationService {
3715
+ localizationService;
3706
3716
  constructor(localizationService) {
3707
3717
  this.localizationService = localizationService;
3708
3718
  }
3709
3719
  get(token) {
3710
3720
  return this.localizationService.get(token);
3711
3721
  }
3722
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttLocalizationService, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Injectable });
3723
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttLocalizationService });
3712
3724
  }
3713
- GanttLocalizationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttLocalizationService, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Injectable });
3714
- GanttLocalizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttLocalizationService });
3715
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttLocalizationService, decorators: [{
3725
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttLocalizationService, decorators: [{
3716
3726
  type: Injectable
3717
3727
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
3718
3728
 
@@ -3761,13 +3771,14 @@ const DEFAULT_TIMELINE_PANE_SETTINGS = Object.freeze({
3761
3771
  * ```
3762
3772
  */
3763
3773
  class GanttTaskTemplateDirective {
3774
+ templateRef;
3764
3775
  constructor(templateRef) {
3765
3776
  this.templateRef = templateRef;
3766
3777
  }
3778
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttTaskTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3779
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GanttTaskTemplateDirective, isStandalone: true, selector: "[kendoGanttTaskTemplate]", ngImport: i0 });
3767
3780
  }
3768
- GanttTaskTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3769
- GanttTaskTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttTaskTemplateDirective, isStandalone: true, selector: "[kendoGanttTaskTemplate]", ngImport: i0 });
3770
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskTemplateDirective, decorators: [{
3781
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttTaskTemplateDirective, decorators: [{
3771
3782
  type: Directive,
3772
3783
  args: [{
3773
3784
  selector: '[kendoGanttTaskTemplate]',
@@ -3807,13 +3818,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3807
3818
  * ```
3808
3819
  */
3809
3820
  class GanttSummaryTaskTemplateDirective {
3821
+ templateRef;
3810
3822
  constructor(templateRef) {
3811
3823
  this.templateRef = templateRef;
3812
3824
  }
3825
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttSummaryTaskTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3826
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GanttSummaryTaskTemplateDirective, isStandalone: true, selector: "[kendoGanttSummaryTaskTemplate]", ngImport: i0 });
3813
3827
  }
3814
- GanttSummaryTaskTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttSummaryTaskTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3815
- GanttSummaryTaskTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttSummaryTaskTemplateDirective, isStandalone: true, selector: "[kendoGanttSummaryTaskTemplate]", ngImport: i0 });
3816
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttSummaryTaskTemplateDirective, decorators: [{
3828
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttSummaryTaskTemplateDirective, decorators: [{
3817
3829
  type: Directive,
3818
3830
  args: [{
3819
3831
  selector: '[kendoGanttSummaryTaskTemplate]',
@@ -3848,13 +3860,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3848
3860
  * ```
3849
3861
  */
3850
3862
  class GanttTaskContentTemplateDirective {
3863
+ templateRef;
3851
3864
  constructor(templateRef) {
3852
3865
  this.templateRef = templateRef;
3853
3866
  }
3867
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttTaskContentTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3868
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GanttTaskContentTemplateDirective, isStandalone: true, selector: "[kendoGanttTaskContentTemplate]", ngImport: i0 });
3854
3869
  }
3855
- GanttTaskContentTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskContentTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3856
- GanttTaskContentTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttTaskContentTemplateDirective, isStandalone: true, selector: "[kendoGanttTaskContentTemplate]", ngImport: i0 });
3857
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskContentTemplateDirective, decorators: [{
3870
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttTaskContentTemplateDirective, decorators: [{
3858
3871
  type: Directive,
3859
3872
  args: [{
3860
3873
  selector: '[kendoGanttTaskContentTemplate]',
@@ -3953,10 +3966,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3953
3966
  * ```
3954
3967
  */
3955
3968
  class ToolbarTemplateDirective {
3956
- constructor(templateRef) {
3957
- this.templateRef = templateRef;
3958
- this._position = "top";
3959
- }
3969
+ templateRef;
3970
+ _position = "top";
3960
3971
  /**
3961
3972
  * Defines the Gantt Toolbar that will use this template.
3962
3973
  *
@@ -3971,10 +3982,13 @@ class ToolbarTemplateDirective {
3971
3982
  get position() {
3972
3983
  return this._position;
3973
3984
  }
3985
+ constructor(templateRef) {
3986
+ this.templateRef = templateRef;
3987
+ }
3988
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3989
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ToolbarTemplateDirective, isStandalone: true, selector: "[kendoGanttToolbarTemplate]", inputs: { position: "position" }, ngImport: i0 });
3974
3990
  }
3975
- ToolbarTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3976
- ToolbarTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ToolbarTemplateDirective, isStandalone: true, selector: "[kendoGanttToolbarTemplate]", inputs: { position: "position" }, ngImport: i0 });
3977
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarTemplateDirective, decorators: [{
3991
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarTemplateDirective, decorators: [{
3978
3992
  type: Directive,
3979
3993
  args: [{
3980
3994
  selector: '[kendoGanttToolbarTemplate]',
@@ -3991,6 +4005,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3991
4005
  * The base class for the timeline view components of the Gantt.
3992
4006
  */
3993
4007
  class ViewBase {
4008
+ optionChangesService;
4009
+ dependencyDomService;
4010
+ /**
4011
+ * The width of the time slot headers. Values are treated as pixels.
4012
+ *
4013
+ * @default 100
4014
+ */
4015
+ slotWidth = 100;
4016
+ /**
4017
+ * Sets the date format for the Grouped and Column headers.
4018
+ */
4019
+ timelineHeadersDateFormat;
4020
+ /**
4021
+ * Specifies the current time marker settings.
4022
+ * If not set, the value is taken from the Gantt component
4023
+ * [`currentTimeMarker`]({% slug api_gantt_ganttcomponent %}#toc-currentTimeMarker) property.
4024
+ *
4025
+ */
4026
+ currentTimeMarker;
3994
4027
  /**
3995
4028
  *
3996
4029
  * @hidden
@@ -3998,12 +4031,6 @@ class ViewBase {
3998
4031
  constructor(optionChangesService, dependencyDomService) {
3999
4032
  this.optionChangesService = optionChangesService;
4000
4033
  this.dependencyDomService = dependencyDomService;
4001
- /**
4002
- * The width of the time slot headers. Values are treated as pixels.
4003
- *
4004
- * @default 100
4005
- */
4006
- this.slotWidth = 100;
4007
4034
  }
4008
4035
  ngOnChanges(changes) {
4009
4036
  if (anyChanged(['slotWidth'], changes)) {
@@ -4014,10 +4041,10 @@ class ViewBase {
4014
4041
  this.optionChangesService.notifyDateFormatChanges();
4015
4042
  }
4016
4043
  }
4044
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewBase, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Directive });
4045
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ViewBase, selector: "kendo-gantt-view-base", inputs: { slotWidth: "slotWidth", timelineHeadersDateFormat: "timelineHeadersDateFormat", currentTimeMarker: "currentTimeMarker" }, usesOnChanges: true, ngImport: i0 });
4017
4046
  }
4018
- ViewBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ViewBase, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Directive });
4019
- ViewBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ViewBase, selector: "kendo-gantt-view-base", inputs: { slotWidth: "slotWidth", timelineHeadersDateFormat: "timelineHeadersDateFormat", currentTimeMarker: "currentTimeMarker" }, usesOnChanges: true, ngImport: i0 });
4020
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ViewBase, decorators: [{
4047
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewBase, decorators: [{
4021
4048
  type: Directive,
4022
4049
  args: [{
4023
4050
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -4047,17 +4074,19 @@ const mapPath = (item) => ({
4047
4074
  * @hidden
4048
4075
  */
4049
4076
  class DependenciesTableComponent {
4050
- constructor(mapper, editService, localizationService) {
4051
- this.mapper = mapper;
4052
- this.editService = editService;
4053
- this.localizationService = localizationService;
4054
- this.dependenciesChange = new EventEmitter();
4055
- this.selectedKeys = [];
4056
- this.formGroups = new FormArray([]);
4057
- this.dependencyTypes = this.getDependencyTypes();
4058
- this.plusIcon = plusIcon;
4059
- this.minusIcon = minusIcon;
4060
- }
4077
+ mapper;
4078
+ editService;
4079
+ localizationService;
4080
+ // TODO: should consist of only valid connection tasks
4081
+ tasks;
4082
+ dependencies;
4083
+ dependencyType;
4084
+ dependenciesChange = new EventEmitter();
4085
+ selectedKeys = [];
4086
+ formGroups = new FormArray([]);
4087
+ dependencyTypes = this.getDependencyTypes();
4088
+ plusIcon = plusIcon;
4089
+ minusIcon = minusIcon;
4061
4090
  get taskId() {
4062
4091
  return this.editService.dataItem.id;
4063
4092
  }
@@ -4067,6 +4096,11 @@ class DependenciesTableComponent {
4067
4096
  get dependencyIdField() {
4068
4097
  return this.dependencyType === 'predecessor' ? 'fromId' : 'toId';
4069
4098
  }
4099
+ constructor(mapper, editService, localizationService) {
4100
+ this.mapper = mapper;
4101
+ this.editService = editService;
4102
+ this.localizationService = localizationService;
4103
+ }
4070
4104
  ngOnInit() {
4071
4105
  // generate the FormGroups per each Grid row
4072
4106
  if (this.formGroups.controls.length === 0) {
@@ -4126,9 +4160,8 @@ class DependenciesTableComponent {
4126
4160
  this.editService.deleteDependency(item);
4127
4161
  this.formGroups.removeAt(selectedIndex);
4128
4162
  }
4129
- }
4130
- DependenciesTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DependenciesTableComponent, deps: [{ token: MappingService }, { token: EditService }, { token: GanttLocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4131
- DependenciesTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DependenciesTableComponent, isStandalone: true, selector: "kendo-gantt-dependencies-table", inputs: { tasks: "tasks", dependencies: "dependencies", dependencyType: "dependencyType" }, outputs: { dependenciesChange: "dependenciesChange" }, ngImport: i0, template: `
4163
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DependenciesTableComponent, deps: [{ token: MappingService }, { token: EditService }, { token: GanttLocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4164
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DependenciesTableComponent, isStandalone: true, selector: "kendo-gantt-dependencies-table", inputs: { tasks: "tasks", dependencies: "dependencies", dependencyType: "dependencyType" }, outputs: { dependenciesChange: "dependenciesChange" }, ngImport: i0, template: `
4132
4165
  <kendo-grid
4133
4166
  [data]="dependencies"
4134
4167
  [selectable]="{ mode: 'single' }"
@@ -4181,7 +4214,8 @@ DependenciesTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0
4181
4214
  </kendo-grid-column>
4182
4215
  </kendo-grid>
4183
4216
  `, isInline: true, dependencies: [{ kind: "component", type: GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "rowReorderable", "navigable", "navigatable", "autoSize", "rowClass", "rowSticky", "rowSelected", "isRowSelectable", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "isDetailExpanded", "isGroupExpanded"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "directive", type: ToolbarTemplateDirective$1, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: ColumnComponent$1, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: CellTemplateDirective$1, selector: "[kendoGridCellTemplate]" }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
4184
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DependenciesTableComponent, decorators: [{
4217
+ }
4218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DependenciesTableComponent, decorators: [{
4185
4219
  type: Component,
4186
4220
  args: [{
4187
4221
  selector: 'kendo-gantt-dependencies-table',
@@ -4255,6 +4289,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
4255
4289
  * @hidden
4256
4290
  */
4257
4291
  class TaskFieldsComponent {
4292
+ mapper;
4293
+ editService;
4294
+ localizationService;
4258
4295
  constructor(mapper, editService, localizationService) {
4259
4296
  this.mapper = mapper;
4260
4297
  this.editService = editService;
@@ -4269,9 +4306,8 @@ class TaskFieldsComponent {
4269
4306
  getText(token) {
4270
4307
  return this.localizationService.get(token);
4271
4308
  }
4272
- }
4273
- TaskFieldsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TaskFieldsComponent, deps: [{ token: MappingService }, { token: EditService }, { token: GanttLocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4274
- TaskFieldsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TaskFieldsComponent, isStandalone: true, selector: "kendo-gantt-task-fields", ngImport: i0, template: `
4309
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TaskFieldsComponent, deps: [{ token: MappingService }, { token: EditService }, { token: GanttLocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4310
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TaskFieldsComponent, isStandalone: true, selector: "kendo-gantt-task-fields", ngImport: i0, template: `
4275
4311
  <form class="k-form k-form-md" [formGroup]="formGroup">
4276
4312
  <kendo-formfield *ngIf="formGroup.get(mapper.taskFields.title)">
4277
4313
  <kendo-label [for]="title" [text]="getText('titleFieldInputLabel')"></kendo-label>
@@ -4301,8 +4337,9 @@ TaskFieldsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
4301
4337
  ></kendo-numerictextbox>
4302
4338
  </kendo-formfield>
4303
4339
  </form>
4304
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormFieldComponent, selector: "kendo-formfield", inputs: ["showHints", "orientation", "showErrors"] }, { kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "directive", type: TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { kind: "component", type: DateTimePickerComponent, selector: "kendo-datetimepicker", inputs: ["focusableId", "weekDaysFormat", "showOtherMonthDays", "value", "format", "twoDigitYearMax", "tabindex", "disabledDates", "popupSettings", "title", "subtitle", "disabled", "readonly", "readOnlyInput", "cancelButton", "formatPlaceholder", "placeholder", "steps", "focusedDate", "calendarType", "animateCalendarNavigation", "weekNumber", "min", "max", "rangeValidation", "disabledDatesValidation", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "clearButton", "autoFill", "adaptiveMode", "inputAttributes", "defaultTab", "size", "rounded", "fillMode", "headerTemplate", "footerTemplate", "footer"], outputs: ["valueChange", "open", "close", "focus", "blur", "escape"], exportAs: ["kendo-datetimepicker"] }, { kind: "component", type: TreeListSpacerComponent, selector: "kendo-treelist-spacer, kendo-treelist-pager-spacer", inputs: ["width"] }, { kind: "component", type: NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }] });
4305
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TaskFieldsComponent, decorators: [{
4340
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormFieldComponent, selector: "kendo-formfield", inputs: ["showHints", "orientation", "showErrors"] }, { kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "directive", type: TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { kind: "component", type: DateTimePickerComponent, selector: "kendo-datetimepicker", inputs: ["focusableId", "weekDaysFormat", "showOtherMonthDays", "value", "format", "twoDigitYearMax", "tabindex", "disabledDates", "popupSettings", "title", "subtitle", "disabled", "readonly", "readOnlyInput", "cancelButton", "formatPlaceholder", "placeholder", "steps", "focusedDate", "calendarType", "animateCalendarNavigation", "weekNumber", "min", "max", "rangeValidation", "disabledDatesValidation", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "clearButton", "autoFill", "adaptiveMode", "inputAttributes", "defaultTab", "size", "rounded", "fillMode", "headerTemplate", "footerTemplate", "footer"], outputs: ["valueChange", "open", "close", "focus", "blur", "escape"], exportAs: ["kendo-datetimepicker"] }, { kind: "component", type: TreeListSpacerComponent, selector: "kendo-treelist-spacer", inputs: ["width"] }, { kind: "component", type: NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }] });
4341
+ }
4342
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TaskFieldsComponent, decorators: [{
4306
4343
  type: Component,
4307
4344
  args: [{
4308
4345
  selector: 'kendo-gantt-task-fields',
@@ -4346,14 +4383,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
4346
4383
  * @hidden
4347
4384
  */
4348
4385
  class EditDialogComponent {
4386
+ mapper;
4387
+ editService;
4388
+ cdr;
4389
+ localizationService;
4390
+ data;
4391
+ loadedTasks;
4392
+ saveIcon = saveIcon;
4393
+ cancelIcon = cancelOutlineIcon;
4394
+ deleteIcon = trashIcon;
4349
4395
  constructor(mapper, editService, cdr, localizationService) {
4350
4396
  this.mapper = mapper;
4351
4397
  this.editService = editService;
4352
4398
  this.cdr = cdr;
4353
4399
  this.localizationService = localizationService;
4354
- this.saveIcon = saveIcon;
4355
- this.cancelIcon = cancelOutlineIcon;
4356
- this.deleteIcon = trashIcon;
4357
4400
  }
4358
4401
  ngOnInit() {
4359
4402
  this.editService.loadTasks(this.data).subscribe(value => {
@@ -4384,9 +4427,8 @@ class EditDialogComponent {
4384
4427
  handleTaskDelete() {
4385
4428
  this.editService.taskDelete.next(this.editService.dataItem);
4386
4429
  }
4387
- }
4388
- EditDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditDialogComponent, deps: [{ token: MappingService }, { token: EditService }, { token: i0.ChangeDetectorRef }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4389
- EditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: EditDialogComponent, isStandalone: true, selector: "kendo-gantt-edit-dialog", inputs: { data: "data" }, ngImport: i0, template: `
4430
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditDialogComponent, deps: [{ token: MappingService }, { token: EditService }, { token: i0.ChangeDetectorRef }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4431
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EditDialogComponent, isStandalone: true, selector: "kendo-gantt-edit-dialog", inputs: { data: "data" }, ngImport: i0, template: `
4390
4432
  <kendo-dialog
4391
4433
  [title]="getText('taskEditingDialogTitle')"
4392
4434
  [width]="575"
@@ -4457,8 +4499,9 @@ EditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
4457
4499
  </button>
4458
4500
  </kendo-dialog-actions>
4459
4501
  </kendo-dialog>
4460
- `, isInline: true, dependencies: [{ kind: "component", type: DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "directive", type: CustomMessagesComponent$1, selector: "kendo-dialog-messages, kendo-window-messages" }, { kind: "component", type: TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "closeIcon", "closeIconClass", "closeSVGIcon", "showContentArea"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { kind: "component", type: TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { kind: "directive", type: TabContentDirective, selector: "[kendoTabContent]" }, { kind: "component", type: TaskFieldsComponent, selector: "kendo-gantt-task-fields" }, { kind: "component", type: DependenciesTableComponent, selector: "kendo-gantt-dependencies-table", inputs: ["tasks", "dependencies", "dependencyType"], outputs: ["dependenciesChange"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: TreeListSpacerComponent, selector: "kendo-treelist-spacer, kendo-treelist-pager-spacer", inputs: ["width"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
4461
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditDialogComponent, decorators: [{
4502
+ `, isInline: true, dependencies: [{ kind: "component", type: DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "directive", type: CustomMessagesComponent$1, selector: "kendo-dialog-messages, kendo-window-messages" }, { kind: "component", type: TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "closeIcon", "closeIconClass", "closeSVGIcon", "showContentArea"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { kind: "component", type: TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { kind: "directive", type: TabContentDirective, selector: "[kendoTabContent]" }, { kind: "component", type: TaskFieldsComponent, selector: "kendo-gantt-task-fields" }, { kind: "component", type: DependenciesTableComponent, selector: "kendo-gantt-dependencies-table", inputs: ["tasks", "dependencies", "dependencyType"], outputs: ["dependenciesChange"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: TreeListSpacerComponent, selector: "kendo-treelist-spacer", inputs: ["width"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
4503
+ }
4504
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditDialogComponent, decorators: [{
4462
4505
  type: Component,
4463
4506
  args: [{
4464
4507
  selector: 'kendo-gantt-edit-dialog',
@@ -4545,9 +4588,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
4545
4588
  * @hidden
4546
4589
  */
4547
4590
  class ToolbarNavigationService {
4591
+ renderer;
4592
+ focusableContent;
4593
+ focusIndex = 0;
4548
4594
  constructor(renderer) {
4549
4595
  this.renderer = renderer;
4550
- this.focusIndex = 0;
4551
4596
  }
4552
4597
  updateFocus() {
4553
4598
  this.focusableContent.forEach(el => {
@@ -4556,10 +4601,10 @@ class ToolbarNavigationService {
4556
4601
  this.renderer.setAttribute(this.focusableContent[this.focusIndex], 'tabindex', '0');
4557
4602
  this.focusableContent[this.focusIndex].focus();
4558
4603
  }
4604
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarNavigationService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
4605
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarNavigationService });
4559
4606
  }
4560
- ToolbarNavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarNavigationService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
4561
- ToolbarNavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarNavigationService });
4562
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarNavigationService, decorators: [{
4607
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarNavigationService, decorators: [{
4563
4608
  type: Injectable
4564
4609
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
4565
4610
 
@@ -4567,18 +4612,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
4567
4612
  * The Gantt ViewSelector component. Shows the currently active view type, and allows switching to another view type.
4568
4613
  */
4569
4614
  class ViewSelectorComponent {
4615
+ localizationService;
4616
+ hostClass = true;
4617
+ /**
4618
+ * The collection of the timeline view types in the current Gantt configuration.
4619
+ */
4620
+ views;
4621
+ /**
4622
+ * The currently active view type.
4623
+ * @default 'week'
4624
+ */
4625
+ activeView = 'week';
4626
+ /**
4627
+ * Fires each time the user selects a different view type. The event data contains the type of the newly selected view.
4628
+ */
4629
+ activeViewChange = new EventEmitter();
4570
4630
  constructor(localizationService) {
4571
4631
  this.localizationService = localizationService;
4572
- this.hostClass = true;
4573
- /**
4574
- * The currently active view type.
4575
- * @default 'week'
4576
- */
4577
- this.activeView = 'week';
4578
- /**
4579
- * Fires each time the user selects a different view type. The event data contains the type of the newly selected view.
4580
- */
4581
- this.activeViewChange = new EventEmitter();
4582
4632
  }
4583
4633
  /**
4584
4634
  * @hidden
@@ -4600,9 +4650,8 @@ class ViewSelectorComponent {
4600
4650
  onActiveViewChange(event) {
4601
4651
  this.activeViewChange.emit(event.target.value);
4602
4652
  }
4603
- }
4604
- ViewSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ViewSelectorComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4605
- ViewSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ViewSelectorComponent, isStandalone: true, selector: "kendo-gantt-view-selector", inputs: { views: "views", activeView: "activeView" }, outputs: { activeViewChange: "activeViewChange" }, host: { properties: { "class.k-gantt-views-wrapper": "this.hostClass" } }, ngImport: i0, template: `
4653
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewSelectorComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4654
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ViewSelectorComponent, isStandalone: true, selector: "kendo-gantt-view-selector", inputs: { views: "views", activeView: "activeView" }, outputs: { activeViewChange: "activeViewChange" }, host: { properties: { "class.k-gantt-views-wrapper": "this.hostClass" } }, ngImport: i0, template: `
4606
4655
  <select
4607
4656
  class="k-dropdownlist k-picker k-rounded-md k-views-dropdown"
4608
4657
  aria-label="View Selector"
@@ -4618,7 +4667,8 @@ ViewSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
4618
4667
  (click)="onClick(view)">{{getViewTypeText(view)}}</button>
4619
4668
  </kendo-buttongroup>
4620
4669
  `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "component", type: ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex", "navigable"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
4621
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ViewSelectorComponent, decorators: [{
4670
+ }
4671
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewSelectorComponent, decorators: [{
4622
4672
  type: Component,
4623
4673
  args: [{
4624
4674
  selector: 'kendo-gantt-view-selector',
@@ -4657,34 +4707,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
4657
4707
  * Use it within a toolbar template to provide a custom icon or list of options.
4658
4708
  */
4659
4709
  class GanttAddTaskComponent {
4710
+ localizationService;
4711
+ editService;
4712
+ ngZone;
4713
+ /**
4714
+ * Sets the data of the DropDownButton.
4715
+ * > The data has to be provided in an array-like list.
4716
+ */
4717
+ data = [{
4718
+ text: this.getText('addChildText'),
4719
+ type: 'addChild'
4720
+ }, {
4721
+ text: this.getText('addAboveText'),
4722
+ type: 'addAbove'
4723
+ }, {
4724
+ text: this.getText('addBelowText'),
4725
+ type: 'addBelow'
4726
+ }];
4727
+ /**
4728
+ * Defines the name of an existing icon in a Kendo UI theme.
4729
+ * @default 'plus'
4730
+ */
4731
+ icon = 'plus';
4732
+ /**
4733
+ * Defines an [`SVGIcon`](slug:api_icons_svgicon) icon to be rendered inside the `GanttAddTaskComponent` using
4734
+ * a [`KendoSVGIcon`](slug:api_icons_svgiconcomponent) component.
4735
+ */
4736
+ svgIcon = plusIcon;
4660
4737
  constructor(localizationService, editService, ngZone) {
4661
4738
  this.localizationService = localizationService;
4662
4739
  this.editService = editService;
4663
4740
  this.ngZone = ngZone;
4664
- /**
4665
- * Sets the data of the DropDownButton.
4666
- * > The data has to be provided in an array-like list.
4667
- */
4668
- this.data = [{
4669
- text: this.getText('addChildText'),
4670
- type: 'addChild'
4671
- }, {
4672
- text: this.getText('addAboveText'),
4673
- type: 'addAbove'
4674
- }, {
4675
- text: this.getText('addBelowText'),
4676
- type: 'addBelow'
4677
- }];
4678
- /**
4679
- * Defines the name of an existing icon in a Kendo UI theme.
4680
- * @default 'plus'
4681
- */
4682
- this.icon = 'plus';
4683
- /**
4684
- * Defines an [`SVGIcon`](slug:api_icons_svgicon) icon to be rendered inside the `GanttAddTaskComponent` using
4685
- * a [`KendoSVGIcon`](slug:api_icons_svgiconcomponent) component.
4686
- */
4687
- this.svgIcon = plusIcon;
4688
4741
  }
4689
4742
  /**
4690
4743
  * @hidden
@@ -4722,9 +4775,8 @@ class GanttAddTaskComponent {
4722
4775
  selectedItem: null
4723
4776
  });
4724
4777
  }
4725
- }
4726
- GanttAddTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttAddTaskComponent, deps: [{ token: i1$1.LocalizationService }, { token: EditService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
4727
- GanttAddTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttAddTaskComponent, isStandalone: true, selector: "kendo-gantt-add-task", inputs: { data: "data", icon: "icon", svgIcon: "svgIcon" }, ngImport: i0, template: `
4778
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttAddTaskComponent, deps: [{ token: i1$1.LocalizationService }, { token: EditService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
4779
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GanttAddTaskComponent, isStandalone: true, selector: "kendo-gantt-add-task", inputs: { data: "data", icon: "icon", svgIcon: "svgIcon" }, ngImport: i0, template: `
4728
4780
  <kendo-dropdownbutton
4729
4781
  [data]="data"
4730
4782
  [icon]="icon"
@@ -4736,7 +4788,8 @@ GanttAddTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
4736
4788
  {{ getText('addTaskText') }}
4737
4789
  </kendo-dropdownbutton>
4738
4790
  `, isInline: true, dependencies: [{ kind: "component", type: DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
4739
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttAddTaskComponent, decorators: [{
4791
+ }
4792
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttAddTaskComponent, decorators: [{
4740
4793
  type: Component,
4741
4794
  args: [{
4742
4795
  selector: 'kendo-gantt-add-task',
@@ -4767,14 +4820,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
4767
4820
  * @hidden
4768
4821
  */
4769
4822
  class ToolbarComponent {
4770
- constructor(hostEl, navigationService) {
4771
- this.hostEl = hostEl;
4772
- this.navigationService = navigationService;
4773
- this.context = {};
4774
- this.role = 'toolbar';
4775
- this.toolbarSizingClass = true;
4776
- this.activeViewChange = new EventEmitter();
4777
- }
4823
+ hostEl;
4824
+ navigationService;
4825
+ context = {};
4826
+ role = 'toolbar';
4827
+ toolbarSizingClass = true;
4778
4828
  clickHandler(ev) {
4779
4829
  if (this.navigable) {
4780
4830
  const closestFocusable = closest(ev.target, isFocusable);
@@ -4803,6 +4853,13 @@ class ToolbarComponent {
4803
4853
  this.navigationService.updateFocus();
4804
4854
  }
4805
4855
  }
4856
+ activeViewChange = new EventEmitter();
4857
+ showAddTask;
4858
+ showViewSelector;
4859
+ views;
4860
+ activeView;
4861
+ toolbarTemplate;
4862
+ navigable;
4806
4863
  set position(value) {
4807
4864
  this.context.position = this._position = value;
4808
4865
  }
@@ -4817,6 +4874,11 @@ class ToolbarComponent {
4817
4874
  const templatePosition = ganttToolbarTemplate ? ganttToolbarTemplate.position : null;
4818
4875
  return ganttToolbarTemplate && (templatePosition === 'both' || templatePosition === this.position);
4819
4876
  }
4877
+ _position;
4878
+ constructor(hostEl, navigationService) {
4879
+ this.hostEl = hostEl;
4880
+ this.navigationService = navigationService;
4881
+ }
4820
4882
  handleViewChange(view) {
4821
4883
  this.activeViewChange.emit(view);
4822
4884
  }
@@ -4829,9 +4891,8 @@ class ToolbarComponent {
4829
4891
  }
4830
4892
  }
4831
4893
  }
4832
- }
4833
- ToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarComponent, deps: [{ token: i0.ElementRef }, { token: ToolbarNavigationService }], target: i0.ɵɵFactoryTarget.Component });
4834
- ToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ToolbarComponent, isStandalone: true, selector: "kendo-gantt-toolbar", inputs: { showAddTask: "showAddTask", showViewSelector: "showViewSelector", views: "views", activeView: "activeView", toolbarTemplate: "toolbarTemplate", navigable: "navigable", position: "position" }, outputs: { activeViewChange: "activeViewChange" }, host: { listeners: { "click": "clickHandler($event)", "keydown.arrowleft": "arrowLeftListener($event)", "keydown.arrowright": "arrowRightListener($event)" }, properties: { "attr.role": "this.role", "class.k-toolbar-md": "this.toolbarSizingClass" } }, providers: [ToolbarNavigationService], ngImport: i0, template: `
4894
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarComponent, deps: [{ token: i0.ElementRef }, { token: ToolbarNavigationService }], target: i0.ɵɵFactoryTarget.Component });
4895
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolbarComponent, isStandalone: true, selector: "kendo-gantt-toolbar", inputs: { showAddTask: "showAddTask", showViewSelector: "showViewSelector", views: "views", activeView: "activeView", toolbarTemplate: "toolbarTemplate", navigable: "navigable", position: "position" }, outputs: { activeViewChange: "activeViewChange" }, host: { listeners: { "click": "clickHandler($event)", "keydown.arrowleft": "arrowLeftListener($event)", "keydown.arrowright": "arrowRightListener($event)" }, properties: { "attr.role": "this.role", "class.k-toolbar-md": "this.toolbarSizingClass" } }, providers: [ToolbarNavigationService], ngImport: i0, template: `
4835
4896
  <ng-container *ngIf="!renderTemplate">
4836
4897
  <kendo-gantt-add-task *ngIf="showAddTask"></kendo-gantt-add-task>
4837
4898
  <span class="k-spacer k-toolbar-spacer"></span>
@@ -4848,7 +4909,8 @@ ToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versi
4848
4909
  >
4849
4910
  </ng-template>
4850
4911
  `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GanttAddTaskComponent, selector: "kendo-gantt-add-task", inputs: ["data", "icon", "svgIcon"] }, { kind: "component", type: ViewSelectorComponent, selector: "kendo-gantt-view-selector", inputs: ["views", "activeView"], outputs: ["activeViewChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
4851
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarComponent, decorators: [{
4912
+ }
4913
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarComponent, decorators: [{
4852
4914
  type: Component,
4853
4915
  args: [{
4854
4916
  selector: 'kendo-gantt-toolbar',
@@ -4910,10 +4972,294 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
4910
4972
  * @hidden
4911
4973
  */
4912
4974
  class Messages extends ComponentMessages {
4975
+ /**
4976
+ * The title of the "General" tab of the editing dialog TabStrip.
4977
+ */
4978
+ taskEditingGeneralTabTitle;
4979
+ /**
4980
+ * The title of the "Predecessors" dependencies tab of the editing dialog TabStrip.
4981
+ */
4982
+ taskEditingPredecessorsTabTitle;
4983
+ /**
4984
+ * The title of the "Successors" dependencies tab of the editing dialog TabStrip.
4985
+ */
4986
+ taskEditingSuccessorsTabTitle;
4987
+ /**
4988
+ * The text of the "Add" button in the dependencies tabs of the editing dialog TabStrip.
4989
+ */
4990
+ taskEditingDependenciesAddButtonText;
4991
+ /**
4992
+ * The text of the "Remove" button in the dependencies tabs of the editing dialog TabStrip.
4993
+ */
4994
+ taskEditingDependenciesRemoveButtonText;
4995
+ /**
4996
+ * The title of the "Task Title" Grid column in the dependencies tabs of the editing dialog TabStrip.
4997
+ */
4998
+ taskEditingDependenciesGridNameColumnTitle;
4999
+ /**
5000
+ * The title of the "Type" Grid column in the dependencies tabs of the editing dialog TabStrip.
5001
+ */
5002
+ taskEditingDependenciesGridTypeColumnTitle;
5003
+ /**
5004
+ * The text of the task editing dialog 'Delete' button.
5005
+ */
5006
+ deleteButtonText;
5007
+ /**
5008
+ * The label for the task delete button.
5009
+ */
5010
+ taskDeleteLabel;
5011
+ /**
5012
+ * The title of the task editing dialog.
5013
+ */
5014
+ taskEditingDialogTitle;
5015
+ /**
5016
+ * The title of the task editing dialog close button.
5017
+ */
5018
+ taskEditingDialogCloseTitle;
5019
+ /**
5020
+ * The title of the confirmation dialog close button.
5021
+ */
5022
+ confirmationDialogCloseTitle;
5023
+ /**
5024
+ * The title of the delete task confirmation dialog.
5025
+ */
5026
+ confirmationDialogTitle;
5027
+ /**
5028
+ * The text of the DropDownButton in the AddTask component.
5029
+ */
5030
+ addTaskText;
5031
+ /**
5032
+ * The text of the `Add Child` option in the AddTask component.
5033
+ */
5034
+ addChildText;
5035
+ /**
5036
+ * The text of the `Add Above` option in the AddTask component.
5037
+ */
5038
+ addAboveText;
5039
+ /**
5040
+ * The text of the `Add Below` option in the AddTask component.
5041
+ */
5042
+ addBelowText;
5043
+ /**
5044
+ * The text of the task editing dialog `Cancel` button.
5045
+ */
5046
+ cancelButtonText;
5047
+ /**
5048
+ * The text of the task editing dialog `Save` button.
5049
+ */
5050
+ saveButtonText;
5051
+ /**
5052
+ * The label of the 'title' field input in editing mode.
5053
+ */
5054
+ titleFieldInputLabel;
5055
+ /**
5056
+ * The label of the 'start' field input in editing mode.
5057
+ */
5058
+ startFieldInputLabel;
5059
+ /**
5060
+ * The label of the 'end' field input in editing mode.
5061
+ */
5062
+ endFieldInputLabel;
5063
+ /**
5064
+ * The label of the 'completionRatio' field input in editing mode.
5065
+ */
5066
+ completionRatioFieldInputLabel;
5067
+ /**
5068
+ * The content of the delete task confirmation dialog.
5069
+ */
5070
+ confirmationDialogContent;
5071
+ /**
5072
+ * The text of the day view in the ViewSelector component.
5073
+ */
5074
+ dayViewText;
5075
+ /**
5076
+ * The text of the week view in the ViewSelector component.
5077
+ */
5078
+ weekViewText;
5079
+ /**
5080
+ * The text of the month view in the ViewSelector component.
5081
+ */
5082
+ monthViewText;
5083
+ /**
5084
+ * @hidden
5085
+ * The text of the year view in the ViewSelector component.
5086
+ */
5087
+ yearViewText;
5088
+ /**
5089
+ * The no-records text.
5090
+ */
5091
+ noRecords;
5092
+ /**
5093
+ * The label of the filter cell or icon.
5094
+ */
5095
+ filter;
5096
+ /**
5097
+ * The text of the `Equal` (**Is equal to**) filter operator.
5098
+ */
5099
+ filterEqOperator;
5100
+ /**
5101
+ * The text of the `NotEqual` (**Is not equal to**) filter operator.
5102
+ */
5103
+ filterNotEqOperator;
5104
+ /**
5105
+ * The text of the `IsNull` (**Is null**) filter operator.
5106
+ */
5107
+ filterIsNullOperator;
5108
+ /**
5109
+ * The text of the `IsNotNull` (**Is not null**) filter operator.
5110
+ */
5111
+ filterIsNotNullOperator;
5112
+ /**
5113
+ * The text of the `IsEmpty` (**Is empty**) filter operator.
5114
+ */
5115
+ filterIsEmptyOperator;
5116
+ /**
5117
+ * The text of the `IsNotEmpty` (**Is not empty**) filter operator.
5118
+ */
5119
+ filterIsNotEmptyOperator;
5120
+ /**
5121
+ * The text of the `StartsWith` (**Starts with**) filter operator.
5122
+ */
5123
+ filterStartsWithOperator;
5124
+ /**
5125
+ * The text of the `Contains` (**Contains**) filter operator.
5126
+ */
5127
+ filterContainsOperator;
5128
+ /**
5129
+ * The text of the `DoesNotContain` (**Does not contain**) filter operator.
5130
+ */
5131
+ filterNotContainsOperator;
5132
+ /**
5133
+ * The text of the `EndsWith` (**Ends with**) string filter operator.
5134
+ */
5135
+ filterEndsWithOperator;
5136
+ /**
5137
+ * The text of the `GreaterOrEqualTo` (**Is greater than or equal to**) numeric filter operator.
5138
+ */
5139
+ filterGteOperator;
5140
+ /**
5141
+ * The text of the `Greater` (**Is greater than**) numeric filter operator.
5142
+ */
5143
+ filterGtOperator;
5144
+ /**
5145
+ * The text of the `LessOrEqualTo` (**Is less than or equal to**) numeric filter operator.
5146
+ */
5147
+ filterLteOperator;
5148
+ /**
5149
+ * The text of the `Less` (**Is less than**) numeric filter operator.
5150
+ */
5151
+ filterLtOperator;
5152
+ /**
5153
+ * The text of the `IsTrue` Boolean filter option.
5154
+ */
5155
+ filterIsTrue;
5156
+ /**
5157
+ * The text of the `IsFalse` Boolean filter option.
5158
+ */
5159
+ filterIsFalse;
5160
+ /**
5161
+ * The text of the `(All)` option for Boolean filter.
5162
+ */
5163
+ filterBooleanAll;
5164
+ /**
5165
+ * The text of the `AfterOrEqualTo` (**Is after or equal to**) date filter operator.
5166
+ */
5167
+ filterAfterOrEqualOperator;
5168
+ /**
5169
+ * The text of the `After` (**Is after**) date filter operator.
5170
+ */
5171
+ filterAfterOperator;
5172
+ /**
5173
+ * The text of the `Before` (**Is before**) date filter operator.
5174
+ */
5175
+ filterBeforeOperator;
5176
+ /**
5177
+ * The text of the `BeforeOrEqualTo` (**Is before or equal to**) date filter operator.
5178
+ */
5179
+ filterBeforeOrEqualOperator;
5180
+ /**
5181
+ * The text of the **Filter** button.
5182
+ */
5183
+ filterFilterButton;
5184
+ /**
5185
+ * The text of the **Clear filter** button.
5186
+ */
5187
+ filterClearButton;
5188
+ /**
5189
+ * The text of the `And` filter logic.
5190
+ */
5191
+ filterAndLogic;
5192
+ /**
5193
+ * The text of the `Or` filter logic.
5194
+ */
5195
+ filterOrLogic;
5196
+ /**
5197
+ * The loading text.
5198
+ *
5199
+ * > The `loading` property is part of the accessibility support of the Gantt.
5200
+ * Its value is detectable by screen readers and is not otherwise visible.
5201
+ */
5202
+ loading;
5203
+ /**
5204
+ * The title of the icon for the column menu.
5205
+ */
5206
+ columnMenu;
5207
+ /**
5208
+ * The text that is displayed in the column menu for the column items.
5209
+ */
5210
+ columns;
5211
+ /**
5212
+ * @hidden
5213
+ * The text that is displayed in the column menu for the lock item.
5214
+ */
5215
+ lock;
5216
+ /**
5217
+ * @hidden
5218
+ * The text that is displayed in the column menu for the unlock item.
5219
+ */
5220
+ unlock;
5221
+ /**
5222
+ * The label of the sort icon.
5223
+ */
5224
+ sortable;
5225
+ /**
5226
+ * The text that is displayed in the column menu for the ascending sort item.
5227
+ */
5228
+ sortAscending;
5229
+ /**
5230
+ * The text that is displayed in the column menu for the descending sort item.
5231
+ */
5232
+ sortDescending;
5233
+ /**
5234
+ * The status announcement when a column is sorted in an ascending order.
5235
+ * Deprecated - the announcement now relies entirely on the `aria-sort` attribute.
5236
+ * @hidden
5237
+ */
5238
+ sortedAscending;
5239
+ /**
5240
+ * The status announcement when a column is sorted in a descending order.
5241
+ * Deprecated - the announcement now relies entirely on the `aria-sort` attribute.
5242
+ * @hidden
5243
+ */
5244
+ sortedDescending;
5245
+ /**
5246
+ * The status announcement when a column is no longer sorted.
5247
+ */
5248
+ sortedDefault;
5249
+ /**
5250
+ * The text that is displayed in the column menu or in the column chooser item
5251
+ * for the **Apply** button of the columns.
5252
+ */
5253
+ columnsApply;
5254
+ /**
5255
+ * The text that is displayed in the column menu or in the column chooser item
5256
+ * for the **Reset** button of the columns.
5257
+ */
5258
+ columnsReset;
5259
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
5260
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: Messages, selector: "kendo-gantt-messages-base", inputs: { taskEditingGeneralTabTitle: "taskEditingGeneralTabTitle", taskEditingPredecessorsTabTitle: "taskEditingPredecessorsTabTitle", taskEditingSuccessorsTabTitle: "taskEditingSuccessorsTabTitle", taskEditingDependenciesAddButtonText: "taskEditingDependenciesAddButtonText", taskEditingDependenciesRemoveButtonText: "taskEditingDependenciesRemoveButtonText", taskEditingDependenciesGridNameColumnTitle: "taskEditingDependenciesGridNameColumnTitle", taskEditingDependenciesGridTypeColumnTitle: "taskEditingDependenciesGridTypeColumnTitle", deleteButtonText: "deleteButtonText", taskDeleteLabel: "taskDeleteLabel", taskEditingDialogTitle: "taskEditingDialogTitle", taskEditingDialogCloseTitle: "taskEditingDialogCloseTitle", confirmationDialogCloseTitle: "confirmationDialogCloseTitle", confirmationDialogTitle: "confirmationDialogTitle", addTaskText: "addTaskText", addChildText: "addChildText", addAboveText: "addAboveText", addBelowText: "addBelowText", cancelButtonText: "cancelButtonText", saveButtonText: "saveButtonText", titleFieldInputLabel: "titleFieldInputLabel", startFieldInputLabel: "startFieldInputLabel", endFieldInputLabel: "endFieldInputLabel", completionRatioFieldInputLabel: "completionRatioFieldInputLabel", confirmationDialogContent: "confirmationDialogContent", dayViewText: "dayViewText", weekViewText: "weekViewText", monthViewText: "monthViewText", yearViewText: "yearViewText", noRecords: "noRecords", filter: "filter", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterIsTrue: "filterIsTrue", filterIsFalse: "filterIsFalse", filterBooleanAll: "filterBooleanAll", filterAfterOrEqualOperator: "filterAfterOrEqualOperator", filterAfterOperator: "filterAfterOperator", filterBeforeOperator: "filterBeforeOperator", filterBeforeOrEqualOperator: "filterBeforeOrEqualOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", filterAndLogic: "filterAndLogic", filterOrLogic: "filterOrLogic", loading: "loading", columnMenu: "columnMenu", columns: "columns", lock: "lock", unlock: "unlock", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", columnsApply: "columnsApply", columnsReset: "columnsReset" }, usesInheritance: true, ngImport: i0 });
4913
5261
  }
4914
- Messages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
4915
- Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: Messages, selector: "kendo-gantt-messages-base", inputs: { taskEditingGeneralTabTitle: "taskEditingGeneralTabTitle", taskEditingPredecessorsTabTitle: "taskEditingPredecessorsTabTitle", taskEditingSuccessorsTabTitle: "taskEditingSuccessorsTabTitle", taskEditingDependenciesAddButtonText: "taskEditingDependenciesAddButtonText", taskEditingDependenciesRemoveButtonText: "taskEditingDependenciesRemoveButtonText", taskEditingDependenciesGridNameColumnTitle: "taskEditingDependenciesGridNameColumnTitle", taskEditingDependenciesGridTypeColumnTitle: "taskEditingDependenciesGridTypeColumnTitle", deleteButtonText: "deleteButtonText", taskDeleteLabel: "taskDeleteLabel", taskEditingDialogTitle: "taskEditingDialogTitle", taskEditingDialogCloseTitle: "taskEditingDialogCloseTitle", confirmationDialogCloseTitle: "confirmationDialogCloseTitle", confirmationDialogTitle: "confirmationDialogTitle", addTaskText: "addTaskText", addChildText: "addChildText", addAboveText: "addAboveText", addBelowText: "addBelowText", cancelButtonText: "cancelButtonText", saveButtonText: "saveButtonText", titleFieldInputLabel: "titleFieldInputLabel", startFieldInputLabel: "startFieldInputLabel", endFieldInputLabel: "endFieldInputLabel", completionRatioFieldInputLabel: "completionRatioFieldInputLabel", confirmationDialogContent: "confirmationDialogContent", dayViewText: "dayViewText", weekViewText: "weekViewText", monthViewText: "monthViewText", yearViewText: "yearViewText", noRecords: "noRecords", filter: "filter", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterIsTrue: "filterIsTrue", filterIsFalse: "filterIsFalse", filterBooleanAll: "filterBooleanAll", filterAfterOrEqualOperator: "filterAfterOrEqualOperator", filterAfterOperator: "filterAfterOperator", filterBeforeOperator: "filterBeforeOperator", filterBeforeOrEqualOperator: "filterBeforeOrEqualOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", filterAndLogic: "filterAndLogic", filterOrLogic: "filterOrLogic", loading: "loading", columnMenu: "columnMenu", columns: "columns", lock: "lock", unlock: "unlock", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", columnsApply: "columnsApply", columnsReset: "columnsReset" }, usesInheritance: true, ngImport: i0 });
4916
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Messages, decorators: [{
5262
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, decorators: [{
4917
5263
  type: Directive,
4918
5264
  args: [{
4919
5265
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -5061,19 +5407,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5061
5407
  * @hidden
5062
5408
  */
5063
5409
  class LocalizedMessagesDirective extends Messages {
5410
+ service;
5064
5411
  constructor(service) {
5065
5412
  super();
5066
5413
  this.service = service;
5067
5414
  }
5415
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
5416
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: LocalizedMessagesDirective, isStandalone: true, selector: "[kendoGanttLocalizedMessages]", providers: [
5417
+ {
5418
+ provide: Messages,
5419
+ useExisting: forwardRef(() => LocalizedMessagesDirective)
5420
+ }
5421
+ ], usesInheritance: true, ngImport: i0 });
5068
5422
  }
5069
- LocalizedMessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
5070
- LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: LocalizedMessagesDirective, isStandalone: true, selector: "[kendoGanttLocalizedMessages]", providers: [
5071
- {
5072
- provide: Messages,
5073
- useExisting: forwardRef(() => LocalizedMessagesDirective)
5074
- }
5075
- ], usesInheritance: true, ngImport: i0 });
5076
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
5423
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
5077
5424
  type: Directive,
5078
5425
  args: [{
5079
5426
  providers: [
@@ -5167,337 +5514,45 @@ const DEFAULT_DRAG_SCROLL_SETTINGS = {
5167
5514
  * ```
5168
5515
  */
5169
5516
  class GanttComponent {
5170
- constructor(timelineViewService, scrollSyncService, renderer, mapper, optionChangesService, dependencyDomService, editService, localizationService, hostElement, zone, navigation, currentTimeMarkerService) {
5171
- this.timelineViewService = timelineViewService;
5172
- this.scrollSyncService = scrollSyncService;
5173
- this.renderer = renderer;
5174
- this.mapper = mapper;
5175
- this.optionChangesService = optionChangesService;
5176
- this.dependencyDomService = dependencyDomService;
5177
- this.editService = editService;
5178
- this.localizationService = localizationService;
5179
- this.hostElement = hostElement;
5180
- this.zone = zone;
5181
- this.navigation = navigation;
5182
- this.currentTimeMarkerService = currentTimeMarkerService;
5183
- /**
5184
- * @hidden
5185
- */
5186
- this.roleDescription = 'Gantt Chart';
5187
- /**
5188
- * @hidden
5189
- */
5190
- this.role = 'application';
5191
- this.hostClasses = true;
5192
- /**
5193
- * Specifies a callback that determines if the given task is selected ([see example]({% slug selection_gantt %}#toc-custom-selection)).
5194
- *
5195
- * > The [`selectable`]({% slug api_gantt_ganttcomponent %}#toc-selectable) prop has to be set to `true` in order for this callback to be executed.
5196
- */
5197
- this.isSelected = isSelected;
5198
- /**
5199
- * Specifies a callback that determines if a new dependency is valid.
5200
- * Used when evaluating if an attempt to create a new dependency will result in a valid link between the two tasks
5201
- * [see example]({% slug editing_drag_create_dependencies_gantt %}#toc-validation).
5202
- *
5203
- * By defalut, dependencies are deemed invalid when:
5204
- * - The two tasks are in a parent-child relationship.
5205
- * - The two tasks are already dependent on one another. Only one dependency is allowed per pair.
5206
- * - The start or end times of the two tasks are incompatible with the attempted dependency type.
5207
- */
5208
- this.validateNewDependency = this.defaultValidateNewDependencyCallback.bind(this);
5209
- /**
5210
- * Fires when the Gantt selection is changed through user interaction.
5211
- *
5212
- * Holds data about the affected [`items`]({% slug api_gantt_selectionchangeevent %}#toc-items) and the attempted [`action`]({% slug api_gantt_selectionchangeevent %}#toc-action):
5213
- * - `select` - Triggered on `click` or `ctrl + click` on deselected items.
5214
- * - `remove` - Triggered on `ctrl + click` on selected items.
5215
- */
5216
- this.selectionChange = new EventEmitter();
5217
- /**
5218
- * Enables or disables the Gantt selection mechanism ([see example]({% slug selection_gantt %}#toc-custom-selection)).
5219
- *
5220
- * > When set to `true`, the [`isSelected`]({% slug api_gantt_ganttcomponent %}#toc-isselected) callback has to be provided.
5221
- * > When applied, the [`SelectableDirective`]({% slug api_gantt_selectabledirective %}) sets `selectable` to `true` internally.
5222
- */
5223
- this.selectable = false;
5224
- /**
5225
- * Allows setting the toolbar(s) `aria-label` attribute value as necessary to comply with accessibility requirements.
5226
- * Typically, toolbars need an `aria-label` when there is more than one toolbar in the application.
5227
- */
5228
- this.toolbarAriaLabel = 'Toolbar';
5229
- /**
5230
- * Defines the dependencies that will be drawn between the rendered tasks.
5231
- *
5232
- * > The dependency data items should either conform to the [`GanttDependency`]({% slug api_gantt_ganttdependency %}) interface, or a [`dependencyModelFields`]({% slug api_gantt_ganttcomponent %}#toc-dependencymodelfields) object has to be provided.
5233
- */
5234
- this.dependencies = [];
5235
- /**
5236
- * Enables the sorting of the Gantt columns that have their `field` option set.
5237
- */
5238
- this.sortable = false;
5239
- /**
5240
- * The descriptors by which the data will be sorted.
5241
- */
5242
- this.sort = [];
5243
- /**
5244
- * Enables the filtering of the Gantt columns that have their `field` option set.
5245
- *
5246
- * @default false
5247
- */
5248
- this.filterable = false;
5249
- /**
5250
- * The start time of the work day.
5251
- * Accepts string values in the `HH:mm` format.
5252
- */
5253
- this.workDayStart = '08:00';
5254
- /**
5255
- * The end time of the work day.
5256
- * Accepts string values in the `HH:mm` format.
5257
- */
5258
- this.workDayEnd = '17:00';
5259
- /**
5260
- * The start of the work week (index based).
5261
- */
5262
- this.workWeekStart = 1;
5263
- /**
5264
- * The end of the work week (index based).
5265
- */
5266
- this.workWeekEnd = 5;
5267
- /**
5268
- * If set to `true`, the user can use dedicated shortcuts to interact with the Gantt.
5269
- * By default, navigation is disabled for the TreeList and Timeline parts of the component,
5270
- * ([see example]({% slug keyboard_navigation_gantt %})).
5271
- */
5272
- this.navigable = false;
5273
- /**
5274
- * Indicates whether the Gantt columns will be resized during initialization so that they fit their headers and row content.
5275
- * Columns with autoSize set to false are excluded.
5276
- *
5277
- * @default false
5278
- */
5279
- this.columnsAutoSize = false;
5280
- /**
5281
- * Specifies the Gantt current time marker settings.
5282
- * The settings will be applied for all views.
5283
- * If the `currentTimeMarker` is set for a view then it takes precedence.
5284
- *
5285
- * @default true
5286
- */
5287
- this.currentTimeMarker = true;
5288
- /**
5289
- * Specifies if the column menu of the columns will be displayed.
5290
- *
5291
- * @default false
5292
- */
5293
- this.columnMenu = false;
5294
- /**
5295
- * If set to true, the user can reorder columns by dragging their header cells.
5296
- *
5297
- * @default false
5298
- */
5299
- this.columnsReorderable = false;
5300
- /**
5301
- * If set to true, the user can resize columns by dragging the edges (resize handles) of their header cells.
5302
- *
5303
- * @default false
5304
- */
5305
- this.columnsResizable = false;
5306
- /**
5307
- * Fires when an item is expanded.
5308
- */
5309
- this.rowExpand = new EventEmitter();
5310
- /**
5311
- * Fires when a Gantt task in the timeline pane is double-clicked. The data item, associated with the clicked task,
5312
- * is available in the event data. Use the event handler to open a task editing dialog as necessary.
5313
- */
5314
- this.taskDblClick = new EventEmitter();
5315
- /**
5316
- * Fires when the user double clicks a cell.
5317
- */
5318
- this.cellDblClick = new EventEmitter();
5319
- /**
5320
- * Fires when the user leaves an edited cell.
5321
- */
5322
- this.cellClose = new EventEmitter();
5323
- /**
5324
- * Fires when the end user clicks the `Delete` button in the task editing dialog,
5325
- * the task delete icon, or presses the `Delete` key on the keyboard when a task in the timeline is focused.
5326
- * Use the event handler to open a confirmation dialog when necessary.
5327
- */
5328
- this.taskDelete = new EventEmitter();
5329
- /**
5330
- * Fires when an item is collapsed.
5331
- */
5332
- this.rowCollapse = new EventEmitter();
5333
- /**
5334
- * Fires when the user confirms deleting a task.
5335
- */
5336
- this.remove = new EventEmitter();
5337
- /**
5338
- * Fires when the user cancels editing a task.
5339
- */
5340
- this.cancel = new EventEmitter();
5341
- /**
5342
- * Fires when the user saves an edited task.
5343
- */
5344
- this.save = new EventEmitter();
5345
- /**
5346
- * Fires when the user adds a task.
5347
- */
5348
- this.taskAdd = new EventEmitter();
5349
- /**
5350
- * Fires when the user adds a dependency via dragging
5351
- * [see example]({% slug editing_drag_create_dependencies_gantt %}#toc-basic-concepts).
5352
- */
5353
- this.dependencyAdd = new EventEmitter();
5354
- /**
5355
- * Fires when the sorting of the Gantt is changed.
5356
- * You have to handle the event yourself and sort the data.
5357
- */
5358
- this.sortChange = new EventEmitter();
5359
- /**
5360
- * Fires when the Gantt filter is modified.
5361
- * You have to handle the event yourself and filter the data.
5362
- */
5363
- this.filterChange = new EventEmitter();
5364
- /**
5365
- * Fires when the filter or sort state of the Gantt is changed.
5366
- */
5367
- this.dataStateChange = new EventEmitter();
5368
- /**
5369
- * Fires when the collapsed state of the treelist pane is changed.
5370
- */
5371
- this.treeListPaneCollapsedChange = new EventEmitter();
5372
- /**
5373
- * Fires when the collapsed state of the timeline pane is changed.
5374
- */
5375
- this.timelinePaneCollapsedChange = new EventEmitter();
5376
- /**
5377
- * Fires each time the user resizes the timeline pane.
5378
- */
5379
- this.timelinePaneSizeChange = new EventEmitter();
5380
- /**
5381
- * Fires each time the user selects a different view type. The event data contains the type of the newly selected view.
5382
- */
5383
- this.activeViewChange = new EventEmitter();
5384
- /**
5385
- * Fires when the user completes the resizing of the column.
5386
- */
5387
- this.columnResize = new EventEmitter();
5388
- /**
5389
- * Fires when the user completes the reordering of the column.
5390
- */
5391
- this.columnReorder = new EventEmitter();
5392
- /**
5393
- * Fires when the user changes the visibility of the columns from the column menu or column chooser.
5394
- */
5395
- this.columnVisibilityChange = new EventEmitter();
5396
- /**
5397
- * @hidden
5398
- *
5399
- * Fires when the user changes the locked state of the columns from the column menu or by reordering the columns.
5400
- */
5401
- this.columnLockedChange = new EventEmitter();
5402
- /**
5403
- * Fires when a cell is clicked.
5404
- */
5405
- this.cellClick = new EventEmitter();
5406
- /**
5407
- * Fires when a task is clicked.
5408
- */
5409
- this.taskClick = new EventEmitter();
5410
- /**
5411
- * @hidden
5412
- *
5413
- * Specifies whether the dependency drag clues will be rendered.
5414
- * Set internally by the dependency-drag-create directive.
5415
- *
5416
- * @default false
5417
- */
5418
- this.renderDependencyDragClues = false;
5419
- /**
5420
- * @hidden
5421
- *
5422
- * Used by the GanttExpandableDirective.
5423
- */
5424
- this.expandStateChange = new EventEmitter();
5425
- /**
5426
- * @hidden
5427
- */
5428
- this.showEditingDialog = false;
5429
- /**
5430
- * @hidden
5431
- */
5432
- this.showConfirmationDialog = false;
5433
- /**
5434
- * @hidden
5435
- */
5436
- this.showLicenseWatermark = false;
5437
- this._columns = new QueryList();
5438
- this._data = [];
5439
- this._dragScrollSettings = { ...DEFAULT_DRAG_SCROLL_SETTINGS };
5440
- this._timelinePaneOptions = { ...DEFAULT_TIMELINE_PANE_SETTINGS };
5441
- this._treeListPaneOptions = { ...DEFAULT_TREELIST_PANE_SETTINGS };
5442
- this._rowClass = rowClassCallback;
5443
- this._taskClass = taskClassCallback;
5444
- this._activeView = DEFAULT_VIEW;
5445
- this._toolbarSettings = {
5446
- position: 'top',
5447
- addTaskTool: 'none',
5448
- viewSelectorTool: 'top'
5449
- };
5450
- this._fetchChildren = fetchChildren;
5451
- this._hasChildren = hasChildren;
5452
- this.rtl = false;
5453
- this.optionChangesSubscriptions = new Subscription();
5454
- this.editServiceSubscription = new Subscription();
5455
- const isValid = validatePackage(packageMetadata);
5456
- this.showLicenseWatermark = shouldShowValidationUI(isValid);
5457
- this.optionChangesSubscriptions.add(this.optionChangesService.viewChanges.subscribe(() => {
5458
- this.loadTimelineData();
5459
- }));
5460
- this.optionChangesSubscriptions.add(this.optionChangesService.dateFormatChanges.subscribe(() => {
5461
- this.loadTimelineData();
5462
- }));
5463
- this.optionChangesSubscriptions.add(this.optionChangesService.columnChanges.subscribe(() => {
5464
- this.treeList.columns.notifyOnChanges();
5465
- }));
5466
- this.editService.getSelectedItem = this.getFirstSelectedItem.bind(this);
5467
- this.editServiceSubscription.add(this.editService.showEditingDialog.subscribe(show => this.showEditingDialog = show));
5468
- this.editServiceSubscription.add(this.editService.taskDelete.subscribe(task => {
5469
- if (hasObservers(this.taskDelete)) {
5470
- this.zone.run(() => this.notifyTaskDelete(task));
5471
- }
5472
- }));
5473
- this.editServiceSubscription.add(this.editService.editEvent.subscribe(args => {
5474
- this[args.editResultType].emit({
5475
- taskFormGroup: args.taskFormGroup,
5476
- item: getEditItem(args.dataItem, this.treeList.view.data, this.mapper),
5477
- dependencies: args.dependencies,
5478
- sender: this
5479
- });
5480
- this.showConfirmationDialog = this.showEditingDialog = false;
5481
- this.editService.dataItem = this.editService.taskFormGroup = null;
5482
- this.updateView();
5483
- if (this.navigable) {
5484
- this.focus();
5485
- }
5486
- }));
5487
- this.editServiceSubscription.add(this.editService.addEvent.subscribe(args => {
5488
- const selectedItem = this.getFirstSelectedItem();
5489
- this.taskAdd.emit({
5490
- actionType: args.actionType,
5491
- selectedItem: selectedItem ? getEditItem(selectedItem, this.treeList.view.data, this.mapper) : null
5492
- });
5493
- this.updateView();
5494
- }));
5495
- this.localizationSubscription = this.localizationService.changes.subscribe(({ rtl }) => {
5496
- this.rtl = rtl;
5497
- this.direction = this.rtl ? 'rtl' : 'ltr';
5498
- this.currentTimeMarkerService.rtl = rtl;
5499
- });
5500
- }
5517
+ timelineViewService;
5518
+ scrollSyncService;
5519
+ renderer;
5520
+ mapper;
5521
+ optionChangesService;
5522
+ dependencyDomService;
5523
+ editService;
5524
+ localizationService;
5525
+ hostElement;
5526
+ zone;
5527
+ navigation;
5528
+ currentTimeMarkerService;
5529
+ treeList;
5530
+ timeline;
5531
+ /**
5532
+ * @hidden
5533
+ *
5534
+ * Queries the template for a task content template declaration.
5535
+ * In newer Angular versions the ngIf-ed value gets evaluated after the static query is resolved.
5536
+ * Therefore the `static` property needs to be set to `false`.
5537
+ */
5538
+ taskContentTemplate;
5539
+ /**
5540
+ * @hidden
5541
+ *
5542
+ * Queries the template for a task template declaration.
5543
+ * In newer Angular versions the ngIf-ed value gets evaluated after the static query is resolved.
5544
+ * Therefore the `static` property needs to be set to `false`.
5545
+ */
5546
+ taskTemplate;
5547
+ /**
5548
+ * @hidden
5549
+ *
5550
+ * Queries the template for a task summary template declaration.
5551
+ * In newer Angular versions the ngIf-ed value gets evaluated after the static query is resolved.
5552
+ * Therefore the `static` property needs to be set to `false`.
5553
+ */
5554
+ summaryTaskTemplate;
5555
+ toolbarTemplateChildren;
5501
5556
  get toolbarTemplate() {
5502
5557
  if (this._customToolbarTemplate) {
5503
5558
  return this._customToolbarTemplate;
@@ -5507,12 +5562,21 @@ class GanttComponent {
5507
5562
  set toolbarTemplate(customToolbarTemplate) {
5508
5563
  this._customToolbarTemplate = customToolbarTemplate;
5509
5564
  }
5565
+ /**
5566
+ * @hidden
5567
+ */
5568
+ roleDescription = 'Gantt Chart';
5510
5569
  get hostRoleDescriptionAttr() {
5511
5570
  return this.roleDescription;
5512
5571
  }
5572
+ /**
5573
+ * @hidden
5574
+ */
5575
+ role = 'application';
5513
5576
  get hostRoleAttr() {
5514
5577
  return this.role;
5515
5578
  }
5579
+ hostClasses = true;
5516
5580
  get dir() {
5517
5581
  return this.direction;
5518
5582
  }
@@ -5543,6 +5607,10 @@ class GanttComponent {
5543
5607
  set dependencyModelFields(fields) {
5544
5608
  this.mapper.dependencyFields = fields;
5545
5609
  }
5610
+ /**
5611
+ * A query list of all declared views.
5612
+ */
5613
+ views;
5546
5614
  /**
5547
5615
  * The active timeline view.
5548
5616
  * @default 'week'
@@ -5584,6 +5652,38 @@ class GanttComponent {
5584
5652
  get data() {
5585
5653
  return this._data;
5586
5654
  }
5655
+ /**
5656
+ * Specifies a callback that determines if the given task is selected ([see example]({% slug selection_gantt %}#toc-custom-selection)).
5657
+ *
5658
+ * > The [`selectable`]({% slug api_gantt_ganttcomponent %}#toc-selectable) prop has to be set to `true` in order for this callback to be executed.
5659
+ */
5660
+ isSelected = isSelected;
5661
+ /**
5662
+ * Specifies a callback that determines if a new dependency is valid.
5663
+ * Used when evaluating if an attempt to create a new dependency will result in a valid link between the two tasks
5664
+ * [see example]({% slug editing_drag_create_dependencies_gantt %}#toc-validation).
5665
+ *
5666
+ * By defalut, dependencies are deemed invalid when:
5667
+ * - The two tasks are in a parent-child relationship.
5668
+ * - The two tasks are already dependent on one another. Only one dependency is allowed per pair.
5669
+ * - The start or end times of the two tasks are incompatible with the attempted dependency type.
5670
+ */
5671
+ validateNewDependency = this.defaultValidateNewDependencyCallback.bind(this);
5672
+ /**
5673
+ * Fires when the Gantt selection is changed through user interaction.
5674
+ *
5675
+ * Holds data about the affected [`items`]({% slug api_gantt_selectionchangeevent %}#toc-items) and the attempted [`action`]({% slug api_gantt_selectionchangeevent %}#toc-action):
5676
+ * - `select` - Triggered on `click` or `ctrl + click` on deselected items.
5677
+ * - `remove` - Triggered on `ctrl + click` on selected items.
5678
+ */
5679
+ selectionChange = new EventEmitter();
5680
+ /**
5681
+ * Enables or disables the Gantt selection mechanism ([see example]({% slug selection_gantt %}#toc-custom-selection)).
5682
+ *
5683
+ * > When set to `true`, the [`isSelected`]({% slug api_gantt_ganttcomponent %}#toc-isselected) callback has to be provided.
5684
+ * > When applied, the [`SelectableDirective`]({% slug api_gantt_selectabledirective %}) sets `selectable` to `true` internally.
5685
+ */
5686
+ selectable = false;
5587
5687
  /**
5588
5688
  * The toolbar configuration. Defines the position and content of the toolbar(s).
5589
5689
  * The available properties are `position`, `addTaskTool`, and `viewSelectorTool`.
@@ -5607,6 +5707,11 @@ class GanttComponent {
5607
5707
  get toolbarSettings() {
5608
5708
  return this._toolbarSettings;
5609
5709
  }
5710
+ /**
5711
+ * Allows setting the toolbar(s) `aria-label` attribute value as necessary to comply with accessibility requirements.
5712
+ * Typically, toolbars need an `aria-label` when there is more than one toolbar in the application.
5713
+ */
5714
+ toolbarAriaLabel = 'Toolbar';
5610
5715
  /**
5611
5716
  * Gets or sets the callback function that retrieves the child items for a particular item.
5612
5717
  */
@@ -5620,13 +5725,61 @@ class GanttComponent {
5620
5725
  /**
5621
5726
  * Gets or sets the callback function that indicates if a particular item has child items.
5622
5727
  */
5623
- set hasChildren(fn) {
5624
- this._hasChildren = fn;
5625
- this.editService.hasChildren = fn;
5626
- }
5627
- get hasChildren() {
5628
- return this._hasChildren;
5629
- }
5728
+ set hasChildren(fn) {
5729
+ this._hasChildren = fn;
5730
+ this.editService.hasChildren = fn;
5731
+ }
5732
+ get hasChildren() {
5733
+ return this._hasChildren;
5734
+ }
5735
+ /**
5736
+ * Defines the dependencies that will be drawn between the rendered tasks.
5737
+ *
5738
+ * > The dependency data items should either conform to the [`GanttDependency`]({% slug api_gantt_ganttdependency %}) interface, or a [`dependencyModelFields`]({% slug api_gantt_ganttcomponent %}#toc-dependencymodelfields) object has to be provided.
5739
+ */
5740
+ dependencies = [];
5741
+ /**
5742
+ * Enables the sorting of the Gantt columns that have their `field` option set.
5743
+ */
5744
+ sortable = false;
5745
+ /**
5746
+ * The descriptors by which the data will be sorted.
5747
+ */
5748
+ sort = [];
5749
+ /**
5750
+ * Enables the filtering of the Gantt columns that have their `field` option set.
5751
+ *
5752
+ * @default false
5753
+ */
5754
+ filterable = false;
5755
+ /**
5756
+ * The descriptor by which the data will be filtered.
5757
+ */
5758
+ filter;
5759
+ /**
5760
+ * The start time of the work day.
5761
+ * Accepts string values in the `HH:mm` format.
5762
+ */
5763
+ workDayStart = '08:00';
5764
+ /**
5765
+ * The end time of the work day.
5766
+ * Accepts string values in the `HH:mm` format.
5767
+ */
5768
+ workDayEnd = '17:00';
5769
+ /**
5770
+ * The start of the work week (index based).
5771
+ */
5772
+ workWeekStart = 1;
5773
+ /**
5774
+ * The end of the work week (index based).
5775
+ */
5776
+ workWeekEnd = 5;
5777
+ /**
5778
+ * If set to `true`, the user can use dedicated shortcuts to interact with the Gantt.
5779
+ * By default, navigation is disabled for the TreeList and Timeline parts of the component,
5780
+ * ([see example]({% slug keyboard_navigation_gantt %})).
5781
+ */
5782
+ navigable = false;
5630
5783
  /**
5631
5784
  * The options of the timeline splitter pane. By default the pane is `collapsible`,
5632
5785
  * `resizable`, not `collapsed`, and its `size` is `'50%'`.
@@ -5682,6 +5835,44 @@ class GanttComponent {
5682
5835
  get taskIdField() {
5683
5836
  return this.mapper.taskFields.id;
5684
5837
  }
5838
+ /**
5839
+ * Sets the callback function that indicates if a particular item is expanded.
5840
+ * If no callback is set, all items will be expanded and no expand icons will be rendered.
5841
+ */
5842
+ isExpanded;
5843
+ /**
5844
+ * Indicates whether the Gantt columns will be resized during initialization so that they fit their headers and row content.
5845
+ * Columns with autoSize set to false are excluded.
5846
+ *
5847
+ * @default false
5848
+ */
5849
+ columnsAutoSize = false;
5850
+ /**
5851
+ * Specifies the Gantt current time marker settings.
5852
+ * The settings will be applied for all views.
5853
+ * If the `currentTimeMarker` is set for a view then it takes precedence.
5854
+ *
5855
+ * @default true
5856
+ */
5857
+ currentTimeMarker = true;
5858
+ /**
5859
+ * Specifies if the column menu of the columns will be displayed.
5860
+ *
5861
+ * @default false
5862
+ */
5863
+ columnMenu = false;
5864
+ /**
5865
+ * If set to true, the user can reorder columns by dragging their header cells.
5866
+ *
5867
+ * @default false
5868
+ */
5869
+ columnsReorderable = false;
5870
+ /**
5871
+ * If set to true, the user can resize columns by dragging the edges (resize handles) of their header cells.
5872
+ *
5873
+ * @default false
5874
+ */
5875
+ columnsResizable = false;
5685
5876
  /**
5686
5877
  * Specifies the settings for auto-scrolling during dragging
5687
5878
  * when the pointer moves outside of the container bounderies
@@ -5693,6 +5884,110 @@ class GanttComponent {
5693
5884
  get dragScrollSettings() {
5694
5885
  return this._dragScrollSettings;
5695
5886
  }
5887
+ /**
5888
+ * Fires when an item is expanded.
5889
+ */
5890
+ rowExpand = new EventEmitter();
5891
+ /**
5892
+ * Fires when a Gantt task in the timeline pane is double-clicked. The data item, associated with the clicked task,
5893
+ * is available in the event data. Use the event handler to open a task editing dialog as necessary.
5894
+ */
5895
+ taskDblClick = new EventEmitter();
5896
+ /**
5897
+ * Fires when the user double clicks a cell.
5898
+ */
5899
+ cellDblClick = new EventEmitter();
5900
+ /**
5901
+ * Fires when the user leaves an edited cell.
5902
+ */
5903
+ cellClose = new EventEmitter();
5904
+ /**
5905
+ * Fires when the end user clicks the `Delete` button in the task editing dialog,
5906
+ * the task delete icon, or presses the `Delete` key on the keyboard when a task in the timeline is focused.
5907
+ * Use the event handler to open a confirmation dialog when necessary.
5908
+ */
5909
+ taskDelete = new EventEmitter();
5910
+ /**
5911
+ * Fires when an item is collapsed.
5912
+ */
5913
+ rowCollapse = new EventEmitter();
5914
+ /**
5915
+ * Fires when the user confirms deleting a task.
5916
+ */
5917
+ remove = new EventEmitter();
5918
+ /**
5919
+ * Fires when the user cancels editing a task.
5920
+ */
5921
+ cancel = new EventEmitter();
5922
+ /**
5923
+ * Fires when the user saves an edited task.
5924
+ */
5925
+ save = new EventEmitter();
5926
+ /**
5927
+ * Fires when the user adds a task.
5928
+ */
5929
+ taskAdd = new EventEmitter();
5930
+ /**
5931
+ * Fires when the user adds a dependency via dragging
5932
+ * [see example]({% slug editing_drag_create_dependencies_gantt %}#toc-basic-concepts).
5933
+ */
5934
+ dependencyAdd = new EventEmitter();
5935
+ /**
5936
+ * Fires when the sorting of the Gantt is changed.
5937
+ * You have to handle the event yourself and sort the data.
5938
+ */
5939
+ sortChange = new EventEmitter();
5940
+ /**
5941
+ * Fires when the Gantt filter is modified.
5942
+ * You have to handle the event yourself and filter the data.
5943
+ */
5944
+ filterChange = new EventEmitter();
5945
+ /**
5946
+ * Fires when the filter or sort state of the Gantt is changed.
5947
+ */
5948
+ dataStateChange = new EventEmitter();
5949
+ /**
5950
+ * Fires when the collapsed state of the treelist pane is changed.
5951
+ */
5952
+ treeListPaneCollapsedChange = new EventEmitter();
5953
+ /**
5954
+ * Fires when the collapsed state of the timeline pane is changed.
5955
+ */
5956
+ timelinePaneCollapsedChange = new EventEmitter();
5957
+ /**
5958
+ * Fires each time the user resizes the timeline pane.
5959
+ */
5960
+ timelinePaneSizeChange = new EventEmitter();
5961
+ /**
5962
+ * Fires each time the user selects a different view type. The event data contains the type of the newly selected view.
5963
+ */
5964
+ activeViewChange = new EventEmitter();
5965
+ /**
5966
+ * Fires when the user completes the resizing of the column.
5967
+ */
5968
+ columnResize = new EventEmitter();
5969
+ /**
5970
+ * Fires when the user completes the reordering of the column.
5971
+ */
5972
+ columnReorder = new EventEmitter();
5973
+ /**
5974
+ * Fires when the user changes the visibility of the columns from the column menu or column chooser.
5975
+ */
5976
+ columnVisibilityChange = new EventEmitter();
5977
+ /**
5978
+ * @hidden
5979
+ *
5980
+ * Fires when the user changes the locked state of the columns from the column menu or by reordering the columns.
5981
+ */
5982
+ columnLockedChange = new EventEmitter();
5983
+ /**
5984
+ * Fires when a cell is clicked.
5985
+ */
5986
+ cellClick = new EventEmitter();
5987
+ /**
5988
+ * Fires when a task is clicked.
5989
+ */
5990
+ taskClick = new EventEmitter();
5696
5991
  /**
5697
5992
  * @hidden
5698
5993
  */
@@ -5717,6 +6012,27 @@ class GanttComponent {
5717
6012
  get filterMenu() {
5718
6013
  return this.filterable ? 'menu' : false;
5719
6014
  }
6015
+ /**
6016
+ * @hidden
6017
+ *
6018
+ * Specifies whether the dependency drag clues will be rendered.
6019
+ * Set internally by the dependency-drag-create directive.
6020
+ *
6021
+ * @default false
6022
+ */
6023
+ renderDependencyDragClues = false;
6024
+ /**
6025
+ * @hidden
6026
+ */
6027
+ timelineSlots;
6028
+ /**
6029
+ * @hidden
6030
+ */
6031
+ timelineGroupSlots;
6032
+ /**
6033
+ * @hidden
6034
+ */
6035
+ tableWidth;
5720
6036
  /**
5721
6037
  * @hidden
5722
6038
  */
@@ -5754,12 +6070,113 @@ class GanttComponent {
5754
6070
  get viewTypes() {
5755
6071
  return this.views.map(view => view.type);
5756
6072
  }
6073
+ /**
6074
+ * @hidden
6075
+ *
6076
+ * Used by the GanttExpandableDirective.
6077
+ */
6078
+ expandStateChange = new EventEmitter();
6079
+ /**
6080
+ * @hidden
6081
+ */
6082
+ showEditingDialog = false;
6083
+ /**
6084
+ * @hidden
6085
+ */
6086
+ showConfirmationDialog = false;
5757
6087
  /**
5758
6088
  * @hidden
5759
6089
  */
5760
6090
  get isInEditMode() {
5761
6091
  return this.showEditingDialog || this.showConfirmationDialog || this.treeList.isEditing();
5762
6092
  }
6093
+ /**
6094
+ * @hidden
6095
+ */
6096
+ showLicenseWatermark = false;
6097
+ _columns = new QueryList();
6098
+ _data = [];
6099
+ _dragScrollSettings = { ...DEFAULT_DRAG_SCROLL_SETTINGS };
6100
+ _timelinePaneOptions = { ...DEFAULT_TIMELINE_PANE_SETTINGS };
6101
+ _treeListPaneOptions = { ...DEFAULT_TREELIST_PANE_SETTINGS };
6102
+ _customToolbarTemplate;
6103
+ _rowClass = rowClassCallback;
6104
+ _taskClass = taskClassCallback;
6105
+ _activeView = DEFAULT_VIEW;
6106
+ _toolbarSettings = {
6107
+ position: 'top',
6108
+ addTaskTool: 'none',
6109
+ viewSelectorTool: 'top'
6110
+ };
6111
+ _fetchChildren = fetchChildren;
6112
+ _hasChildren = hasChildren;
6113
+ lastTreeListCellClick;
6114
+ direction;
6115
+ rtl = false;
6116
+ editItem;
6117
+ optionChangesSubscriptions = new Subscription();
6118
+ editServiceSubscription = new Subscription();
6119
+ localizationSubscription;
6120
+ keydownListenerDisposers;
6121
+ constructor(timelineViewService, scrollSyncService, renderer, mapper, optionChangesService, dependencyDomService, editService, localizationService, hostElement, zone, navigation, currentTimeMarkerService) {
6122
+ this.timelineViewService = timelineViewService;
6123
+ this.scrollSyncService = scrollSyncService;
6124
+ this.renderer = renderer;
6125
+ this.mapper = mapper;
6126
+ this.optionChangesService = optionChangesService;
6127
+ this.dependencyDomService = dependencyDomService;
6128
+ this.editService = editService;
6129
+ this.localizationService = localizationService;
6130
+ this.hostElement = hostElement;
6131
+ this.zone = zone;
6132
+ this.navigation = navigation;
6133
+ this.currentTimeMarkerService = currentTimeMarkerService;
6134
+ const isValid = validatePackage(packageMetadata);
6135
+ this.showLicenseWatermark = shouldShowValidationUI(isValid);
6136
+ this.optionChangesSubscriptions.add(this.optionChangesService.viewChanges.subscribe(() => {
6137
+ this.loadTimelineData();
6138
+ }));
6139
+ this.optionChangesSubscriptions.add(this.optionChangesService.dateFormatChanges.subscribe(() => {
6140
+ this.loadTimelineData();
6141
+ }));
6142
+ this.optionChangesSubscriptions.add(this.optionChangesService.columnChanges.subscribe(() => {
6143
+ this.treeList.columns.notifyOnChanges();
6144
+ }));
6145
+ this.editService.getSelectedItem = this.getFirstSelectedItem.bind(this);
6146
+ this.editServiceSubscription.add(this.editService.showEditingDialog.subscribe(show => this.showEditingDialog = show));
6147
+ this.editServiceSubscription.add(this.editService.taskDelete.subscribe(task => {
6148
+ if (hasObservers(this.taskDelete)) {
6149
+ this.zone.run(() => this.notifyTaskDelete(task));
6150
+ }
6151
+ }));
6152
+ this.editServiceSubscription.add(this.editService.editEvent.subscribe(args => {
6153
+ this[args.editResultType].emit({
6154
+ taskFormGroup: args.taskFormGroup,
6155
+ item: getEditItem(args.dataItem, this.treeList.view.data, this.mapper),
6156
+ dependencies: args.dependencies,
6157
+ sender: this
6158
+ });
6159
+ this.showConfirmationDialog = this.showEditingDialog = false;
6160
+ this.editService.dataItem = this.editService.taskFormGroup = null;
6161
+ this.updateView();
6162
+ if (this.navigable) {
6163
+ this.focus();
6164
+ }
6165
+ }));
6166
+ this.editServiceSubscription.add(this.editService.addEvent.subscribe(args => {
6167
+ const selectedItem = this.getFirstSelectedItem();
6168
+ this.taskAdd.emit({
6169
+ actionType: args.actionType,
6170
+ selectedItem: selectedItem ? getEditItem(selectedItem, this.treeList.view.data, this.mapper) : null
6171
+ });
6172
+ this.updateView();
6173
+ }));
6174
+ this.localizationSubscription = this.localizationService.changes.subscribe(({ rtl }) => {
6175
+ this.rtl = rtl;
6176
+ this.direction = this.rtl ? 'rtl' : 'ltr';
6177
+ this.currentTimeMarkerService.rtl = rtl;
6178
+ });
6179
+ }
5763
6180
  ngOnChanges(changes) {
5764
6181
  if (anyChanged(['data', 'activeView', 'workWeekStart', 'workWeekEnd', 'workDayStart', 'workDayEnd'], changes)) {
5765
6182
  this.loadTimelineData();
@@ -6357,37 +6774,36 @@ class GanttComponent {
6357
6774
  }
6358
6775
  }
6359
6776
  }
6360
- }
6361
- GanttComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttComponent, deps: [{ token: TimelineViewService }, { token: ScrollSyncService }, { token: i0.Renderer2 }, { token: MappingService }, { token: OptionChangesService }, { token: DependencyDomService }, { token: EditService }, { token: i1$1.LocalizationService }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: NavigationService }, { token: CurrentTimeMarkerService }], target: i0.ɵɵFactoryTarget.Component });
6362
- GanttComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttComponent, isStandalone: true, selector: "kendo-gantt", inputs: { roleDescription: ["aria-roledescription", "roleDescription"], role: "role", taskModelFields: "taskModelFields", dependencyModelFields: "dependencyModelFields", activeView: "activeView", data: "data", isSelected: "isSelected", validateNewDependency: "validateNewDependency", selectable: "selectable", toolbarSettings: "toolbarSettings", toolbarAriaLabel: "toolbarAriaLabel", fetchChildren: "fetchChildren", hasChildren: "hasChildren", dependencies: "dependencies", sortable: "sortable", sort: "sort", filterable: "filterable", filter: "filter", workDayStart: "workDayStart", workDayEnd: "workDayEnd", workWeekStart: "workWeekStart", workWeekEnd: "workWeekEnd", navigable: "navigable", timelinePaneOptions: "timelinePaneOptions", treeListPaneOptions: "treeListPaneOptions", taskClass: "taskClass", rowClass: "rowClass", isExpanded: "isExpanded", columnsAutoSize: "columnsAutoSize", currentTimeMarker: "currentTimeMarker", columnMenu: "columnMenu", columnsReorderable: "columnsReorderable", columnsResizable: "columnsResizable", dragScrollSettings: "dragScrollSettings" }, outputs: { 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" }, host: { properties: { "attr.aria-roledescription": "this.hostRoleDescriptionAttr", "attr.role": "this.hostRoleAttr", "class.k-gantt": "this.hostClasses", "attr.dir": "this.dir" } }, providers: [
6363
- GanttLocalizationService,
6364
- LocalizationService,
6365
- {
6366
- provide: L10N_PREFIX,
6367
- useValue: 'kendo.gantt'
6368
- },
6369
- {
6370
- provide: DataBoundTreeComponent,
6371
- useExisting: forwardRef(() => GanttComponent)
6372
- },
6373
- {
6374
- provide: ExpandableTreeComponent,
6375
- useExisting: forwardRef(() => GanttComponent)
6376
- },
6377
- TimelineViewService,
6378
- TimelineDayViewService,
6379
- TimelineWeekViewService,
6380
- TimelineMonthViewService,
6381
- TimeLineYearViewService,
6382
- ScrollSyncService,
6383
- DependencyDomService,
6384
- MappingService,
6385
- OptionChangesService,
6386
- EditService,
6387
- TimelineScrollService,
6388
- NavigationService,
6389
- CurrentTimeMarkerService
6390
- ], queries: [{ propertyName: "taskContentTemplate", first: true, predicate: GanttTaskContentTemplateDirective, descendants: true }, { propertyName: "taskTemplate", first: true, predicate: GanttTaskTemplateDirective, descendants: true }, { propertyName: "summaryTaskTemplate", first: true, predicate: GanttSummaryTaskTemplateDirective, descendants: true }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columns", predicate: GanttColumnBase }, { propertyName: "views", predicate: ViewBase }], viewQueries: [{ propertyName: "treeList", first: true, predicate: TreeListComponent, descendants: true, static: true }, { propertyName: "timeline", first: true, predicate: GanttTimelineComponent, descendants: true }], exportAs: ["kendoGantt"], usesOnChanges: true, ngImport: i0, template: `
6777
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttComponent, deps: [{ token: TimelineViewService }, { token: ScrollSyncService }, { token: i0.Renderer2 }, { token: MappingService }, { token: OptionChangesService }, { token: DependencyDomService }, { token: EditService }, { token: i1$1.LocalizationService }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: NavigationService }, { token: CurrentTimeMarkerService }], target: i0.ɵɵFactoryTarget.Component });
6778
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GanttComponent, isStandalone: true, selector: "kendo-gantt", inputs: { roleDescription: ["aria-roledescription", "roleDescription"], role: "role", taskModelFields: "taskModelFields", dependencyModelFields: "dependencyModelFields", activeView: "activeView", data: "data", isSelected: "isSelected", validateNewDependency: "validateNewDependency", selectable: "selectable", toolbarSettings: "toolbarSettings", toolbarAriaLabel: "toolbarAriaLabel", fetchChildren: "fetchChildren", hasChildren: "hasChildren", dependencies: "dependencies", sortable: "sortable", sort: "sort", filterable: "filterable", filter: "filter", workDayStart: "workDayStart", workDayEnd: "workDayEnd", workWeekStart: "workWeekStart", workWeekEnd: "workWeekEnd", navigable: "navigable", timelinePaneOptions: "timelinePaneOptions", treeListPaneOptions: "treeListPaneOptions", taskClass: "taskClass", rowClass: "rowClass", isExpanded: "isExpanded", columnsAutoSize: "columnsAutoSize", currentTimeMarker: "currentTimeMarker", columnMenu: "columnMenu", columnsReorderable: "columnsReorderable", columnsResizable: "columnsResizable", dragScrollSettings: "dragScrollSettings" }, outputs: { 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" }, host: { properties: { "attr.aria-roledescription": "this.hostRoleDescriptionAttr", "attr.role": "this.hostRoleAttr", "class.k-gantt": "this.hostClasses", "attr.dir": "this.dir" } }, providers: [
6779
+ GanttLocalizationService,
6780
+ LocalizationService,
6781
+ {
6782
+ provide: L10N_PREFIX,
6783
+ useValue: 'kendo.gantt'
6784
+ },
6785
+ {
6786
+ provide: DataBoundTreeComponent,
6787
+ useExisting: forwardRef(() => GanttComponent)
6788
+ },
6789
+ {
6790
+ provide: ExpandableTreeComponent,
6791
+ useExisting: forwardRef(() => GanttComponent)
6792
+ },
6793
+ TimelineViewService,
6794
+ TimelineDayViewService,
6795
+ TimelineWeekViewService,
6796
+ TimelineMonthViewService,
6797
+ TimeLineYearViewService,
6798
+ ScrollSyncService,
6799
+ DependencyDomService,
6800
+ MappingService,
6801
+ OptionChangesService,
6802
+ EditService,
6803
+ TimelineScrollService,
6804
+ NavigationService,
6805
+ CurrentTimeMarkerService
6806
+ ], queries: [{ propertyName: "taskContentTemplate", first: true, predicate: GanttTaskContentTemplateDirective, descendants: true }, { propertyName: "taskTemplate", first: true, predicate: GanttTaskTemplateDirective, descendants: true }, { propertyName: "summaryTaskTemplate", first: true, predicate: GanttSummaryTaskTemplateDirective, descendants: true }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columns", predicate: GanttColumnBase }, { propertyName: "views", predicate: ViewBase }], viewQueries: [{ propertyName: "treeList", first: true, predicate: TreeListComponent, descendants: true, static: true }, { propertyName: "timeline", first: true, predicate: GanttTimelineComponent, descendants: true }], exportAs: ["kendoGantt"], usesOnChanges: true, ngImport: i0, template: `
6391
6807
  <ng-container kendoGanttLocalizedMessages
6392
6808
  i18n-taskEditingGeneralTabTitle="kendo.gantt.taskEditingGeneralTabTitle|The title of the 'General' tab of the editing dialog TabStrip"
6393
6809
  taskEditingGeneralTabTitle="General"
@@ -6759,8 +7175,9 @@ GanttComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version
6759
7175
  </kendo-dialog>
6760
7176
 
6761
7177
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
6762
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGanttLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ToolbarComponent, selector: "kendo-gantt-toolbar", inputs: ["showAddTask", "showViewSelector", "views", "activeView", "toolbarTemplate", "navigable", "position"], outputs: ["activeViewChange"] }, { kind: "component", type: SplitterComponent, selector: "kendo-splitter", inputs: ["orientation", "splitbarWidth", "resizeStep"], outputs: ["layoutChange"], exportAs: ["kendoSplitter"] }, { kind: "component", type: SplitterPaneComponent, selector: "kendo-splitter-pane", inputs: ["order", "size", "separatorLabel", "min", "max", "resizable", "collapsible", "scrollable", "collapsed", "orientation", "containsSplitter", "overlayContent"], outputs: ["sizeChange", "collapsedChange"], exportAs: ["kendoSplitterPane"] }, { kind: "component", type: TreeListComponent, selector: "kendo-treelist", inputs: ["aria-label", "data", "pageSize", "height", "rowHeight", "skip", "scrollable", "sort", "trackBy", "filter", "virtualColumns", "filterable", "sortable", "pageable", "navigable", "navigatable", "autoSize", "rowClass", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "idField", "selectable", "isSelected", "rowReorderable", "columns", "fetchChildren", "hasChildren", "isExpanded"], outputs: ["selectionChange", "filterChange", "pageChange", "sortChange", "dataStateChange", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "scrollBottom", "contentScroll", "expand", "collapse", "expandStateChange", "rowReorder"], exportAs: ["kendoTreeList"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: CustomMessagesComponent$2, selector: "kendo-treelist-messages" }, { kind: "component", type: GanttTimelineComponent, selector: "kendo-gantt-timeline", inputs: ["rows", "slots", "groupSlots", "tableWidth", "activeView", "taskContentTemplate", "taskTemplate", "summaryTaskTemplate", "taskClass", "renderDependencyDragClues", "dragScrollSettings", "currentTimeMarker", "selectable", "isTaskSelected", "isExpanded", "dependencies"], outputs: ["timelineContainerPress", "timelineContainerDrag", "timelineContainerRelease"] }, { kind: "component", type: EditDialogComponent, selector: "kendo-gantt-edit-dialog", inputs: ["data"] }, { kind: "component", type: DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: TreeListSpacerComponent, selector: "kendo-treelist-spacer, kendo-treelist-pager-spacer", inputs: ["width"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }] });
6763
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttComponent, decorators: [{
7178
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGanttLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ToolbarComponent, selector: "kendo-gantt-toolbar", inputs: ["showAddTask", "showViewSelector", "views", "activeView", "toolbarTemplate", "navigable", "position"], outputs: ["activeViewChange"] }, { kind: "component", type: SplitterComponent, selector: "kendo-splitter", inputs: ["orientation", "splitbarWidth", "resizeStep", "splitterBarClass"], outputs: ["layoutChange"], exportAs: ["kendoSplitter"] }, { kind: "component", type: SplitterPaneComponent, selector: "kendo-splitter-pane", inputs: ["order", "size", "splitterBarAttributes", "splitterBarClass", "min", "max", "resizable", "collapsible", "scrollable", "collapsed", "orientation", "containsSplitter", "overlayContent"], outputs: ["sizeChange", "collapsedChange"], exportAs: ["kendoSplitterPane"] }, { kind: "component", type: TreeListComponent, selector: "kendo-treelist", inputs: ["aria-label", "data", "pageSize", "height", "rowHeight", "skip", "scrollable", "sort", "trackBy", "filter", "virtualColumns", "filterable", "sortable", "pageable", "navigable", "navigatable", "autoSize", "rowClass", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "idField", "selectable", "isSelected", "rowReorderable", "columns", "fetchChildren", "hasChildren", "isExpanded"], outputs: ["selectionChange", "filterChange", "pageChange", "sortChange", "dataStateChange", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "scrollBottom", "contentScroll", "expand", "collapse", "expandStateChange", "rowReorder"], exportAs: ["kendoTreeList"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: CustomMessagesComponent$2, selector: "kendo-treelist-messages" }, { kind: "component", type: GanttTimelineComponent, selector: "kendo-gantt-timeline", inputs: ["rows", "slots", "groupSlots", "tableWidth", "activeView", "taskContentTemplate", "taskTemplate", "summaryTaskTemplate", "taskClass", "renderDependencyDragClues", "dragScrollSettings", "currentTimeMarker", "selectable", "isTaskSelected", "isExpanded", "dependencies"], outputs: ["timelineContainerPress", "timelineContainerDrag", "timelineContainerRelease"] }, { kind: "component", type: EditDialogComponent, selector: "kendo-gantt-edit-dialog", inputs: ["data"] }, { kind: "component", type: DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: TreeListSpacerComponent, selector: "kendo-treelist-spacer", inputs: ["width"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }] });
7179
+ }
7180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttComponent, decorators: [{
6764
7181
  type: Component,
6765
7182
  args: [{
6766
7183
  selector: 'kendo-gantt',
@@ -7335,16 +7752,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
7335
7752
  * The directive encapsulates the in-memory handling of data operations such as sorting and filtering.
7336
7753
  */
7337
7754
  class GanttFlatBindingDirective extends FlatBindingDirective {
7755
+ /**
7756
+ * The array of data which will be used to populate the Gantt.
7757
+ */
7758
+ data;
7338
7759
  /**
7339
7760
  * @hidden
7340
7761
  */
7341
7762
  set aggregate(value) {
7342
7763
  super.aggregate = value;
7343
7764
  }
7765
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttFlatBindingDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7766
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GanttFlatBindingDirective, isStandalone: true, selector: "[kendoGanttFlatBinding]", inputs: { data: ["kendoGanttFlatBinding", "data"] }, exportAs: ["kendoGanttFlatBinding"], usesInheritance: true, ngImport: i0 });
7344
7767
  }
7345
- GanttFlatBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttFlatBindingDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7346
- GanttFlatBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttFlatBindingDirective, isStandalone: true, selector: "[kendoGanttFlatBinding]", inputs: { data: ["kendoGanttFlatBinding", "data"] }, exportAs: ["kendoGanttFlatBinding"], usesInheritance: true, ngImport: i0 });
7347
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttFlatBindingDirective, decorators: [{
7768
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttFlatBindingDirective, decorators: [{
7348
7769
  type: Directive,
7349
7770
  args: [{
7350
7771
  selector: '[kendoGanttFlatBinding]',
@@ -7361,16 +7782,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
7361
7782
  * which encapsulates the in-memory handling of data operations such as sorting and filtering.
7362
7783
  */
7363
7784
  class GanttHierarchyBindingDirective extends HierarchyBindingDirective {
7785
+ /**
7786
+ * The array of data which will be used to populate the Gantt.
7787
+ */
7788
+ data;
7364
7789
  /**
7365
7790
  * @hidden
7366
7791
  */
7367
7792
  set aggregate(value) {
7368
7793
  super.aggregate = value;
7369
7794
  }
7795
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttHierarchyBindingDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7796
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GanttHierarchyBindingDirective, isStandalone: true, selector: "[kendoGanttHierarchyBinding]", inputs: { data: ["kendoGanttHierarchyBinding", "data"] }, exportAs: ["kendoGanttHierarchyBinding"], usesInheritance: true, ngImport: i0 });
7370
7797
  }
7371
- GanttHierarchyBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttHierarchyBindingDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7372
- GanttHierarchyBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttHierarchyBindingDirective, isStandalone: true, selector: "[kendoGanttHierarchyBinding]", inputs: { data: ["kendoGanttHierarchyBinding", "data"] }, exportAs: ["kendoGanttHierarchyBinding"], usesInheritance: true, ngImport: i0 });
7373
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttHierarchyBindingDirective, decorators: [{
7798
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttHierarchyBindingDirective, decorators: [{
7374
7799
  type: Directive,
7375
7800
  args: [{
7376
7801
  selector: '[kendoGanttHierarchyBinding]',
@@ -7395,10 +7820,10 @@ class GanttExpandableDirective extends ExpandableDirective {
7395
7820
  set expandBy(value) {
7396
7821
  super.expandBy = value;
7397
7822
  }
7823
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttExpandableDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7824
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GanttExpandableDirective, isStandalone: true, selector: "[kendoGanttExpandable]", inputs: { expandBy: "expandBy" }, exportAs: ["kendoGanttExpandable"], usesInheritance: true, ngImport: i0 });
7398
7825
  }
7399
- GanttExpandableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttExpandableDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7400
- GanttExpandableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttExpandableDirective, isStandalone: true, selector: "[kendoGanttExpandable]", inputs: { expandBy: "expandBy" }, exportAs: ["kendoGanttExpandable"], usesInheritance: true, ngImport: i0 });
7401
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttExpandableDirective, decorators: [{
7826
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttExpandableDirective, decorators: [{
7402
7827
  type: Directive,
7403
7828
  args: [{
7404
7829
  exportAs: 'kendoGanttExpandable',
@@ -7413,17 +7838,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
7413
7838
  * @hidden
7414
7839
  */
7415
7840
  class DragValidationTooltipComponent {
7416
- constructor() {
7417
- /**
7418
- * Sets the status class of the attempted operation.
7419
- * Note that the status will be ignored and the `neutral` status class will be rendered,
7420
- * if the any of the fromTaskName or toTaskName are not populated.
7421
- */
7422
- this.isValid = false;
7423
- }
7424
- }
7425
- DragValidationTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DragValidationTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7426
- DragValidationTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DragValidationTooltipComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
7841
+ /**
7842
+ * Sets the status class of the attempted operation.
7843
+ * Note that the status will be ignored and the `neutral` status class will be rendered,
7844
+ * if the any of the fromTaskName or toTaskName are not populated.
7845
+ */
7846
+ isValid = false;
7847
+ /**
7848
+ * The name of the task where the dragging has started.
7849
+ */
7850
+ fromTaskName;
7851
+ /**
7852
+ * The name of the task which is being currently hovered.
7853
+ */
7854
+ toTaskName;
7855
+ /**
7856
+ * Specifies whether the valid/invalid validity classes should be rendered or not.
7857
+ * Prevents the validity classes being rendered when e.g. the same task is hovered during drag,
7858
+ * or when a task body is hovered and not an actual drag clue.
7859
+ */
7860
+ showValidityStatus;
7861
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DragValidationTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7862
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DragValidationTooltipComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
7427
7863
  <div
7428
7864
  class="k-tooltip k-gantt-tooltip-validation"
7429
7865
  [class.k-gantt-tooltip-valid]="showValidityStatus && isValid"
@@ -7439,7 +7875,8 @@ DragValidationTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
7439
7875
  </div>
7440
7876
  </div>
7441
7877
  `, isInline: true });
7442
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DragValidationTooltipComponent, decorators: [{
7878
+ }
7879
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DragValidationTooltipComponent, decorators: [{
7443
7880
  type: Component,
7444
7881
  args: [{
7445
7882
  template: `
@@ -7486,21 +7923,18 @@ const DEFAULT_POPUP_VERTICAL_MARGIN = 20;
7486
7923
  * A directive which enables the creation of new dependencies via dragging.
7487
7924
  */
7488
7925
  class DependencyDragCreateDirective {
7489
- constructor(gantt, zone, renderer, mapper, popupService, timelineScrollService) {
7490
- this.gantt = gantt;
7491
- this.zone = zone;
7492
- this.renderer = renderer;
7493
- this.mapper = mapper;
7494
- this.popupService = popupService;
7495
- this.timelineScrollService = timelineScrollService;
7496
- /**
7497
- * Specifies whether the validation tooltip will be displayed during drag operations.
7498
- *
7499
- * @default true
7500
- */
7501
- this.displayValidationTooltip = true;
7502
- this.gantt.renderDependencyDragClues = true;
7503
- }
7926
+ gantt;
7927
+ zone;
7928
+ renderer;
7929
+ mapper;
7930
+ popupService;
7931
+ timelineScrollService;
7932
+ /**
7933
+ * Specifies whether the validation tooltip will be displayed during drag operations.
7934
+ *
7935
+ * @default true
7936
+ */
7937
+ displayValidationTooltip = true;
7504
7938
  get container() {
7505
7939
  if (!isPresent(this.gantt.timeline) || !isPresent(this.gantt.timeline.timelineContent)) {
7506
7940
  return null;
@@ -7519,6 +7953,32 @@ class DependencyDragCreateDirective {
7519
7953
  }
7520
7954
  return this.gantt.timeline.dragPopupContainer;
7521
7955
  }
7956
+ /**
7957
+ * Points to the drag clue where the dragging started (the FROM task).
7958
+ * Used to attach/detach classes to the target element and its task wrapper parent element.
7959
+ */
7960
+ fromTaskClue;
7961
+ /**
7962
+ * The drag start element coords will be the same through the enitre dragging session, so compute them on press and cache them.
7963
+ */
7964
+ polylineStartCoords;
7965
+ /**
7966
+ * Stored during dragging to be consumed by the container scroll subscription.
7967
+ * The scroll event doesn't expose the current pointer position, so it has to be stored separately.
7968
+ */
7969
+ currentPointerClientCoords;
7970
+ scrollListenerDisposer;
7971
+ dragPopup;
7972
+ dragSubscriptions;
7973
+ constructor(gantt, zone, renderer, mapper, popupService, timelineScrollService) {
7974
+ this.gantt = gantt;
7975
+ this.zone = zone;
7976
+ this.renderer = renderer;
7977
+ this.mapper = mapper;
7978
+ this.popupService = popupService;
7979
+ this.timelineScrollService = timelineScrollService;
7980
+ this.gantt.renderDependencyDragClues = true;
7981
+ }
7522
7982
  ngAfterViewInit() {
7523
7983
  this.subscribeDraggable();
7524
7984
  this.addScrollListener();
@@ -7754,10 +8214,10 @@ class DependencyDragCreateDirective {
7754
8214
  top: fitToRange(top, minLeftTop, this.container.scrollHeight - popupHeight)
7755
8215
  };
7756
8216
  }
8217
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DependencyDragCreateDirective, deps: [{ token: GanttComponent }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: MappingService }, { token: i3.PopupService }, { token: TimelineScrollService }], target: i0.ɵɵFactoryTarget.Directive });
8218
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DependencyDragCreateDirective, isStandalone: true, selector: "[kendoGanttDependencyDragCreate]", inputs: { displayValidationTooltip: "displayValidationTooltip" }, ngImport: i0 });
7757
8219
  }
7758
- DependencyDragCreateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DependencyDragCreateDirective, deps: [{ token: GanttComponent }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: MappingService }, { token: i3.PopupService }, { token: TimelineScrollService }], target: i0.ɵɵFactoryTarget.Directive });
7759
- DependencyDragCreateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DependencyDragCreateDirective, isStandalone: true, selector: "[kendoGanttDependencyDragCreate]", inputs: { displayValidationTooltip: "displayValidationTooltip" }, ngImport: i0 });
7760
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DependencyDragCreateDirective, decorators: [{
8220
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DependencyDragCreateDirective, decorators: [{
7761
8221
  type: Directive,
7762
8222
  args: [{
7763
8223
  selector: '[kendoGanttDependencyDragCreate]',
@@ -7771,22 +8231,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
7771
8231
  * The Gantt timeline day view component.
7772
8232
  */
7773
8233
  class TimelineDayViewComponent extends ViewBase {
8234
+ /**
8235
+ * The type for this view (`day`).
8236
+ */
8237
+ type = 'day';
7774
8238
  constructor(optionChangesService, dependencyDomService) {
7775
8239
  super(optionChangesService, dependencyDomService);
7776
- /**
7777
- * The type for this view (`day`).
7778
- */
7779
- this.type = 'day';
7780
8240
  }
8241
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineDayViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
8242
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimelineDayViewComponent, isStandalone: true, selector: "kendo-gantt-timeline-day-view", providers: [
8243
+ {
8244
+ provide: ViewBase,
8245
+ useExisting: forwardRef(() => TimelineDayViewComponent)
8246
+ }
8247
+ ], usesInheritance: true, ngImport: i0, template: '', isInline: true });
7781
8248
  }
7782
- TimelineDayViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineDayViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
7783
- TimelineDayViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TimelineDayViewComponent, isStandalone: true, selector: "kendo-gantt-timeline-day-view", providers: [
7784
- {
7785
- provide: ViewBase,
7786
- useExisting: forwardRef(() => TimelineDayViewComponent)
7787
- }
7788
- ], usesInheritance: true, ngImport: i0, template: '', isInline: true });
7789
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineDayViewComponent, decorators: [{
8249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineDayViewComponent, decorators: [{
7790
8250
  type: Component,
7791
8251
  args: [{
7792
8252
  selector: 'kendo-gantt-timeline-day-view',
@@ -7805,22 +8265,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
7805
8265
  * The Gantt timeline week view component.
7806
8266
  */
7807
8267
  class TimelineWeekViewComponent extends ViewBase {
8268
+ /**
8269
+ * The type for this view (`week`).
8270
+ */
8271
+ type = 'week';
7808
8272
  constructor(optionChangesService, dependencyDomService) {
7809
8273
  super(optionChangesService, dependencyDomService);
7810
- /**
7811
- * The type for this view (`week`).
7812
- */
7813
- this.type = 'week';
7814
8274
  }
8275
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineWeekViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
8276
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimelineWeekViewComponent, isStandalone: true, selector: "kendo-gantt-timeline-week-view", providers: [
8277
+ {
8278
+ provide: ViewBase,
8279
+ useExisting: forwardRef(() => TimelineWeekViewComponent)
8280
+ }
8281
+ ], usesInheritance: true, ngImport: i0, template: '', isInline: true });
7815
8282
  }
7816
- TimelineWeekViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineWeekViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
7817
- TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TimelineWeekViewComponent, isStandalone: true, selector: "kendo-gantt-timeline-week-view", providers: [
7818
- {
7819
- provide: ViewBase,
7820
- useExisting: forwardRef(() => TimelineWeekViewComponent)
7821
- }
7822
- ], usesInheritance: true, ngImport: i0, template: '', isInline: true });
7823
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineWeekViewComponent, decorators: [{
8283
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineWeekViewComponent, decorators: [{
7824
8284
  type: Component,
7825
8285
  args: [{
7826
8286
  selector: 'kendo-gantt-timeline-week-view',
@@ -7839,22 +8299,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
7839
8299
  * The Gantt timeline month view component.
7840
8300
  */
7841
8301
  class TimelineMonthViewComponent extends ViewBase {
8302
+ /**
8303
+ * The type for this view (`month`).
8304
+ */
8305
+ type = 'month';
7842
8306
  constructor(optionChangesService, dependencyDomService) {
7843
8307
  super(optionChangesService, dependencyDomService);
7844
- /**
7845
- * The type for this view (`month`).
7846
- */
7847
- this.type = 'month';
7848
8308
  }
8309
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineMonthViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
8310
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimelineMonthViewComponent, isStandalone: true, selector: "kendo-gantt-timeline-month-view", providers: [
8311
+ {
8312
+ provide: ViewBase,
8313
+ useExisting: forwardRef(() => TimelineMonthViewComponent)
8314
+ }
8315
+ ], usesInheritance: true, ngImport: i0, template: '', isInline: true });
7849
8316
  }
7850
- TimelineMonthViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineMonthViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
7851
- TimelineMonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TimelineMonthViewComponent, isStandalone: true, selector: "kendo-gantt-timeline-month-view", providers: [
7852
- {
7853
- provide: ViewBase,
7854
- useExisting: forwardRef(() => TimelineMonthViewComponent)
7855
- }
7856
- ], usesInheritance: true, ngImport: i0, template: '', isInline: true });
7857
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineMonthViewComponent, decorators: [{
8317
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineMonthViewComponent, decorators: [{
7858
8318
  type: Component,
7859
8319
  args: [{
7860
8320
  selector: 'kendo-gantt-timeline-month-view',
@@ -7873,22 +8333,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
7873
8333
  * The Gantt timeline year view component.
7874
8334
  */
7875
8335
  class TimelineYearViewComponent extends ViewBase {
8336
+ /**
8337
+ * The type for this view (`year`).
8338
+ */
8339
+ type = 'year';
7876
8340
  constructor(optionChangesService, dependencyDomService) {
7877
8341
  super(optionChangesService, dependencyDomService);
7878
- /**
7879
- * The type for this view (`year`).
7880
- */
7881
- this.type = 'year';
7882
8342
  }
8343
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineYearViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
8344
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimelineYearViewComponent, isStandalone: true, selector: "kendo-gantt-timeline-year-view", providers: [
8345
+ {
8346
+ provide: ViewBase,
8347
+ useExisting: forwardRef(() => TimelineYearViewComponent)
8348
+ }
8349
+ ], usesInheritance: true, ngImport: i0, template: '', isInline: true });
7883
8350
  }
7884
- TimelineYearViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineYearViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
7885
- TimelineYearViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TimelineYearViewComponent, isStandalone: true, selector: "kendo-gantt-timeline-year-view", providers: [
7886
- {
7887
- provide: ViewBase,
7888
- useExisting: forwardRef(() => TimelineYearViewComponent)
7889
- }
7890
- ], usesInheritance: true, ngImport: i0, template: '', isInline: true });
7891
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineYearViewComponent, decorators: [{
8351
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineYearViewComponent, decorators: [{
7892
8352
  type: Component,
7893
8353
  args: [{
7894
8354
  selector: 'kendo-gantt-timeline-year-view',
@@ -7908,17 +8368,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
7908
8368
  * ([see example]({% slug selection_gantt %}#toc-built-in-directive))
7909
8369
  */
7910
8370
  class SelectableDirective {
7911
- constructor(gantt) {
7912
- this.gantt = gantt;
7913
- /**
7914
- * Fires when the selected keys are changed.
7915
- */
7916
- this.selectedKeysChange = new EventEmitter();
7917
- this.state = new Set();
7918
- this.isSelected = this.isSelected.bind(this);
7919
- this.selectionChange = this.selectionChange.bind(this);
7920
- this.selectable = true;
7921
- }
8371
+ gantt;
7922
8372
  /**
7923
8373
  * @hidden
7924
8374
  */
@@ -7946,6 +8396,10 @@ class SelectableDirective {
7946
8396
  this.state = new Set(keys);
7947
8397
  this.gantt.updateView();
7948
8398
  }
8399
+ /**
8400
+ * Fires when the selected keys are changed.
8401
+ */
8402
+ selectedKeysChange = new EventEmitter();
7949
8403
  /**
7950
8404
  * The field name or a function that specifies the data item unique key identifier.
7951
8405
  * By default, the string field `id` is used.
@@ -7961,6 +8415,16 @@ class SelectableDirective {
7961
8415
  get keyGetter() {
7962
8416
  return this._keyGetter || this.gantt.idGetter;
7963
8417
  }
8418
+ selectionSubscription;
8419
+ state = new Set();
8420
+ lastChange;
8421
+ _keyGetter;
8422
+ constructor(gantt) {
8423
+ this.gantt = gantt;
8424
+ this.isSelected = this.isSelected.bind(this);
8425
+ this.selectionChange = this.selectionChange.bind(this);
8426
+ this.selectable = true;
8427
+ }
7964
8428
  ngOnDestroy() {
7965
8429
  this.unsubscribeSelection();
7966
8430
  }
@@ -7988,10 +8452,10 @@ class SelectableDirective {
7988
8452
  this.selectionSubscription = null;
7989
8453
  }
7990
8454
  }
8455
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectableDirective, deps: [{ token: GanttComponent }], target: i0.ɵɵFactoryTarget.Directive });
8456
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SelectableDirective, isStandalone: true, selector: "[kendoGanttSelectable]", inputs: { selectable: "selectable", selectedKeys: "selectedKeys", itemKey: "itemKey" }, outputs: { selectedKeysChange: "selectedKeysChange" }, exportAs: ["kendoGanttSelectable"], ngImport: i0 });
7991
8457
  }
7992
- SelectableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SelectableDirective, deps: [{ token: GanttComponent }], target: i0.ɵɵFactoryTarget.Directive });
7993
- SelectableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SelectableDirective, isStandalone: true, selector: "[kendoGanttSelectable]", inputs: { selectable: "selectable", selectedKeys: "selectedKeys", itemKey: "itemKey" }, outputs: { selectedKeysChange: "selectedKeysChange" }, exportAs: ["kendoGanttSelectable"], ngImport: i0 });
7994
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SelectableDirective, decorators: [{
8458
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectableDirective, decorators: [{
7995
8459
  type: Directive,
7996
8460
  args: [{
7997
8461
  exportAs: 'kendoGanttSelectable',
@@ -8013,6 +8477,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
8013
8477
  * ([see example](slug:globalization_treelist#toc-custom-messages)).
8014
8478
  */
8015
8479
  class CustomMessagesComponent extends Messages {
8480
+ service;
8016
8481
  constructor(service) {
8017
8482
  super();
8018
8483
  this.service = service;
@@ -8020,15 +8485,15 @@ class CustomMessagesComponent extends Messages {
8020
8485
  get override() {
8021
8486
  return true;
8022
8487
  }
8488
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomMessagesComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
8489
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CustomMessagesComponent, isStandalone: true, selector: "kendo-gantt-messages", providers: [
8490
+ {
8491
+ provide: Messages,
8492
+ useExisting: forwardRef(() => CustomMessagesComponent)
8493
+ }
8494
+ ], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
8023
8495
  }
8024
- CustomMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomMessagesComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
8025
- CustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CustomMessagesComponent, isStandalone: true, selector: "kendo-gantt-messages", providers: [
8026
- {
8027
- provide: Messages,
8028
- useExisting: forwardRef(() => CustomMessagesComponent)
8029
- }
8030
- ], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
8031
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomMessagesComponent, decorators: [{
8496
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomMessagesComponent, decorators: [{
8032
8497
  type: Component,
8033
8498
  args: [{
8034
8499
  providers: [
@@ -8109,38 +8574,38 @@ const KENDO_GANTT = [
8109
8574
  * ```
8110
8575
  */
8111
8576
  class GanttModule {
8577
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8578
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: GanttModule, imports: [GanttComponent, GanttFlatBindingDirective, GanttHierarchyBindingDirective, GanttTaskContentTemplateDirective, GanttTaskTemplateDirective, GanttSummaryTaskTemplateDirective, ToolbarTemplateDirective, ViewSelectorComponent, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, FilterCellTemplateDirective, FilterMenuTemplateDirective, CellTemplateDirective, EditTemplateDirective, ColumnMenuTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, GanttExpandableDirective, DependencyDragCreateDirective, TimelineDayViewComponent, TimelineWeekViewComponent, TimelineMonthViewComponent, TimelineYearViewComponent, SelectableDirective, CustomMessagesComponent, GanttAddTaskComponent], exports: [GanttComponent, GanttFlatBindingDirective, GanttHierarchyBindingDirective, GanttTaskContentTemplateDirective, GanttTaskTemplateDirective, GanttSummaryTaskTemplateDirective, ToolbarTemplateDirective, ViewSelectorComponent, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, FilterCellTemplateDirective, FilterMenuTemplateDirective, CellTemplateDirective, EditTemplateDirective, ColumnMenuTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, GanttExpandableDirective, DependencyDragCreateDirective, TimelineDayViewComponent, TimelineWeekViewComponent, TimelineMonthViewComponent, TimelineYearViewComponent, SelectableDirective, CustomMessagesComponent, GanttAddTaskComponent] });
8579
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttModule, providers: [{
8580
+ provide: L10N_PREFIX,
8581
+ useValue: 'kendo.gantt'
8582
+ },
8583
+ // InputsModule providers
8584
+ IconsService,
8585
+ PopupService,
8586
+ ResizeBatchService,
8587
+ DialogContainerService,
8588
+ DialogService,
8589
+ WindowService,
8590
+ WindowContainerService,
8591
+ // DateInputsModule providers
8592
+ CalendarDOMService,
8593
+ CenturyViewService,
8594
+ DecadeViewService,
8595
+ MonthViewService,
8596
+ YearViewService,
8597
+ NavigationService$1,
8598
+ TimePickerDOMService,
8599
+ HoursService,
8600
+ MinutesService,
8601
+ SecondsService,
8602
+ MillisecondsService,
8603
+ DayPeriodService,
8604
+ // TreeListModule providers
8605
+ ColumnResizingService
8606
+ ], imports: [GanttComponent, ViewSelectorComponent, GanttAddTaskComponent] });
8112
8607
  }
8113
- GanttModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8114
- GanttModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: GanttModule, imports: [GanttComponent, GanttFlatBindingDirective, GanttHierarchyBindingDirective, GanttTaskContentTemplateDirective, GanttTaskTemplateDirective, GanttSummaryTaskTemplateDirective, ToolbarTemplateDirective, ViewSelectorComponent, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, FilterCellTemplateDirective, FilterMenuTemplateDirective, CellTemplateDirective, EditTemplateDirective, ColumnMenuTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, GanttExpandableDirective, DependencyDragCreateDirective, TimelineDayViewComponent, TimelineWeekViewComponent, TimelineMonthViewComponent, TimelineYearViewComponent, SelectableDirective, CustomMessagesComponent, GanttAddTaskComponent], exports: [GanttComponent, GanttFlatBindingDirective, GanttHierarchyBindingDirective, GanttTaskContentTemplateDirective, GanttTaskTemplateDirective, GanttSummaryTaskTemplateDirective, ToolbarTemplateDirective, ViewSelectorComponent, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, FilterCellTemplateDirective, FilterMenuTemplateDirective, CellTemplateDirective, EditTemplateDirective, ColumnMenuTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, GanttExpandableDirective, DependencyDragCreateDirective, TimelineDayViewComponent, TimelineWeekViewComponent, TimelineMonthViewComponent, TimelineYearViewComponent, SelectableDirective, CustomMessagesComponent, GanttAddTaskComponent] });
8115
- GanttModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttModule, providers: [{
8116
- provide: L10N_PREFIX,
8117
- useValue: 'kendo.gantt'
8118
- },
8119
- // InputsModule providers
8120
- IconsService,
8121
- PopupService,
8122
- ResizeBatchService,
8123
- DialogContainerService,
8124
- DialogService,
8125
- WindowService,
8126
- WindowContainerService,
8127
- // DateInputsModule providers
8128
- CalendarDOMService,
8129
- CenturyViewService,
8130
- DecadeViewService,
8131
- MonthViewService,
8132
- YearViewService,
8133
- NavigationService$1,
8134
- TimePickerDOMService,
8135
- HoursService,
8136
- MinutesService,
8137
- SecondsService,
8138
- MillisecondsService,
8139
- DayPeriodService,
8140
- // TreeListModule providers
8141
- ColumnResizingService
8142
- ], imports: [GanttComponent, ViewSelectorComponent, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, TimelineDayViewComponent, TimelineWeekViewComponent, TimelineMonthViewComponent, TimelineYearViewComponent, CustomMessagesComponent, GanttAddTaskComponent] });
8143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttModule, decorators: [{
8608
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GanttModule, decorators: [{
8144
8609
  type: NgModule,
8145
8610
  args: [{
8146
8611
  imports: [...KENDO_GANTT],