@progress/kendo-angular-gantt 16.0.0-develop.1 → 16.0.0-develop.4

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 (113) 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/cell-template.directive.d.ts +1 -1
  4. package/columns/column-base.component.d.ts +1 -1
  5. package/columns/column-group.component.d.ts +1 -1
  6. package/columns/column-menu-template.directive.d.ts +1 -1
  7. package/columns/column.component.d.ts +1 -1
  8. package/columns/edit-template.directive.d.ts +1 -1
  9. package/columns/filter-cell-template.directive.d.ts +1 -1
  10. package/columns/filter-menu-template.directive.d.ts +1 -1
  11. package/columns/footer-template.directive.d.ts +1 -1
  12. package/columns/header-template.directive.d.ts +1 -1
  13. package/columns/span-column.component.d.ts +1 -1
  14. package/dependencies/gantt-dependency.directive.d.ts +1 -1
  15. package/dragging/dependency-drag-create.directive.d.ts +1 -1
  16. package/dragging/drag-validation-tooltip.component.d.ts +1 -1
  17. package/editing/add-task.component.d.ts +1 -1
  18. package/editing/dependencies-table.component.d.ts +1 -1
  19. package/editing/edit-dialog.component.d.ts +1 -1
  20. package/editing/task-fields.component.d.ts +1 -1
  21. package/esm2020/binding-directives/flat-binding.directive.mjs +3 -3
  22. package/esm2020/binding-directives/hierarchy-binding.directive.mjs +3 -3
  23. package/esm2020/columns/cell-template.directive.mjs +3 -3
  24. package/esm2020/columns/column-base.component.mjs +3 -3
  25. package/esm2020/columns/column-group.component.mjs +3 -3
  26. package/esm2020/columns/column-menu-template.directive.mjs +3 -3
  27. package/esm2020/columns/column.component.mjs +3 -3
  28. package/esm2020/columns/edit-template.directive.mjs +3 -3
  29. package/esm2020/columns/filter-cell-template.directive.mjs +3 -3
  30. package/esm2020/columns/filter-menu-template.directive.mjs +3 -3
  31. package/esm2020/columns/footer-template.directive.mjs +3 -3
  32. package/esm2020/columns/header-template.directive.mjs +3 -3
  33. package/esm2020/columns/span-column.component.mjs +3 -3
  34. package/esm2020/common/mapping.service.mjs +3 -3
  35. package/esm2020/common/option-changes.service.mjs +3 -3
  36. package/esm2020/dependencies/dependency-dom.service.mjs +3 -3
  37. package/esm2020/dependencies/gantt-dependency.directive.mjs +3 -3
  38. package/esm2020/dragging/dependency-drag-create.directive.mjs +3 -3
  39. package/esm2020/dragging/drag-validation-tooltip.component.mjs +3 -3
  40. package/esm2020/editing/add-task.component.mjs +6 -6
  41. package/esm2020/editing/dependencies-table.component.mjs +7 -7
  42. package/esm2020/editing/edit-dialog.component.mjs +11 -11
  43. package/esm2020/editing/edit.service.mjs +3 -3
  44. package/esm2020/editing/task-fields.component.mjs +10 -10
  45. package/esm2020/expanded-state/expandable.directive.mjs +3 -3
  46. package/esm2020/gantt.component.mjs +13 -13
  47. package/esm2020/gantt.module.mjs +5 -5
  48. package/esm2020/localization/custom-messages.component.mjs +3 -3
  49. package/esm2020/localization/gantt-localization.service.mjs +3 -3
  50. package/esm2020/localization/localized-messages.directive.mjs +3 -3
  51. package/esm2020/localization/messages.mjs +3 -3
  52. package/esm2020/navigation/navigation.service.mjs +3 -3
  53. package/esm2020/package-metadata.mjs +2 -2
  54. package/esm2020/rendering/gantt-header-table-body.component.mjs +4 -4
  55. package/esm2020/rendering/gantt-milestone-task.component.mjs +4 -4
  56. package/esm2020/rendering/gantt-summary-task.component.mjs +4 -4
  57. package/esm2020/rendering/gantt-task-base.mjs +3 -3
  58. package/esm2020/rendering/gantt-task.component.mjs +7 -7
  59. package/esm2020/rendering/gantt-tasks-table-body.component.mjs +8 -8
  60. package/esm2020/scrolling/scroll-sync.service.mjs +3 -3
  61. package/esm2020/scrolling/timeline-scroll.directive.mjs +3 -3
  62. package/esm2020/scrolling/timeline-scroll.service.mjs +3 -3
  63. package/esm2020/selection/selectable.directive.mjs +3 -3
  64. package/esm2020/template-directives/summary-task-template.directive.mjs +3 -3
  65. package/esm2020/template-directives/task-content-template.directive.mjs +3 -3
  66. package/esm2020/template-directives/task-template.directive.mjs +3 -3
  67. package/esm2020/timeline/current-time-marker.service.mjs +3 -4
  68. package/esm2020/timeline/gantt-timeline.component.mjs +10 -10
  69. package/esm2020/timeline/timeline-day-view.component.mjs +3 -3
  70. package/esm2020/timeline/timeline-day-view.service.mjs +3 -3
  71. package/esm2020/timeline/timeline-month-view.component.mjs +3 -3
  72. package/esm2020/timeline/timeline-month-view.service.mjs +3 -3
  73. package/esm2020/timeline/timeline-view.service.mjs +3 -3
  74. package/esm2020/timeline/timeline-week-view.component.mjs +3 -3
  75. package/esm2020/timeline/timeline-week-view.service.mjs +3 -3
  76. package/esm2020/timeline/timeline-year-view.component.mjs +3 -3
  77. package/esm2020/timeline/timeline-year-view.service.mjs +3 -3
  78. package/esm2020/timeline/view-base.mjs +3 -3
  79. package/esm2020/toolbar/toolbar-navigation.service.mjs +3 -3
  80. package/esm2020/toolbar/toolbar-template.directive.mjs +3 -3
  81. package/esm2020/toolbar/toolbar.component.mjs +6 -7
  82. package/esm2020/toolbar/view-selector.component.mjs +7 -7
  83. package/expanded-state/expandable.directive.d.ts +1 -1
  84. package/fesm2015/progress-kendo-angular-gantt.mjs +934 -936
  85. package/fesm2020/progress-kendo-angular-gantt.mjs +960 -962
  86. package/gantt.component.d.ts +1 -1
  87. package/localization/custom-messages.component.d.ts +1 -1
  88. package/localization/localized-messages.directive.d.ts +1 -1
  89. package/localization/messages.d.ts +1 -1
  90. package/models/splitter-pane-options.interface.d.ts +6 -6
  91. package/package.json +20 -20
  92. package/rendering/gantt-header-table-body.component.d.ts +1 -1
  93. package/rendering/gantt-milestone-task.component.d.ts +1 -1
  94. package/rendering/gantt-summary-task.component.d.ts +1 -1
  95. package/rendering/gantt-task-base.d.ts +1 -1
  96. package/rendering/gantt-task.component.d.ts +1 -1
  97. package/rendering/gantt-tasks-table-body.component.d.ts +1 -1
  98. package/schematics/ngAdd/index.js +11 -11
  99. package/scrolling/timeline-scroll.directive.d.ts +1 -1
  100. package/selection/selectable.directive.d.ts +1 -1
  101. package/template-directives/summary-task-template.directive.d.ts +1 -1
  102. package/template-directives/task-content-template.directive.d.ts +1 -1
  103. package/template-directives/task-template.directive.d.ts +1 -1
  104. package/timeline/gantt-timeline.component.d.ts +1 -1
  105. package/timeline/timeline-day-view.component.d.ts +1 -1
  106. package/timeline/timeline-month-view.component.d.ts +1 -1
  107. package/timeline/timeline-week-view.component.d.ts +1 -1
  108. package/timeline/timeline-year-view.component.d.ts +1 -1
  109. package/timeline/view-base.d.ts +1 -1
  110. package/toolbar/toolbar-template.directive.d.ts +1 -1
  111. package/toolbar/toolbar.component.d.ts +1 -1
  112. package/toolbar/view-selector.component.d.ts +1 -1
  113. package/progress-kendo-angular-gantt.d.ts +0 -9
@@ -3,13 +3,13 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
- import { Injectable, Component, HostBinding, Input, InjectionToken, EventEmitter, Inject, LOCALE_ID, Directive, ViewChild, forwardRef, ViewContainerRef, Output, Optional, QueryList, SkipSelf, Host, ContentChildren, ContentChild, HostListener, isDevMode, NgModule } from '@angular/core';
7
- import * as i12 from '@progress/kendo-angular-treelist';
6
+ import { Injectable, InjectionToken, EventEmitter, Inject, LOCALE_ID, Directive, HostBinding, ViewChild, Input, forwardRef, Component, ViewContainerRef, Output, Optional, QueryList, SkipSelf, Host, ContentChildren, ContentChild, HostListener, isDevMode, NgModule } from '@angular/core';
7
+ import * as i14 from '@progress/kendo-angular-treelist';
8
8
  import { ColumnBase, ColumnComponent, ColumnGroupComponent, SpanColumnComponent, DataBoundTreeComponent, ExpandableTreeComponent, TreeListComponent, FlatBindingDirective, HierarchyBindingDirective, ExpandableDirective, TreeListModule } from '@progress/kendo-angular-treelist';
9
9
  import { cloneDate, addWeeks, firstDayInWeek, addDays, lastDayOfMonth, getDate, firstDayOfMonth, addMonths, lastMonthOfYear, MS_PER_HOUR, MS_PER_DAY, isEqual } from '@progress/kendo-date-math';
10
10
  import { Subject, Subscription, fromEvent, forkJoin, EMPTY, isObservable, of } from 'rxjs';
11
11
  import { validatePackage } from '@progress/kendo-licensing';
12
- import * as i17 from '@progress/kendo-angular-common';
12
+ import * as i11 from '@progress/kendo-angular-common';
13
13
  import { Keys, isDocumentAvailable, closestInScope, matchesClasses, PreventableEvent, anyChanged, closest, isFocusable, focusableSelector, isVisible, shouldShowValidationUI, hasObservers, EventsModule, DraggableModule, WatermarkModule } from '@progress/kendo-angular-common';
14
14
  import { map, distinctUntilChanged, take, expand, reduce, switchMap, filter } from 'rxjs/operators';
15
15
  import { getter, touchEnabled } from '@progress/kendo-common';
@@ -20,28 +20,28 @@ import { IntlService, IntlModule } from '@progress/kendo-angular-intl';
20
20
  import { __decorate, __param, __metadata } from 'tslib';
21
21
  import { orderBy } from '@progress/kendo-data-query';
22
22
  import { xIcon, plusIcon, minusIcon, saveIcon, cancelOutlineIcon, trashIcon } from '@progress/kendo-svg-icons';
23
- import * as i7 from '@progress/kendo-angular-icons';
23
+ import * as i9 from '@progress/kendo-angular-icons';
24
24
  import { IconsModule } from '@progress/kendo-angular-icons';
25
25
  import * as i1$1 from '@progress/kendo-angular-l10n';
26
26
  import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
27
- import * as i2 from '@progress/kendo-angular-buttons';
27
+ import * as i4 from '@progress/kendo-angular-buttons';
28
28
  import { ButtonsModule } from '@progress/kendo-angular-buttons';
29
- import * as i8 from '@angular/forms';
30
- import { FormArray, FormGroup, FormControl, Validators, ReactiveFormsModule } from '@angular/forms';
31
- import * as i5$1 from '@progress/kendo-angular-layout';
29
+ import * as i8$1 from '@progress/kendo-angular-layout';
32
30
  import { SplitterModule, TabStripModule } from '@progress/kendo-angular-layout';
33
- import * as i4$2 from '@progress/kendo-angular-dialog';
31
+ import * as i7$2 from '@progress/kendo-angular-dialog';
34
32
  import { DialogModule } from '@progress/kendo-angular-dialog';
35
- import * as i4 from '@progress/kendo-angular-inputs';
36
- import { InputsModule } from '@progress/kendo-angular-inputs';
37
- import * as i5 from '@progress/kendo-angular-label';
38
- import { LabelModule } from '@progress/kendo-angular-label';
39
- import * as i6$1 from '@progress/kendo-angular-dateinputs';
40
- import { DateInputsModule } from '@progress/kendo-angular-dateinputs';
41
- import * as i4$1 from '@progress/kendo-angular-grid';
33
+ import * as i5 from '@angular/forms';
34
+ import { FormArray, FormGroup, FormControl, Validators, ReactiveFormsModule } from '@angular/forms';
35
+ import * as i6$1 from '@progress/kendo-angular-grid';
42
36
  import { GridModule } from '@progress/kendo-angular-grid';
43
- import * as i6$2 from '@progress/kendo-angular-dropdowns';
37
+ import * as i7 from '@progress/kendo-angular-dropdowns';
44
38
  import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
39
+ import * as i6$2 from '@progress/kendo-angular-label';
40
+ import { LabelModule } from '@progress/kendo-angular-label';
41
+ import * as i7$1 from '@progress/kendo-angular-inputs';
42
+ import { InputsModule } from '@progress/kendo-angular-inputs';
43
+ import * as i8 from '@progress/kendo-angular-dateinputs';
44
+ import { DateInputsModule } from '@progress/kendo-angular-dateinputs';
45
45
  import * as i3 from '@progress/kendo-angular-popup';
46
46
  import { PopupModule } from '@progress/kendo-angular-popup';
47
47
 
@@ -52,8 +52,8 @@ const packageMetadata = {
52
52
  name: '@progress/kendo-angular-gantt',
53
53
  productName: 'Kendo UI for Angular',
54
54
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
55
- publishDate: 1714061052,
56
- version: '16.0.0-develop.1',
55
+ publishDate: 1714109779,
56
+ version: '16.0.0-develop.4',
57
57
  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'
58
58
  };
59
59
 
@@ -189,9 +189,9 @@ class ScrollSyncService {
189
189
  });
190
190
  }
191
191
  }
192
- ScrollSyncService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ScrollSyncService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
193
- ScrollSyncService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ScrollSyncService });
194
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ScrollSyncService, decorators: [{
192
+ ScrollSyncService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ScrollSyncService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
193
+ ScrollSyncService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ScrollSyncService });
194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ScrollSyncService, decorators: [{
195
195
  type: Injectable
196
196
  }], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
197
197
 
@@ -588,9 +588,9 @@ class MappingService {
588
588
  return getter(this.dependencyFields[field])(dataItem);
589
589
  }
590
590
  }
591
- MappingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MappingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
592
- MappingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MappingService });
593
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MappingService, decorators: [{
591
+ MappingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MappingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
592
+ MappingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MappingService });
593
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MappingService, decorators: [{
594
594
  type: Injectable
595
595
  }] });
596
596
 
@@ -651,9 +651,9 @@ class DependencyDomService {
651
651
  this.notifier.next(this.dependencyDomArgs);
652
652
  }
653
653
  }
654
- DependencyDomService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DependencyDomService, deps: [{ token: MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
655
- DependencyDomService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DependencyDomService });
656
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DependencyDomService, decorators: [{
654
+ DependencyDomService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DependencyDomService, deps: [{ token: MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
655
+ DependencyDomService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DependencyDomService });
656
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DependencyDomService, decorators: [{
657
657
  type: Injectable
658
658
  }], ctorParameters: function () { return [{ type: MappingService }]; } });
659
659
 
@@ -700,7 +700,6 @@ class CurrentTimeMarkerService {
700
700
  return 0;
701
701
  }
702
702
  }
703
- ;
704
703
  get slotWidth() {
705
704
  return this.slots[0]?.slotWidth;
706
705
  }
@@ -727,54 +726,12 @@ class CurrentTimeMarkerService {
727
726
  }
728
727
  }
729
728
  }
730
- CurrentTimeMarkerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CurrentTimeMarkerService, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Injectable });
731
- CurrentTimeMarkerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CurrentTimeMarkerService });
732
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CurrentTimeMarkerService, decorators: [{
729
+ CurrentTimeMarkerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CurrentTimeMarkerService, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Injectable });
730
+ CurrentTimeMarkerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CurrentTimeMarkerService });
731
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CurrentTimeMarkerService, decorators: [{
733
732
  type: Injectable
734
733
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; } });
735
734
 
736
- /**
737
- * @hidden
738
- */
739
- class GanttHeaderTableBodyComponent {
740
- constructor() {
741
- this.tbodyClass = true;
742
- }
743
- }
744
- GanttHeaderTableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttHeaderTableBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
745
- GanttHeaderTableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GanttHeaderTableBodyComponent, selector: "[kendoGanttHeaderTableBody]", inputs: { groupSlots: "groupSlots", slots: "slots" }, host: { properties: { "class.k-table-tbody": "this.tbodyClass" } }, ngImport: i0, template: `
746
- <tr class="k-table-row">
747
- <td *ngFor="let item of groupSlots" [attr.colspan]="item.span" class="k-header k-table-td">{{ item.text }}</td>
748
- </tr>
749
-
750
- <tr class="k-table-row">
751
- <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>
752
- </tr>
753
- `, isInline: true, directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
754
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttHeaderTableBodyComponent, decorators: [{
755
- type: Component,
756
- args: [{
757
- // eslint-disable-next-line @angular-eslint/component-selector
758
- selector: '[kendoGanttHeaderTableBody]',
759
- template: `
760
- <tr class="k-table-row">
761
- <td *ngFor="let item of groupSlots" [attr.colspan]="item.span" class="k-header k-table-td">{{ item.text }}</td>
762
- </tr>
763
-
764
- <tr class="k-table-row">
765
- <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>
766
- </tr>
767
- `
768
- }]
769
- }], propDecorators: { tbodyClass: [{
770
- type: HostBinding,
771
- args: ['class.k-table-tbody']
772
- }], groupSlots: [{
773
- type: Input
774
- }], slots: [{
775
- type: Input
776
- }] } });
777
-
778
735
  /**
779
736
  * @hidden
780
737
  */
@@ -1026,12 +983,114 @@ class NavigationService {
1026
983
  this.metadata.treeList.focus();
1027
984
  }
1028
985
  }
1029
- NavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NavigationService, deps: [{ token: i0.NgZone }, { token: i0.Renderer2 }, { token: ScrollSyncService }], target: i0.ɵɵFactoryTarget.Injectable });
1030
- NavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NavigationService });
1031
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NavigationService, decorators: [{
986
+ NavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NavigationService, deps: [{ token: i0.NgZone }, { token: i0.Renderer2 }, { token: ScrollSyncService }], target: i0.ɵɵFactoryTarget.Injectable });
987
+ NavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NavigationService });
988
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NavigationService, decorators: [{
1032
989
  type: Injectable
1033
990
  }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.Renderer2 }, { type: ScrollSyncService }]; } });
1034
991
 
992
+ /**
993
+ * @hidden
994
+ */
995
+ class EditService {
996
+ constructor(mapper) {
997
+ this.mapper = mapper;
998
+ this.showEditingDialog = new Subject();
999
+ this.taskDelete = new Subject();
1000
+ this.editEvent = new Subject();
1001
+ this.addEvent = new Subject();
1002
+ this.predecessors = [];
1003
+ this.successors = [];
1004
+ this.updatedItems = [];
1005
+ this.deletedItems = [];
1006
+ this.itemIndex = (item, data) => {
1007
+ return data.findIndex(dataItem => this.mapper.extractFromTask(dataItem, 'id') === this.mapper.extractFromTask(item, 'id'));
1008
+ };
1009
+ }
1010
+ set dependencies(items) {
1011
+ // Can this whole thing be moved to edit-dialog? Dependencies might not be needed here
1012
+ const dataItemId = this.mapper.extractFromTask(this.dataItem, 'id');
1013
+ this.predecessors = items.filter(item => this.mapper.extractFromDependency(item, 'toId') === dataItemId);
1014
+ this.successors = items.filter(item => this.mapper.extractFromDependency(item, 'fromId') === dataItemId);
1015
+ }
1016
+ get dependencies() {
1017
+ return [...this.predecessors, ...this.successors];
1018
+ }
1019
+ createEditDialog(dataItem, taskFormGroup, dependencies) {
1020
+ this.dataItem = dataItem;
1021
+ this.taskFormGroup = taskFormGroup;
1022
+ this.dependencies = dependencies;
1023
+ this.showEditingDialog.next(true);
1024
+ }
1025
+ closeEditDialog() {
1026
+ this.showEditingDialog.next(false);
1027
+ this.dataItem = undefined;
1028
+ this.taskFormGroup = undefined;
1029
+ this.dependencies = [];
1030
+ this.updatedItems = [];
1031
+ this.deletedItems = [];
1032
+ }
1033
+ triggerEditEvent(editResultType) {
1034
+ this.editEvent.next({
1035
+ taskFormGroup: this.taskFormGroup,
1036
+ dataItem: this.dataItem,
1037
+ dependencies: {
1038
+ createdItems: this.getCreatedDependencies(),
1039
+ updatedItems: this.updatedItems,
1040
+ deletedItems: this.deletedItems
1041
+ },
1042
+ editResultType
1043
+ });
1044
+ }
1045
+ updateDependencies(item) {
1046
+ if (!this.isNew(item)) {
1047
+ // update
1048
+ const index = this.itemIndex(item, this.updatedItems);
1049
+ if (index !== -1) {
1050
+ this.updatedItems.splice(index, 1, item);
1051
+ }
1052
+ else {
1053
+ this.updatedItems.push(item);
1054
+ }
1055
+ }
1056
+ }
1057
+ getCreatedDependencies() {
1058
+ return this.dependencies.filter(item => this.mapper.extractFromDependency(item, 'id') === null);
1059
+ }
1060
+ deleteDependency(item) {
1061
+ const updatedIndex = this.itemIndex(item, this.updatedItems);
1062
+ if (updatedIndex !== -1) {
1063
+ this.updatedItems.splice(updatedIndex, 1);
1064
+ }
1065
+ if (!this.isNew(item)) {
1066
+ this.deletedItems.push(item);
1067
+ }
1068
+ }
1069
+ loadTasks(initialValues, isInitializer = true) {
1070
+ return forkJoin(initialValues.map(v => this.getElementById(v))).pipe(map((value) => value.reduce((acc, item) => acc = acc.concat(normalizeGanttData(item)), [])), expand(values => {
1071
+ if (values.some(el => this.hasChildren(el))) {
1072
+ return this.loadTasks(values, false);
1073
+ }
1074
+ return EMPTY;
1075
+ }), reduce((acc, values) => acc.concat(values), isInitializer ? [...initialValues] : []));
1076
+ }
1077
+ getElementById(item) {
1078
+ const children = this.fetchChildren(item);
1079
+ if (isObservable(children)) {
1080
+ return children;
1081
+ }
1082
+ return of(children);
1083
+ }
1084
+ isNew(item) {
1085
+ return !isPresent(this.mapper.extractFromDependency(item, 'id'));
1086
+ }
1087
+ }
1088
+ EditService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EditService, deps: [{ token: MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
1089
+ EditService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EditService });
1090
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EditService, decorators: [{
1091
+ type: Injectable
1092
+ }], ctorParameters: function () { return [{ type: MappingService }]; } });
1093
+
1035
1094
  /**
1036
1095
  * @hidden
1037
1096
  */
@@ -1056,9 +1115,9 @@ class OptionChangesService {
1056
1115
  this.dateFormatChanges.emit();
1057
1116
  }
1058
1117
  }
1059
- OptionChangesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: OptionChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1060
- OptionChangesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: OptionChangesService });
1061
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: OptionChangesService, decorators: [{
1118
+ OptionChangesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: OptionChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1119
+ OptionChangesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: OptionChangesService });
1120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: OptionChangesService, decorators: [{
1062
1121
  type: Injectable
1063
1122
  }] });
1064
1123
 
@@ -1312,9 +1371,9 @@ class TimelineDayViewService extends TimelineBaseViewService {
1312
1371
  return slots;
1313
1372
  }
1314
1373
  }
1315
- TimelineDayViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineDayViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1316
- TimelineDayViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineDayViewService });
1317
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineDayViewService, decorators: [{
1374
+ TimelineDayViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineDayViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1375
+ TimelineDayViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineDayViewService });
1376
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineDayViewService, decorators: [{
1318
1377
  type: Injectable
1319
1378
  }], ctorParameters: function () { return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
1320
1379
  type: Inject,
@@ -1371,9 +1430,9 @@ class TimelineMonthViewService extends TimelineBaseViewService {
1371
1430
  return slots;
1372
1431
  }
1373
1432
  }
1374
- TimelineMonthViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1375
- TimelineMonthViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewService });
1376
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewService, decorators: [{
1433
+ TimelineMonthViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineMonthViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1434
+ TimelineMonthViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineMonthViewService });
1435
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineMonthViewService, decorators: [{
1377
1436
  type: Injectable
1378
1437
  }], ctorParameters: function () { return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
1379
1438
  type: Inject,
@@ -1426,9 +1485,9 @@ class TimelineWeekViewService extends TimelineBaseViewService {
1426
1485
  return slots;
1427
1486
  }
1428
1487
  }
1429
- TimelineWeekViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1430
- TimelineWeekViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewService });
1431
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewService, decorators: [{
1488
+ TimelineWeekViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineWeekViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1489
+ TimelineWeekViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineWeekViewService });
1490
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineWeekViewService, decorators: [{
1432
1491
  type: Injectable
1433
1492
  }], ctorParameters: function () { return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
1434
1493
  type: Inject,
@@ -1476,9 +1535,9 @@ class TimeLineYearViewService extends TimelineBaseViewService {
1476
1535
  return slots;
1477
1536
  }
1478
1537
  }
1479
- TimeLineYearViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimeLineYearViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1480
- TimeLineYearViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimeLineYearViewService });
1481
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimeLineYearViewService, decorators: [{
1538
+ TimeLineYearViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimeLineYearViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1539
+ TimeLineYearViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimeLineYearViewService });
1540
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimeLineYearViewService, decorators: [{
1482
1541
  type: Injectable
1483
1542
  }], ctorParameters: function () { return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
1484
1543
  type: Inject,
@@ -1507,9 +1566,9 @@ class TimelineViewService {
1507
1566
  return serviceType ? this.injector.get(serviceType) : null;
1508
1567
  }
1509
1568
  }
1510
- TimelineViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineViewService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
1511
- TimelineViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineViewService });
1512
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineViewService, decorators: [{
1569
+ TimelineViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineViewService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
1570
+ TimelineViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineViewService });
1571
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineViewService, decorators: [{
1513
1572
  type: Injectable
1514
1573
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
1515
1574
 
@@ -1633,9 +1692,9 @@ class GanttTaskBase {
1633
1692
  }
1634
1693
  }
1635
1694
  }
1636
- GanttTaskBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTaskBase, deps: [{ token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Directive });
1637
- GanttTaskBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.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 });
1638
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTaskBase, decorators: [{
1695
+ GanttTaskBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttTaskBase, deps: [{ token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Directive });
1696
+ GanttTaskBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", 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 });
1697
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttTaskBase, decorators: [{
1639
1698
  type: Directive,
1640
1699
  args: [{
1641
1700
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -1674,30 +1733,82 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1674
1733
  /**
1675
1734
  * @hidden
1676
1735
  */
1677
- class GanttMilestoneTaskComponent extends GanttTaskBase {
1678
- constructor(touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
1736
+ class GanttTaskComponent extends GanttTaskBase {
1737
+ constructor(editService, touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
1679
1738
  super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
1739
+ this.editService = editService;
1680
1740
  this.touchEnabled = touchEnabled;
1681
- this.milestoneWrapperClass = true;
1741
+ this.xIcon = xIcon;
1742
+ }
1743
+ onTaskDelete() {
1744
+ this.editService.dataItem = this.dataItem;
1745
+ this.editService.taskDelete.next(this.dataItem);
1682
1746
  }
1683
1747
  }
1684
- GanttMilestoneTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttMilestoneTaskComponent, deps: [{ token: TOUCH_ENABLED }, { token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
1685
- GanttMilestoneTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GanttMilestoneTaskComponent, selector: "kendo-gantt-milestone-task", host: { properties: { "class.k-milestone-wrap": "this.milestoneWrapperClass" } }, providers: [
1748
+ GanttTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttTaskComponent, deps: [{ token: EditService }, { token: TOUCH_ENABLED }, { token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
1749
+ GanttTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: GanttTaskComponent, selector: "kendo-gantt-task", inputs: { taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate" }, providers: [
1686
1750
  {
1687
1751
  provide: GanttTaskBase,
1688
- useExisting: forwardRef(() => GanttMilestoneTaskComponent)
1752
+ useExisting: forwardRef(() => GanttTaskComponent)
1689
1753
  }
1690
1754
  ], usesInheritance: true, ngImport: i0, template: `
1691
1755
  <div
1692
1756
  #task
1757
+ class="k-task k-task-single"
1693
1758
  role="treeitem"
1694
- class="k-task k-task-milestone"
1695
1759
  [ngClass]="taskClass(dataItem)"
1760
+ [style.width.px]="taskWidth"
1696
1761
  [attr.title]="mapper.extractFromTask(dataItem, 'title')"
1697
1762
  [class.k-selected]="isSelected(dataItem)"
1698
1763
  [attr.aria-selected]="ariaSelected"
1699
1764
  [attr.aria-level]="level + 1"
1700
1765
  >
1766
+ <ng-container *ngIf="!taskTemplate">
1767
+ <div
1768
+ class="k-task-complete"
1769
+ [style.width.px]="completionOverlayWidth"
1770
+ aria-hidden="true"
1771
+ >
1772
+ </div>
1773
+ <div class="k-task-content">
1774
+ <div class="k-task-template">
1775
+ <ng-container *ngIf="!taskContentTemplate; else taskContent">
1776
+ {{ mapper.extractFromTask(dataItem, 'title') }}
1777
+ </ng-container>
1778
+ <ng-template
1779
+ #taskContent
1780
+ [ngTemplateOutlet]="taskContentTemplate"
1781
+ [ngTemplateOutletContext]="{ $implicit: dataItem }"
1782
+ >
1783
+ </ng-template>
1784
+ </div>
1785
+ <span
1786
+ class="k-task-actions"
1787
+ aria-hidden="true"
1788
+ >
1789
+ <span
1790
+ class="k-link k-task-delete"
1791
+ [kendoEventsOutsideAngular]="{
1792
+ click: onTaskDelete
1793
+ }"
1794
+ [scope]="this"
1795
+ >
1796
+ <kendo-icon-wrapper
1797
+ icon="x"
1798
+ [svgIcon]="xIcon"></kendo-icon-wrapper>
1799
+ </span>
1800
+ </span>
1801
+ </div>
1802
+ </ng-container>
1803
+ <ng-template
1804
+ *ngIf="taskTemplate"
1805
+ [ngTemplateOutlet]="taskTemplate"
1806
+ [ngTemplateOutletContext]="{
1807
+ $implicit: dataItem,
1808
+ elementWidth: taskWidth
1809
+ }"
1810
+ >
1811
+ </ng-template>
1701
1812
  </div>
1702
1813
  <ng-container *ngIf="renderDependencyDragClues">
1703
1814
  <div
@@ -1711,72 +1822,120 @@ GanttMilestoneTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
1711
1822
  >
1712
1823
  </div>
1713
1824
  </ng-container>
1714
- `, isInline: true, directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1715
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttMilestoneTaskComponent, decorators: [{
1825
+ `, isInline: true, dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i11.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: i9.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
1826
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttTaskComponent, decorators: [{
1716
1827
  type: Component,
1717
1828
  args: [{
1718
- selector: 'kendo-gantt-milestone-task',
1829
+ selector: 'kendo-gantt-task',
1719
1830
  providers: [
1720
1831
  {
1721
1832
  provide: GanttTaskBase,
1722
- useExisting: forwardRef(() => GanttMilestoneTaskComponent)
1833
+ useExisting: forwardRef(() => GanttTaskComponent)
1723
1834
  }
1724
1835
  ],
1725
1836
  template: `
1726
1837
  <div
1727
1838
  #task
1839
+ class="k-task k-task-single"
1728
1840
  role="treeitem"
1729
- class="k-task k-task-milestone"
1730
1841
  [ngClass]="taskClass(dataItem)"
1842
+ [style.width.px]="taskWidth"
1731
1843
  [attr.title]="mapper.extractFromTask(dataItem, 'title')"
1732
1844
  [class.k-selected]="isSelected(dataItem)"
1733
1845
  [attr.aria-selected]="ariaSelected"
1734
1846
  [attr.aria-level]="level + 1"
1735
1847
  >
1736
- </div>
1737
- <ng-container *ngIf="renderDependencyDragClues">
1738
- <div
1739
- class="k-task-dot k-task-start k-touch-action-none"
1740
- [class.k-display-block]="touchEnabled"
1741
- >
1742
- </div>
1743
- <div
1744
- class="k-task-dot k-task-end k-touch-action-none"
1745
- [class.k-display-block]="touchEnabled"
1746
- >
1747
- </div>
1748
- </ng-container>
1749
- `
1750
- }]
1751
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1752
- type: Inject,
1753
- args: [TOUCH_ENABLED]
1754
- }] }, { type: MappingService }, { type: TimelineViewService }, { type: DependencyDomService }, { type: OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; }, propDecorators: { milestoneWrapperClass: [{
1755
- type: HostBinding,
1756
- args: ['class.k-milestone-wrap']
1757
- }] } });
1758
-
1759
- /**
1760
- * @hidden
1761
- */
1762
- class GanttSummaryTaskComponent extends GanttTaskBase {
1763
- constructor(touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
1764
- super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
1765
- this.touchEnabled = touchEnabled;
1766
- this.summaryWrapperClass = true;
1767
- }
1768
- get ariaExpanded() {
1769
- // if no callback is provided, all child items are displayed and the item is regarded as expanded
1770
- // replicates the TreeList aria-expanded behavior
1771
- const isExpanded = !isPresent(this.isExpanded) || this.isExpanded(this.dataItem);
1772
- return String(isExpanded);
1773
- }
1774
- }
1775
- GanttSummaryTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttSummaryTaskComponent, deps: [{ token: TOUCH_ENABLED }, { token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
1776
- GanttSummaryTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GanttSummaryTaskComponent, selector: "kendo-gantt-summary-task", inputs: { template: "template", isExpanded: "isExpanded" }, host: { properties: { "class.k-summary-wrap": "this.summaryWrapperClass" } }, providers: [
1777
- {
1778
- provide: GanttTaskBase,
1779
- useExisting: forwardRef(() => GanttSummaryTaskComponent)
1848
+ <ng-container *ngIf="!taskTemplate">
1849
+ <div
1850
+ class="k-task-complete"
1851
+ [style.width.px]="completionOverlayWidth"
1852
+ aria-hidden="true"
1853
+ >
1854
+ </div>
1855
+ <div class="k-task-content">
1856
+ <div class="k-task-template">
1857
+ <ng-container *ngIf="!taskContentTemplate; else taskContent">
1858
+ {{ mapper.extractFromTask(dataItem, 'title') }}
1859
+ </ng-container>
1860
+ <ng-template
1861
+ #taskContent
1862
+ [ngTemplateOutlet]="taskContentTemplate"
1863
+ [ngTemplateOutletContext]="{ $implicit: dataItem }"
1864
+ >
1865
+ </ng-template>
1866
+ </div>
1867
+ <span
1868
+ class="k-task-actions"
1869
+ aria-hidden="true"
1870
+ >
1871
+ <span
1872
+ class="k-link k-task-delete"
1873
+ [kendoEventsOutsideAngular]="{
1874
+ click: onTaskDelete
1875
+ }"
1876
+ [scope]="this"
1877
+ >
1878
+ <kendo-icon-wrapper
1879
+ icon="x"
1880
+ [svgIcon]="xIcon"></kendo-icon-wrapper>
1881
+ </span>
1882
+ </span>
1883
+ </div>
1884
+ </ng-container>
1885
+ <ng-template
1886
+ *ngIf="taskTemplate"
1887
+ [ngTemplateOutlet]="taskTemplate"
1888
+ [ngTemplateOutletContext]="{
1889
+ $implicit: dataItem,
1890
+ elementWidth: taskWidth
1891
+ }"
1892
+ >
1893
+ </ng-template>
1894
+ </div>
1895
+ <ng-container *ngIf="renderDependencyDragClues">
1896
+ <div
1897
+ class="k-task-dot k-task-start k-touch-action-none"
1898
+ [class.k-display-block]="touchEnabled"
1899
+ >
1900
+ </div>
1901
+ <div
1902
+ class="k-task-dot k-task-end k-touch-action-none"
1903
+ [class.k-display-block]="touchEnabled"
1904
+ >
1905
+ </div>
1906
+ </ng-container>
1907
+ `
1908
+ }]
1909
+ }], ctorParameters: function () { return [{ type: EditService }, { type: undefined, decorators: [{
1910
+ type: Inject,
1911
+ args: [TOUCH_ENABLED]
1912
+ }] }, { type: MappingService }, { type: TimelineViewService }, { type: DependencyDomService }, { type: OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; }, propDecorators: { taskContentTemplate: [{
1913
+ type: Input
1914
+ }], taskTemplate: [{
1915
+ type: Input
1916
+ }] } });
1917
+
1918
+ /**
1919
+ * @hidden
1920
+ */
1921
+ class GanttSummaryTaskComponent extends GanttTaskBase {
1922
+ constructor(touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
1923
+ super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
1924
+ this.touchEnabled = touchEnabled;
1925
+ this.summaryWrapperClass = true;
1926
+ }
1927
+ get ariaExpanded() {
1928
+ // if no callback is provided, all child items are displayed and the item is regarded as expanded
1929
+ // replicates the TreeList aria-expanded behavior
1930
+ const isExpanded = !isPresent(this.isExpanded) || this.isExpanded(this.dataItem);
1931
+ return String(isExpanded);
1932
+ }
1933
+ }
1934
+ GanttSummaryTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttSummaryTaskComponent, deps: [{ token: TOUCH_ENABLED }, { token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
1935
+ GanttSummaryTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: GanttSummaryTaskComponent, selector: "kendo-gantt-summary-task", inputs: { template: "template", isExpanded: "isExpanded" }, host: { properties: { "class.k-summary-wrap": "this.summaryWrapperClass" } }, providers: [
1936
+ {
1937
+ provide: GanttTaskBase,
1938
+ useExisting: forwardRef(() => GanttSummaryTaskComponent)
1780
1939
  }
1781
1940
  ], usesInheritance: true, ngImport: i0, template: `
1782
1941
  <div
@@ -1822,8 +1981,8 @@ GanttSummaryTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
1822
1981
  >
1823
1982
  </div>
1824
1983
  </ng-container>
1825
- `, isInline: true, directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
1826
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttSummaryTaskComponent, decorators: [{
1984
+ `, isInline: true, dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
1985
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttSummaryTaskComponent, decorators: [{
1827
1986
  type: Component,
1828
1987
  args: [{
1829
1988
  selector: 'kendo-gantt-summary-task',
@@ -1894,184 +2053,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1894
2053
  /**
1895
2054
  * @hidden
1896
2055
  */
1897
- class EditService {
1898
- constructor(mapper) {
1899
- this.mapper = mapper;
1900
- this.showEditingDialog = new Subject();
1901
- this.taskDelete = new Subject();
1902
- this.editEvent = new Subject();
1903
- this.addEvent = new Subject();
1904
- this.predecessors = [];
1905
- this.successors = [];
1906
- this.updatedItems = [];
1907
- this.deletedItems = [];
1908
- this.itemIndex = (item, data) => {
1909
- return data.findIndex(dataItem => this.mapper.extractFromTask(dataItem, 'id') === this.mapper.extractFromTask(item, 'id'));
1910
- };
1911
- }
1912
- set dependencies(items) {
1913
- // Can this whole thing be moved to edit-dialog? Dependencies might not be needed here
1914
- const dataItemId = this.mapper.extractFromTask(this.dataItem, 'id');
1915
- this.predecessors = items.filter(item => this.mapper.extractFromDependency(item, 'toId') === dataItemId);
1916
- this.successors = items.filter(item => this.mapper.extractFromDependency(item, 'fromId') === dataItemId);
1917
- }
1918
- get dependencies() {
1919
- return [...this.predecessors, ...this.successors];
1920
- }
1921
- createEditDialog(dataItem, taskFormGroup, dependencies) {
1922
- this.dataItem = dataItem;
1923
- this.taskFormGroup = taskFormGroup;
1924
- this.dependencies = dependencies;
1925
- this.showEditingDialog.next(true);
1926
- }
1927
- closeEditDialog() {
1928
- this.showEditingDialog.next(false);
1929
- this.dataItem = undefined;
1930
- this.taskFormGroup = undefined;
1931
- this.dependencies = [];
1932
- this.updatedItems = [];
1933
- this.deletedItems = [];
1934
- }
1935
- triggerEditEvent(editResultType) {
1936
- this.editEvent.next({
1937
- taskFormGroup: this.taskFormGroup,
1938
- dataItem: this.dataItem,
1939
- dependencies: {
1940
- createdItems: this.getCreatedDependencies(),
1941
- updatedItems: this.updatedItems,
1942
- deletedItems: this.deletedItems
1943
- },
1944
- editResultType
1945
- });
1946
- }
1947
- updateDependencies(item) {
1948
- if (!this.isNew(item)) {
1949
- // update
1950
- const index = this.itemIndex(item, this.updatedItems);
1951
- if (index !== -1) {
1952
- this.updatedItems.splice(index, 1, item);
1953
- }
1954
- else {
1955
- this.updatedItems.push(item);
1956
- }
1957
- }
1958
- }
1959
- getCreatedDependencies() {
1960
- return this.dependencies.filter(item => this.mapper.extractFromDependency(item, 'id') === null);
1961
- }
1962
- deleteDependency(item) {
1963
- const updatedIndex = this.itemIndex(item, this.updatedItems);
1964
- if (updatedIndex !== -1) {
1965
- this.updatedItems.splice(updatedIndex, 1);
1966
- }
1967
- if (!this.isNew(item)) {
1968
- this.deletedItems.push(item);
1969
- }
1970
- }
1971
- loadTasks(initialValues, isInitializer = true) {
1972
- return forkJoin(initialValues.map(v => this.getElementById(v))).pipe(map((value) => value.reduce((acc, item) => acc = acc.concat(normalizeGanttData(item)), [])), expand(values => {
1973
- if (values.some(el => this.hasChildren(el))) {
1974
- return this.loadTasks(values, false);
1975
- }
1976
- return EMPTY;
1977
- }), reduce((acc, values) => acc.concat(values), isInitializer ? [...initialValues] : []));
1978
- }
1979
- getElementById(item) {
1980
- const children = this.fetchChildren(item);
1981
- if (isObservable(children)) {
1982
- return children;
1983
- }
1984
- return of(children);
1985
- }
1986
- isNew(item) {
1987
- return !isPresent(this.mapper.extractFromDependency(item, 'id'));
1988
- }
1989
- }
1990
- EditService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EditService, deps: [{ token: MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
1991
- EditService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EditService });
1992
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EditService, decorators: [{
1993
- type: Injectable
1994
- }], ctorParameters: function () { return [{ type: MappingService }]; } });
1995
-
1996
- /**
1997
- * @hidden
1998
- */
1999
- class GanttTaskComponent extends GanttTaskBase {
2000
- constructor(editService, touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
2056
+ class GanttMilestoneTaskComponent extends GanttTaskBase {
2057
+ constructor(touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
2001
2058
  super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
2002
- this.editService = editService;
2003
2059
  this.touchEnabled = touchEnabled;
2004
- this.xIcon = xIcon;
2005
- }
2006
- onTaskDelete() {
2007
- this.editService.dataItem = this.dataItem;
2008
- this.editService.taskDelete.next(this.dataItem);
2060
+ this.milestoneWrapperClass = true;
2009
2061
  }
2010
2062
  }
2011
- GanttTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTaskComponent, deps: [{ token: EditService }, { token: TOUCH_ENABLED }, { token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
2012
- GanttTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GanttTaskComponent, selector: "kendo-gantt-task", inputs: { taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate" }, providers: [
2063
+ GanttMilestoneTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttMilestoneTaskComponent, deps: [{ token: TOUCH_ENABLED }, { token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
2064
+ GanttMilestoneTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: GanttMilestoneTaskComponent, selector: "kendo-gantt-milestone-task", host: { properties: { "class.k-milestone-wrap": "this.milestoneWrapperClass" } }, providers: [
2013
2065
  {
2014
2066
  provide: GanttTaskBase,
2015
- useExisting: forwardRef(() => GanttTaskComponent)
2067
+ useExisting: forwardRef(() => GanttMilestoneTaskComponent)
2016
2068
  }
2017
2069
  ], usesInheritance: true, ngImport: i0, template: `
2018
2070
  <div
2019
2071
  #task
2020
- class="k-task k-task-single"
2021
2072
  role="treeitem"
2073
+ class="k-task k-task-milestone"
2022
2074
  [ngClass]="taskClass(dataItem)"
2023
- [style.width.px]="taskWidth"
2024
2075
  [attr.title]="mapper.extractFromTask(dataItem, 'title')"
2025
2076
  [class.k-selected]="isSelected(dataItem)"
2026
2077
  [attr.aria-selected]="ariaSelected"
2027
2078
  [attr.aria-level]="level + 1"
2028
2079
  >
2029
- <ng-container *ngIf="!taskTemplate">
2030
- <div
2031
- class="k-task-complete"
2032
- [style.width.px]="completionOverlayWidth"
2033
- aria-hidden="true"
2034
- >
2035
- </div>
2036
- <div class="k-task-content">
2037
- <div class="k-task-template">
2038
- <ng-container *ngIf="!taskContentTemplate; else taskContent">
2039
- {{ mapper.extractFromTask(dataItem, 'title') }}
2040
- </ng-container>
2041
- <ng-template
2042
- #taskContent
2043
- [ngTemplateOutlet]="taskContentTemplate"
2044
- [ngTemplateOutletContext]="{ $implicit: dataItem }"
2045
- >
2046
- </ng-template>
2047
- </div>
2048
- <span
2049
- class="k-task-actions"
2050
- aria-hidden="true"
2051
- >
2052
- <span
2053
- class="k-link k-task-delete"
2054
- [kendoEventsOutsideAngular]="{
2055
- click: onTaskDelete
2056
- }"
2057
- [scope]="this"
2058
- >
2059
- <kendo-icon-wrapper
2060
- icon="x"
2061
- [svgIcon]="xIcon"></kendo-icon-wrapper>
2062
- </span>
2063
- </span>
2064
- </div>
2065
- </ng-container>
2066
- <ng-template
2067
- *ngIf="taskTemplate"
2068
- [ngTemplateOutlet]="taskTemplate"
2069
- [ngTemplateOutletContext]="{
2070
- $implicit: dataItem,
2071
- elementWidth: taskWidth
2072
- }"
2073
- >
2074
- </ng-template>
2075
2080
  </div>
2076
2081
  <ng-container *ngIf="renderDependencyDragClues">
2077
2082
  <div
@@ -2085,75 +2090,28 @@ GanttTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
2085
2090
  >
2086
2091
  </div>
2087
2092
  </ng-container>
2088
- `, isInline: true, components: [{ type: i7.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i17.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
2089
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTaskComponent, decorators: [{
2093
+ `, isInline: true, dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2094
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttMilestoneTaskComponent, decorators: [{
2090
2095
  type: Component,
2091
2096
  args: [{
2092
- selector: 'kendo-gantt-task',
2097
+ selector: 'kendo-gantt-milestone-task',
2093
2098
  providers: [
2094
2099
  {
2095
2100
  provide: GanttTaskBase,
2096
- useExisting: forwardRef(() => GanttTaskComponent)
2101
+ useExisting: forwardRef(() => GanttMilestoneTaskComponent)
2097
2102
  }
2098
2103
  ],
2099
2104
  template: `
2100
2105
  <div
2101
2106
  #task
2102
- class="k-task k-task-single"
2103
2107
  role="treeitem"
2108
+ class="k-task k-task-milestone"
2104
2109
  [ngClass]="taskClass(dataItem)"
2105
- [style.width.px]="taskWidth"
2106
2110
  [attr.title]="mapper.extractFromTask(dataItem, 'title')"
2107
2111
  [class.k-selected]="isSelected(dataItem)"
2108
2112
  [attr.aria-selected]="ariaSelected"
2109
2113
  [attr.aria-level]="level + 1"
2110
2114
  >
2111
- <ng-container *ngIf="!taskTemplate">
2112
- <div
2113
- class="k-task-complete"
2114
- [style.width.px]="completionOverlayWidth"
2115
- aria-hidden="true"
2116
- >
2117
- </div>
2118
- <div class="k-task-content">
2119
- <div class="k-task-template">
2120
- <ng-container *ngIf="!taskContentTemplate; else taskContent">
2121
- {{ mapper.extractFromTask(dataItem, 'title') }}
2122
- </ng-container>
2123
- <ng-template
2124
- #taskContent
2125
- [ngTemplateOutlet]="taskContentTemplate"
2126
- [ngTemplateOutletContext]="{ $implicit: dataItem }"
2127
- >
2128
- </ng-template>
2129
- </div>
2130
- <span
2131
- class="k-task-actions"
2132
- aria-hidden="true"
2133
- >
2134
- <span
2135
- class="k-link k-task-delete"
2136
- [kendoEventsOutsideAngular]="{
2137
- click: onTaskDelete
2138
- }"
2139
- [scope]="this"
2140
- >
2141
- <kendo-icon-wrapper
2142
- icon="x"
2143
- [svgIcon]="xIcon"></kendo-icon-wrapper>
2144
- </span>
2145
- </span>
2146
- </div>
2147
- </ng-container>
2148
- <ng-template
2149
- *ngIf="taskTemplate"
2150
- [ngTemplateOutlet]="taskTemplate"
2151
- [ngTemplateOutletContext]="{
2152
- $implicit: dataItem,
2153
- elementWidth: taskWidth
2154
- }"
2155
- >
2156
- </ng-template>
2157
2115
  </div>
2158
2116
  <ng-container *ngIf="renderDependencyDragClues">
2159
2117
  <div
@@ -2169,13 +2127,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2169
2127
  </ng-container>
2170
2128
  `
2171
2129
  }]
2172
- }], ctorParameters: function () { return [{ type: EditService }, { type: undefined, decorators: [{
2130
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
2173
2131
  type: Inject,
2174
2132
  args: [TOUCH_ENABLED]
2175
- }] }, { type: MappingService }, { type: TimelineViewService }, { type: DependencyDomService }, { type: OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; }, propDecorators: { taskContentTemplate: [{
2176
- type: Input
2177
- }], taskTemplate: [{
2178
- type: Input
2133
+ }] }, { type: MappingService }, { type: TimelineViewService }, { type: DependencyDomService }, { type: OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; }, propDecorators: { milestoneWrapperClass: [{
2134
+ type: HostBinding,
2135
+ args: ['class.k-milestone-wrap']
2179
2136
  }] } });
2180
2137
 
2181
2138
  /**
@@ -2197,8 +2154,8 @@ class GanttTasksTableBodyComponent {
2197
2154
  return !item.hasChildren && isEqual(this.mapper.extractFromTask(item.data, 'start'), this.mapper.extractFromTask(item.data, 'end'));
2198
2155
  }
2199
2156
  }
2200
- GanttTasksTableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTasksTableBodyComponent, deps: [{ token: DependencyDomService }, { token: MappingService }], target: i0.ɵɵFactoryTarget.Component });
2201
- GanttTasksTableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GanttTasksTableBodyComponent, 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: `
2157
+ GanttTasksTableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttTasksTableBodyComponent, deps: [{ token: DependencyDomService }, { token: MappingService }], target: i0.ɵɵFactoryTarget.Component });
2158
+ GanttTasksTableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: GanttTasksTableBodyComponent, 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: `
2202
2159
  <tr class="k-table-row" #timelineRow *ngFor="let item of rows; let index = index">
2203
2160
  <td class="k-table-td">
2204
2161
  <kendo-gantt-milestone-task
@@ -2245,8 +2202,8 @@ GanttTasksTableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
2245
2202
  </ng-template>
2246
2203
  </td>
2247
2204
  </tr>
2248
- `, isInline: true, components: [{ type: GanttMilestoneTaskComponent, selector: "kendo-gantt-milestone-task" }, { type: GanttSummaryTaskComponent, selector: "kendo-gantt-summary-task", inputs: ["template", "isExpanded"] }, { type: GanttTaskComponent, selector: "kendo-gantt-task", inputs: ["taskContentTemplate", "taskTemplate"] }], directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTasksTableBodyComponent, decorators: [{
2205
+ `, isInline: true, dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GanttTaskComponent, selector: "kendo-gantt-task", inputs: ["taskContentTemplate", "taskTemplate"] }, { kind: "component", type: GanttSummaryTaskComponent, selector: "kendo-gantt-summary-task", inputs: ["template", "isExpanded"] }, { kind: "component", type: GanttMilestoneTaskComponent, selector: "kendo-gantt-milestone-task" }] });
2206
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttTasksTableBodyComponent, decorators: [{
2250
2207
  type: Component,
2251
2208
  args: [{
2252
2209
  // eslint-disable-next-line @angular-eslint/component-selector
@@ -2284,230 +2241,86 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2284
2241
  <kendo-gantt-task
2285
2242
  *ngIf="!item.hasChildren"
2286
2243
  [dataItem]="item.data"
2287
- [level]="item.level"
2288
- [taskContentTemplate]="taskContentTemplate"
2289
- [taskTemplate]="taskTemplate"
2290
- [activeView]="activeView"
2291
- [taskClass]="taskClass"
2292
- [selectable]="selectable"
2293
- [isSelected]="isTaskSelected"
2294
- [index]="index"
2295
- [renderDependencyDragClues]="renderDependencyDragClues"
2296
- >
2297
- </kendo-gantt-task>
2298
- </ng-template>
2299
- </td>
2300
- </tr>
2301
- `
2302
- }]
2303
- }], ctorParameters: function () { return [{ type: DependencyDomService }, { type: MappingService }]; }, propDecorators: { timelineRow: [{
2304
- type: ViewChild,
2305
- args: ['timelineRow', { static: false }]
2306
- }], selectable: [{
2307
- type: Input
2308
- }], rows: [{
2309
- type: Input
2310
- }], activeView: [{
2311
- type: Input
2312
- }], taskContentTemplate: [{
2313
- type: Input
2314
- }], taskTemplate: [{
2315
- type: Input
2316
- }], summaryTaskTemplate: [{
2317
- type: Input
2318
- }], taskClass: [{
2319
- type: Input
2320
- }], isExpanded: [{
2321
- type: Input
2322
- }], isTaskSelected: [{
2323
- type: Input
2324
- }], renderDependencyDragClues: [{
2325
- type: Input
2326
- }] } });
2327
-
2328
- /**
2329
- * @hidden
2330
- */
2331
- var ScrollDirection;
2332
- (function (ScrollDirection) {
2333
- ScrollDirection[ScrollDirection["Backwards"] = -1] = "Backwards";
2334
- ScrollDirection[ScrollDirection["Forward"] = 1] = "Forward";
2335
- })(ScrollDirection || (ScrollDirection = {}));
2336
- /**
2337
- * @hidden
2338
- */
2339
- var ScrollAxis;
2340
- (function (ScrollAxis) {
2341
- ScrollAxis["Vertical"] = "scrollTop";
2342
- ScrollAxis["Horizontal"] = "scrollLeft";
2343
- })(ScrollAxis || (ScrollAxis = {}));
2344
-
2345
- /**
2346
- * @hidden
2347
- *
2348
- * Notifies the timeline-scroll.directive to scroll into view to requested coordinates.
2349
- * The scrolling is performed based on client (viewport) coordinates.
2350
- */
2351
- class TimelineScrollService {
2352
- constructor() {
2353
- this.horizontalScroll = new Subject();
2354
- this.verticalScroll = new Subject();
2355
- this.scrollCancel = new Subject();
2356
- }
2357
- ngOnDestroy() {
2358
- this.horizontalScroll.complete();
2359
- this.verticalScroll.complete();
2360
- this.scrollCancel.complete();
2361
- }
2362
- requestHorizontalScroll(clientTop) {
2363
- this.horizontalScroll.next(clientTop);
2364
- }
2365
- requestVerticalScroll(clientLeft) {
2366
- this.verticalScroll.next(clientLeft);
2367
- }
2368
- requestScrollCancel() {
2369
- this.scrollCancel.next();
2370
- }
2371
- }
2372
- TimelineScrollService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineScrollService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2373
- TimelineScrollService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineScrollService });
2374
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineScrollService, decorators: [{
2375
- type: Injectable
2376
- }] });
2377
-
2378
- /**
2379
- * @hidden
2380
- *
2381
- * Checks if the beginning of the scrollable element is reached (top/left).
2382
- * Floors the top value.
2383
- */
2384
- const isUpperLimitReached = (element, axis) => Math.floor(element[axis]) <= 0;
2385
- /**
2386
- * @hidden
2387
- *
2388
- * Checks if the end of the scrollable element is reached (bottom/right).
2389
- * Ceils the top value.
2390
- */
2391
- const isBottomLimitReached = (element, axis) => {
2392
- const elementSize = axis === ScrollAxis.Horizontal ?
2393
- element.scrollWidth - element.clientWidth :
2394
- element.scrollHeight - element.clientHeight;
2395
- return Math.ceil(element[axis]) >= elementSize;
2396
- };
2397
- /**
2398
- * @hidden
2399
- *
2400
- * Scrolls the element in the given direction by the provided step in the provided scroll axis.
2401
- *
2402
- * If the targeted scroll incrementation doesn't yield any result due to device pixel ratio issues (https://github.com/dimitar-pechev/RenderingIndependentScrollOffsets#readme),
2403
- * increments the step with 1px and again attempts to change the scrollTop of the element, until the content is actually scrolled.
2404
- *
2405
- * Cuts the operation short after 20 unsuccessful attempts to prevent infinite loops in possible corner-case scenarios.
2406
- */
2407
- const scrollElement = (element, step, direction, scrollAxis) => {
2408
- if (!(isPresent(element) && isDocumentAvailable())) {
2409
- return;
2410
- }
2411
- const initialScrollPosition = element[scrollAxis];
2412
- let currentStep = step;
2413
- let iterations = 0;
2414
- while (initialScrollPosition === element[scrollAxis] &&
2415
- !(direction === ScrollDirection.Backwards && isUpperLimitReached(element, scrollAxis)) &&
2416
- !(direction === ScrollDirection.Forward && isBottomLimitReached(element, scrollAxis)) &&
2417
- iterations < 20 // cut the operation short in 20 attempts - in case of a wild corner case
2418
- ) {
2419
- element[scrollAxis] += (currentStep * direction);
2420
- // try with a larger step if the current one doesn't update the scroll position successfully
2421
- currentStep += 1;
2422
- iterations += 1;
2423
- }
2424
- };
2425
- /**
2426
- * @hidden
2427
- *
2428
- * As client coordinates are not restricted to the range 0px - {viewportSize}px, but can have negative starting values or ending values greater than the viewport size,
2429
- * this function extracts the visible boundaries of the provided element - fall-backing to 0 when the top/left are below 0,
2430
- * and fall-backing to the actual visible size of the container for bottom/right.
2431
- */
2432
- const getViewportBoundaries = (element) => {
2433
- const elementRect = element.getBoundingClientRect();
2434
- // if the beginning of the scrollable container is above/before the current viewport, fall-back to 0
2435
- const topLimit = Math.max(elementRect.top, 0);
2436
- const leftLimit = Math.max(elementRect.left, 0);
2437
- // if the end of the scrollable container is beneath/after the current viewport, fall-back to its client height
2438
- // add the distance from the start of the viewport to the beginning of the container to ensure scrolling bottom begins when the actual end of the container is reached
2439
- const bottomLimit = topLimit + Math.min(elementRect.bottom, element.clientHeight);
2440
- const rightLimit = leftLimit + Math.min(elementRect.right, element.clientWidth);
2441
- return {
2442
- top: topLimit,
2443
- bottom: bottomLimit,
2444
- left: leftLimit,
2445
- right: rightLimit
2446
- };
2447
- };
2244
+ [level]="item.level"
2245
+ [taskContentTemplate]="taskContentTemplate"
2246
+ [taskTemplate]="taskTemplate"
2247
+ [activeView]="activeView"
2248
+ [taskClass]="taskClass"
2249
+ [selectable]="selectable"
2250
+ [isSelected]="isTaskSelected"
2251
+ [index]="index"
2252
+ [renderDependencyDragClues]="renderDependencyDragClues"
2253
+ >
2254
+ </kendo-gantt-task>
2255
+ </ng-template>
2256
+ </td>
2257
+ </tr>
2258
+ `
2259
+ }]
2260
+ }], ctorParameters: function () { return [{ type: DependencyDomService }, { type: MappingService }]; }, propDecorators: { timelineRow: [{
2261
+ type: ViewChild,
2262
+ args: ['timelineRow', { static: false }]
2263
+ }], selectable: [{
2264
+ type: Input
2265
+ }], rows: [{
2266
+ type: Input
2267
+ }], activeView: [{
2268
+ type: Input
2269
+ }], taskContentTemplate: [{
2270
+ type: Input
2271
+ }], taskTemplate: [{
2272
+ type: Input
2273
+ }], summaryTaskTemplate: [{
2274
+ type: Input
2275
+ }], taskClass: [{
2276
+ type: Input
2277
+ }], isExpanded: [{
2278
+ type: Input
2279
+ }], isTaskSelected: [{
2280
+ type: Input
2281
+ }], renderDependencyDragClues: [{
2282
+ type: Input
2283
+ }] } });
2448
2284
 
2449
2285
  /**
2450
2286
  * @hidden
2451
2287
  */
2452
- class TimelineScrollableDirective {
2453
- constructor(timelineScrollableContainer, scrollService, zone) {
2454
- this.timelineScrollableContainer = timelineScrollableContainer;
2455
- this.scrollService = scrollService;
2456
- this.zone = zone;
2457
- this.subscriptions = new Subscription();
2458
- this.subscriptions.add(this.scrollService.horizontalScroll
2459
- .subscribe(this.scrollHorizontallyTo.bind(this)));
2460
- this.subscriptions.add(this.scrollService.verticalScroll
2461
- .subscribe(this.scrollVerticallyTo.bind(this)));
2462
- this.subscriptions.add(this.scrollService.scrollCancel
2463
- .subscribe(this.cancelScroll.bind(this)));
2464
- }
2465
- ngOnDestroy() {
2466
- this.subscriptions.unsubscribe();
2467
- }
2468
- scrollHorizontallyTo(left) {
2469
- this.zone.runOutsideAngular(() => {
2470
- const container = this.timelineScrollableContainer.nativeElement;
2471
- const visibleBoundaries = getViewportBoundaries(container);
2472
- if (left < visibleBoundaries.left + this.scrollSettings.threshold) {
2473
- this.horizontalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Backwards, ScrollAxis.Horizontal), this.scrollSettings.interval);
2474
- }
2475
- else if (left > visibleBoundaries.right - this.scrollSettings.threshold) {
2476
- this.horizontalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Forward, ScrollAxis.Horizontal), this.scrollSettings.interval);
2477
- }
2478
- });
2479
- }
2480
- scrollVerticallyTo(top) {
2481
- this.zone.runOutsideAngular(() => {
2482
- const container = this.timelineScrollableContainer.nativeElement;
2483
- const visibleBoundaries = getViewportBoundaries(container);
2484
- if (top < visibleBoundaries.top + this.scrollSettings.threshold) {
2485
- this.verticalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Backwards, ScrollAxis.Vertical), this.scrollSettings.interval);
2486
- }
2487
- else if (top > visibleBoundaries.bottom - this.scrollSettings.threshold) {
2488
- this.verticalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Forward, ScrollAxis.Vertical), this.scrollSettings.interval);
2489
- }
2490
- });
2491
- }
2492
- cancelScroll() {
2493
- if (isPresent(this.verticalScrollInterval)) {
2494
- clearInterval(this.verticalScrollInterval);
2495
- this.verticalScrollInterval = null;
2496
- }
2497
- if (isPresent(this.horizontalScrollInterval)) {
2498
- clearInterval(this.horizontalScrollInterval);
2499
- this.horizontalScrollInterval = null;
2500
- }
2288
+ class GanttHeaderTableBodyComponent {
2289
+ constructor() {
2290
+ this.tbodyClass = true;
2501
2291
  }
2502
2292
  }
2503
- TimelineScrollableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineScrollableDirective, deps: [{ token: i0.ElementRef }, { token: TimelineScrollService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
2504
- TimelineScrollableDirectivedir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: TimelineScrollableDirective, selector: "[kendoGanttTimelineScrollable]", inputs: { scrollSettings: "scrollSettings" }, ngImport: i0 });
2505
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineScrollableDirective, decorators: [{
2506
- type: Directive,
2293
+ GanttHeaderTableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttHeaderTableBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2294
+ GanttHeaderTableBodyComponentcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: GanttHeaderTableBodyComponent, selector: "[kendoGanttHeaderTableBody]", inputs: { groupSlots: "groupSlots", slots: "slots" }, host: { properties: { "class.k-table-tbody": "this.tbodyClass" } }, ngImport: i0, template: `
2295
+ <tr class="k-table-row">
2296
+ <td *ngFor="let item of groupSlots" [attr.colspan]="item.span" class="k-header k-table-td">{{ item.text }}</td>
2297
+ </tr>
2298
+
2299
+ <tr class="k-table-row">
2300
+ <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>
2301
+ </tr>
2302
+ `, isInline: true, dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
2303
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttHeaderTableBodyComponent, decorators: [{
2304
+ type: Component,
2507
2305
  args: [{
2508
- selector: '[kendoGanttTimelineScrollable]'
2306
+ // eslint-disable-next-line @angular-eslint/component-selector
2307
+ selector: '[kendoGanttHeaderTableBody]',
2308
+ template: `
2309
+ <tr class="k-table-row">
2310
+ <td *ngFor="let item of groupSlots" [attr.colspan]="item.span" class="k-header k-table-td">{{ item.text }}</td>
2311
+ </tr>
2312
+
2313
+ <tr class="k-table-row">
2314
+ <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>
2315
+ </tr>
2316
+ `
2509
2317
  }]
2510
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: TimelineScrollService }, { type: i0.NgZone }]; }, propDecorators: { scrollSettings: [{
2318
+ }], propDecorators: { tbodyClass: [{
2319
+ type: HostBinding,
2320
+ args: ['class.k-table-tbody']
2321
+ }], groupSlots: [{
2322
+ type: Input
2323
+ }], slots: [{
2511
2324
  type: Input
2512
2325
  }] } });
2513
2326
 
@@ -2673,102 +2486,288 @@ const getArrowEast = (top, left, arrowSize) => {
2673
2486
  /**
2674
2487
  * @hidden
2675
2488
  *
2676
- * Translates the provided client `left` and `top` coords to coords relative to the provided container.
2677
- * https://developer.mozilla.org/en-US/docs/Web/CSS/CSSOM_View/Coordinate_systems#standard_cssom_coordinate_systems
2489
+ * Translates the provided client `left` and `top` coords to coords relative to the provided container.
2490
+ * https://developer.mozilla.org/en-US/docs/Web/CSS/CSSOM_View/Coordinate_systems#standard_cssom_coordinate_systems
2491
+ */
2492
+ const clientToOffsetCoords = (clientLeft, clientTop, offsetContainer) => {
2493
+ // client (viewport) coordinates of the target container
2494
+ // https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect#value
2495
+ const offsetContainerClientRect = offsetContainer.getBoundingClientRect();
2496
+ return {
2497
+ left: clientLeft - offsetContainerClientRect.left + offsetContainer.scrollLeft,
2498
+ top: clientTop - offsetContainerClientRect.top + offsetContainer.scrollTop
2499
+ };
2500
+ };
2501
+ /**
2502
+ * @hidden
2503
+ *
2504
+ * Retrieves the `left` and `top` values of the center of the provided element.
2505
+ * The retrieved values are relative to the current viewport (client values).
2506
+ * https://developer.mozilla.org/en-US/docs/Web/CSS/CSSOM_View/Coordinate_systems#standard_cssom_coordinate_systems
2507
+ */
2508
+ const getElementClientCenterCoords = (element) => {
2509
+ // client (viewport) coordinates of the targeted element
2510
+ // https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect#value
2511
+ const { left, top, width, height } = element.getBoundingClientRect();
2512
+ return {
2513
+ left: left + (width / 2),
2514
+ top: top + (height / 2)
2515
+ };
2516
+ };
2517
+
2518
+ /**
2519
+ * Defines the size of the arrow that will be drawn at the end of each Gantt dependency.
2520
+ */
2521
+ const ARROW_SIZE = 4;
2522
+ /**
2523
+ * Defines the distance the polyline will cover from the task element before making a turn.
2524
+ */
2525
+ const MIN_DISTANCE_BEFORE_TURN = 10;
2526
+ /**
2527
+ * @hidden
2528
+ */
2529
+ class GanttDependencyDirective {
2530
+ constructor(polyline, zone, renderer, mapper, dependencyDomService) {
2531
+ this.polyline = polyline;
2532
+ this.zone = zone;
2533
+ this.renderer = renderer;
2534
+ this.mapper = mapper;
2535
+ this.dependencyDomService = dependencyDomService;
2536
+ this.subscriptions = new Subscription();
2537
+ this.subscriptions.add(dependencyDomService.taskChanges
2538
+ .pipe(switchMap(changes =>
2539
+ // reacts only on the very last event emission,
2540
+ // ensures that the tasks are drawn in the DOM
2541
+ this.zone.onStable.pipe(take(1), map(() => changes))))
2542
+ .subscribe(changes => this.updatePoints(changes)));
2543
+ }
2544
+ ngOnDestroy() {
2545
+ this.subscriptions.unsubscribe();
2546
+ }
2547
+ ngOnChanges(changes) {
2548
+ if (isPresent(changes['dependency'])) {
2549
+ this.updatePoints(this.dependencyDomService.dependencyDomArgs);
2550
+ }
2551
+ }
2552
+ updatePoints({ timelineRow, contentContainer, tasks }) {
2553
+ if (!isPresent(timelineRow) || !isPresent(contentContainer) ||
2554
+ !isPresent(tasks) || tasks.size === 0 ||
2555
+ !tasks.has(this.mapper.extractFromDependency(this.dependency, 'fromId')) || !tasks.has(this.mapper.extractFromDependency(this.dependency, 'toId'))) {
2556
+ this.clearPoints();
2557
+ return;
2558
+ }
2559
+ const fromCoordinates = getElementRect(tasks.get(this.mapper.extractFromDependency(this.dependency, 'fromId')), contentContainer);
2560
+ const toCoordinates = getElementRect(tasks.get(this.mapper.extractFromDependency(this.dependency, 'toId')), contentContainer);
2561
+ const timelineRowHeight = isDocumentAvailable() ? timelineRow.getBoundingClientRect().height : 0;
2562
+ const points = dependencyCoordinates(fromCoordinates, toCoordinates, timelineRowHeight, this.dependency.type, MIN_DISTANCE_BEFORE_TURN, ARROW_SIZE);
2563
+ this.drawPoints(points);
2564
+ }
2565
+ clearPoints() {
2566
+ this.renderer.setAttribute(this.polyline.nativeElement, 'points', '');
2567
+ }
2568
+ drawPoints(points) {
2569
+ if (!isPresent(points) || points.length === 0) {
2570
+ this.clearPoints();
2571
+ return;
2572
+ }
2573
+ const parsedCoords = points.map(({ left, top }) => `${left},${top}`).join(' ');
2574
+ this.renderer.setAttribute(this.polyline.nativeElement, 'points', parsedCoords);
2575
+ }
2576
+ }
2577
+ GanttDependencyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttDependencyDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: MappingService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Directive });
2578
+ GanttDependencyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: GanttDependencyDirective, selector: "[kendoGanttDependency]", inputs: { dependency: "dependency" }, usesOnChanges: true, ngImport: i0 });
2579
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttDependencyDirective, decorators: [{
2580
+ type: Directive,
2581
+ args: [{
2582
+ selector: '[kendoGanttDependency]'
2583
+ }]
2584
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: MappingService }, { type: DependencyDomService }]; }, propDecorators: { dependency: [{
2585
+ type: Input
2586
+ }] } });
2587
+
2588
+ /**
2589
+ * @hidden
2590
+ */
2591
+ var ScrollDirection;
2592
+ (function (ScrollDirection) {
2593
+ ScrollDirection[ScrollDirection["Backwards"] = -1] = "Backwards";
2594
+ ScrollDirection[ScrollDirection["Forward"] = 1] = "Forward";
2595
+ })(ScrollDirection || (ScrollDirection = {}));
2596
+ /**
2597
+ * @hidden
2598
+ */
2599
+ var ScrollAxis;
2600
+ (function (ScrollAxis) {
2601
+ ScrollAxis["Vertical"] = "scrollTop";
2602
+ ScrollAxis["Horizontal"] = "scrollLeft";
2603
+ })(ScrollAxis || (ScrollAxis = {}));
2604
+
2605
+ /**
2606
+ * @hidden
2607
+ *
2608
+ * Notifies the timeline-scroll.directive to scroll into view to requested coordinates.
2609
+ * The scrolling is performed based on client (viewport) coordinates.
2610
+ */
2611
+ class TimelineScrollService {
2612
+ constructor() {
2613
+ this.horizontalScroll = new Subject();
2614
+ this.verticalScroll = new Subject();
2615
+ this.scrollCancel = new Subject();
2616
+ }
2617
+ ngOnDestroy() {
2618
+ this.horizontalScroll.complete();
2619
+ this.verticalScroll.complete();
2620
+ this.scrollCancel.complete();
2621
+ }
2622
+ requestHorizontalScroll(clientTop) {
2623
+ this.horizontalScroll.next(clientTop);
2624
+ }
2625
+ requestVerticalScroll(clientLeft) {
2626
+ this.verticalScroll.next(clientLeft);
2627
+ }
2628
+ requestScrollCancel() {
2629
+ this.scrollCancel.next();
2630
+ }
2631
+ }
2632
+ TimelineScrollService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineScrollService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2633
+ TimelineScrollService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineScrollService });
2634
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineScrollService, decorators: [{
2635
+ type: Injectable
2636
+ }] });
2637
+
2638
+ /**
2639
+ * @hidden
2640
+ *
2641
+ * Checks if the beginning of the scrollable element is reached (top/left).
2642
+ * Floors the top value.
2643
+ */
2644
+ const isUpperLimitReached = (element, axis) => Math.floor(element[axis]) <= 0;
2645
+ /**
2646
+ * @hidden
2647
+ *
2648
+ * Checks if the end of the scrollable element is reached (bottom/right).
2649
+ * Ceils the top value.
2650
+ */
2651
+ const isBottomLimitReached = (element, axis) => {
2652
+ const elementSize = axis === ScrollAxis.Horizontal ?
2653
+ element.scrollWidth - element.clientWidth :
2654
+ element.scrollHeight - element.clientHeight;
2655
+ return Math.ceil(element[axis]) >= elementSize;
2656
+ };
2657
+ /**
2658
+ * @hidden
2659
+ *
2660
+ * Scrolls the element in the given direction by the provided step in the provided scroll axis.
2661
+ *
2662
+ * If the targeted scroll incrementation doesn't yield any result due to device pixel ratio issues (https://github.com/dimitar-pechev/RenderingIndependentScrollOffsets#readme),
2663
+ * increments the step with 1px and again attempts to change the scrollTop of the element, until the content is actually scrolled.
2664
+ *
2665
+ * Cuts the operation short after 20 unsuccessful attempts to prevent infinite loops in possible corner-case scenarios.
2678
2666
  */
2679
- const clientToOffsetCoords = (clientLeft, clientTop, offsetContainer) => {
2680
- // client (viewport) coordinates of the target container
2681
- // https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect#value
2682
- const offsetContainerClientRect = offsetContainer.getBoundingClientRect();
2683
- return {
2684
- left: clientLeft - offsetContainerClientRect.left + offsetContainer.scrollLeft,
2685
- top: clientTop - offsetContainerClientRect.top + offsetContainer.scrollTop
2686
- };
2667
+ const scrollElement = (element, step, direction, scrollAxis) => {
2668
+ if (!(isPresent(element) && isDocumentAvailable())) {
2669
+ return;
2670
+ }
2671
+ const initialScrollPosition = element[scrollAxis];
2672
+ let currentStep = step;
2673
+ let iterations = 0;
2674
+ while (initialScrollPosition === element[scrollAxis] &&
2675
+ !(direction === ScrollDirection.Backwards && isUpperLimitReached(element, scrollAxis)) &&
2676
+ !(direction === ScrollDirection.Forward && isBottomLimitReached(element, scrollAxis)) &&
2677
+ iterations < 20 // cut the operation short in 20 attempts - in case of a wild corner case
2678
+ ) {
2679
+ element[scrollAxis] += (currentStep * direction);
2680
+ // try with a larger step if the current one doesn't update the scroll position successfully
2681
+ currentStep += 1;
2682
+ iterations += 1;
2683
+ }
2687
2684
  };
2688
2685
  /**
2689
2686
  * @hidden
2690
2687
  *
2691
- * Retrieves the `left` and `top` values of the center of the provided element.
2692
- * The retrieved values are relative to the current viewport (client values).
2693
- * https://developer.mozilla.org/en-US/docs/Web/CSS/CSSOM_View/Coordinate_systems#standard_cssom_coordinate_systems
2688
+ * As client coordinates are not restricted to the range 0px - {viewportSize}px, but can have negative starting values or ending values greater than the viewport size,
2689
+ * this function extracts the visible boundaries of the provided element - fall-backing to 0 when the top/left are below 0,
2690
+ * and fall-backing to the actual visible size of the container for bottom/right.
2694
2691
  */
2695
- const getElementClientCenterCoords = (element) => {
2696
- // client (viewport) coordinates of the targeted element
2697
- // https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect#value
2698
- const { left, top, width, height } = element.getBoundingClientRect();
2692
+ const getViewportBoundaries = (element) => {
2693
+ const elementRect = element.getBoundingClientRect();
2694
+ // if the beginning of the scrollable container is above/before the current viewport, fall-back to 0
2695
+ const topLimit = Math.max(elementRect.top, 0);
2696
+ const leftLimit = Math.max(elementRect.left, 0);
2697
+ // if the end of the scrollable container is beneath/after the current viewport, fall-back to its client height
2698
+ // add the distance from the start of the viewport to the beginning of the container to ensure scrolling bottom begins when the actual end of the container is reached
2699
+ const bottomLimit = topLimit + Math.min(elementRect.bottom, element.clientHeight);
2700
+ const rightLimit = leftLimit + Math.min(elementRect.right, element.clientWidth);
2699
2701
  return {
2700
- left: left + (width / 2),
2701
- top: top + (height / 2)
2702
+ top: topLimit,
2703
+ bottom: bottomLimit,
2704
+ left: leftLimit,
2705
+ right: rightLimit
2702
2706
  };
2703
2707
  };
2704
2708
 
2705
- /**
2706
- * Defines the size of the arrow that will be drawn at the end of each Gantt dependency.
2707
- */
2708
- const ARROW_SIZE = 4;
2709
- /**
2710
- * Defines the distance the polyline will cover from the task element before making a turn.
2711
- */
2712
- const MIN_DISTANCE_BEFORE_TURN = 10;
2713
2709
  /**
2714
2710
  * @hidden
2715
2711
  */
2716
- class GanttDependencyDirective {
2717
- constructor(polyline, zone, renderer, mapper, dependencyDomService) {
2718
- this.polyline = polyline;
2712
+ class TimelineScrollableDirective {
2713
+ constructor(timelineScrollableContainer, scrollService, zone) {
2714
+ this.timelineScrollableContainer = timelineScrollableContainer;
2715
+ this.scrollService = scrollService;
2719
2716
  this.zone = zone;
2720
- this.renderer = renderer;
2721
- this.mapper = mapper;
2722
- this.dependencyDomService = dependencyDomService;
2723
2717
  this.subscriptions = new Subscription();
2724
- this.subscriptions.add(dependencyDomService.taskChanges
2725
- .pipe(switchMap(changes =>
2726
- // reacts only on the very last event emission,
2727
- // ensures that the tasks are drawn in the DOM
2728
- this.zone.onStable.pipe(take(1), map(() => changes))))
2729
- .subscribe(changes => this.updatePoints(changes)));
2718
+ this.subscriptions.add(this.scrollService.horizontalScroll
2719
+ .subscribe(this.scrollHorizontallyTo.bind(this)));
2720
+ this.subscriptions.add(this.scrollService.verticalScroll
2721
+ .subscribe(this.scrollVerticallyTo.bind(this)));
2722
+ this.subscriptions.add(this.scrollService.scrollCancel
2723
+ .subscribe(this.cancelScroll.bind(this)));
2730
2724
  }
2731
2725
  ngOnDestroy() {
2732
2726
  this.subscriptions.unsubscribe();
2733
2727
  }
2734
- ngOnChanges(changes) {
2735
- if (isPresent(changes['dependency'])) {
2736
- this.updatePoints(this.dependencyDomService.dependencyDomArgs);
2737
- }
2738
- }
2739
- updatePoints({ timelineRow, contentContainer, tasks }) {
2740
- if (!isPresent(timelineRow) || !isPresent(contentContainer) ||
2741
- !isPresent(tasks) || tasks.size === 0 ||
2742
- !tasks.has(this.mapper.extractFromDependency(this.dependency, 'fromId')) || !tasks.has(this.mapper.extractFromDependency(this.dependency, 'toId'))) {
2743
- this.clearPoints();
2744
- return;
2745
- }
2746
- const fromCoordinates = getElementRect(tasks.get(this.mapper.extractFromDependency(this.dependency, 'fromId')), contentContainer);
2747
- const toCoordinates = getElementRect(tasks.get(this.mapper.extractFromDependency(this.dependency, 'toId')), contentContainer);
2748
- const timelineRowHeight = isDocumentAvailable() ? timelineRow.getBoundingClientRect().height : 0;
2749
- const points = dependencyCoordinates(fromCoordinates, toCoordinates, timelineRowHeight, this.dependency.type, MIN_DISTANCE_BEFORE_TURN, ARROW_SIZE);
2750
- this.drawPoints(points);
2728
+ scrollHorizontallyTo(left) {
2729
+ this.zone.runOutsideAngular(() => {
2730
+ const container = this.timelineScrollableContainer.nativeElement;
2731
+ const visibleBoundaries = getViewportBoundaries(container);
2732
+ if (left < visibleBoundaries.left + this.scrollSettings.threshold) {
2733
+ this.horizontalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Backwards, ScrollAxis.Horizontal), this.scrollSettings.interval);
2734
+ }
2735
+ else if (left > visibleBoundaries.right - this.scrollSettings.threshold) {
2736
+ this.horizontalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Forward, ScrollAxis.Horizontal), this.scrollSettings.interval);
2737
+ }
2738
+ });
2751
2739
  }
2752
- clearPoints() {
2753
- this.renderer.setAttribute(this.polyline.nativeElement, 'points', '');
2740
+ scrollVerticallyTo(top) {
2741
+ this.zone.runOutsideAngular(() => {
2742
+ const container = this.timelineScrollableContainer.nativeElement;
2743
+ const visibleBoundaries = getViewportBoundaries(container);
2744
+ if (top < visibleBoundaries.top + this.scrollSettings.threshold) {
2745
+ this.verticalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Backwards, ScrollAxis.Vertical), this.scrollSettings.interval);
2746
+ }
2747
+ else if (top > visibleBoundaries.bottom - this.scrollSettings.threshold) {
2748
+ this.verticalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Forward, ScrollAxis.Vertical), this.scrollSettings.interval);
2749
+ }
2750
+ });
2754
2751
  }
2755
- drawPoints(points) {
2756
- if (!isPresent(points) || points.length === 0) {
2757
- this.clearPoints();
2758
- return;
2752
+ cancelScroll() {
2753
+ if (isPresent(this.verticalScrollInterval)) {
2754
+ clearInterval(this.verticalScrollInterval);
2755
+ this.verticalScrollInterval = null;
2756
+ }
2757
+ if (isPresent(this.horizontalScrollInterval)) {
2758
+ clearInterval(this.horizontalScrollInterval);
2759
+ this.horizontalScrollInterval = null;
2759
2760
  }
2760
- const parsedCoords = points.map(({ left, top }) => `${left},${top}`).join(' ');
2761
- this.renderer.setAttribute(this.polyline.nativeElement, 'points', parsedCoords);
2762
2761
  }
2763
2762
  }
2764
- GanttDependencyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttDependencyDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: MappingService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Directive });
2765
- GanttDependencyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GanttDependencyDirective, selector: "[kendoGanttDependency]", inputs: { dependency: "dependency" }, usesOnChanges: true, ngImport: i0 });
2766
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttDependencyDirective, decorators: [{
2763
+ TimelineScrollableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineScrollableDirective, deps: [{ token: i0.ElementRef }, { token: TimelineScrollService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
2764
+ TimelineScrollableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: TimelineScrollableDirective, selector: "[kendoGanttTimelineScrollable]", inputs: { scrollSettings: "scrollSettings" }, ngImport: i0 });
2765
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineScrollableDirective, decorators: [{
2767
2766
  type: Directive,
2768
2767
  args: [{
2769
- selector: '[kendoGanttDependency]'
2768
+ selector: '[kendoGanttTimelineScrollable]'
2770
2769
  }]
2771
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: MappingService }, { type: DependencyDomService }]; }, propDecorators: { dependency: [{
2770
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: TimelineScrollService }, { type: i0.NgZone }]; }, propDecorators: { scrollSettings: [{
2772
2771
  type: Input
2773
2772
  }] } });
2774
2773
 
@@ -2840,8 +2839,8 @@ class GanttTimelineComponent {
2840
2839
  });
2841
2840
  }
2842
2841
  }
2843
- GanttTimelineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTimelineComponent, deps: [{ token: ScrollSyncService }, { token: DependencyDomService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: CurrentTimeMarkerService }], target: i0.ɵɵFactoryTarget.Component });
2844
- GanttTimelineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GanttTimelineComponent, 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: `
2842
+ GanttTimelineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttTimelineComponent, deps: [{ token: ScrollSyncService }, { token: DependencyDomService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: CurrentTimeMarkerService }], target: i0.ɵɵFactoryTarget.Component });
2843
+ GanttTimelineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: GanttTimelineComponent, 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: `
2845
2844
  <div class="k-gantt-timeline k-grid k-grid-md">
2846
2845
  <div class="k-grid-header">
2847
2846
  <div #timelineHeaderWrap class="k-grid-header-wrap">
@@ -2944,8 +2943,8 @@ GanttTimelineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
2944
2943
  <ng-container #dragPopupContainer></ng-container>
2945
2944
  </div>
2946
2945
  </div>
2947
- `, isInline: true, components: [{ type: GanttHeaderTableBodyComponent, selector: "[kendoGanttHeaderTableBody]", inputs: ["groupSlots", "slots"] }, { type: GanttTasksTableBodyComponent, selector: "[kendoGanttTasksTableBody]", inputs: ["selectable", "rows", "activeView", "taskContentTemplate", "taskTemplate", "summaryTaskTemplate", "taskClass", "isExpanded", "isTaskSelected", "renderDependencyDragClues"] }], directives: [{ type: TimelineScrollableDirective, selector: "[kendoGanttTimelineScrollable]", inputs: ["scrollSettings"] }, { type: i17.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: GanttDependencyDirective, selector: "[kendoGanttDependency]", inputs: ["dependency"] }] });
2948
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTimelineComponent, decorators: [{
2946
+ `, isInline: true, dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i11.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "component", type: GanttTasksTableBodyComponent, selector: "[kendoGanttTasksTableBody]", inputs: ["selectable", "rows", "activeView", "taskContentTemplate", "taskTemplate", "summaryTaskTemplate", "taskClass", "isExpanded", "isTaskSelected", "renderDependencyDragClues"] }, { kind: "component", type: GanttHeaderTableBodyComponent, selector: "[kendoGanttHeaderTableBody]", inputs: ["groupSlots", "slots"] }, { kind: "directive", type: GanttDependencyDirective, selector: "[kendoGanttDependency]", inputs: ["dependency"] }, { kind: "directive", type: TimelineScrollableDirective, selector: "[kendoGanttTimelineScrollable]", inputs: ["scrollSettings"] }] });
2947
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttTimelineComponent, decorators: [{
2949
2948
  type: Component,
2950
2949
  args: [{
2951
2950
  selector: 'kendo-gantt-timeline',
@@ -3129,9 +3128,9 @@ class GanttColumnBase extends ColumnBase {
3129
3128
  return super.locked;
3130
3129
  }
3131
3130
  }
3132
- GanttColumnBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttColumnBase, deps: null, target: i0.ɵɵFactoryTarget.Component });
3133
- GanttColumnBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", 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 });
3134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttColumnBase, decorators: [{
3131
+ GanttColumnBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttColumnBase, deps: null, target: i0.ɵɵFactoryTarget.Component });
3132
+ GanttColumnBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", 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 });
3133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttColumnBase, decorators: [{
3135
3134
  type: Component,
3136
3135
  args: [{
3137
3136
  template: '',
@@ -3182,9 +3181,9 @@ class CellTemplateDirective {
3182
3181
  this.templateRef = templateRef;
3183
3182
  }
3184
3183
  }
3185
- CellTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3186
- CellTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: CellTemplateDirective, selector: "[kendoGanttCellTemplate]", ngImport: i0 });
3187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellTemplateDirective, decorators: [{
3184
+ CellTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CellTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3185
+ CellTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: CellTemplateDirective, selector: "[kendoGanttCellTemplate]", ngImport: i0 });
3186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CellTemplateDirective, decorators: [{
3188
3187
  type: Directive,
3189
3188
  args: [{
3190
3189
  selector: '[kendoGanttCellTemplate]'
@@ -3208,9 +3207,9 @@ class ColumnMenuTemplateDirective {
3208
3207
  this.templateRef = templateRef;
3209
3208
  }
3210
3209
  }
3211
- ColumnMenuTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3212
- ColumnMenuTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: ColumnMenuTemplateDirective, selector: "[kendoGanttColumnMenuTemplate]", ngImport: i0 });
3213
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuTemplateDirective, decorators: [{
3210
+ ColumnMenuTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ColumnMenuTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3211
+ ColumnMenuTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: ColumnMenuTemplateDirective, selector: "[kendoGanttColumnMenuTemplate]", ngImport: i0 });
3212
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ColumnMenuTemplateDirective, decorators: [{
3214
3213
  type: Directive,
3215
3214
  args: [{
3216
3215
  selector: '[kendoGanttColumnMenuTemplate]'
@@ -3233,9 +3232,9 @@ class FilterCellTemplateDirective {
3233
3232
  this.templateRef = templateRef;
3234
3233
  }
3235
3234
  }
3236
- FilterCellTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterCellTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3237
- FilterCellTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FilterCellTemplateDirective, selector: "[kendoGanttFilterCellTemplate]", ngImport: i0 });
3238
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterCellTemplateDirective, decorators: [{
3235
+ FilterCellTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FilterCellTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3236
+ FilterCellTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: FilterCellTemplateDirective, selector: "[kendoGanttFilterCellTemplate]", ngImport: i0 });
3237
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FilterCellTemplateDirective, decorators: [{
3239
3238
  type: Directive,
3240
3239
  args: [{
3241
3240
  selector: '[kendoGanttFilterCellTemplate]'
@@ -3257,9 +3256,9 @@ class FilterMenuTemplateDirective {
3257
3256
  this.templateRef = templateRef;
3258
3257
  }
3259
3258
  }
3260
- FilterMenuTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3261
- FilterMenuTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FilterMenuTemplateDirective, selector: "[kendoGanttFilterMenuTemplate]", ngImport: i0 });
3262
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuTemplateDirective, decorators: [{
3259
+ FilterMenuTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FilterMenuTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3260
+ FilterMenuTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: FilterMenuTemplateDirective, selector: "[kendoGanttFilterMenuTemplate]", ngImport: i0 });
3261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FilterMenuTemplateDirective, decorators: [{
3263
3262
  type: Directive,
3264
3263
  args: [{
3265
3264
  selector: '[kendoGanttFilterMenuTemplate]'
@@ -3285,9 +3284,9 @@ class FooterTemplateDirective {
3285
3284
  this.templateRef = templateRef;
3286
3285
  }
3287
3286
  }
3288
- FooterTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FooterTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3289
- FooterTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FooterTemplateDirective, selector: "[kendoGanttFooterTemplate]", ngImport: i0 });
3290
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FooterTemplateDirective, decorators: [{
3287
+ FooterTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FooterTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3288
+ FooterTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: FooterTemplateDirective, selector: "[kendoGanttFooterTemplate]", ngImport: i0 });
3289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FooterTemplateDirective, decorators: [{
3291
3290
  type: Directive,
3292
3291
  args: [{
3293
3292
  selector: '[kendoGanttFooterTemplate]'
@@ -3311,9 +3310,9 @@ class HeaderTemplateDirective {
3311
3310
  this.templateRef = templateRef;
3312
3311
  }
3313
3312
  }
3314
- HeaderTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3315
- HeaderTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: HeaderTemplateDirective, selector: "[kendoGanttHeaderTemplate]", ngImport: i0 });
3316
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderTemplateDirective, decorators: [{
3313
+ HeaderTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: HeaderTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3314
+ HeaderTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: HeaderTemplateDirective, selector: "[kendoGanttHeaderTemplate]", ngImport: i0 });
3315
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: HeaderTemplateDirective, decorators: [{
3317
3316
  type: Directive,
3318
3317
  args: [{
3319
3318
  selector: '[kendoGanttHeaderTemplate]'
@@ -3341,9 +3340,9 @@ class EditTemplateDirective {
3341
3340
  this.templateRef = templateRef;
3342
3341
  }
3343
3342
  }
3344
- EditTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EditTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3345
- EditTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: EditTemplateDirective, selector: "[kendoGanttEditTemplate]", ngImport: i0 });
3346
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EditTemplateDirective, decorators: [{
3343
+ EditTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EditTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3344
+ EditTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: EditTemplateDirective, selector: "[kendoGanttEditTemplate]", ngImport: i0 });
3345
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EditTemplateDirective, decorators: [{
3347
3346
  type: Directive,
3348
3347
  args: [{
3349
3348
  selector: '[kendoGanttEditTemplate]'
@@ -3395,14 +3394,14 @@ class GanttColumnComponent extends ColumnComponent {
3395
3394
  this.options.notifyColumnChanges();
3396
3395
  }
3397
3396
  }
3398
- GanttColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttColumnComponent, deps: [{ token: OptionChangesService }, { token: GanttColumnBase, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
3399
- GanttColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GanttColumnComponent, 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: [
3397
+ GanttColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttColumnComponent, deps: [{ token: OptionChangesService }, { token: GanttColumnBase, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
3398
+ GanttColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: GanttColumnComponent, 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: [
3400
3399
  {
3401
3400
  provide: GanttColumnBase,
3402
3401
  useExisting: forwardRef(() => GanttColumnComponent)
3403
3402
  }
3404
3403
  ], 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 });
3405
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttColumnComponent, decorators: [{
3404
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttColumnComponent, decorators: [{
3406
3405
  type: Component,
3407
3406
  args: [{
3408
3407
  selector: 'kendo-gantt-column',
@@ -3507,14 +3506,14 @@ class GanttColumnGroupComponent extends ColumnGroupComponent {
3507
3506
  this.options.notifyColumnChanges();
3508
3507
  }
3509
3508
  }
3510
- GanttColumnGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttColumnGroupComponent, deps: [{ token: OptionChangesService }, { token: GanttColumnBase, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
3511
- GanttColumnGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GanttColumnGroupComponent, 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: [
3509
+ GanttColumnGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttColumnGroupComponent, deps: [{ token: OptionChangesService }, { token: GanttColumnBase, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
3510
+ GanttColumnGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: GanttColumnGroupComponent, 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: [
3512
3511
  {
3513
3512
  provide: GanttColumnBase,
3514
3513
  useExisting: forwardRef(() => GanttColumnGroupComponent)
3515
3514
  }
3516
3515
  ], queries: [{ propertyName: "children", predicate: GanttColumnBase }, { propertyName: "headerTemplates", predicate: HeaderTemplateDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
3517
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttColumnGroupComponent, decorators: [{
3516
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttColumnGroupComponent, decorators: [{
3518
3517
  type: Component,
3519
3518
  args: [{
3520
3519
  selector: 'kendo-gantt-column-group',
@@ -3610,14 +3609,14 @@ class GanttSpanColumnComponent extends SpanColumnComponent {
3610
3609
  this.options.notifyColumnChanges();
3611
3610
  }
3612
3611
  }
3613
- GanttSpanColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttSpanColumnComponent, deps: [{ token: OptionChangesService }, { token: GanttColumnBase, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
3614
- GanttSpanColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GanttSpanColumnComponent, 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: [
3612
+ GanttSpanColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttSpanColumnComponent, deps: [{ token: OptionChangesService }, { token: GanttColumnBase, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
3613
+ GanttSpanColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: GanttSpanColumnComponent, 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: [
3615
3614
  {
3616
3615
  provide: GanttColumnBase,
3617
3616
  useExisting: forwardRef(() => GanttSpanColumnComponent)
3618
3617
  }
3619
3618
  ], queries: [{ propertyName: "childColumns", predicate: GanttColumnComponent }, { propertyName: "template", predicate: CellTemplateDirective }, { propertyName: "editTemplate", predicate: EditTemplateDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
3620
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttSpanColumnComponent, decorators: [{
3619
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttSpanColumnComponent, decorators: [{
3621
3620
  type: Component,
3622
3621
  args: [{
3623
3622
  selector: 'kendo-gantt-span-column',
@@ -3713,9 +3712,9 @@ class GanttLocalizationService {
3713
3712
  return this.localizationService.get(token);
3714
3713
  }
3715
3714
  }
3716
- GanttLocalizationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttLocalizationService, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Injectable });
3717
- GanttLocalizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttLocalizationService });
3718
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttLocalizationService, decorators: [{
3715
+ GanttLocalizationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttLocalizationService, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Injectable });
3716
+ GanttLocalizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttLocalizationService });
3717
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttLocalizationService, decorators: [{
3719
3718
  type: Injectable
3720
3719
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
3721
3720
 
@@ -3768,9 +3767,9 @@ class GanttTaskTemplateDirective {
3768
3767
  this.templateRef = templateRef;
3769
3768
  }
3770
3769
  }
3771
- GanttTaskTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTaskTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3772
- GanttTaskTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GanttTaskTemplateDirective, selector: "[kendoGanttTaskTemplate]", ngImport: i0 });
3773
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTaskTemplateDirective, decorators: [{
3770
+ GanttTaskTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttTaskTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3771
+ GanttTaskTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: GanttTaskTemplateDirective, selector: "[kendoGanttTaskTemplate]", ngImport: i0 });
3772
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttTaskTemplateDirective, decorators: [{
3774
3773
  type: Directive,
3775
3774
  args: [{
3776
3775
  selector: '[kendoGanttTaskTemplate]'
@@ -3813,9 +3812,9 @@ class GanttSummaryTaskTemplateDirective {
3813
3812
  this.templateRef = templateRef;
3814
3813
  }
3815
3814
  }
3816
- GanttSummaryTaskTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttSummaryTaskTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3817
- GanttSummaryTaskTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GanttSummaryTaskTemplateDirective, selector: "[kendoGanttSummaryTaskTemplate]", ngImport: i0 });
3818
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttSummaryTaskTemplateDirective, decorators: [{
3815
+ GanttSummaryTaskTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttSummaryTaskTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3816
+ GanttSummaryTaskTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: GanttSummaryTaskTemplateDirective, selector: "[kendoGanttSummaryTaskTemplate]", ngImport: i0 });
3817
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttSummaryTaskTemplateDirective, decorators: [{
3819
3818
  type: Directive,
3820
3819
  args: [{
3821
3820
  selector: '[kendoGanttSummaryTaskTemplate]'
@@ -3853,9 +3852,9 @@ class GanttTaskContentTemplateDirective {
3853
3852
  this.templateRef = templateRef;
3854
3853
  }
3855
3854
  }
3856
- GanttTaskContentTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTaskContentTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3857
- GanttTaskContentTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GanttTaskContentTemplateDirective, selector: "[kendoGanttTaskContentTemplate]", ngImport: i0 });
3858
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTaskContentTemplateDirective, decorators: [{
3855
+ GanttTaskContentTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", 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.0.4", type: GanttTaskContentTemplateDirective, selector: "[kendoGanttTaskContentTemplate]", ngImport: i0 });
3857
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttTaskContentTemplateDirective, decorators: [{
3859
3858
  type: Directive,
3860
3859
  args: [{
3861
3860
  selector: '[kendoGanttTaskContentTemplate]'
@@ -3972,9 +3971,9 @@ class ToolbarTemplateDirective {
3972
3971
  return this._position;
3973
3972
  }
3974
3973
  }
3975
- ToolbarTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ToolbarTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3976
- ToolbarTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: ToolbarTemplateDirective, selector: "[kendoGanttToolbarTemplate]", inputs: { position: "position" }, ngImport: i0 });
3977
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ToolbarTemplateDirective, decorators: [{
3974
+ ToolbarTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ToolbarTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3975
+ ToolbarTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: ToolbarTemplateDirective, selector: "[kendoGanttToolbarTemplate]", inputs: { position: "position" }, ngImport: i0 });
3976
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ToolbarTemplateDirective, decorators: [{
3978
3977
  type: Directive,
3979
3978
  args: [{
3980
3979
  selector: '[kendoGanttToolbarTemplate]'
@@ -4014,9 +4013,9 @@ class ViewBase {
4014
4013
  }
4015
4014
  }
4016
4015
  }
4017
- ViewBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewBase, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Directive });
4018
- ViewBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: ViewBase, selector: "kendo-gantt-view-base", inputs: { slotWidth: "slotWidth", timelineHeadersDateFormat: "timelineHeadersDateFormat", currentTimeMarker: "currentTimeMarker" }, usesOnChanges: true, ngImport: i0 });
4019
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewBase, decorators: [{
4016
+ ViewBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ViewBase, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Directive });
4017
+ ViewBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: ViewBase, selector: "kendo-gantt-view-base", inputs: { slotWidth: "slotWidth", timelineHeadersDateFormat: "timelineHeadersDateFormat", currentTimeMarker: "currentTimeMarker" }, usesOnChanges: true, ngImport: i0 });
4018
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ViewBase, decorators: [{
4020
4019
  type: Directive,
4021
4020
  args: [{
4022
4021
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -4058,12 +4057,99 @@ class ToolbarNavigationService {
4058
4057
  this.focusableContent[this.focusIndex].focus();
4059
4058
  }
4060
4059
  }
4061
- ToolbarNavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ToolbarNavigationService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
4062
- ToolbarNavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ToolbarNavigationService });
4063
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ToolbarNavigationService, decorators: [{
4060
+ ToolbarNavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ToolbarNavigationService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
4061
+ ToolbarNavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ToolbarNavigationService });
4062
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ToolbarNavigationService, decorators: [{
4064
4063
  type: Injectable
4065
4064
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
4066
4065
 
4066
+ /**
4067
+ * The Gantt ViewSelector component. Shows the currently active view type, and allows switching to another view type.
4068
+ */
4069
+ class ViewSelectorComponent {
4070
+ constructor(localizationService) {
4071
+ this.localizationService = localizationService;
4072
+ this.hostClass = true;
4073
+ /**
4074
+ * The currently active view type.
4075
+ * @default 'week'
4076
+ */
4077
+ this.activeView = 'week';
4078
+ /**
4079
+ * Fires each time the user selects a different view type. The event data contains the type of the newly selected view.
4080
+ */
4081
+ this.activeViewChange = new EventEmitter();
4082
+ }
4083
+ /**
4084
+ * @hidden
4085
+ */
4086
+ onClick(viewType) {
4087
+ if (viewType !== this.activeView) {
4088
+ this.activeViewChange.emit(viewType);
4089
+ }
4090
+ }
4091
+ /**
4092
+ * @hidden
4093
+ */
4094
+ getViewTypeText(viewType) {
4095
+ return this.localizationService.get(`${viewType}ViewText`);
4096
+ }
4097
+ /**
4098
+ * @hidden
4099
+ */
4100
+ onActiveViewChange(event) {
4101
+ this.activeViewChange.emit(event.target.value);
4102
+ }
4103
+ }
4104
+ ViewSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ViewSelectorComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4105
+ ViewSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ViewSelectorComponent, 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: `
4106
+ <select
4107
+ class="k-dropdownlist k-picker k-rounded-md k-views-dropdown"
4108
+ aria-label="View Selector"
4109
+ [value]="activeView"
4110
+ (change)="onActiveViewChange($event)">
4111
+ <option *ngFor="let view of views" [value]="view">{{getViewTypeText(view)}}</option>
4112
+ </select>
4113
+ <kendo-buttongroup class="k-gantt-views" selection="single" [navigable]="false">
4114
+ <button *ngFor="let view of views"
4115
+ kendoButton
4116
+ type="button"
4117
+ [selected]="view === activeView"
4118
+ (click)="onClick(view)">{{getViewTypeText(view)}}</button>
4119
+ </kendo-buttongroup>
4120
+ `, isInline: true, dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "component", type: i4.ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex", "navigable"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
4121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ViewSelectorComponent, decorators: [{
4122
+ type: Component,
4123
+ args: [{
4124
+ selector: 'kendo-gantt-view-selector',
4125
+ template: `
4126
+ <select
4127
+ class="k-dropdownlist k-picker k-rounded-md k-views-dropdown"
4128
+ aria-label="View Selector"
4129
+ [value]="activeView"
4130
+ (change)="onActiveViewChange($event)">
4131
+ <option *ngFor="let view of views" [value]="view">{{getViewTypeText(view)}}</option>
4132
+ </select>
4133
+ <kendo-buttongroup class="k-gantt-views" selection="single" [navigable]="false">
4134
+ <button *ngFor="let view of views"
4135
+ kendoButton
4136
+ type="button"
4137
+ [selected]="view === activeView"
4138
+ (click)="onClick(view)">{{getViewTypeText(view)}}</button>
4139
+ </kendo-buttongroup>
4140
+ `
4141
+ }]
4142
+ }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; }, propDecorators: { hostClass: [{
4143
+ type: HostBinding,
4144
+ args: ['class.k-gantt-views-wrapper']
4145
+ }], views: [{
4146
+ type: Input
4147
+ }], activeView: [{
4148
+ type: Input
4149
+ }], activeViewChange: [{
4150
+ type: Output
4151
+ }] } });
4152
+
4067
4153
  /**
4068
4154
  * The UI for adding new items to the Gantt.
4069
4155
  * Use it within a toolbar template to provide a custom icon or list of options.
@@ -4135,8 +4221,8 @@ class GanttAddTaskComponent {
4135
4221
  });
4136
4222
  }
4137
4223
  }
4138
- GanttAddTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttAddTaskComponent, deps: [{ token: i1$1.LocalizationService }, { token: EditService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
4139
- GanttAddTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GanttAddTaskComponent, selector: "kendo-gantt-add-task", inputs: { data: "data", icon: "icon", svgIcon: "svgIcon" }, ngImport: i0, template: `
4224
+ GanttAddTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttAddTaskComponent, deps: [{ token: i1$1.LocalizationService }, { token: EditService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
4225
+ GanttAddTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: GanttAddTaskComponent, selector: "kendo-gantt-add-task", inputs: { data: "data", icon: "icon", svgIcon: "svgIcon" }, ngImport: i0, template: `
4140
4226
  <kendo-dropdownbutton
4141
4227
  [data]="data"
4142
4228
  [icon]="icon"
@@ -4147,8 +4233,8 @@ GanttAddTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
4147
4233
  (open)="handleOpen($event)">
4148
4234
  {{ getText('addTaskText') }}
4149
4235
  </kendo-dropdownbutton>
4150
- `, isInline: true, components: [{ type: i2.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }], directives: [{ type: i17.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
4151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttAddTaskComponent, decorators: [{
4236
+ `, isInline: true, dependencies: [{ kind: "directive", type: i11.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: i4.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }] });
4237
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttAddTaskComponent, decorators: [{
4152
4238
  type: Component,
4153
4239
  args: [{
4154
4240
  selector: 'kendo-gantt-add-task',
@@ -4173,93 +4259,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4173
4259
  type: Input
4174
4260
  }] } });
4175
4261
 
4176
- /**
4177
- * The Gantt ViewSelector component. Shows the currently active view type, and allows switching to another view type.
4178
- */
4179
- class ViewSelectorComponent {
4180
- constructor(localizationService) {
4181
- this.localizationService = localizationService;
4182
- this.hostClass = true;
4183
- /**
4184
- * The currently active view type.
4185
- * @default 'week'
4186
- */
4187
- this.activeView = 'week';
4188
- /**
4189
- * Fires each time the user selects a different view type. The event data contains the type of the newly selected view.
4190
- */
4191
- this.activeViewChange = new EventEmitter();
4192
- }
4193
- /**
4194
- * @hidden
4195
- */
4196
- onClick(viewType) {
4197
- if (viewType !== this.activeView) {
4198
- this.activeViewChange.emit(viewType);
4199
- }
4200
- }
4201
- /**
4202
- * @hidden
4203
- */
4204
- getViewTypeText(viewType) {
4205
- return this.localizationService.get(`${viewType}ViewText`);
4206
- }
4207
- /**
4208
- * @hidden
4209
- */
4210
- onActiveViewChange(event) {
4211
- this.activeViewChange.emit(event.target.value);
4212
- }
4213
- }
4214
- ViewSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewSelectorComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4215
- ViewSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ViewSelectorComponent, 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: `
4216
- <select
4217
- class="k-dropdownlist k-picker k-rounded-md k-views-dropdown"
4218
- aria-label="View Selector"
4219
- [value]="activeView"
4220
- (change)="onActiveViewChange($event)">
4221
- <option *ngFor="let view of views" [value]="view">{{getViewTypeText(view)}}</option>
4222
- </select>
4223
- <kendo-buttongroup class="k-gantt-views" selection="single" [navigable]="false">
4224
- <button *ngFor="let view of views"
4225
- kendoButton
4226
- type="button"
4227
- [selected]="view === activeView"
4228
- (click)="onClick(view)">{{getViewTypeText(view)}}</button>
4229
- </kendo-buttongroup>
4230
- `, isInline: true, components: [{ type: i2.ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex", "navigable"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }, { type: i2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i8.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
4231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewSelectorComponent, decorators: [{
4232
- type: Component,
4233
- args: [{
4234
- selector: 'kendo-gantt-view-selector',
4235
- template: `
4236
- <select
4237
- class="k-dropdownlist k-picker k-rounded-md k-views-dropdown"
4238
- aria-label="View Selector"
4239
- [value]="activeView"
4240
- (change)="onActiveViewChange($event)">
4241
- <option *ngFor="let view of views" [value]="view">{{getViewTypeText(view)}}</option>
4242
- </select>
4243
- <kendo-buttongroup class="k-gantt-views" selection="single" [navigable]="false">
4244
- <button *ngFor="let view of views"
4245
- kendoButton
4246
- type="button"
4247
- [selected]="view === activeView"
4248
- (click)="onClick(view)">{{getViewTypeText(view)}}</button>
4249
- </kendo-buttongroup>
4250
- `
4251
- }]
4252
- }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; }, propDecorators: { hostClass: [{
4253
- type: HostBinding,
4254
- args: ['class.k-gantt-views-wrapper']
4255
- }], views: [{
4256
- type: Input
4257
- }], activeView: [{
4258
- type: Input
4259
- }], activeViewChange: [{
4260
- type: Output
4261
- }] } });
4262
-
4263
4262
  /**
4264
4263
  * @hidden
4265
4264
  */
@@ -4282,7 +4281,6 @@ class ToolbarComponent {
4282
4281
  this.navigationService.updateFocus();
4283
4282
  }
4284
4283
  }
4285
- ;
4286
4284
  arrowLeftListener() {
4287
4285
  if (this.navigable && isDocumentAvailable()) {
4288
4286
  this.navigationService.focusIndex--;
@@ -4328,8 +4326,8 @@ class ToolbarComponent {
4328
4326
  }
4329
4327
  }
4330
4328
  }
4331
- ToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ToolbarComponent, deps: [{ token: i0.ElementRef }, { token: ToolbarNavigationService }], target: i0.ɵɵFactoryTarget.Component });
4332
- ToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ToolbarComponent, 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: `
4329
+ ToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ToolbarComponent, deps: [{ token: i0.ElementRef }, { token: ToolbarNavigationService }], target: i0.ɵɵFactoryTarget.Component });
4330
+ ToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ToolbarComponent, 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: `
4333
4331
  <ng-container *ngIf="!renderTemplate">
4334
4332
  <kendo-gantt-add-task *ngIf="showAddTask"></kendo-gantt-add-task>
4335
4333
  <span class="k-spacer k-toolbar-spacer"></span>
@@ -4345,8 +4343,8 @@ ToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
4345
4343
  [ngTemplateOutletContext]="context"
4346
4344
  >
4347
4345
  </ng-template>
4348
- `, isInline: true, components: [{ type: GanttAddTaskComponent, selector: "kendo-gantt-add-task", inputs: ["data", "icon", "svgIcon"] }, { type: ViewSelectorComponent, selector: "kendo-gantt-view-selector", inputs: ["views", "activeView"], outputs: ["activeViewChange"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
4349
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ToolbarComponent, decorators: [{
4346
+ `, isInline: true, dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ViewSelectorComponent, selector: "kendo-gantt-view-selector", inputs: ["views", "activeView"], outputs: ["activeViewChange"] }, { kind: "component", type: GanttAddTaskComponent, selector: "kendo-gantt-add-task", inputs: ["data", "icon", "svgIcon"] }] });
4347
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ToolbarComponent, decorators: [{
4350
4348
  type: Component,
4351
4349
  args: [{
4352
4350
  selector: 'kendo-gantt-toolbar',
@@ -4402,95 +4400,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4402
4400
  type: Input
4403
4401
  }] } });
4404
4402
 
4405
- /**
4406
- * @hidden
4407
- */
4408
- class TaskFieldsComponent {
4409
- constructor(mapper, editService, localizationService) {
4410
- this.mapper = mapper;
4411
- this.editService = editService;
4412
- this.localizationService = localizationService;
4413
- }
4414
- /**
4415
- * @hidden
4416
- */
4417
- get formGroup() {
4418
- return this.editService.taskFormGroup;
4419
- }
4420
- getText(token) {
4421
- return this.localizationService.get(token);
4422
- }
4423
- }
4424
- TaskFieldsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskFieldsComponent, deps: [{ token: MappingService }, { token: EditService }, { token: GanttLocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4425
- TaskFieldsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TaskFieldsComponent, selector: "kendo-gantt-task-fields", ngImport: i0, template: `
4426
- <form class="k-form k-form-md" [formGroup]="formGroup">
4427
- <kendo-formfield *ngIf="formGroup.get(mapper.taskFields.title)">
4428
- <kendo-label [for]="title" [text]="getText('titleFieldInputLabel')"></kendo-label>
4429
- <input #title kendoTextBox [formControlName]="mapper.taskFields.title" />
4430
- </kendo-formfield>
4431
- <div class="k-hstack">
4432
- <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.start)">
4433
- <kendo-label [for]="start" [text]="getText('startFieldInputLabel')"></kendo-label>
4434
- <kendo-datetimepicker #start [formControlName]="mapper.taskFields.start"></kendo-datetimepicker>
4435
- </kendo-formfield>
4436
- <kendo-treelist-spacer></kendo-treelist-spacer>
4437
- <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.end)">
4438
- <kendo-label [for]="end" [text]="getText('endFieldInputLabel')"></kendo-label>
4439
- <kendo-datetimepicker #end [formControlName]="mapper.taskFields.end"></kendo-datetimepicker>
4440
- </kendo-formfield>
4441
- </div>
4442
- <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.completionRatio)">
4443
- <kendo-label [for]="completionRatio" [text]="getText('completionRatioFieldInputLabel')"></kendo-label>
4444
- <kendo-numerictextbox
4445
- #completionRatio
4446
- [formControlName]="mapper.taskFields.completionRatio"
4447
- [min]="0"
4448
- [max]="1"
4449
- [decimals]="2"
4450
- format="p2"
4451
- [step]="0.01"
4452
- ></kendo-numerictextbox>
4453
- </kendo-formfield>
4454
- </form>
4455
- `, isInline: true, components: [{ type: i4.FormFieldComponent, selector: "kendo-formfield", inputs: ["showHints", "orientation", "showErrors"] }, { type: i5.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { type: i6$1.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", "autoFill", "adaptiveMode", "inputAttributes", "defaultTab", "size", "rounded", "fillMode", "headerTemplate", "footerTemplate", "footer"], outputs: ["valueChange", "open", "close", "focus", "blur"], exportAs: ["kendo-datetimepicker"] }, { type: i12.TreeListSpacerComponent, selector: "kendo-treelist-spacer, kendo-treelist-pager-spacer", inputs: ["width"] }, { type: i4.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"] }], directives: [{ type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
4456
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskFieldsComponent, decorators: [{
4457
- type: Component,
4458
- args: [{
4459
- selector: 'kendo-gantt-task-fields',
4460
- template: `
4461
- <form class="k-form k-form-md" [formGroup]="formGroup">
4462
- <kendo-formfield *ngIf="formGroup.get(mapper.taskFields.title)">
4463
- <kendo-label [for]="title" [text]="getText('titleFieldInputLabel')"></kendo-label>
4464
- <input #title kendoTextBox [formControlName]="mapper.taskFields.title" />
4465
- </kendo-formfield>
4466
- <div class="k-hstack">
4467
- <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.start)">
4468
- <kendo-label [for]="start" [text]="getText('startFieldInputLabel')"></kendo-label>
4469
- <kendo-datetimepicker #start [formControlName]="mapper.taskFields.start"></kendo-datetimepicker>
4470
- </kendo-formfield>
4471
- <kendo-treelist-spacer></kendo-treelist-spacer>
4472
- <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.end)">
4473
- <kendo-label [for]="end" [text]="getText('endFieldInputLabel')"></kendo-label>
4474
- <kendo-datetimepicker #end [formControlName]="mapper.taskFields.end"></kendo-datetimepicker>
4475
- </kendo-formfield>
4476
- </div>
4477
- <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.completionRatio)">
4478
- <kendo-label [for]="completionRatio" [text]="getText('completionRatioFieldInputLabel')"></kendo-label>
4479
- <kendo-numerictextbox
4480
- #completionRatio
4481
- [formControlName]="mapper.taskFields.completionRatio"
4482
- [min]="0"
4483
- [max]="1"
4484
- [decimals]="2"
4485
- format="p2"
4486
- [step]="0.01"
4487
- ></kendo-numerictextbox>
4488
- </kendo-formfield>
4489
- </form>
4490
- `
4491
- }]
4492
- }], ctorParameters: function () { return [{ type: MappingService }, { type: EditService }, { type: GanttLocalizationService }]; } });
4493
-
4494
4403
  /**
4495
4404
  * @hidden
4496
4405
  */
@@ -4575,8 +4484,8 @@ class DependenciesTableComponent {
4575
4484
  this.formGroups.removeAt(selectedIndex);
4576
4485
  }
4577
4486
  }
4578
- DependenciesTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DependenciesTableComponent, deps: [{ token: MappingService }, { token: EditService }, { token: GanttLocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4579
- DependenciesTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DependenciesTableComponent, selector: "kendo-gantt-dependencies-table", inputs: { tasks: "tasks", dependencies: "dependencies", dependencyType: "dependencyType" }, outputs: { dependenciesChange: "dependenciesChange" }, ngImport: i0, template: `
4487
+ DependenciesTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DependenciesTableComponent, deps: [{ token: MappingService }, { token: EditService }, { token: GanttLocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4488
+ DependenciesTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DependenciesTableComponent, selector: "kendo-gantt-dependencies-table", inputs: { tasks: "tasks", dependencies: "dependencies", dependencyType: "dependencyType" }, outputs: { dependenciesChange: "dependenciesChange" }, ngImport: i0, template: `
4580
4489
  <kendo-grid
4581
4490
  [data]="dependencies"
4582
4491
  [selectable]="{ mode: 'single' }"
@@ -4628,8 +4537,8 @@ DependenciesTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
4628
4537
  </ng-template>
4629
4538
  </kendo-grid-column>
4630
4539
  </kendo-grid>
4631
- `, isInline: true, components: [{ type: i4$1.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", "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"] }, { type: i2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: i4$1.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { type: i6$2.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"] }], directives: [{ type: i4$1.SelectionDirective, selector: "[kendoGridSelectBy]" }, { type: i4$1.ToolbarTemplateDirective, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { type: i4$1.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
4632
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DependenciesTableComponent, decorators: [{
4540
+ `, isInline: true, dependencies: [{ kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: i6$1.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", "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: i6$1.ToolbarTemplateDirective, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { kind: "directive", type: i6$1.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "component", type: i6$1.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: i6$1.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "component", type: i7.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"] }] });
4541
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DependenciesTableComponent, decorators: [{
4633
4542
  type: Component,
4634
4543
  args: [{
4635
4544
  selector: 'kendo-gantt-dependencies-table',
@@ -4697,6 +4606,95 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4697
4606
  type: Output
4698
4607
  }] } });
4699
4608
 
4609
+ /**
4610
+ * @hidden
4611
+ */
4612
+ class TaskFieldsComponent {
4613
+ constructor(mapper, editService, localizationService) {
4614
+ this.mapper = mapper;
4615
+ this.editService = editService;
4616
+ this.localizationService = localizationService;
4617
+ }
4618
+ /**
4619
+ * @hidden
4620
+ */
4621
+ get formGroup() {
4622
+ return this.editService.taskFormGroup;
4623
+ }
4624
+ getText(token) {
4625
+ return this.localizationService.get(token);
4626
+ }
4627
+ }
4628
+ TaskFieldsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TaskFieldsComponent, deps: [{ token: MappingService }, { token: EditService }, { token: GanttLocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4629
+ TaskFieldsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TaskFieldsComponent, selector: "kendo-gantt-task-fields", ngImport: i0, template: `
4630
+ <form class="k-form k-form-md" [formGroup]="formGroup">
4631
+ <kendo-formfield *ngIf="formGroup.get(mapper.taskFields.title)">
4632
+ <kendo-label [for]="title" [text]="getText('titleFieldInputLabel')"></kendo-label>
4633
+ <input #title kendoTextBox [formControlName]="mapper.taskFields.title" />
4634
+ </kendo-formfield>
4635
+ <div class="k-hstack">
4636
+ <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.start)">
4637
+ <kendo-label [for]="start" [text]="getText('startFieldInputLabel')"></kendo-label>
4638
+ <kendo-datetimepicker #start [formControlName]="mapper.taskFields.start"></kendo-datetimepicker>
4639
+ </kendo-formfield>
4640
+ <kendo-treelist-spacer></kendo-treelist-spacer>
4641
+ <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.end)">
4642
+ <kendo-label [for]="end" [text]="getText('endFieldInputLabel')"></kendo-label>
4643
+ <kendo-datetimepicker #end [formControlName]="mapper.taskFields.end"></kendo-datetimepicker>
4644
+ </kendo-formfield>
4645
+ </div>
4646
+ <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.completionRatio)">
4647
+ <kendo-label [for]="completionRatio" [text]="getText('completionRatioFieldInputLabel')"></kendo-label>
4648
+ <kendo-numerictextbox
4649
+ #completionRatio
4650
+ [formControlName]="mapper.taskFields.completionRatio"
4651
+ [min]="0"
4652
+ [max]="1"
4653
+ [decimals]="2"
4654
+ format="p2"
4655
+ [step]="0.01"
4656
+ ></kendo-numerictextbox>
4657
+ </kendo-formfield>
4658
+ </form>
4659
+ `, isInline: true, dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6$2.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "directive", type: i7$1.TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { kind: "component", type: i7$1.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"] }, { kind: "component", type: i7$1.FormFieldComponent, selector: "kendo-formfield", inputs: ["showHints", "orientation", "showErrors"] }, { kind: "component", type: i8.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", "autoFill", "adaptiveMode", "inputAttributes", "defaultTab", "size", "rounded", "fillMode", "headerTemplate", "footerTemplate", "footer"], outputs: ["valueChange", "open", "close", "focus", "blur"], exportAs: ["kendo-datetimepicker"] }, { kind: "component", type: i14.TreeListSpacerComponent, selector: "kendo-treelist-spacer, kendo-treelist-pager-spacer", inputs: ["width"] }] });
4660
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TaskFieldsComponent, decorators: [{
4661
+ type: Component,
4662
+ args: [{
4663
+ selector: 'kendo-gantt-task-fields',
4664
+ template: `
4665
+ <form class="k-form k-form-md" [formGroup]="formGroup">
4666
+ <kendo-formfield *ngIf="formGroup.get(mapper.taskFields.title)">
4667
+ <kendo-label [for]="title" [text]="getText('titleFieldInputLabel')"></kendo-label>
4668
+ <input #title kendoTextBox [formControlName]="mapper.taskFields.title" />
4669
+ </kendo-formfield>
4670
+ <div class="k-hstack">
4671
+ <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.start)">
4672
+ <kendo-label [for]="start" [text]="getText('startFieldInputLabel')"></kendo-label>
4673
+ <kendo-datetimepicker #start [formControlName]="mapper.taskFields.start"></kendo-datetimepicker>
4674
+ </kendo-formfield>
4675
+ <kendo-treelist-spacer></kendo-treelist-spacer>
4676
+ <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.end)">
4677
+ <kendo-label [for]="end" [text]="getText('endFieldInputLabel')"></kendo-label>
4678
+ <kendo-datetimepicker #end [formControlName]="mapper.taskFields.end"></kendo-datetimepicker>
4679
+ </kendo-formfield>
4680
+ </div>
4681
+ <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.completionRatio)">
4682
+ <kendo-label [for]="completionRatio" [text]="getText('completionRatioFieldInputLabel')"></kendo-label>
4683
+ <kendo-numerictextbox
4684
+ #completionRatio
4685
+ [formControlName]="mapper.taskFields.completionRatio"
4686
+ [min]="0"
4687
+ [max]="1"
4688
+ [decimals]="2"
4689
+ format="p2"
4690
+ [step]="0.01"
4691
+ ></kendo-numerictextbox>
4692
+ </kendo-formfield>
4693
+ </form>
4694
+ `
4695
+ }]
4696
+ }], ctorParameters: function () { return [{ type: MappingService }, { type: EditService }, { type: GanttLocalizationService }]; } });
4697
+
4700
4698
  /**
4701
4699
  * @hidden
4702
4700
  */
@@ -4740,8 +4738,8 @@ class EditDialogComponent {
4740
4738
  this.editService.taskDelete.next(this.editService.dataItem);
4741
4739
  }
4742
4740
  }
4743
- EditDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EditDialogComponent, deps: [{ token: MappingService }, { token: EditService }, { token: i0.ChangeDetectorRef }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4744
- EditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: EditDialogComponent, selector: "kendo-gantt-edit-dialog", inputs: { data: "data" }, ngImport: i0, template: `
4741
+ EditDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EditDialogComponent, deps: [{ token: MappingService }, { token: EditService }, { token: i0.ChangeDetectorRef }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4742
+ EditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: EditDialogComponent, selector: "kendo-gantt-edit-dialog", inputs: { data: "data" }, ngImport: i0, template: `
4745
4743
  <kendo-dialog
4746
4744
  [title]="getText('taskEditingDialogTitle')"
4747
4745
  [width]="575"
@@ -4812,8 +4810,8 @@ EditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
4812
4810
  </button>
4813
4811
  </kendo-dialog-actions>
4814
4812
  </kendo-dialog>
4815
- `, isInline: true, components: [{ type: i4$2.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { type: i5$1.TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "closeIcon", "closeIconClass", "closeSVGIcon", "showContentArea"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { type: i5$1.TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { type: TaskFieldsComponent, selector: "kendo-gantt-task-fields" }, { type: DependenciesTableComponent, selector: "kendo-gantt-dependencies-table", inputs: ["tasks", "dependencies", "dependencyType"], outputs: ["dependenciesChange"] }, { type: i4$2.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { type: i2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: i12.TreeListSpacerComponent, selector: "kendo-treelist-spacer, kendo-treelist-pager-spacer", inputs: ["width"] }], directives: [{ type: i4$2.CustomMessagesComponent, selector: "kendo-dialog-messages, kendo-window-messages" }, { type: i5$1.TabContentDirective, selector: "[kendoTabContent]" }, { type: i17.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
4816
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EditDialogComponent, decorators: [{
4813
+ `, isInline: true, dependencies: [{ kind: "directive", type: i11.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: i14.TreeListSpacerComponent, selector: "kendo-treelist-spacer, kendo-treelist-pager-spacer", inputs: ["width"] }, { kind: "component", type: i7$2.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: i7$2.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "directive", type: i7$2.CustomMessagesComponent, selector: "kendo-dialog-messages, kendo-window-messages" }, { kind: "component", type: i8$1.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: i8$1.TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { kind: "directive", type: i8$1.TabContentDirective, selector: "[kendoTabContent]" }, { kind: "component", type: DependenciesTableComponent, selector: "kendo-gantt-dependencies-table", inputs: ["tasks", "dependencies", "dependencyType"], outputs: ["dependenciesChange"] }, { kind: "component", type: TaskFieldsComponent, selector: "kendo-gantt-task-fields" }] });
4814
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EditDialogComponent, decorators: [{
4817
4815
  type: Component,
4818
4816
  args: [{
4819
4817
  selector: 'kendo-gantt-edit-dialog',
@@ -4899,9 +4897,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4899
4897
  */
4900
4898
  class Messages extends ComponentMessages {
4901
4899
  }
4902
- Messages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
4903
- Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.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 });
4904
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Messages, decorators: [{
4900
+ Messages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
4901
+ Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", 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 });
4902
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: Messages, decorators: [{
4905
4903
  type: Directive,
4906
4904
  args: [{
4907
4905
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -5054,14 +5052,14 @@ class LocalizedMessagesDirective extends Messages {
5054
5052
  this.service = service;
5055
5053
  }
5056
5054
  }
5057
- LocalizedMessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
5058
- LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: LocalizedMessagesDirective, selector: "[kendoGanttLocalizedMessages]", providers: [
5055
+ LocalizedMessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
5056
+ LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: LocalizedMessagesDirective, selector: "[kendoGanttLocalizedMessages]", providers: [
5059
5057
  {
5060
5058
  provide: Messages,
5061
5059
  useExisting: forwardRef(() => LocalizedMessagesDirective)
5062
5060
  }
5063
5061
  ], usesInheritance: true, ngImport: i0 });
5064
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
5062
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
5065
5063
  type: Directive,
5066
5064
  args: [{
5067
5065
  providers: [
@@ -6345,8 +6343,8 @@ class GanttComponent {
6345
6343
  }
6346
6344
  }
6347
6345
  }
6348
- GanttComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.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 });
6349
- GanttComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GanttComponent, 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: [
6346
+ GanttComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", 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 });
6347
+ GanttComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: GanttComponent, 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: [
6350
6348
  GanttLocalizationService,
6351
6349
  LocalizationService,
6352
6350
  {
@@ -6742,8 +6740,8 @@ GanttComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
6742
6740
  </kendo-dialog>
6743
6741
 
6744
6742
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
6745
- `, isInline: true, components: [{ type: ToolbarComponent, selector: "kendo-gantt-toolbar", inputs: ["showAddTask", "showViewSelector", "views", "activeView", "toolbarTemplate", "navigable", "position"], outputs: ["activeViewChange"] }, { type: i5$1.SplitterComponent, selector: "kendo-splitter", inputs: ["orientation", "splitbarWidth", "resizeStep"], outputs: ["layoutChange"], exportAs: ["kendoSplitter"] }, { type: i5$1.SplitterPaneComponent, selector: "kendo-splitter-pane", inputs: ["order", "size", "separatorLabel", "min", "max", "resizable", "collapsible", "scrollable", "collapsed", "orientation", "containsSplitter", "overlayContent"], outputs: ["sizeChange", "collapsedChange"], exportAs: ["kendoSplitterPane"] }, { type: i12.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"] }, { type: i12.CustomMessagesComponent, selector: "kendo-treelist-messages" }, { 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"] }, { type: EditDialogComponent, selector: "kendo-gantt-edit-dialog", inputs: ["data"] }, { type: i4$2.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { type: i4$2.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { type: i12.TreeListSpacerComponent, selector: "kendo-treelist-spacer, kendo-treelist-pager-spacer", inputs: ["width"] }, { type: i2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: i17.WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoGanttLocalizedMessages]" }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i17.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
6746
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttComponent, decorators: [{
6743
+ `, isInline: true, dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i11.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: i8$1.SplitterComponent, selector: "kendo-splitter", inputs: ["orientation", "splitbarWidth", "resizeStep"], outputs: ["layoutChange"], exportAs: ["kendoSplitter"] }, { kind: "component", type: i8$1.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: i14.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: "component", type: i14.TreeListSpacerComponent, selector: "kendo-treelist-spacer, kendo-treelist-pager-spacer", inputs: ["width"] }, { kind: "component", type: i14.CustomMessagesComponent, selector: "kendo-treelist-messages" }, { kind: "component", type: i7$2.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: i7$2.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: i11.WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }, { 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: ToolbarComponent, selector: "kendo-gantt-toolbar", inputs: ["showAddTask", "showViewSelector", "views", "activeView", "toolbarTemplate", "navigable", "position"], outputs: ["activeViewChange"] }, { kind: "component", type: EditDialogComponent, selector: "kendo-gantt-edit-dialog", inputs: ["data"] }, { kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGanttLocalizedMessages]" }] });
6744
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttComponent, decorators: [{
6747
6745
  type: Component,
6748
6746
  args: [{
6749
6747
  selector: 'kendo-gantt',
@@ -7319,9 +7317,9 @@ class GanttFlatBindingDirective extends FlatBindingDirective {
7319
7317
  super.aggregate = value;
7320
7318
  }
7321
7319
  }
7322
- GanttFlatBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttFlatBindingDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7323
- GanttFlatBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GanttFlatBindingDirective, selector: "[kendoGanttFlatBinding]", inputs: { data: ["kendoGanttFlatBinding", "data"] }, exportAs: ["kendoGanttFlatBinding"], usesInheritance: true, ngImport: i0 });
7324
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttFlatBindingDirective, decorators: [{
7320
+ GanttFlatBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttFlatBindingDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7321
+ GanttFlatBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: GanttFlatBindingDirective, selector: "[kendoGanttFlatBinding]", inputs: { data: ["kendoGanttFlatBinding", "data"] }, exportAs: ["kendoGanttFlatBinding"], usesInheritance: true, ngImport: i0 });
7322
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttFlatBindingDirective, decorators: [{
7325
7323
  type: Directive,
7326
7324
  args: [{
7327
7325
  selector: '[kendoGanttFlatBinding]',
@@ -7344,9 +7342,9 @@ class GanttHierarchyBindingDirective extends HierarchyBindingDirective {
7344
7342
  super.aggregate = value;
7345
7343
  }
7346
7344
  }
7347
- GanttHierarchyBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttHierarchyBindingDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7348
- GanttHierarchyBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GanttHierarchyBindingDirective, selector: "[kendoGanttHierarchyBinding]", inputs: { data: ["kendoGanttHierarchyBinding", "data"] }, exportAs: ["kendoGanttHierarchyBinding"], usesInheritance: true, ngImport: i0 });
7349
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttHierarchyBindingDirective, decorators: [{
7345
+ GanttHierarchyBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttHierarchyBindingDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7346
+ GanttHierarchyBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: GanttHierarchyBindingDirective, selector: "[kendoGanttHierarchyBinding]", inputs: { data: ["kendoGanttHierarchyBinding", "data"] }, exportAs: ["kendoGanttHierarchyBinding"], usesInheritance: true, ngImport: i0 });
7347
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttHierarchyBindingDirective, decorators: [{
7350
7348
  type: Directive,
7351
7349
  args: [{
7352
7350
  selector: '[kendoGanttHierarchyBinding]',
@@ -7371,9 +7369,9 @@ class GanttExpandableDirective extends ExpandableDirective {
7371
7369
  super.expandBy = value;
7372
7370
  }
7373
7371
  }
7374
- GanttExpandableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttExpandableDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7375
- GanttExpandableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GanttExpandableDirective, selector: "[kendoGanttExpandable]", inputs: { expandBy: "expandBy" }, exportAs: ["kendoGanttExpandable"], usesInheritance: true, ngImport: i0 });
7376
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttExpandableDirective, decorators: [{
7372
+ GanttExpandableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttExpandableDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7373
+ GanttExpandableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: GanttExpandableDirective, selector: "[kendoGanttExpandable]", inputs: { expandBy: "expandBy" }, exportAs: ["kendoGanttExpandable"], usesInheritance: true, ngImport: i0 });
7374
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttExpandableDirective, decorators: [{
7377
7375
  type: Directive,
7378
7376
  args: [{
7379
7377
  exportAs: 'kendoGanttExpandable',
@@ -7469,9 +7467,9 @@ class SelectableDirective {
7469
7467
  }
7470
7468
  }
7471
7469
  }
7472
- SelectableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SelectableDirective, deps: [{ token: GanttComponent }], target: i0.ɵɵFactoryTarget.Directive });
7473
- SelectableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SelectableDirective, selector: "[kendoGanttSelectable]", inputs: { selectable: "selectable", selectedKeys: "selectedKeys", itemKey: "itemKey" }, outputs: { selectedKeysChange: "selectedKeysChange" }, exportAs: ["kendoGanttSelectable"], ngImport: i0 });
7474
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SelectableDirective, decorators: [{
7470
+ SelectableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SelectableDirective, deps: [{ token: GanttComponent }], target: i0.ɵɵFactoryTarget.Directive });
7471
+ SelectableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: SelectableDirective, selector: "[kendoGanttSelectable]", inputs: { selectable: "selectable", selectedKeys: "selectedKeys", itemKey: "itemKey" }, outputs: { selectedKeysChange: "selectedKeysChange" }, exportAs: ["kendoGanttSelectable"], ngImport: i0 });
7472
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SelectableDirective, decorators: [{
7475
7473
  type: Directive,
7476
7474
  args: [{
7477
7475
  exportAs: 'kendoGanttSelectable',
@@ -7500,8 +7498,8 @@ class DragValidationTooltipComponent {
7500
7498
  this.isValid = false;
7501
7499
  }
7502
7500
  }
7503
- DragValidationTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DragValidationTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7504
- DragValidationTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DragValidationTooltipComponent, selector: "ng-component", ngImport: i0, template: `
7501
+ DragValidationTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DragValidationTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7502
+ DragValidationTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DragValidationTooltipComponent, selector: "ng-component", ngImport: i0, template: `
7505
7503
  <div
7506
7504
  class="k-tooltip k-gantt-tooltip-validation"
7507
7505
  [class.k-gantt-tooltip-valid]="showValidityStatus && isValid"
@@ -7517,7 +7515,7 @@ DragValidationTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
7517
7515
  </div>
7518
7516
  </div>
7519
7517
  `, isInline: true });
7520
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DragValidationTooltipComponent, decorators: [{
7518
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DragValidationTooltipComponent, decorators: [{
7521
7519
  type: Component,
7522
7520
  args: [{
7523
7521
  template: `
@@ -7832,9 +7830,9 @@ class DependencyDragCreateDirective {
7832
7830
  };
7833
7831
  }
7834
7832
  }
7835
- DependencyDragCreateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.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 });
7836
- DependencyDragCreateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: DependencyDragCreateDirective, selector: "[kendoGanttDependencyDragCreate]", inputs: { displayValidationTooltip: "displayValidationTooltip" }, ngImport: i0 });
7837
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DependencyDragCreateDirective, decorators: [{
7833
+ DependencyDragCreateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DependencyDragCreateDirective, deps: [{ token: GanttComponent }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: MappingService }, { token: i3.PopupService }, { token: TimelineScrollService }], target: i0.ɵɵFactoryTarget.Directive });
7834
+ DependencyDragCreateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: DependencyDragCreateDirective, selector: "[kendoGanttDependencyDragCreate]", inputs: { displayValidationTooltip: "displayValidationTooltip" }, ngImport: i0 });
7835
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DependencyDragCreateDirective, decorators: [{
7838
7836
  type: Directive,
7839
7837
  args: [{
7840
7838
  selector: '[kendoGanttDependencyDragCreate]'
@@ -7855,14 +7853,14 @@ class TimelineDayViewComponent extends ViewBase {
7855
7853
  this.type = 'day';
7856
7854
  }
7857
7855
  }
7858
- TimelineDayViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineDayViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
7859
- TimelineDayViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineDayViewComponent, selector: "kendo-gantt-timeline-day-view", providers: [
7856
+ TimelineDayViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineDayViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
7857
+ TimelineDayViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TimelineDayViewComponent, selector: "kendo-gantt-timeline-day-view", providers: [
7860
7858
  {
7861
7859
  provide: ViewBase,
7862
7860
  useExisting: forwardRef(() => TimelineDayViewComponent)
7863
7861
  }
7864
7862
  ], usesInheritance: true, ngImport: i0, template: '', isInline: true });
7865
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineDayViewComponent, decorators: [{
7863
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineDayViewComponent, decorators: [{
7866
7864
  type: Component,
7867
7865
  args: [{
7868
7866
  selector: 'kendo-gantt-timeline-day-view',
@@ -7888,14 +7886,14 @@ class TimelineWeekViewComponent extends ViewBase {
7888
7886
  this.type = 'week';
7889
7887
  }
7890
7888
  }
7891
- TimelineWeekViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
7892
- TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineWeekViewComponent, selector: "kendo-gantt-timeline-week-view", providers: [
7889
+ TimelineWeekViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineWeekViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
7890
+ TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TimelineWeekViewComponent, selector: "kendo-gantt-timeline-week-view", providers: [
7893
7891
  {
7894
7892
  provide: ViewBase,
7895
7893
  useExisting: forwardRef(() => TimelineWeekViewComponent)
7896
7894
  }
7897
7895
  ], usesInheritance: true, ngImport: i0, template: '', isInline: true });
7898
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewComponent, decorators: [{
7896
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineWeekViewComponent, decorators: [{
7899
7897
  type: Component,
7900
7898
  args: [{
7901
7899
  selector: 'kendo-gantt-timeline-week-view',
@@ -7921,14 +7919,14 @@ class TimelineMonthViewComponent extends ViewBase {
7921
7919
  this.type = 'month';
7922
7920
  }
7923
7921
  }
7924
- TimelineMonthViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
7925
- TimelineMonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineMonthViewComponent, selector: "kendo-gantt-timeline-month-view", providers: [
7922
+ TimelineMonthViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineMonthViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
7923
+ TimelineMonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TimelineMonthViewComponent, selector: "kendo-gantt-timeline-month-view", providers: [
7926
7924
  {
7927
7925
  provide: ViewBase,
7928
7926
  useExisting: forwardRef(() => TimelineMonthViewComponent)
7929
7927
  }
7930
7928
  ], usesInheritance: true, ngImport: i0, template: '', isInline: true });
7931
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewComponent, decorators: [{
7929
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineMonthViewComponent, decorators: [{
7932
7930
  type: Component,
7933
7931
  args: [{
7934
7932
  selector: 'kendo-gantt-timeline-month-view',
@@ -7954,14 +7952,14 @@ class TimelineYearViewComponent extends ViewBase {
7954
7952
  this.type = 'year';
7955
7953
  }
7956
7954
  }
7957
- TimelineYearViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineYearViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
7958
- TimelineYearViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineYearViewComponent, selector: "kendo-gantt-timeline-year-view", providers: [
7955
+ TimelineYearViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineYearViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
7956
+ TimelineYearViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TimelineYearViewComponent, selector: "kendo-gantt-timeline-year-view", providers: [
7959
7957
  {
7960
7958
  provide: ViewBase,
7961
7959
  useExisting: forwardRef(() => TimelineYearViewComponent)
7962
7960
  }
7963
7961
  ], usesInheritance: true, ngImport: i0, template: '', isInline: true });
7964
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineYearViewComponent, decorators: [{
7962
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineYearViewComponent, decorators: [{
7965
7963
  type: Component,
7966
7964
  args: [{
7967
7965
  selector: 'kendo-gantt-timeline-year-view',
@@ -7988,14 +7986,14 @@ class CustomMessagesComponent extends Messages {
7988
7986
  return true;
7989
7987
  }
7990
7988
  }
7991
- CustomMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CustomMessagesComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
7992
- CustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: CustomMessagesComponent, selector: "kendo-gantt-messages", providers: [
7989
+ CustomMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CustomMessagesComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
7990
+ CustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CustomMessagesComponent, selector: "kendo-gantt-messages", providers: [
7993
7991
  {
7994
7992
  provide: Messages,
7995
7993
  useExisting: forwardRef(() => CustomMessagesComponent)
7996
7994
  }
7997
7995
  ], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
7998
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CustomMessagesComponent, decorators: [{
7996
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CustomMessagesComponent, decorators: [{
7999
7997
  type: Component,
8000
7998
  args: [{
8001
7999
  providers: [
@@ -8106,8 +8104,8 @@ const DECLARATIONS = [
8106
8104
  */
8107
8105
  class GanttModule {
8108
8106
  }
8109
- GanttModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8110
- GanttModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttModule, declarations: [GanttComponent,
8107
+ GanttModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8108
+ GanttModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: GanttModule, declarations: [GanttComponent,
8111
8109
  GanttFlatBindingDirective,
8112
8110
  GanttHierarchyBindingDirective,
8113
8111
  GanttTaskComponent,
@@ -8206,14 +8204,14 @@ GanttModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "1
8206
8204
  TimelineScrollableDirective,
8207
8205
  DependenciesTableComponent,
8208
8206
  TaskFieldsComponent] });
8209
- GanttModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttModule, providers: [{
8207
+ GanttModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttModule, providers: [{
8210
8208
  provide: L10N_PREFIX,
8211
8209
  useValue: 'kendo.gantt'
8212
8210
  }, {
8213
8211
  provide: TOUCH_ENABLED,
8214
8212
  useValue: touchEnabled
8215
- }], imports: [[...IMPORTED_MODULES]] });
8216
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttModule, decorators: [{
8213
+ }], imports: [IMPORTED_MODULES] });
8214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttModule, decorators: [{
8217
8215
  type: NgModule,
8218
8216
  args: [{
8219
8217
  imports: [...IMPORTED_MODULES],