@progress/kendo-angular-gantt 16.0.0-develop.2 → 16.0.0-develop.5

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,12 +3,12 @@
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, Inject, LOCALE_ID, EventEmitter, 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, Inject, LOCALE_ID, EventEmitter, 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 { Subject, Subscription, fromEvent, forkJoin, EMPTY, isObservable, of } from 'rxjs';
10
10
  import { validatePackage } from '@progress/kendo-licensing';
11
- import * as i17 from '@progress/kendo-angular-common';
11
+ import * as i11 from '@progress/kendo-angular-common';
12
12
  import { Keys, isDocumentAvailable, closestInScope, matchesClasses, PreventableEvent, anyChanged, closest, isFocusable, focusableSelector, isVisible, shouldShowValidationUI, hasObservers, EventsModule, DraggableModule, WatermarkModule } from '@progress/kendo-angular-common';
13
13
  import { map, distinctUntilChanged, take, expand, reduce, switchMap, filter } from 'rxjs/operators';
14
14
  import { cloneDate, addWeeks, firstDayInWeek, addDays, lastDayOfMonth, getDate, firstDayOfMonth, addMonths, lastMonthOfYear, MS_PER_HOUR, MS_PER_DAY, isEqual } from '@progress/kendo-date-math';
@@ -20,28 +20,28 @@ import * as i1 from '@progress/kendo-angular-intl';
20
20
  import { IntlService, IntlModule } from '@progress/kendo-angular-intl';
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: 1714067677,
56
- version: '16.0.0-develop.2',
55
+ publishDate: 1714130115,
56
+ version: '16.0.0-develop.5',
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
 
@@ -511,9 +511,9 @@ class ScrollSyncService {
511
511
  });
512
512
  }
513
513
  }
514
- ScrollSyncService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ScrollSyncService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
515
- ScrollSyncService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ScrollSyncService });
516
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ScrollSyncService, decorators: [{
514
+ ScrollSyncService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ScrollSyncService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
515
+ ScrollSyncService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ScrollSyncService });
516
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ScrollSyncService, decorators: [{
517
517
  type: Injectable
518
518
  }], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
519
519
 
@@ -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
  var _a;
706
705
  return (_a = this.slots[0]) === null || _a === void 0 ? void 0 : _a.slotWidth;
@@ -729,54 +728,12 @@ class CurrentTimeMarkerService {
729
728
  }
730
729
  }
731
730
  }
732
- 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 });
733
- CurrentTimeMarkerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CurrentTimeMarkerService });
734
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CurrentTimeMarkerService, decorators: [{
731
+ 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 });
732
+ CurrentTimeMarkerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CurrentTimeMarkerService });
733
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CurrentTimeMarkerService, decorators: [{
735
734
  type: Injectable
736
735
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; } });
737
736
 
738
- /**
739
- * @hidden
740
- */
741
- class GanttHeaderTableBodyComponent {
742
- constructor() {
743
- this.tbodyClass = true;
744
- }
745
- }
746
- GanttHeaderTableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttHeaderTableBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
747
- 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: `
748
- <tr class="k-table-row">
749
- <td *ngFor="let item of groupSlots" [attr.colspan]="item.span" class="k-header k-table-td">{{ item.text }}</td>
750
- </tr>
751
-
752
- <tr class="k-table-row">
753
- <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>
754
- </tr>
755
- `, isInline: true, directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
756
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttHeaderTableBodyComponent, decorators: [{
757
- type: Component,
758
- args: [{
759
- // eslint-disable-next-line @angular-eslint/component-selector
760
- selector: '[kendoGanttHeaderTableBody]',
761
- template: `
762
- <tr class="k-table-row">
763
- <td *ngFor="let item of groupSlots" [attr.colspan]="item.span" class="k-header k-table-td">{{ item.text }}</td>
764
- </tr>
765
-
766
- <tr class="k-table-row">
767
- <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>
768
- </tr>
769
- `
770
- }]
771
- }], propDecorators: { tbodyClass: [{
772
- type: HostBinding,
773
- args: ['class.k-table-tbody']
774
- }], groupSlots: [{
775
- type: Input
776
- }], slots: [{
777
- type: Input
778
- }] } });
779
-
780
737
  /**
781
738
  * @hidden
782
739
  */
@@ -1033,9 +990,9 @@ class TimelineDayViewService extends TimelineBaseViewService {
1033
990
  return slots;
1034
991
  }
1035
992
  }
1036
- 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 });
1037
- TimelineDayViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineDayViewService });
1038
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineDayViewService, decorators: [{
993
+ 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 });
994
+ TimelineDayViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineDayViewService });
995
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineDayViewService, decorators: [{
1039
996
  type: Injectable
1040
997
  }], ctorParameters: function () {
1041
998
  return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
@@ -1095,9 +1052,9 @@ class TimelineMonthViewService extends TimelineBaseViewService {
1095
1052
  return slots;
1096
1053
  }
1097
1054
  }
1098
- 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 });
1099
- TimelineMonthViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewService });
1100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewService, decorators: [{
1055
+ 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 });
1056
+ TimelineMonthViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineMonthViewService });
1057
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineMonthViewService, decorators: [{
1101
1058
  type: Injectable
1102
1059
  }], ctorParameters: function () {
1103
1060
  return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
@@ -1153,9 +1110,9 @@ class TimelineWeekViewService extends TimelineBaseViewService {
1153
1110
  return slots;
1154
1111
  }
1155
1112
  }
1156
- 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 });
1157
- TimelineWeekViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewService });
1158
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewService, decorators: [{
1113
+ 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 });
1114
+ TimelineWeekViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineWeekViewService });
1115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineWeekViewService, decorators: [{
1159
1116
  type: Injectable
1160
1117
  }], ctorParameters: function () {
1161
1118
  return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
@@ -1206,9 +1163,9 @@ class TimeLineYearViewService extends TimelineBaseViewService {
1206
1163
  return slots;
1207
1164
  }
1208
1165
  }
1209
- 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 });
1210
- TimeLineYearViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimeLineYearViewService });
1211
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimeLineYearViewService, decorators: [{
1166
+ 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 });
1167
+ TimeLineYearViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimeLineYearViewService });
1168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimeLineYearViewService, decorators: [{
1212
1169
  type: Injectable
1213
1170
  }], ctorParameters: function () {
1214
1171
  return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
@@ -1239,9 +1196,9 @@ class TimelineViewService {
1239
1196
  return serviceType ? this.injector.get(serviceType) : null;
1240
1197
  }
1241
1198
  }
1242
- TimelineViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineViewService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
1243
- TimelineViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineViewService });
1244
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineViewService, decorators: [{
1199
+ TimelineViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineViewService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
1200
+ TimelineViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineViewService });
1201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineViewService, decorators: [{
1245
1202
  type: Injectable
1246
1203
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
1247
1204
 
@@ -1264,9 +1221,9 @@ class OptionChangesService {
1264
1221
  this.dateFormatChanges.emit();
1265
1222
  }
1266
1223
  }
1267
- OptionChangesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: OptionChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1268
- OptionChangesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: OptionChangesService });
1269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: OptionChangesService, decorators: [{
1224
+ OptionChangesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: OptionChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1225
+ OptionChangesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: OptionChangesService });
1226
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: OptionChangesService, decorators: [{
1270
1227
  type: Injectable
1271
1228
  }] });
1272
1229
 
@@ -1521,9 +1478,9 @@ class NavigationService {
1521
1478
  this.metadata.treeList.focus();
1522
1479
  }
1523
1480
  }
1524
- 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 });
1525
- NavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NavigationService });
1526
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NavigationService, decorators: [{
1481
+ 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 });
1482
+ NavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NavigationService });
1483
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NavigationService, decorators: [{
1527
1484
  type: Injectable
1528
1485
  }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.Renderer2 }, { type: ScrollSyncService }]; } });
1529
1486
 
@@ -1647,9 +1604,9 @@ class GanttTaskBase {
1647
1604
  }
1648
1605
  }
1649
1606
  }
1650
- 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 });
1651
- 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 });
1652
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTaskBase, decorators: [{
1607
+ 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 });
1608
+ 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 });
1609
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttTaskBase, decorators: [{
1653
1610
  type: Directive,
1654
1611
  args: [{
1655
1612
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -1688,30 +1645,184 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1688
1645
  /**
1689
1646
  * @hidden
1690
1647
  */
1691
- class GanttMilestoneTaskComponent extends GanttTaskBase {
1692
- constructor(touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
1648
+ class EditService {
1649
+ constructor(mapper) {
1650
+ this.mapper = mapper;
1651
+ this.showEditingDialog = new Subject();
1652
+ this.taskDelete = new Subject();
1653
+ this.editEvent = new Subject();
1654
+ this.addEvent = new Subject();
1655
+ this.predecessors = [];
1656
+ this.successors = [];
1657
+ this.updatedItems = [];
1658
+ this.deletedItems = [];
1659
+ this.itemIndex = (item, data) => {
1660
+ return data.findIndex(dataItem => this.mapper.extractFromTask(dataItem, 'id') === this.mapper.extractFromTask(item, 'id'));
1661
+ };
1662
+ }
1663
+ set dependencies(items) {
1664
+ // Can this whole thing be moved to edit-dialog? Dependencies might not be needed here
1665
+ const dataItemId = this.mapper.extractFromTask(this.dataItem, 'id');
1666
+ this.predecessors = items.filter(item => this.mapper.extractFromDependency(item, 'toId') === dataItemId);
1667
+ this.successors = items.filter(item => this.mapper.extractFromDependency(item, 'fromId') === dataItemId);
1668
+ }
1669
+ get dependencies() {
1670
+ return [...this.predecessors, ...this.successors];
1671
+ }
1672
+ createEditDialog(dataItem, taskFormGroup, dependencies) {
1673
+ this.dataItem = dataItem;
1674
+ this.taskFormGroup = taskFormGroup;
1675
+ this.dependencies = dependencies;
1676
+ this.showEditingDialog.next(true);
1677
+ }
1678
+ closeEditDialog() {
1679
+ this.showEditingDialog.next(false);
1680
+ this.dataItem = undefined;
1681
+ this.taskFormGroup = undefined;
1682
+ this.dependencies = [];
1683
+ this.updatedItems = [];
1684
+ this.deletedItems = [];
1685
+ }
1686
+ triggerEditEvent(editResultType) {
1687
+ this.editEvent.next({
1688
+ taskFormGroup: this.taskFormGroup,
1689
+ dataItem: this.dataItem,
1690
+ dependencies: {
1691
+ createdItems: this.getCreatedDependencies(),
1692
+ updatedItems: this.updatedItems,
1693
+ deletedItems: this.deletedItems
1694
+ },
1695
+ editResultType
1696
+ });
1697
+ }
1698
+ updateDependencies(item) {
1699
+ if (!this.isNew(item)) {
1700
+ // update
1701
+ const index = this.itemIndex(item, this.updatedItems);
1702
+ if (index !== -1) {
1703
+ this.updatedItems.splice(index, 1, item);
1704
+ }
1705
+ else {
1706
+ this.updatedItems.push(item);
1707
+ }
1708
+ }
1709
+ }
1710
+ getCreatedDependencies() {
1711
+ return this.dependencies.filter(item => this.mapper.extractFromDependency(item, 'id') === null);
1712
+ }
1713
+ deleteDependency(item) {
1714
+ const updatedIndex = this.itemIndex(item, this.updatedItems);
1715
+ if (updatedIndex !== -1) {
1716
+ this.updatedItems.splice(updatedIndex, 1);
1717
+ }
1718
+ if (!this.isNew(item)) {
1719
+ this.deletedItems.push(item);
1720
+ }
1721
+ }
1722
+ loadTasks(initialValues, isInitializer = true) {
1723
+ return forkJoin(initialValues.map(v => this.getElementById(v))).pipe(map((value) => value.reduce((acc, item) => acc = acc.concat(normalizeGanttData(item)), [])), expand(values => {
1724
+ if (values.some(el => this.hasChildren(el))) {
1725
+ return this.loadTasks(values, false);
1726
+ }
1727
+ return EMPTY;
1728
+ }), reduce((acc, values) => acc.concat(values), isInitializer ? [...initialValues] : []));
1729
+ }
1730
+ getElementById(item) {
1731
+ const children = this.fetchChildren(item);
1732
+ if (isObservable(children)) {
1733
+ return children;
1734
+ }
1735
+ return of(children);
1736
+ }
1737
+ isNew(item) {
1738
+ return !isPresent(this.mapper.extractFromDependency(item, 'id'));
1739
+ }
1740
+ }
1741
+ EditService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EditService, deps: [{ token: MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
1742
+ EditService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EditService });
1743
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EditService, decorators: [{
1744
+ type: Injectable
1745
+ }], ctorParameters: function () { return [{ type: MappingService }]; } });
1746
+
1747
+ /**
1748
+ * @hidden
1749
+ */
1750
+ class GanttTaskComponent extends GanttTaskBase {
1751
+ constructor(editService, touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
1693
1752
  super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
1753
+ this.editService = editService;
1694
1754
  this.touchEnabled = touchEnabled;
1695
- this.milestoneWrapperClass = true;
1755
+ this.xIcon = xIcon;
1756
+ }
1757
+ onTaskDelete() {
1758
+ this.editService.dataItem = this.dataItem;
1759
+ this.editService.taskDelete.next(this.dataItem);
1696
1760
  }
1697
1761
  }
1698
- 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 });
1699
- 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: [
1762
+ 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 });
1763
+ GanttTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: GanttTaskComponent, selector: "kendo-gantt-task", inputs: { taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate" }, providers: [
1700
1764
  {
1701
1765
  provide: GanttTaskBase,
1702
- useExisting: forwardRef(() => GanttMilestoneTaskComponent)
1766
+ useExisting: forwardRef(() => GanttTaskComponent)
1703
1767
  }
1704
1768
  ], usesInheritance: true, ngImport: i0, template: `
1705
1769
  <div
1706
1770
  #task
1771
+ class="k-task k-task-single"
1707
1772
  role="treeitem"
1708
- class="k-task k-task-milestone"
1709
1773
  [ngClass]="taskClass(dataItem)"
1774
+ [style.width.px]="taskWidth"
1710
1775
  [attr.title]="mapper.extractFromTask(dataItem, 'title')"
1711
1776
  [class.k-selected]="isSelected(dataItem)"
1712
1777
  [attr.aria-selected]="ariaSelected"
1713
1778
  [attr.aria-level]="level + 1"
1714
1779
  >
1780
+ <ng-container *ngIf="!taskTemplate">
1781
+ <div
1782
+ class="k-task-complete"
1783
+ [style.width.px]="completionOverlayWidth"
1784
+ aria-hidden="true"
1785
+ >
1786
+ </div>
1787
+ <div class="k-task-content">
1788
+ <div class="k-task-template">
1789
+ <ng-container *ngIf="!taskContentTemplate; else taskContent">
1790
+ {{ mapper.extractFromTask(dataItem, 'title') }}
1791
+ </ng-container>
1792
+ <ng-template
1793
+ #taskContent
1794
+ [ngTemplateOutlet]="taskContentTemplate"
1795
+ [ngTemplateOutletContext]="{ $implicit: dataItem }"
1796
+ >
1797
+ </ng-template>
1798
+ </div>
1799
+ <span
1800
+ class="k-task-actions"
1801
+ aria-hidden="true"
1802
+ >
1803
+ <span
1804
+ class="k-link k-task-delete"
1805
+ [kendoEventsOutsideAngular]="{
1806
+ click: onTaskDelete
1807
+ }"
1808
+ [scope]="this"
1809
+ >
1810
+ <kendo-icon-wrapper
1811
+ icon="x"
1812
+ [svgIcon]="xIcon"></kendo-icon-wrapper>
1813
+ </span>
1814
+ </span>
1815
+ </div>
1816
+ </ng-container>
1817
+ <ng-template
1818
+ *ngIf="taskTemplate"
1819
+ [ngTemplateOutlet]="taskTemplate"
1820
+ [ngTemplateOutletContext]="{
1821
+ $implicit: dataItem,
1822
+ elementWidth: taskWidth
1823
+ }"
1824
+ >
1825
+ </ng-template>
1715
1826
  </div>
1716
1827
  <ng-container *ngIf="renderDependencyDragClues">
1717
1828
  <div
@@ -1725,72 +1836,120 @@ GanttMilestoneTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
1725
1836
  >
1726
1837
  </div>
1727
1838
  </ng-container>
1728
- `, isInline: true, directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1729
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttMilestoneTaskComponent, decorators: [{
1839
+ `, 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"] }] });
1840
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttTaskComponent, decorators: [{
1730
1841
  type: Component,
1731
1842
  args: [{
1732
- selector: 'kendo-gantt-milestone-task',
1843
+ selector: 'kendo-gantt-task',
1733
1844
  providers: [
1734
1845
  {
1735
1846
  provide: GanttTaskBase,
1736
- useExisting: forwardRef(() => GanttMilestoneTaskComponent)
1847
+ useExisting: forwardRef(() => GanttTaskComponent)
1737
1848
  }
1738
1849
  ],
1739
1850
  template: `
1740
1851
  <div
1741
1852
  #task
1853
+ class="k-task k-task-single"
1742
1854
  role="treeitem"
1743
- class="k-task k-task-milestone"
1744
1855
  [ngClass]="taskClass(dataItem)"
1856
+ [style.width.px]="taskWidth"
1745
1857
  [attr.title]="mapper.extractFromTask(dataItem, 'title')"
1746
1858
  [class.k-selected]="isSelected(dataItem)"
1747
1859
  [attr.aria-selected]="ariaSelected"
1748
1860
  [attr.aria-level]="level + 1"
1749
1861
  >
1750
- </div>
1751
- <ng-container *ngIf="renderDependencyDragClues">
1752
- <div
1753
- class="k-task-dot k-task-start k-touch-action-none"
1754
- [class.k-display-block]="touchEnabled"
1755
- >
1756
- </div>
1757
- <div
1758
- class="k-task-dot k-task-end k-touch-action-none"
1759
- [class.k-display-block]="touchEnabled"
1760
- >
1761
- </div>
1762
- </ng-container>
1763
- `
1764
- }]
1765
- }], ctorParameters: function () {
1766
- return [{ type: undefined, decorators: [{
1767
- type: Inject,
1768
- args: [TOUCH_ENABLED]
1769
- }] }, { type: MappingService }, { type: TimelineViewService }, { type: DependencyDomService }, { type: OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }];
1770
- }, propDecorators: { milestoneWrapperClass: [{
1771
- type: HostBinding,
1772
- args: ['class.k-milestone-wrap']
1773
- }] } });
1774
-
1775
- /**
1776
- * @hidden
1777
- */
1778
- class GanttSummaryTaskComponent extends GanttTaskBase {
1779
- constructor(touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
1780
- super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
1781
- this.touchEnabled = touchEnabled;
1782
- this.summaryWrapperClass = true;
1783
- }
1784
- get ariaExpanded() {
1785
- // if no callback is provided, all child items are displayed and the item is regarded as expanded
1786
- // replicates the TreeList aria-expanded behavior
1787
- const isExpanded = !isPresent(this.isExpanded) || this.isExpanded(this.dataItem);
1788
- return String(isExpanded);
1789
- }
1790
- }
1791
- 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 });
1792
- 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: [
1793
- {
1862
+ <ng-container *ngIf="!taskTemplate">
1863
+ <div
1864
+ class="k-task-complete"
1865
+ [style.width.px]="completionOverlayWidth"
1866
+ aria-hidden="true"
1867
+ >
1868
+ </div>
1869
+ <div class="k-task-content">
1870
+ <div class="k-task-template">
1871
+ <ng-container *ngIf="!taskContentTemplate; else taskContent">
1872
+ {{ mapper.extractFromTask(dataItem, 'title') }}
1873
+ </ng-container>
1874
+ <ng-template
1875
+ #taskContent
1876
+ [ngTemplateOutlet]="taskContentTemplate"
1877
+ [ngTemplateOutletContext]="{ $implicit: dataItem }"
1878
+ >
1879
+ </ng-template>
1880
+ </div>
1881
+ <span
1882
+ class="k-task-actions"
1883
+ aria-hidden="true"
1884
+ >
1885
+ <span
1886
+ class="k-link k-task-delete"
1887
+ [kendoEventsOutsideAngular]="{
1888
+ click: onTaskDelete
1889
+ }"
1890
+ [scope]="this"
1891
+ >
1892
+ <kendo-icon-wrapper
1893
+ icon="x"
1894
+ [svgIcon]="xIcon"></kendo-icon-wrapper>
1895
+ </span>
1896
+ </span>
1897
+ </div>
1898
+ </ng-container>
1899
+ <ng-template
1900
+ *ngIf="taskTemplate"
1901
+ [ngTemplateOutlet]="taskTemplate"
1902
+ [ngTemplateOutletContext]="{
1903
+ $implicit: dataItem,
1904
+ elementWidth: taskWidth
1905
+ }"
1906
+ >
1907
+ </ng-template>
1908
+ </div>
1909
+ <ng-container *ngIf="renderDependencyDragClues">
1910
+ <div
1911
+ class="k-task-dot k-task-start k-touch-action-none"
1912
+ [class.k-display-block]="touchEnabled"
1913
+ >
1914
+ </div>
1915
+ <div
1916
+ class="k-task-dot k-task-end k-touch-action-none"
1917
+ [class.k-display-block]="touchEnabled"
1918
+ >
1919
+ </div>
1920
+ </ng-container>
1921
+ `
1922
+ }]
1923
+ }], ctorParameters: function () {
1924
+ return [{ type: EditService }, { type: undefined, decorators: [{
1925
+ type: Inject,
1926
+ args: [TOUCH_ENABLED]
1927
+ }] }, { type: MappingService }, { type: TimelineViewService }, { type: DependencyDomService }, { type: OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }];
1928
+ }, propDecorators: { taskContentTemplate: [{
1929
+ type: Input
1930
+ }], taskTemplate: [{
1931
+ type: Input
1932
+ }] } });
1933
+
1934
+ /**
1935
+ * @hidden
1936
+ */
1937
+ class GanttSummaryTaskComponent extends GanttTaskBase {
1938
+ constructor(touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
1939
+ super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
1940
+ this.touchEnabled = touchEnabled;
1941
+ this.summaryWrapperClass = true;
1942
+ }
1943
+ get ariaExpanded() {
1944
+ // if no callback is provided, all child items are displayed and the item is regarded as expanded
1945
+ // replicates the TreeList aria-expanded behavior
1946
+ const isExpanded = !isPresent(this.isExpanded) || this.isExpanded(this.dataItem);
1947
+ return String(isExpanded);
1948
+ }
1949
+ }
1950
+ 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 });
1951
+ 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: [
1952
+ {
1794
1953
  provide: GanttTaskBase,
1795
1954
  useExisting: forwardRef(() => GanttSummaryTaskComponent)
1796
1955
  }
@@ -1838,8 +1997,8 @@ GanttSummaryTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
1838
1997
  >
1839
1998
  </div>
1840
1999
  </ng-container>
1841
- `, 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"] }] });
1842
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttSummaryTaskComponent, decorators: [{
2000
+ `, 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"] }] });
2001
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttSummaryTaskComponent, decorators: [{
1843
2002
  type: Component,
1844
2003
  args: [{
1845
2004
  selector: 'kendo-gantt-summary-task',
@@ -1912,184 +2071,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1912
2071
  /**
1913
2072
  * @hidden
1914
2073
  */
1915
- class EditService {
1916
- constructor(mapper) {
1917
- this.mapper = mapper;
1918
- this.showEditingDialog = new Subject();
1919
- this.taskDelete = new Subject();
1920
- this.editEvent = new Subject();
1921
- this.addEvent = new Subject();
1922
- this.predecessors = [];
1923
- this.successors = [];
1924
- this.updatedItems = [];
1925
- this.deletedItems = [];
1926
- this.itemIndex = (item, data) => {
1927
- return data.findIndex(dataItem => this.mapper.extractFromTask(dataItem, 'id') === this.mapper.extractFromTask(item, 'id'));
1928
- };
1929
- }
1930
- set dependencies(items) {
1931
- // Can this whole thing be moved to edit-dialog? Dependencies might not be needed here
1932
- const dataItemId = this.mapper.extractFromTask(this.dataItem, 'id');
1933
- this.predecessors = items.filter(item => this.mapper.extractFromDependency(item, 'toId') === dataItemId);
1934
- this.successors = items.filter(item => this.mapper.extractFromDependency(item, 'fromId') === dataItemId);
1935
- }
1936
- get dependencies() {
1937
- return [...this.predecessors, ...this.successors];
1938
- }
1939
- createEditDialog(dataItem, taskFormGroup, dependencies) {
1940
- this.dataItem = dataItem;
1941
- this.taskFormGroup = taskFormGroup;
1942
- this.dependencies = dependencies;
1943
- this.showEditingDialog.next(true);
1944
- }
1945
- closeEditDialog() {
1946
- this.showEditingDialog.next(false);
1947
- this.dataItem = undefined;
1948
- this.taskFormGroup = undefined;
1949
- this.dependencies = [];
1950
- this.updatedItems = [];
1951
- this.deletedItems = [];
1952
- }
1953
- triggerEditEvent(editResultType) {
1954
- this.editEvent.next({
1955
- taskFormGroup: this.taskFormGroup,
1956
- dataItem: this.dataItem,
1957
- dependencies: {
1958
- createdItems: this.getCreatedDependencies(),
1959
- updatedItems: this.updatedItems,
1960
- deletedItems: this.deletedItems
1961
- },
1962
- editResultType
1963
- });
1964
- }
1965
- updateDependencies(item) {
1966
- if (!this.isNew(item)) {
1967
- // update
1968
- const index = this.itemIndex(item, this.updatedItems);
1969
- if (index !== -1) {
1970
- this.updatedItems.splice(index, 1, item);
1971
- }
1972
- else {
1973
- this.updatedItems.push(item);
1974
- }
1975
- }
1976
- }
1977
- getCreatedDependencies() {
1978
- return this.dependencies.filter(item => this.mapper.extractFromDependency(item, 'id') === null);
1979
- }
1980
- deleteDependency(item) {
1981
- const updatedIndex = this.itemIndex(item, this.updatedItems);
1982
- if (updatedIndex !== -1) {
1983
- this.updatedItems.splice(updatedIndex, 1);
1984
- }
1985
- if (!this.isNew(item)) {
1986
- this.deletedItems.push(item);
1987
- }
1988
- }
1989
- loadTasks(initialValues, isInitializer = true) {
1990
- return forkJoin(initialValues.map(v => this.getElementById(v))).pipe(map((value) => value.reduce((acc, item) => acc = acc.concat(normalizeGanttData(item)), [])), expand(values => {
1991
- if (values.some(el => this.hasChildren(el))) {
1992
- return this.loadTasks(values, false);
1993
- }
1994
- return EMPTY;
1995
- }), reduce((acc, values) => acc.concat(values), isInitializer ? [...initialValues] : []));
1996
- }
1997
- getElementById(item) {
1998
- const children = this.fetchChildren(item);
1999
- if (isObservable(children)) {
2000
- return children;
2001
- }
2002
- return of(children);
2003
- }
2004
- isNew(item) {
2005
- return !isPresent(this.mapper.extractFromDependency(item, 'id'));
2006
- }
2007
- }
2008
- EditService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EditService, deps: [{ token: MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
2009
- EditService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EditService });
2010
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EditService, decorators: [{
2011
- type: Injectable
2012
- }], ctorParameters: function () { return [{ type: MappingService }]; } });
2013
-
2014
- /**
2015
- * @hidden
2016
- */
2017
- class GanttTaskComponent extends GanttTaskBase {
2018
- constructor(editService, touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
2074
+ class GanttMilestoneTaskComponent extends GanttTaskBase {
2075
+ constructor(touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
2019
2076
  super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
2020
- this.editService = editService;
2021
2077
  this.touchEnabled = touchEnabled;
2022
- this.xIcon = xIcon;
2023
- }
2024
- onTaskDelete() {
2025
- this.editService.dataItem = this.dataItem;
2026
- this.editService.taskDelete.next(this.dataItem);
2078
+ this.milestoneWrapperClass = true;
2027
2079
  }
2028
2080
  }
2029
- 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 });
2030
- GanttTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GanttTaskComponent, selector: "kendo-gantt-task", inputs: { taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate" }, providers: [
2081
+ 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 });
2082
+ 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: [
2031
2083
  {
2032
2084
  provide: GanttTaskBase,
2033
- useExisting: forwardRef(() => GanttTaskComponent)
2085
+ useExisting: forwardRef(() => GanttMilestoneTaskComponent)
2034
2086
  }
2035
2087
  ], usesInheritance: true, ngImport: i0, template: `
2036
2088
  <div
2037
2089
  #task
2038
- class="k-task k-task-single"
2039
2090
  role="treeitem"
2091
+ class="k-task k-task-milestone"
2040
2092
  [ngClass]="taskClass(dataItem)"
2041
- [style.width.px]="taskWidth"
2042
2093
  [attr.title]="mapper.extractFromTask(dataItem, 'title')"
2043
2094
  [class.k-selected]="isSelected(dataItem)"
2044
2095
  [attr.aria-selected]="ariaSelected"
2045
2096
  [attr.aria-level]="level + 1"
2046
2097
  >
2047
- <ng-container *ngIf="!taskTemplate">
2048
- <div
2049
- class="k-task-complete"
2050
- [style.width.px]="completionOverlayWidth"
2051
- aria-hidden="true"
2052
- >
2053
- </div>
2054
- <div class="k-task-content">
2055
- <div class="k-task-template">
2056
- <ng-container *ngIf="!taskContentTemplate; else taskContent">
2057
- {{ mapper.extractFromTask(dataItem, 'title') }}
2058
- </ng-container>
2059
- <ng-template
2060
- #taskContent
2061
- [ngTemplateOutlet]="taskContentTemplate"
2062
- [ngTemplateOutletContext]="{ $implicit: dataItem }"
2063
- >
2064
- </ng-template>
2065
- </div>
2066
- <span
2067
- class="k-task-actions"
2068
- aria-hidden="true"
2069
- >
2070
- <span
2071
- class="k-link k-task-delete"
2072
- [kendoEventsOutsideAngular]="{
2073
- click: onTaskDelete
2074
- }"
2075
- [scope]="this"
2076
- >
2077
- <kendo-icon-wrapper
2078
- icon="x"
2079
- [svgIcon]="xIcon"></kendo-icon-wrapper>
2080
- </span>
2081
- </span>
2082
- </div>
2083
- </ng-container>
2084
- <ng-template
2085
- *ngIf="taskTemplate"
2086
- [ngTemplateOutlet]="taskTemplate"
2087
- [ngTemplateOutletContext]="{
2088
- $implicit: dataItem,
2089
- elementWidth: taskWidth
2090
- }"
2091
- >
2092
- </ng-template>
2093
2098
  </div>
2094
2099
  <ng-container *ngIf="renderDependencyDragClues">
2095
2100
  <div
@@ -2103,75 +2108,28 @@ GanttTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
2103
2108
  >
2104
2109
  </div>
2105
2110
  </ng-container>
2106
- `, 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"] }] });
2107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTaskComponent, decorators: [{
2111
+ `, isInline: true, dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttMilestoneTaskComponent, decorators: [{
2108
2113
  type: Component,
2109
2114
  args: [{
2110
- selector: 'kendo-gantt-task',
2115
+ selector: 'kendo-gantt-milestone-task',
2111
2116
  providers: [
2112
2117
  {
2113
2118
  provide: GanttTaskBase,
2114
- useExisting: forwardRef(() => GanttTaskComponent)
2119
+ useExisting: forwardRef(() => GanttMilestoneTaskComponent)
2115
2120
  }
2116
2121
  ],
2117
2122
  template: `
2118
2123
  <div
2119
2124
  #task
2120
- class="k-task k-task-single"
2121
2125
  role="treeitem"
2126
+ class="k-task k-task-milestone"
2122
2127
  [ngClass]="taskClass(dataItem)"
2123
- [style.width.px]="taskWidth"
2124
2128
  [attr.title]="mapper.extractFromTask(dataItem, 'title')"
2125
2129
  [class.k-selected]="isSelected(dataItem)"
2126
2130
  [attr.aria-selected]="ariaSelected"
2127
2131
  [attr.aria-level]="level + 1"
2128
2132
  >
2129
- <ng-container *ngIf="!taskTemplate">
2130
- <div
2131
- class="k-task-complete"
2132
- [style.width.px]="completionOverlayWidth"
2133
- aria-hidden="true"
2134
- >
2135
- </div>
2136
- <div class="k-task-content">
2137
- <div class="k-task-template">
2138
- <ng-container *ngIf="!taskContentTemplate; else taskContent">
2139
- {{ mapper.extractFromTask(dataItem, 'title') }}
2140
- </ng-container>
2141
- <ng-template
2142
- #taskContent
2143
- [ngTemplateOutlet]="taskContentTemplate"
2144
- [ngTemplateOutletContext]="{ $implicit: dataItem }"
2145
- >
2146
- </ng-template>
2147
- </div>
2148
- <span
2149
- class="k-task-actions"
2150
- aria-hidden="true"
2151
- >
2152
- <span
2153
- class="k-link k-task-delete"
2154
- [kendoEventsOutsideAngular]="{
2155
- click: onTaskDelete
2156
- }"
2157
- [scope]="this"
2158
- >
2159
- <kendo-icon-wrapper
2160
- icon="x"
2161
- [svgIcon]="xIcon"></kendo-icon-wrapper>
2162
- </span>
2163
- </span>
2164
- </div>
2165
- </ng-container>
2166
- <ng-template
2167
- *ngIf="taskTemplate"
2168
- [ngTemplateOutlet]="taskTemplate"
2169
- [ngTemplateOutletContext]="{
2170
- $implicit: dataItem,
2171
- elementWidth: taskWidth
2172
- }"
2173
- >
2174
- </ng-template>
2175
2133
  </div>
2176
2134
  <ng-container *ngIf="renderDependencyDragClues">
2177
2135
  <div
@@ -2188,14 +2146,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2188
2146
  `
2189
2147
  }]
2190
2148
  }], ctorParameters: function () {
2191
- return [{ type: EditService }, { type: undefined, decorators: [{
2149
+ return [{ type: undefined, decorators: [{
2192
2150
  type: Inject,
2193
2151
  args: [TOUCH_ENABLED]
2194
2152
  }] }, { type: MappingService }, { type: TimelineViewService }, { type: DependencyDomService }, { type: OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }];
2195
- }, propDecorators: { taskContentTemplate: [{
2196
- type: Input
2197
- }], taskTemplate: [{
2198
- type: Input
2153
+ }, propDecorators: { milestoneWrapperClass: [{
2154
+ type: HostBinding,
2155
+ args: ['class.k-milestone-wrap']
2199
2156
  }] } });
2200
2157
 
2201
2158
  /**
@@ -2217,8 +2174,8 @@ class GanttTasksTableBodyComponent {
2217
2174
  return !item.hasChildren && isEqual(this.mapper.extractFromTask(item.data, 'start'), this.mapper.extractFromTask(item.data, 'end'));
2218
2175
  }
2219
2176
  }
2220
- 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 });
2221
- 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: `
2177
+ 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 });
2178
+ 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: `
2222
2179
  <tr class="k-table-row" #timelineRow *ngFor="let item of rows; let index = index">
2223
2180
  <td class="k-table-td">
2224
2181
  <kendo-gantt-milestone-task
@@ -2265,8 +2222,8 @@ GanttTasksTableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
2265
2222
  </ng-template>
2266
2223
  </td>
2267
2224
  </tr>
2268
- `, 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"] }] });
2269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTasksTableBodyComponent, decorators: [{
2225
+ `, 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" }] });
2226
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttTasksTableBodyComponent, decorators: [{
2270
2227
  type: Component,
2271
2228
  args: [{
2272
2229
  // eslint-disable-next-line @angular-eslint/component-selector
@@ -2326,208 +2283,64 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2326
2283
  }], selectable: [{
2327
2284
  type: Input
2328
2285
  }], rows: [{
2329
- type: Input
2330
- }], activeView: [{
2331
- type: Input
2332
- }], taskContentTemplate: [{
2333
- type: Input
2334
- }], taskTemplate: [{
2335
- type: Input
2336
- }], summaryTaskTemplate: [{
2337
- type: Input
2338
- }], taskClass: [{
2339
- type: Input
2340
- }], isExpanded: [{
2341
- type: Input
2342
- }], isTaskSelected: [{
2343
- type: Input
2344
- }], renderDependencyDragClues: [{
2345
- type: Input
2346
- }] } });
2347
-
2348
- /**
2349
- * @hidden
2350
- */
2351
- var ScrollDirection;
2352
- (function (ScrollDirection) {
2353
- ScrollDirection[ScrollDirection["Backwards"] = -1] = "Backwards";
2354
- ScrollDirection[ScrollDirection["Forward"] = 1] = "Forward";
2355
- })(ScrollDirection || (ScrollDirection = {}));
2356
- /**
2357
- * @hidden
2358
- */
2359
- var ScrollAxis;
2360
- (function (ScrollAxis) {
2361
- ScrollAxis["Vertical"] = "scrollTop";
2362
- ScrollAxis["Horizontal"] = "scrollLeft";
2363
- })(ScrollAxis || (ScrollAxis = {}));
2364
-
2365
- /**
2366
- * @hidden
2367
- *
2368
- * Checks if the beginning of the scrollable element is reached (top/left).
2369
- * Floors the top value.
2370
- */
2371
- const isUpperLimitReached = (element, axis) => Math.floor(element[axis]) <= 0;
2372
- /**
2373
- * @hidden
2374
- *
2375
- * Checks if the end of the scrollable element is reached (bottom/right).
2376
- * Ceils the top value.
2377
- */
2378
- const isBottomLimitReached = (element, axis) => {
2379
- const elementSize = axis === ScrollAxis.Horizontal ?
2380
- element.scrollWidth - element.clientWidth :
2381
- element.scrollHeight - element.clientHeight;
2382
- return Math.ceil(element[axis]) >= elementSize;
2383
- };
2384
- /**
2385
- * @hidden
2386
- *
2387
- * Scrolls the element in the given direction by the provided step in the provided scroll axis.
2388
- *
2389
- * If the targeted scroll incrementation doesn't yield any result due to device pixel ratio issues (https://github.com/dimitar-pechev/RenderingIndependentScrollOffsets#readme),
2390
- * increments the step with 1px and again attempts to change the scrollTop of the element, until the content is actually scrolled.
2391
- *
2392
- * Cuts the operation short after 20 unsuccessful attempts to prevent infinite loops in possible corner-case scenarios.
2393
- */
2394
- const scrollElement = (element, step, direction, scrollAxis) => {
2395
- if (!(isPresent(element) && isDocumentAvailable())) {
2396
- return;
2397
- }
2398
- const initialScrollPosition = element[scrollAxis];
2399
- let currentStep = step;
2400
- let iterations = 0;
2401
- while (initialScrollPosition === element[scrollAxis] &&
2402
- !(direction === ScrollDirection.Backwards && isUpperLimitReached(element, scrollAxis)) &&
2403
- !(direction === ScrollDirection.Forward && isBottomLimitReached(element, scrollAxis)) &&
2404
- iterations < 20 // cut the operation short in 20 attempts - in case of a wild corner case
2405
- ) {
2406
- element[scrollAxis] += (currentStep * direction);
2407
- // try with a larger step if the current one doesn't update the scroll position successfully
2408
- currentStep += 1;
2409
- iterations += 1;
2410
- }
2411
- };
2412
- /**
2413
- * @hidden
2414
- *
2415
- * 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,
2416
- * this function extracts the visible boundaries of the provided element - fall-backing to 0 when the top/left are below 0,
2417
- * and fall-backing to the actual visible size of the container for bottom/right.
2418
- */
2419
- const getViewportBoundaries = (element) => {
2420
- const elementRect = element.getBoundingClientRect();
2421
- // if the beginning of the scrollable container is above/before the current viewport, fall-back to 0
2422
- const topLimit = Math.max(elementRect.top, 0);
2423
- const leftLimit = Math.max(elementRect.left, 0);
2424
- // if the end of the scrollable container is beneath/after the current viewport, fall-back to its client height
2425
- // 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
2426
- const bottomLimit = topLimit + Math.min(elementRect.bottom, element.clientHeight);
2427
- const rightLimit = leftLimit + Math.min(elementRect.right, element.clientWidth);
2428
- return {
2429
- top: topLimit,
2430
- bottom: bottomLimit,
2431
- left: leftLimit,
2432
- right: rightLimit
2433
- };
2434
- };
2286
+ type: Input
2287
+ }], activeView: [{
2288
+ type: Input
2289
+ }], taskContentTemplate: [{
2290
+ type: Input
2291
+ }], taskTemplate: [{
2292
+ type: Input
2293
+ }], summaryTaskTemplate: [{
2294
+ type: Input
2295
+ }], taskClass: [{
2296
+ type: Input
2297
+ }], isExpanded: [{
2298
+ type: Input
2299
+ }], isTaskSelected: [{
2300
+ type: Input
2301
+ }], renderDependencyDragClues: [{
2302
+ type: Input
2303
+ }] } });
2435
2304
 
2436
2305
  /**
2437
2306
  * @hidden
2438
- *
2439
- * Notifies the timeline-scroll.directive to scroll into view to requested coordinates.
2440
- * The scrolling is performed based on client (viewport) coordinates.
2441
2307
  */
2442
- class TimelineScrollService {
2308
+ class GanttHeaderTableBodyComponent {
2443
2309
  constructor() {
2444
- this.horizontalScroll = new Subject();
2445
- this.verticalScroll = new Subject();
2446
- this.scrollCancel = new Subject();
2447
- }
2448
- ngOnDestroy() {
2449
- this.horizontalScroll.complete();
2450
- this.verticalScroll.complete();
2451
- this.scrollCancel.complete();
2452
- }
2453
- requestHorizontalScroll(clientTop) {
2454
- this.horizontalScroll.next(clientTop);
2455
- }
2456
- requestVerticalScroll(clientLeft) {
2457
- this.verticalScroll.next(clientLeft);
2458
- }
2459
- requestScrollCancel() {
2460
- this.scrollCancel.next();
2310
+ this.tbodyClass = true;
2461
2311
  }
2462
2312
  }
2463
- TimelineScrollService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineScrollService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2464
- TimelineScrollServiceprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineScrollService });
2465
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineScrollService, decorators: [{
2466
- type: Injectable
2467
- }] });
2313
+ GanttHeaderTableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttHeaderTableBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2314
+ 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: `
2315
+ <tr class="k-table-row">
2316
+ <td *ngFor="let item of groupSlots" [attr.colspan]="item.span" class="k-header k-table-td">{{ item.text }}</td>
2317
+ </tr>
2468
2318
 
2469
- /**
2470
- * @hidden
2471
- */
2472
- class TimelineScrollableDirective {
2473
- constructor(timelineScrollableContainer, scrollService, zone) {
2474
- this.timelineScrollableContainer = timelineScrollableContainer;
2475
- this.scrollService = scrollService;
2476
- this.zone = zone;
2477
- this.subscriptions = new Subscription();
2478
- this.subscriptions.add(this.scrollService.horizontalScroll
2479
- .subscribe(this.scrollHorizontallyTo.bind(this)));
2480
- this.subscriptions.add(this.scrollService.verticalScroll
2481
- .subscribe(this.scrollVerticallyTo.bind(this)));
2482
- this.subscriptions.add(this.scrollService.scrollCancel
2483
- .subscribe(this.cancelScroll.bind(this)));
2484
- }
2485
- ngOnDestroy() {
2486
- this.subscriptions.unsubscribe();
2487
- }
2488
- scrollHorizontallyTo(left) {
2489
- this.zone.runOutsideAngular(() => {
2490
- const container = this.timelineScrollableContainer.nativeElement;
2491
- const visibleBoundaries = getViewportBoundaries(container);
2492
- if (left < visibleBoundaries.left + this.scrollSettings.threshold) {
2493
- this.horizontalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Backwards, ScrollAxis.Horizontal), this.scrollSettings.interval);
2494
- }
2495
- else if (left > visibleBoundaries.right - this.scrollSettings.threshold) {
2496
- this.horizontalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Forward, ScrollAxis.Horizontal), this.scrollSettings.interval);
2497
- }
2498
- });
2499
- }
2500
- scrollVerticallyTo(top) {
2501
- this.zone.runOutsideAngular(() => {
2502
- const container = this.timelineScrollableContainer.nativeElement;
2503
- const visibleBoundaries = getViewportBoundaries(container);
2504
- if (top < visibleBoundaries.top + this.scrollSettings.threshold) {
2505
- this.verticalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Backwards, ScrollAxis.Vertical), this.scrollSettings.interval);
2506
- }
2507
- else if (top > visibleBoundaries.bottom - this.scrollSettings.threshold) {
2508
- this.verticalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Forward, ScrollAxis.Vertical), this.scrollSettings.interval);
2509
- }
2510
- });
2511
- }
2512
- cancelScroll() {
2513
- if (isPresent(this.verticalScrollInterval)) {
2514
- clearInterval(this.verticalScrollInterval);
2515
- this.verticalScrollInterval = null;
2516
- }
2517
- if (isPresent(this.horizontalScrollInterval)) {
2518
- clearInterval(this.horizontalScrollInterval);
2519
- this.horizontalScrollInterval = null;
2520
- }
2521
- }
2522
- }
2523
- 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 });
2524
- TimelineScrollableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: TimelineScrollableDirective, selector: "[kendoGanttTimelineScrollable]", inputs: { scrollSettings: "scrollSettings" }, ngImport: i0 });
2525
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineScrollableDirective, decorators: [{
2526
- type: Directive,
2319
+ <tr class="k-table-row">
2320
+ <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>
2321
+ </tr>
2322
+ `, isInline: true, dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
2323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttHeaderTableBodyComponent, decorators: [{
2324
+ type: Component,
2527
2325
  args: [{
2528
- selector: '[kendoGanttTimelineScrollable]'
2326
+ // eslint-disable-next-line @angular-eslint/component-selector
2327
+ selector: '[kendoGanttHeaderTableBody]',
2328
+ template: `
2329
+ <tr class="k-table-row">
2330
+ <td *ngFor="let item of groupSlots" [attr.colspan]="item.span" class="k-header k-table-td">{{ item.text }}</td>
2331
+ </tr>
2332
+
2333
+ <tr class="k-table-row">
2334
+ <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>
2335
+ </tr>
2336
+ `
2529
2337
  }]
2530
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: TimelineScrollService }, { type: i0.NgZone }]; }, propDecorators: { scrollSettings: [{
2338
+ }], propDecorators: { tbodyClass: [{
2339
+ type: HostBinding,
2340
+ args: ['class.k-table-tbody']
2341
+ }], groupSlots: [{
2342
+ type: Input
2343
+ }], slots: [{
2531
2344
  type: Input
2532
2345
  }] } });
2533
2346
 
@@ -2693,102 +2506,288 @@ const getArrowEast = (top, left, arrowSize) => {
2693
2506
  /**
2694
2507
  * @hidden
2695
2508
  *
2696
- * Translates the provided client `left` and `top` coords to coords relative to the provided container.
2697
- * https://developer.mozilla.org/en-US/docs/Web/CSS/CSSOM_View/Coordinate_systems#standard_cssom_coordinate_systems
2509
+ * Translates the provided client `left` and `top` coords to coords relative to the provided container.
2510
+ * https://developer.mozilla.org/en-US/docs/Web/CSS/CSSOM_View/Coordinate_systems#standard_cssom_coordinate_systems
2511
+ */
2512
+ const clientToOffsetCoords = (clientLeft, clientTop, offsetContainer) => {
2513
+ // client (viewport) coordinates of the target container
2514
+ // https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect#value
2515
+ const offsetContainerClientRect = offsetContainer.getBoundingClientRect();
2516
+ return {
2517
+ left: clientLeft - offsetContainerClientRect.left + offsetContainer.scrollLeft,
2518
+ top: clientTop - offsetContainerClientRect.top + offsetContainer.scrollTop
2519
+ };
2520
+ };
2521
+ /**
2522
+ * @hidden
2523
+ *
2524
+ * Retrieves the `left` and `top` values of the center of the provided element.
2525
+ * The retrieved values are relative to the current viewport (client values).
2526
+ * https://developer.mozilla.org/en-US/docs/Web/CSS/CSSOM_View/Coordinate_systems#standard_cssom_coordinate_systems
2527
+ */
2528
+ const getElementClientCenterCoords = (element) => {
2529
+ // client (viewport) coordinates of the targeted element
2530
+ // https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect#value
2531
+ const { left, top, width, height } = element.getBoundingClientRect();
2532
+ return {
2533
+ left: left + (width / 2),
2534
+ top: top + (height / 2)
2535
+ };
2536
+ };
2537
+
2538
+ /**
2539
+ * Defines the size of the arrow that will be drawn at the end of each Gantt dependency.
2540
+ */
2541
+ const ARROW_SIZE = 4;
2542
+ /**
2543
+ * Defines the distance the polyline will cover from the task element before making a turn.
2544
+ */
2545
+ const MIN_DISTANCE_BEFORE_TURN = 10;
2546
+ /**
2547
+ * @hidden
2548
+ */
2549
+ class GanttDependencyDirective {
2550
+ constructor(polyline, zone, renderer, mapper, dependencyDomService) {
2551
+ this.polyline = polyline;
2552
+ this.zone = zone;
2553
+ this.renderer = renderer;
2554
+ this.mapper = mapper;
2555
+ this.dependencyDomService = dependencyDomService;
2556
+ this.subscriptions = new Subscription();
2557
+ this.subscriptions.add(dependencyDomService.taskChanges
2558
+ .pipe(switchMap(changes =>
2559
+ // reacts only on the very last event emission,
2560
+ // ensures that the tasks are drawn in the DOM
2561
+ this.zone.onStable.pipe(take(1), map(() => changes))))
2562
+ .subscribe(changes => this.updatePoints(changes)));
2563
+ }
2564
+ ngOnDestroy() {
2565
+ this.subscriptions.unsubscribe();
2566
+ }
2567
+ ngOnChanges(changes) {
2568
+ if (isPresent(changes['dependency'])) {
2569
+ this.updatePoints(this.dependencyDomService.dependencyDomArgs);
2570
+ }
2571
+ }
2572
+ updatePoints({ timelineRow, contentContainer, tasks }) {
2573
+ if (!isPresent(timelineRow) || !isPresent(contentContainer) ||
2574
+ !isPresent(tasks) || tasks.size === 0 ||
2575
+ !tasks.has(this.mapper.extractFromDependency(this.dependency, 'fromId')) || !tasks.has(this.mapper.extractFromDependency(this.dependency, 'toId'))) {
2576
+ this.clearPoints();
2577
+ return;
2578
+ }
2579
+ const fromCoordinates = getElementRect(tasks.get(this.mapper.extractFromDependency(this.dependency, 'fromId')), contentContainer);
2580
+ const toCoordinates = getElementRect(tasks.get(this.mapper.extractFromDependency(this.dependency, 'toId')), contentContainer);
2581
+ const timelineRowHeight = isDocumentAvailable() ? timelineRow.getBoundingClientRect().height : 0;
2582
+ const points = dependencyCoordinates(fromCoordinates, toCoordinates, timelineRowHeight, this.dependency.type, MIN_DISTANCE_BEFORE_TURN, ARROW_SIZE);
2583
+ this.drawPoints(points);
2584
+ }
2585
+ clearPoints() {
2586
+ this.renderer.setAttribute(this.polyline.nativeElement, 'points', '');
2587
+ }
2588
+ drawPoints(points) {
2589
+ if (!isPresent(points) || points.length === 0) {
2590
+ this.clearPoints();
2591
+ return;
2592
+ }
2593
+ const parsedCoords = points.map(({ left, top }) => `${left},${top}`).join(' ');
2594
+ this.renderer.setAttribute(this.polyline.nativeElement, 'points', parsedCoords);
2595
+ }
2596
+ }
2597
+ 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 });
2598
+ GanttDependencyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: GanttDependencyDirective, selector: "[kendoGanttDependency]", inputs: { dependency: "dependency" }, usesOnChanges: true, ngImport: i0 });
2599
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttDependencyDirective, decorators: [{
2600
+ type: Directive,
2601
+ args: [{
2602
+ selector: '[kendoGanttDependency]'
2603
+ }]
2604
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: MappingService }, { type: DependencyDomService }]; }, propDecorators: { dependency: [{
2605
+ type: Input
2606
+ }] } });
2607
+
2608
+ /**
2609
+ * @hidden
2610
+ */
2611
+ var ScrollDirection;
2612
+ (function (ScrollDirection) {
2613
+ ScrollDirection[ScrollDirection["Backwards"] = -1] = "Backwards";
2614
+ ScrollDirection[ScrollDirection["Forward"] = 1] = "Forward";
2615
+ })(ScrollDirection || (ScrollDirection = {}));
2616
+ /**
2617
+ * @hidden
2618
+ */
2619
+ var ScrollAxis;
2620
+ (function (ScrollAxis) {
2621
+ ScrollAxis["Vertical"] = "scrollTop";
2622
+ ScrollAxis["Horizontal"] = "scrollLeft";
2623
+ })(ScrollAxis || (ScrollAxis = {}));
2624
+
2625
+ /**
2626
+ * @hidden
2627
+ *
2628
+ * Checks if the beginning of the scrollable element is reached (top/left).
2629
+ * Floors the top value.
2630
+ */
2631
+ const isUpperLimitReached = (element, axis) => Math.floor(element[axis]) <= 0;
2632
+ /**
2633
+ * @hidden
2634
+ *
2635
+ * Checks if the end of the scrollable element is reached (bottom/right).
2636
+ * Ceils the top value.
2637
+ */
2638
+ const isBottomLimitReached = (element, axis) => {
2639
+ const elementSize = axis === ScrollAxis.Horizontal ?
2640
+ element.scrollWidth - element.clientWidth :
2641
+ element.scrollHeight - element.clientHeight;
2642
+ return Math.ceil(element[axis]) >= elementSize;
2643
+ };
2644
+ /**
2645
+ * @hidden
2646
+ *
2647
+ * Scrolls the element in the given direction by the provided step in the provided scroll axis.
2648
+ *
2649
+ * If the targeted scroll incrementation doesn't yield any result due to device pixel ratio issues (https://github.com/dimitar-pechev/RenderingIndependentScrollOffsets#readme),
2650
+ * increments the step with 1px and again attempts to change the scrollTop of the element, until the content is actually scrolled.
2651
+ *
2652
+ * Cuts the operation short after 20 unsuccessful attempts to prevent infinite loops in possible corner-case scenarios.
2698
2653
  */
2699
- const clientToOffsetCoords = (clientLeft, clientTop, offsetContainer) => {
2700
- // client (viewport) coordinates of the target container
2701
- // https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect#value
2702
- const offsetContainerClientRect = offsetContainer.getBoundingClientRect();
2703
- return {
2704
- left: clientLeft - offsetContainerClientRect.left + offsetContainer.scrollLeft,
2705
- top: clientTop - offsetContainerClientRect.top + offsetContainer.scrollTop
2706
- };
2654
+ const scrollElement = (element, step, direction, scrollAxis) => {
2655
+ if (!(isPresent(element) && isDocumentAvailable())) {
2656
+ return;
2657
+ }
2658
+ const initialScrollPosition = element[scrollAxis];
2659
+ let currentStep = step;
2660
+ let iterations = 0;
2661
+ while (initialScrollPosition === element[scrollAxis] &&
2662
+ !(direction === ScrollDirection.Backwards && isUpperLimitReached(element, scrollAxis)) &&
2663
+ !(direction === ScrollDirection.Forward && isBottomLimitReached(element, scrollAxis)) &&
2664
+ iterations < 20 // cut the operation short in 20 attempts - in case of a wild corner case
2665
+ ) {
2666
+ element[scrollAxis] += (currentStep * direction);
2667
+ // try with a larger step if the current one doesn't update the scroll position successfully
2668
+ currentStep += 1;
2669
+ iterations += 1;
2670
+ }
2707
2671
  };
2708
2672
  /**
2709
2673
  * @hidden
2710
2674
  *
2711
- * Retrieves the `left` and `top` values of the center of the provided element.
2712
- * The retrieved values are relative to the current viewport (client values).
2713
- * https://developer.mozilla.org/en-US/docs/Web/CSS/CSSOM_View/Coordinate_systems#standard_cssom_coordinate_systems
2675
+ * 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,
2676
+ * this function extracts the visible boundaries of the provided element - fall-backing to 0 when the top/left are below 0,
2677
+ * and fall-backing to the actual visible size of the container for bottom/right.
2714
2678
  */
2715
- const getElementClientCenterCoords = (element) => {
2716
- // client (viewport) coordinates of the targeted element
2717
- // https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect#value
2718
- const { left, top, width, height } = element.getBoundingClientRect();
2679
+ const getViewportBoundaries = (element) => {
2680
+ const elementRect = element.getBoundingClientRect();
2681
+ // if the beginning of the scrollable container is above/before the current viewport, fall-back to 0
2682
+ const topLimit = Math.max(elementRect.top, 0);
2683
+ const leftLimit = Math.max(elementRect.left, 0);
2684
+ // if the end of the scrollable container is beneath/after the current viewport, fall-back to its client height
2685
+ // 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
2686
+ const bottomLimit = topLimit + Math.min(elementRect.bottom, element.clientHeight);
2687
+ const rightLimit = leftLimit + Math.min(elementRect.right, element.clientWidth);
2719
2688
  return {
2720
- left: left + (width / 2),
2721
- top: top + (height / 2)
2689
+ top: topLimit,
2690
+ bottom: bottomLimit,
2691
+ left: leftLimit,
2692
+ right: rightLimit
2722
2693
  };
2723
2694
  };
2724
2695
 
2725
2696
  /**
2726
- * Defines the size of the arrow that will be drawn at the end of each Gantt dependency.
2727
- */
2728
- const ARROW_SIZE = 4;
2729
- /**
2730
- * Defines the distance the polyline will cover from the task element before making a turn.
2697
+ * @hidden
2698
+ *
2699
+ * Notifies the timeline-scroll.directive to scroll into view to requested coordinates.
2700
+ * The scrolling is performed based on client (viewport) coordinates.
2731
2701
  */
2732
- const MIN_DISTANCE_BEFORE_TURN = 10;
2702
+ class TimelineScrollService {
2703
+ constructor() {
2704
+ this.horizontalScroll = new Subject();
2705
+ this.verticalScroll = new Subject();
2706
+ this.scrollCancel = new Subject();
2707
+ }
2708
+ ngOnDestroy() {
2709
+ this.horizontalScroll.complete();
2710
+ this.verticalScroll.complete();
2711
+ this.scrollCancel.complete();
2712
+ }
2713
+ requestHorizontalScroll(clientTop) {
2714
+ this.horizontalScroll.next(clientTop);
2715
+ }
2716
+ requestVerticalScroll(clientLeft) {
2717
+ this.verticalScroll.next(clientLeft);
2718
+ }
2719
+ requestScrollCancel() {
2720
+ this.scrollCancel.next();
2721
+ }
2722
+ }
2723
+ TimelineScrollService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineScrollService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2724
+ TimelineScrollService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineScrollService });
2725
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineScrollService, decorators: [{
2726
+ type: Injectable
2727
+ }] });
2728
+
2733
2729
  /**
2734
2730
  * @hidden
2735
2731
  */
2736
- class GanttDependencyDirective {
2737
- constructor(polyline, zone, renderer, mapper, dependencyDomService) {
2738
- this.polyline = polyline;
2732
+ class TimelineScrollableDirective {
2733
+ constructor(timelineScrollableContainer, scrollService, zone) {
2734
+ this.timelineScrollableContainer = timelineScrollableContainer;
2735
+ this.scrollService = scrollService;
2739
2736
  this.zone = zone;
2740
- this.renderer = renderer;
2741
- this.mapper = mapper;
2742
- this.dependencyDomService = dependencyDomService;
2743
2737
  this.subscriptions = new Subscription();
2744
- this.subscriptions.add(dependencyDomService.taskChanges
2745
- .pipe(switchMap(changes =>
2746
- // reacts only on the very last event emission,
2747
- // ensures that the tasks are drawn in the DOM
2748
- this.zone.onStable.pipe(take(1), map(() => changes))))
2749
- .subscribe(changes => this.updatePoints(changes)));
2738
+ this.subscriptions.add(this.scrollService.horizontalScroll
2739
+ .subscribe(this.scrollHorizontallyTo.bind(this)));
2740
+ this.subscriptions.add(this.scrollService.verticalScroll
2741
+ .subscribe(this.scrollVerticallyTo.bind(this)));
2742
+ this.subscriptions.add(this.scrollService.scrollCancel
2743
+ .subscribe(this.cancelScroll.bind(this)));
2750
2744
  }
2751
2745
  ngOnDestroy() {
2752
2746
  this.subscriptions.unsubscribe();
2753
2747
  }
2754
- ngOnChanges(changes) {
2755
- if (isPresent(changes['dependency'])) {
2756
- this.updatePoints(this.dependencyDomService.dependencyDomArgs);
2757
- }
2758
- }
2759
- updatePoints({ timelineRow, contentContainer, tasks }) {
2760
- if (!isPresent(timelineRow) || !isPresent(contentContainer) ||
2761
- !isPresent(tasks) || tasks.size === 0 ||
2762
- !tasks.has(this.mapper.extractFromDependency(this.dependency, 'fromId')) || !tasks.has(this.mapper.extractFromDependency(this.dependency, 'toId'))) {
2763
- this.clearPoints();
2764
- return;
2765
- }
2766
- const fromCoordinates = getElementRect(tasks.get(this.mapper.extractFromDependency(this.dependency, 'fromId')), contentContainer);
2767
- const toCoordinates = getElementRect(tasks.get(this.mapper.extractFromDependency(this.dependency, 'toId')), contentContainer);
2768
- const timelineRowHeight = isDocumentAvailable() ? timelineRow.getBoundingClientRect().height : 0;
2769
- const points = dependencyCoordinates(fromCoordinates, toCoordinates, timelineRowHeight, this.dependency.type, MIN_DISTANCE_BEFORE_TURN, ARROW_SIZE);
2770
- this.drawPoints(points);
2748
+ scrollHorizontallyTo(left) {
2749
+ this.zone.runOutsideAngular(() => {
2750
+ const container = this.timelineScrollableContainer.nativeElement;
2751
+ const visibleBoundaries = getViewportBoundaries(container);
2752
+ if (left < visibleBoundaries.left + this.scrollSettings.threshold) {
2753
+ this.horizontalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Backwards, ScrollAxis.Horizontal), this.scrollSettings.interval);
2754
+ }
2755
+ else if (left > visibleBoundaries.right - this.scrollSettings.threshold) {
2756
+ this.horizontalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Forward, ScrollAxis.Horizontal), this.scrollSettings.interval);
2757
+ }
2758
+ });
2771
2759
  }
2772
- clearPoints() {
2773
- this.renderer.setAttribute(this.polyline.nativeElement, 'points', '');
2760
+ scrollVerticallyTo(top) {
2761
+ this.zone.runOutsideAngular(() => {
2762
+ const container = this.timelineScrollableContainer.nativeElement;
2763
+ const visibleBoundaries = getViewportBoundaries(container);
2764
+ if (top < visibleBoundaries.top + this.scrollSettings.threshold) {
2765
+ this.verticalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Backwards, ScrollAxis.Vertical), this.scrollSettings.interval);
2766
+ }
2767
+ else if (top > visibleBoundaries.bottom - this.scrollSettings.threshold) {
2768
+ this.verticalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Forward, ScrollAxis.Vertical), this.scrollSettings.interval);
2769
+ }
2770
+ });
2774
2771
  }
2775
- drawPoints(points) {
2776
- if (!isPresent(points) || points.length === 0) {
2777
- this.clearPoints();
2778
- return;
2772
+ cancelScroll() {
2773
+ if (isPresent(this.verticalScrollInterval)) {
2774
+ clearInterval(this.verticalScrollInterval);
2775
+ this.verticalScrollInterval = null;
2776
+ }
2777
+ if (isPresent(this.horizontalScrollInterval)) {
2778
+ clearInterval(this.horizontalScrollInterval);
2779
+ this.horizontalScrollInterval = null;
2779
2780
  }
2780
- const parsedCoords = points.map(({ left, top }) => `${left},${top}`).join(' ');
2781
- this.renderer.setAttribute(this.polyline.nativeElement, 'points', parsedCoords);
2782
2781
  }
2783
2782
  }
2784
- 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 });
2785
- GanttDependencyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GanttDependencyDirective, selector: "[kendoGanttDependency]", inputs: { dependency: "dependency" }, usesOnChanges: true, ngImport: i0 });
2786
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttDependencyDirective, decorators: [{
2783
+ 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 });
2784
+ TimelineScrollableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: TimelineScrollableDirective, selector: "[kendoGanttTimelineScrollable]", inputs: { scrollSettings: "scrollSettings" }, ngImport: i0 });
2785
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineScrollableDirective, decorators: [{
2787
2786
  type: Directive,
2788
2787
  args: [{
2789
- selector: '[kendoGanttDependency]'
2788
+ selector: '[kendoGanttTimelineScrollable]'
2790
2789
  }]
2791
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: MappingService }, { type: DependencyDomService }]; }, propDecorators: { dependency: [{
2790
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: TimelineScrollService }, { type: i0.NgZone }]; }, propDecorators: { scrollSettings: [{
2792
2791
  type: Input
2793
2792
  }] } });
2794
2793
 
@@ -2861,8 +2860,8 @@ class GanttTimelineComponent {
2861
2860
  });
2862
2861
  }
2863
2862
  }
2864
- 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 });
2865
- 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: `
2863
+ 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 });
2864
+ 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: `
2866
2865
  <div class="k-gantt-timeline k-grid k-grid-md">
2867
2866
  <div class="k-grid-header">
2868
2867
  <div #timelineHeaderWrap class="k-grid-header-wrap">
@@ -2965,8 +2964,8 @@ GanttTimelineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
2965
2964
  <ng-container #dragPopupContainer></ng-container>
2966
2965
  </div>
2967
2966
  </div>
2968
- `, 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"] }] });
2969
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTimelineComponent, decorators: [{
2967
+ `, 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"] }] });
2968
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttTimelineComponent, decorators: [{
2970
2969
  type: Component,
2971
2970
  args: [{
2972
2971
  selector: 'kendo-gantt-timeline',
@@ -3150,9 +3149,9 @@ class GanttColumnBase extends ColumnBase {
3150
3149
  return super.locked;
3151
3150
  }
3152
3151
  }
3153
- GanttColumnBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttColumnBase, deps: null, target: i0.ɵɵFactoryTarget.Component });
3154
- 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 });
3155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttColumnBase, decorators: [{
3152
+ GanttColumnBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttColumnBase, deps: null, target: i0.ɵɵFactoryTarget.Component });
3153
+ 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 });
3154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttColumnBase, decorators: [{
3156
3155
  type: Component,
3157
3156
  args: [{
3158
3157
  template: '',
@@ -3203,9 +3202,9 @@ class CellTemplateDirective {
3203
3202
  this.templateRef = templateRef;
3204
3203
  }
3205
3204
  }
3206
- 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 });
3207
- CellTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: CellTemplateDirective, selector: "[kendoGanttCellTemplate]", ngImport: i0 });
3208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellTemplateDirective, decorators: [{
3205
+ 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 });
3206
+ CellTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: CellTemplateDirective, selector: "[kendoGanttCellTemplate]", ngImport: i0 });
3207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CellTemplateDirective, decorators: [{
3209
3208
  type: Directive,
3210
3209
  args: [{
3211
3210
  selector: '[kendoGanttCellTemplate]'
@@ -3231,9 +3230,9 @@ class ColumnMenuTemplateDirective {
3231
3230
  this.templateRef = templateRef;
3232
3231
  }
3233
3232
  }
3234
- 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 });
3235
- ColumnMenuTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: ColumnMenuTemplateDirective, selector: "[kendoGanttColumnMenuTemplate]", ngImport: i0 });
3236
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuTemplateDirective, decorators: [{
3233
+ 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 });
3234
+ ColumnMenuTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: ColumnMenuTemplateDirective, selector: "[kendoGanttColumnMenuTemplate]", ngImport: i0 });
3235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ColumnMenuTemplateDirective, decorators: [{
3237
3236
  type: Directive,
3238
3237
  args: [{
3239
3238
  selector: '[kendoGanttColumnMenuTemplate]'
@@ -3258,9 +3257,9 @@ class FilterCellTemplateDirective {
3258
3257
  this.templateRef = templateRef;
3259
3258
  }
3260
3259
  }
3261
- 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 });
3262
- FilterCellTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FilterCellTemplateDirective, selector: "[kendoGanttFilterCellTemplate]", ngImport: i0 });
3263
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterCellTemplateDirective, decorators: [{
3260
+ 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 });
3261
+ FilterCellTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: FilterCellTemplateDirective, selector: "[kendoGanttFilterCellTemplate]", ngImport: i0 });
3262
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FilterCellTemplateDirective, decorators: [{
3264
3263
  type: Directive,
3265
3264
  args: [{
3266
3265
  selector: '[kendoGanttFilterCellTemplate]'
@@ -3284,9 +3283,9 @@ class FilterMenuTemplateDirective {
3284
3283
  this.templateRef = templateRef;
3285
3284
  }
3286
3285
  }
3287
- 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 });
3288
- FilterMenuTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FilterMenuTemplateDirective, selector: "[kendoGanttFilterMenuTemplate]", ngImport: i0 });
3289
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuTemplateDirective, decorators: [{
3286
+ 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 });
3287
+ FilterMenuTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: FilterMenuTemplateDirective, selector: "[kendoGanttFilterMenuTemplate]", ngImport: i0 });
3288
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FilterMenuTemplateDirective, decorators: [{
3290
3289
  type: Directive,
3291
3290
  args: [{
3292
3291
  selector: '[kendoGanttFilterMenuTemplate]'
@@ -3314,9 +3313,9 @@ class FooterTemplateDirective {
3314
3313
  this.templateRef = templateRef;
3315
3314
  }
3316
3315
  }
3317
- 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 });
3318
- FooterTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FooterTemplateDirective, selector: "[kendoGanttFooterTemplate]", ngImport: i0 });
3319
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FooterTemplateDirective, decorators: [{
3316
+ 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 });
3317
+ FooterTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: FooterTemplateDirective, selector: "[kendoGanttFooterTemplate]", ngImport: i0 });
3318
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FooterTemplateDirective, decorators: [{
3320
3319
  type: Directive,
3321
3320
  args: [{
3322
3321
  selector: '[kendoGanttFooterTemplate]'
@@ -3342,9 +3341,9 @@ class HeaderTemplateDirective {
3342
3341
  this.templateRef = templateRef;
3343
3342
  }
3344
3343
  }
3345
- 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 });
3346
- HeaderTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: HeaderTemplateDirective, selector: "[kendoGanttHeaderTemplate]", ngImport: i0 });
3347
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderTemplateDirective, decorators: [{
3344
+ 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 });
3345
+ HeaderTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: HeaderTemplateDirective, selector: "[kendoGanttHeaderTemplate]", ngImport: i0 });
3346
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: HeaderTemplateDirective, decorators: [{
3348
3347
  type: Directive,
3349
3348
  args: [{
3350
3349
  selector: '[kendoGanttHeaderTemplate]'
@@ -3374,9 +3373,9 @@ class EditTemplateDirective {
3374
3373
  this.templateRef = templateRef;
3375
3374
  }
3376
3375
  }
3377
- 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 });
3378
- EditTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: EditTemplateDirective, selector: "[kendoGanttEditTemplate]", ngImport: i0 });
3379
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EditTemplateDirective, decorators: [{
3376
+ 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 });
3377
+ EditTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: EditTemplateDirective, selector: "[kendoGanttEditTemplate]", ngImport: i0 });
3378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EditTemplateDirective, decorators: [{
3380
3379
  type: Directive,
3381
3380
  args: [{
3382
3381
  selector: '[kendoGanttEditTemplate]'
@@ -3430,14 +3429,14 @@ class GanttColumnComponent extends ColumnComponent {
3430
3429
  this.options.notifyColumnChanges();
3431
3430
  }
3432
3431
  }
3433
- 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 });
3434
- 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: [
3432
+ 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 });
3433
+ 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: [
3435
3434
  {
3436
3435
  provide: GanttColumnBase,
3437
3436
  useExisting: forwardRef(() => GanttColumnComponent)
3438
3437
  }
3439
3438
  ], 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 });
3440
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttColumnComponent, decorators: [{
3439
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttColumnComponent, decorators: [{
3441
3440
  type: Component,
3442
3441
  args: [{
3443
3442
  selector: 'kendo-gantt-column',
@@ -3544,14 +3543,14 @@ class GanttColumnGroupComponent extends ColumnGroupComponent {
3544
3543
  this.options.notifyColumnChanges();
3545
3544
  }
3546
3545
  }
3547
- 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 });
3548
- 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: [
3546
+ 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 });
3547
+ 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: [
3549
3548
  {
3550
3549
  provide: GanttColumnBase,
3551
3550
  useExisting: forwardRef(() => GanttColumnGroupComponent)
3552
3551
  }
3553
3552
  ], queries: [{ propertyName: "children", predicate: GanttColumnBase }, { propertyName: "headerTemplates", predicate: HeaderTemplateDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
3554
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttColumnGroupComponent, decorators: [{
3553
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttColumnGroupComponent, decorators: [{
3555
3554
  type: Component,
3556
3555
  args: [{
3557
3556
  selector: 'kendo-gantt-column-group',
@@ -3649,14 +3648,14 @@ class GanttSpanColumnComponent extends SpanColumnComponent {
3649
3648
  this.options.notifyColumnChanges();
3650
3649
  }
3651
3650
  }
3652
- 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 });
3653
- 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: [
3651
+ 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 });
3652
+ 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: [
3654
3653
  {
3655
3654
  provide: GanttColumnBase,
3656
3655
  useExisting: forwardRef(() => GanttSpanColumnComponent)
3657
3656
  }
3658
3657
  ], queries: [{ propertyName: "childColumns", predicate: GanttColumnComponent }, { propertyName: "template", predicate: CellTemplateDirective }, { propertyName: "editTemplate", predicate: EditTemplateDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
3659
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttSpanColumnComponent, decorators: [{
3658
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttSpanColumnComponent, decorators: [{
3660
3659
  type: Component,
3661
3660
  args: [{
3662
3661
  selector: 'kendo-gantt-span-column',
@@ -3754,9 +3753,9 @@ class GanttLocalizationService {
3754
3753
  return this.localizationService.get(token);
3755
3754
  }
3756
3755
  }
3757
- 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 });
3758
- GanttLocalizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttLocalizationService });
3759
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttLocalizationService, decorators: [{
3756
+ 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 });
3757
+ GanttLocalizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttLocalizationService });
3758
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttLocalizationService, decorators: [{
3760
3759
  type: Injectable
3761
3760
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
3762
3761
 
@@ -3809,9 +3808,9 @@ class GanttTaskTemplateDirective {
3809
3808
  this.templateRef = templateRef;
3810
3809
  }
3811
3810
  }
3812
- 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 });
3813
- GanttTaskTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GanttTaskTemplateDirective, selector: "[kendoGanttTaskTemplate]", ngImport: i0 });
3814
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTaskTemplateDirective, decorators: [{
3811
+ 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 });
3812
+ GanttTaskTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: GanttTaskTemplateDirective, selector: "[kendoGanttTaskTemplate]", ngImport: i0 });
3813
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttTaskTemplateDirective, decorators: [{
3815
3814
  type: Directive,
3816
3815
  args: [{
3817
3816
  selector: '[kendoGanttTaskTemplate]'
@@ -3856,9 +3855,9 @@ class GanttSummaryTaskTemplateDirective {
3856
3855
  this.templateRef = templateRef;
3857
3856
  }
3858
3857
  }
3859
- 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 });
3860
- GanttSummaryTaskTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GanttSummaryTaskTemplateDirective, selector: "[kendoGanttSummaryTaskTemplate]", ngImport: i0 });
3861
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttSummaryTaskTemplateDirective, decorators: [{
3858
+ 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 });
3859
+ GanttSummaryTaskTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: GanttSummaryTaskTemplateDirective, selector: "[kendoGanttSummaryTaskTemplate]", ngImport: i0 });
3860
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttSummaryTaskTemplateDirective, decorators: [{
3862
3861
  type: Directive,
3863
3862
  args: [{
3864
3863
  selector: '[kendoGanttSummaryTaskTemplate]'
@@ -3898,9 +3897,9 @@ class GanttTaskContentTemplateDirective {
3898
3897
  this.templateRef = templateRef;
3899
3898
  }
3900
3899
  }
3901
- 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 });
3902
- GanttTaskContentTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GanttTaskContentTemplateDirective, selector: "[kendoGanttTaskContentTemplate]", ngImport: i0 });
3903
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTaskContentTemplateDirective, decorators: [{
3900
+ 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 });
3901
+ GanttTaskContentTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: GanttTaskContentTemplateDirective, selector: "[kendoGanttTaskContentTemplate]", ngImport: i0 });
3902
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttTaskContentTemplateDirective, decorators: [{
3904
3903
  type: Directive,
3905
3904
  args: [{
3906
3905
  selector: '[kendoGanttTaskContentTemplate]'
@@ -4019,9 +4018,9 @@ class ToolbarTemplateDirective {
4019
4018
  return this._position;
4020
4019
  }
4021
4020
  }
4022
- 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 });
4023
- ToolbarTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: ToolbarTemplateDirective, selector: "[kendoGanttToolbarTemplate]", inputs: { position: "position" }, ngImport: i0 });
4024
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ToolbarTemplateDirective, decorators: [{
4021
+ 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 });
4022
+ ToolbarTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: ToolbarTemplateDirective, selector: "[kendoGanttToolbarTemplate]", inputs: { position: "position" }, ngImport: i0 });
4023
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ToolbarTemplateDirective, decorators: [{
4025
4024
  type: Directive,
4026
4025
  args: [{
4027
4026
  selector: '[kendoGanttToolbarTemplate]'
@@ -4063,9 +4062,9 @@ class ViewBase {
4063
4062
  }
4064
4063
  }
4065
4064
  }
4066
- 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 });
4067
- 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 });
4068
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewBase, decorators: [{
4065
+ 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 });
4066
+ 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 });
4067
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ViewBase, decorators: [{
4069
4068
  type: Directive,
4070
4069
  args: [{
4071
4070
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -4107,12 +4106,99 @@ class ToolbarNavigationService {
4107
4106
  this.focusableContent[this.focusIndex].focus();
4108
4107
  }
4109
4108
  }
4110
- ToolbarNavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ToolbarNavigationService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
4111
- ToolbarNavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ToolbarNavigationService });
4112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ToolbarNavigationService, decorators: [{
4109
+ ToolbarNavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ToolbarNavigationService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
4110
+ ToolbarNavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ToolbarNavigationService });
4111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ToolbarNavigationService, decorators: [{
4113
4112
  type: Injectable
4114
4113
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
4115
4114
 
4115
+ /**
4116
+ * The Gantt ViewSelector component. Shows the currently active view type, and allows switching to another view type.
4117
+ */
4118
+ class ViewSelectorComponent {
4119
+ constructor(localizationService) {
4120
+ this.localizationService = localizationService;
4121
+ this.hostClass = true;
4122
+ /**
4123
+ * The currently active view type.
4124
+ * @default 'week'
4125
+ */
4126
+ this.activeView = 'week';
4127
+ /**
4128
+ * Fires each time the user selects a different view type. The event data contains the type of the newly selected view.
4129
+ */
4130
+ this.activeViewChange = new EventEmitter();
4131
+ }
4132
+ /**
4133
+ * @hidden
4134
+ */
4135
+ onClick(viewType) {
4136
+ if (viewType !== this.activeView) {
4137
+ this.activeViewChange.emit(viewType);
4138
+ }
4139
+ }
4140
+ /**
4141
+ * @hidden
4142
+ */
4143
+ getViewTypeText(viewType) {
4144
+ return this.localizationService.get(`${viewType}ViewText`);
4145
+ }
4146
+ /**
4147
+ * @hidden
4148
+ */
4149
+ onActiveViewChange(event) {
4150
+ this.activeViewChange.emit(event.target.value);
4151
+ }
4152
+ }
4153
+ 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 });
4154
+ 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: `
4155
+ <select
4156
+ class="k-dropdownlist k-picker k-rounded-md k-views-dropdown"
4157
+ aria-label="View Selector"
4158
+ [value]="activeView"
4159
+ (change)="onActiveViewChange($event)">
4160
+ <option *ngFor="let view of views" [value]="view">{{getViewTypeText(view)}}</option>
4161
+ </select>
4162
+ <kendo-buttongroup class="k-gantt-views" selection="single" [navigable]="false">
4163
+ <button *ngFor="let view of views"
4164
+ kendoButton
4165
+ type="button"
4166
+ [selected]="view === activeView"
4167
+ (click)="onClick(view)">{{getViewTypeText(view)}}</button>
4168
+ </kendo-buttongroup>
4169
+ `, 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"] }] });
4170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ViewSelectorComponent, decorators: [{
4171
+ type: Component,
4172
+ args: [{
4173
+ selector: 'kendo-gantt-view-selector',
4174
+ template: `
4175
+ <select
4176
+ class="k-dropdownlist k-picker k-rounded-md k-views-dropdown"
4177
+ aria-label="View Selector"
4178
+ [value]="activeView"
4179
+ (change)="onActiveViewChange($event)">
4180
+ <option *ngFor="let view of views" [value]="view">{{getViewTypeText(view)}}</option>
4181
+ </select>
4182
+ <kendo-buttongroup class="k-gantt-views" selection="single" [navigable]="false">
4183
+ <button *ngFor="let view of views"
4184
+ kendoButton
4185
+ type="button"
4186
+ [selected]="view === activeView"
4187
+ (click)="onClick(view)">{{getViewTypeText(view)}}</button>
4188
+ </kendo-buttongroup>
4189
+ `
4190
+ }]
4191
+ }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; }, propDecorators: { hostClass: [{
4192
+ type: HostBinding,
4193
+ args: ['class.k-gantt-views-wrapper']
4194
+ }], views: [{
4195
+ type: Input
4196
+ }], activeView: [{
4197
+ type: Input
4198
+ }], activeViewChange: [{
4199
+ type: Output
4200
+ }] } });
4201
+
4116
4202
  /**
4117
4203
  * The UI for adding new items to the Gantt.
4118
4204
  * Use it within a toolbar template to provide a custom icon or list of options.
@@ -4184,8 +4270,8 @@ class GanttAddTaskComponent {
4184
4270
  });
4185
4271
  }
4186
4272
  }
4187
- 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 });
4188
- 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: `
4273
+ 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 });
4274
+ 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: `
4189
4275
  <kendo-dropdownbutton
4190
4276
  [data]="data"
4191
4277
  [icon]="icon"
@@ -4196,8 +4282,8 @@ GanttAddTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
4196
4282
  (open)="handleOpen($event)">
4197
4283
  {{ getText('addTaskText') }}
4198
4284
  </kendo-dropdownbutton>
4199
- `, 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"] }] });
4200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttAddTaskComponent, decorators: [{
4285
+ `, 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"] }] });
4286
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttAddTaskComponent, decorators: [{
4201
4287
  type: Component,
4202
4288
  args: [{
4203
4289
  selector: 'kendo-gantt-add-task',
@@ -4222,93 +4308,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4222
4308
  type: Input
4223
4309
  }] } });
4224
4310
 
4225
- /**
4226
- * The Gantt ViewSelector component. Shows the currently active view type, and allows switching to another view type.
4227
- */
4228
- class ViewSelectorComponent {
4229
- constructor(localizationService) {
4230
- this.localizationService = localizationService;
4231
- this.hostClass = true;
4232
- /**
4233
- * The currently active view type.
4234
- * @default 'week'
4235
- */
4236
- this.activeView = 'week';
4237
- /**
4238
- * Fires each time the user selects a different view type. The event data contains the type of the newly selected view.
4239
- */
4240
- this.activeViewChange = new EventEmitter();
4241
- }
4242
- /**
4243
- * @hidden
4244
- */
4245
- onClick(viewType) {
4246
- if (viewType !== this.activeView) {
4247
- this.activeViewChange.emit(viewType);
4248
- }
4249
- }
4250
- /**
4251
- * @hidden
4252
- */
4253
- getViewTypeText(viewType) {
4254
- return this.localizationService.get(`${viewType}ViewText`);
4255
- }
4256
- /**
4257
- * @hidden
4258
- */
4259
- onActiveViewChange(event) {
4260
- this.activeViewChange.emit(event.target.value);
4261
- }
4262
- }
4263
- 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 });
4264
- 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: `
4265
- <select
4266
- class="k-dropdownlist k-picker k-rounded-md k-views-dropdown"
4267
- aria-label="View Selector"
4268
- [value]="activeView"
4269
- (change)="onActiveViewChange($event)">
4270
- <option *ngFor="let view of views" [value]="view">{{getViewTypeText(view)}}</option>
4271
- </select>
4272
- <kendo-buttongroup class="k-gantt-views" selection="single" [navigable]="false">
4273
- <button *ngFor="let view of views"
4274
- kendoButton
4275
- type="button"
4276
- [selected]="view === activeView"
4277
- (click)="onClick(view)">{{getViewTypeText(view)}}</button>
4278
- </kendo-buttongroup>
4279
- `, 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"] }] });
4280
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewSelectorComponent, decorators: [{
4281
- type: Component,
4282
- args: [{
4283
- selector: 'kendo-gantt-view-selector',
4284
- template: `
4285
- <select
4286
- class="k-dropdownlist k-picker k-rounded-md k-views-dropdown"
4287
- aria-label="View Selector"
4288
- [value]="activeView"
4289
- (change)="onActiveViewChange($event)">
4290
- <option *ngFor="let view of views" [value]="view">{{getViewTypeText(view)}}</option>
4291
- </select>
4292
- <kendo-buttongroup class="k-gantt-views" selection="single" [navigable]="false">
4293
- <button *ngFor="let view of views"
4294
- kendoButton
4295
- type="button"
4296
- [selected]="view === activeView"
4297
- (click)="onClick(view)">{{getViewTypeText(view)}}</button>
4298
- </kendo-buttongroup>
4299
- `
4300
- }]
4301
- }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; }, propDecorators: { hostClass: [{
4302
- type: HostBinding,
4303
- args: ['class.k-gantt-views-wrapper']
4304
- }], views: [{
4305
- type: Input
4306
- }], activeView: [{
4307
- type: Input
4308
- }], activeViewChange: [{
4309
- type: Output
4310
- }] } });
4311
-
4312
4311
  /**
4313
4312
  * @hidden
4314
4313
  */
@@ -4331,7 +4330,6 @@ class ToolbarComponent {
4331
4330
  this.navigationService.updateFocus();
4332
4331
  }
4333
4332
  }
4334
- ;
4335
4333
  arrowLeftListener() {
4336
4334
  if (this.navigable && isDocumentAvailable()) {
4337
4335
  this.navigationService.focusIndex--;
@@ -4377,8 +4375,8 @@ class ToolbarComponent {
4377
4375
  }
4378
4376
  }
4379
4377
  }
4380
- 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 });
4381
- 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: `
4378
+ 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 });
4379
+ 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: `
4382
4380
  <ng-container *ngIf="!renderTemplate">
4383
4381
  <kendo-gantt-add-task *ngIf="showAddTask"></kendo-gantt-add-task>
4384
4382
  <span class="k-spacer k-toolbar-spacer"></span>
@@ -4394,8 +4392,8 @@ ToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
4394
4392
  [ngTemplateOutletContext]="context"
4395
4393
  >
4396
4394
  </ng-template>
4397
- `, 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"] }] });
4398
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ToolbarComponent, decorators: [{
4395
+ `, 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"] }] });
4396
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ToolbarComponent, decorators: [{
4399
4397
  type: Component,
4400
4398
  args: [{
4401
4399
  selector: 'kendo-gantt-toolbar',
@@ -4451,95 +4449,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4451
4449
  type: Input
4452
4450
  }] } });
4453
4451
 
4454
- /**
4455
- * @hidden
4456
- */
4457
- class TaskFieldsComponent {
4458
- constructor(mapper, editService, localizationService) {
4459
- this.mapper = mapper;
4460
- this.editService = editService;
4461
- this.localizationService = localizationService;
4462
- }
4463
- /**
4464
- * @hidden
4465
- */
4466
- get formGroup() {
4467
- return this.editService.taskFormGroup;
4468
- }
4469
- getText(token) {
4470
- return this.localizationService.get(token);
4471
- }
4472
- }
4473
- 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 });
4474
- TaskFieldsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TaskFieldsComponent, selector: "kendo-gantt-task-fields", ngImport: i0, template: `
4475
- <form class="k-form k-form-md" [formGroup]="formGroup">
4476
- <kendo-formfield *ngIf="formGroup.get(mapper.taskFields.title)">
4477
- <kendo-label [for]="title" [text]="getText('titleFieldInputLabel')"></kendo-label>
4478
- <input #title kendoTextBox [formControlName]="mapper.taskFields.title" />
4479
- </kendo-formfield>
4480
- <div class="k-hstack">
4481
- <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.start)">
4482
- <kendo-label [for]="start" [text]="getText('startFieldInputLabel')"></kendo-label>
4483
- <kendo-datetimepicker #start [formControlName]="mapper.taskFields.start"></kendo-datetimepicker>
4484
- </kendo-formfield>
4485
- <kendo-treelist-spacer></kendo-treelist-spacer>
4486
- <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.end)">
4487
- <kendo-label [for]="end" [text]="getText('endFieldInputLabel')"></kendo-label>
4488
- <kendo-datetimepicker #end [formControlName]="mapper.taskFields.end"></kendo-datetimepicker>
4489
- </kendo-formfield>
4490
- </div>
4491
- <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.completionRatio)">
4492
- <kendo-label [for]="completionRatio" [text]="getText('completionRatioFieldInputLabel')"></kendo-label>
4493
- <kendo-numerictextbox
4494
- #completionRatio
4495
- [formControlName]="mapper.taskFields.completionRatio"
4496
- [min]="0"
4497
- [max]="1"
4498
- [decimals]="2"
4499
- format="p2"
4500
- [step]="0.01"
4501
- ></kendo-numerictextbox>
4502
- </kendo-formfield>
4503
- </form>
4504
- `, 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"] }] });
4505
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskFieldsComponent, decorators: [{
4506
- type: Component,
4507
- args: [{
4508
- selector: 'kendo-gantt-task-fields',
4509
- template: `
4510
- <form class="k-form k-form-md" [formGroup]="formGroup">
4511
- <kendo-formfield *ngIf="formGroup.get(mapper.taskFields.title)">
4512
- <kendo-label [for]="title" [text]="getText('titleFieldInputLabel')"></kendo-label>
4513
- <input #title kendoTextBox [formControlName]="mapper.taskFields.title" />
4514
- </kendo-formfield>
4515
- <div class="k-hstack">
4516
- <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.start)">
4517
- <kendo-label [for]="start" [text]="getText('startFieldInputLabel')"></kendo-label>
4518
- <kendo-datetimepicker #start [formControlName]="mapper.taskFields.start"></kendo-datetimepicker>
4519
- </kendo-formfield>
4520
- <kendo-treelist-spacer></kendo-treelist-spacer>
4521
- <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.end)">
4522
- <kendo-label [for]="end" [text]="getText('endFieldInputLabel')"></kendo-label>
4523
- <kendo-datetimepicker #end [formControlName]="mapper.taskFields.end"></kendo-datetimepicker>
4524
- </kendo-formfield>
4525
- </div>
4526
- <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.completionRatio)">
4527
- <kendo-label [for]="completionRatio" [text]="getText('completionRatioFieldInputLabel')"></kendo-label>
4528
- <kendo-numerictextbox
4529
- #completionRatio
4530
- [formControlName]="mapper.taskFields.completionRatio"
4531
- [min]="0"
4532
- [max]="1"
4533
- [decimals]="2"
4534
- format="p2"
4535
- [step]="0.01"
4536
- ></kendo-numerictextbox>
4537
- </kendo-formfield>
4538
- </form>
4539
- `
4540
- }]
4541
- }], ctorParameters: function () { return [{ type: MappingService }, { type: EditService }, { type: GanttLocalizationService }]; } });
4542
-
4543
4452
  /**
4544
4453
  * @hidden
4545
4454
  */
@@ -4624,8 +4533,8 @@ class DependenciesTableComponent {
4624
4533
  this.formGroups.removeAt(selectedIndex);
4625
4534
  }
4626
4535
  }
4627
- 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 });
4628
- 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: `
4536
+ 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 });
4537
+ 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: `
4629
4538
  <kendo-grid
4630
4539
  [data]="dependencies"
4631
4540
  [selectable]="{ mode: 'single' }"
@@ -4677,8 +4586,8 @@ DependenciesTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
4677
4586
  </ng-template>
4678
4587
  </kendo-grid-column>
4679
4588
  </kendo-grid>
4680
- `, 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"] }] });
4681
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DependenciesTableComponent, decorators: [{
4589
+ `, 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"] }] });
4590
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DependenciesTableComponent, decorators: [{
4682
4591
  type: Component,
4683
4592
  args: [{
4684
4593
  selector: 'kendo-gantt-dependencies-table',
@@ -4746,6 +4655,95 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4746
4655
  type: Output
4747
4656
  }] } });
4748
4657
 
4658
+ /**
4659
+ * @hidden
4660
+ */
4661
+ class TaskFieldsComponent {
4662
+ constructor(mapper, editService, localizationService) {
4663
+ this.mapper = mapper;
4664
+ this.editService = editService;
4665
+ this.localizationService = localizationService;
4666
+ }
4667
+ /**
4668
+ * @hidden
4669
+ */
4670
+ get formGroup() {
4671
+ return this.editService.taskFormGroup;
4672
+ }
4673
+ getText(token) {
4674
+ return this.localizationService.get(token);
4675
+ }
4676
+ }
4677
+ 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 });
4678
+ TaskFieldsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TaskFieldsComponent, selector: "kendo-gantt-task-fields", ngImport: i0, template: `
4679
+ <form class="k-form k-form-md" [formGroup]="formGroup">
4680
+ <kendo-formfield *ngIf="formGroup.get(mapper.taskFields.title)">
4681
+ <kendo-label [for]="title" [text]="getText('titleFieldInputLabel')"></kendo-label>
4682
+ <input #title kendoTextBox [formControlName]="mapper.taskFields.title" />
4683
+ </kendo-formfield>
4684
+ <div class="k-hstack">
4685
+ <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.start)">
4686
+ <kendo-label [for]="start" [text]="getText('startFieldInputLabel')"></kendo-label>
4687
+ <kendo-datetimepicker #start [formControlName]="mapper.taskFields.start"></kendo-datetimepicker>
4688
+ </kendo-formfield>
4689
+ <kendo-treelist-spacer></kendo-treelist-spacer>
4690
+ <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.end)">
4691
+ <kendo-label [for]="end" [text]="getText('endFieldInputLabel')"></kendo-label>
4692
+ <kendo-datetimepicker #end [formControlName]="mapper.taskFields.end"></kendo-datetimepicker>
4693
+ </kendo-formfield>
4694
+ </div>
4695
+ <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.completionRatio)">
4696
+ <kendo-label [for]="completionRatio" [text]="getText('completionRatioFieldInputLabel')"></kendo-label>
4697
+ <kendo-numerictextbox
4698
+ #completionRatio
4699
+ [formControlName]="mapper.taskFields.completionRatio"
4700
+ [min]="0"
4701
+ [max]="1"
4702
+ [decimals]="2"
4703
+ format="p2"
4704
+ [step]="0.01"
4705
+ ></kendo-numerictextbox>
4706
+ </kendo-formfield>
4707
+ </form>
4708
+ `, 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"] }] });
4709
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TaskFieldsComponent, decorators: [{
4710
+ type: Component,
4711
+ args: [{
4712
+ selector: 'kendo-gantt-task-fields',
4713
+ template: `
4714
+ <form class="k-form k-form-md" [formGroup]="formGroup">
4715
+ <kendo-formfield *ngIf="formGroup.get(mapper.taskFields.title)">
4716
+ <kendo-label [for]="title" [text]="getText('titleFieldInputLabel')"></kendo-label>
4717
+ <input #title kendoTextBox [formControlName]="mapper.taskFields.title" />
4718
+ </kendo-formfield>
4719
+ <div class="k-hstack">
4720
+ <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.start)">
4721
+ <kendo-label [for]="start" [text]="getText('startFieldInputLabel')"></kendo-label>
4722
+ <kendo-datetimepicker #start [formControlName]="mapper.taskFields.start"></kendo-datetimepicker>
4723
+ </kendo-formfield>
4724
+ <kendo-treelist-spacer></kendo-treelist-spacer>
4725
+ <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.end)">
4726
+ <kendo-label [for]="end" [text]="getText('endFieldInputLabel')"></kendo-label>
4727
+ <kendo-datetimepicker #end [formControlName]="mapper.taskFields.end"></kendo-datetimepicker>
4728
+ </kendo-formfield>
4729
+ </div>
4730
+ <kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.completionRatio)">
4731
+ <kendo-label [for]="completionRatio" [text]="getText('completionRatioFieldInputLabel')"></kendo-label>
4732
+ <kendo-numerictextbox
4733
+ #completionRatio
4734
+ [formControlName]="mapper.taskFields.completionRatio"
4735
+ [min]="0"
4736
+ [max]="1"
4737
+ [decimals]="2"
4738
+ format="p2"
4739
+ [step]="0.01"
4740
+ ></kendo-numerictextbox>
4741
+ </kendo-formfield>
4742
+ </form>
4743
+ `
4744
+ }]
4745
+ }], ctorParameters: function () { return [{ type: MappingService }, { type: EditService }, { type: GanttLocalizationService }]; } });
4746
+
4749
4747
  /**
4750
4748
  * @hidden
4751
4749
  */
@@ -4789,8 +4787,8 @@ class EditDialogComponent {
4789
4787
  this.editService.taskDelete.next(this.editService.dataItem);
4790
4788
  }
4791
4789
  }
4792
- 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 });
4793
- 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: `
4790
+ 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 });
4791
+ 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: `
4794
4792
  <kendo-dialog
4795
4793
  [title]="getText('taskEditingDialogTitle')"
4796
4794
  [width]="575"
@@ -4861,8 +4859,8 @@ EditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
4861
4859
  </button>
4862
4860
  </kendo-dialog-actions>
4863
4861
  </kendo-dialog>
4864
- `, 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"] }] });
4865
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EditDialogComponent, decorators: [{
4862
+ `, 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" }] });
4863
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EditDialogComponent, decorators: [{
4866
4864
  type: Component,
4867
4865
  args: [{
4868
4866
  selector: 'kendo-gantt-edit-dialog',
@@ -4948,9 +4946,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4948
4946
  */
4949
4947
  class Messages extends ComponentMessages {
4950
4948
  }
4951
- Messages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
4952
- 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 });
4953
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Messages, decorators: [{
4949
+ Messages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
4950
+ 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 });
4951
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: Messages, decorators: [{
4954
4952
  type: Directive,
4955
4953
  args: [{
4956
4954
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -5103,14 +5101,14 @@ class LocalizedMessagesDirective extends Messages {
5103
5101
  this.service = service;
5104
5102
  }
5105
5103
  }
5106
- 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 });
5107
- LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: LocalizedMessagesDirective, selector: "[kendoGanttLocalizedMessages]", providers: [
5104
+ 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 });
5105
+ LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: LocalizedMessagesDirective, selector: "[kendoGanttLocalizedMessages]", providers: [
5108
5106
  {
5109
5107
  provide: Messages,
5110
5108
  useExisting: forwardRef(() => LocalizedMessagesDirective)
5111
5109
  }
5112
5110
  ], usesInheritance: true, ngImport: i0 });
5113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
5111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
5114
5112
  type: Directive,
5115
5113
  args: [{
5116
5114
  providers: [
@@ -6386,8 +6384,8 @@ class GanttComponent {
6386
6384
  }
6387
6385
  }
6388
6386
  }
6389
- 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 });
6390
- 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: [
6387
+ 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 });
6388
+ 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: [
6391
6389
  GanttLocalizationService,
6392
6390
  LocalizationService,
6393
6391
  {
@@ -6783,8 +6781,8 @@ GanttComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
6783
6781
  </kendo-dialog>
6784
6782
 
6785
6783
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
6786
- `, 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"] }] });
6787
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttComponent, decorators: [{
6784
+ `, 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]" }] });
6785
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttComponent, decorators: [{
6788
6786
  type: Component,
6789
6787
  args: [{
6790
6788
  selector: 'kendo-gantt',
@@ -7360,9 +7358,9 @@ class GanttFlatBindingDirective extends FlatBindingDirective {
7360
7358
  super.aggregate = value;
7361
7359
  }
7362
7360
  }
7363
- GanttFlatBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttFlatBindingDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7364
- 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 });
7365
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttFlatBindingDirective, decorators: [{
7361
+ GanttFlatBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttFlatBindingDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7362
+ 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 });
7363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttFlatBindingDirective, decorators: [{
7366
7364
  type: Directive,
7367
7365
  args: [{
7368
7366
  selector: '[kendoGanttFlatBinding]',
@@ -7385,9 +7383,9 @@ class GanttHierarchyBindingDirective extends HierarchyBindingDirective {
7385
7383
  super.aggregate = value;
7386
7384
  }
7387
7385
  }
7388
- GanttHierarchyBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttHierarchyBindingDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7389
- 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 });
7390
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttHierarchyBindingDirective, decorators: [{
7386
+ GanttHierarchyBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttHierarchyBindingDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7387
+ 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 });
7388
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttHierarchyBindingDirective, decorators: [{
7391
7389
  type: Directive,
7392
7390
  args: [{
7393
7391
  selector: '[kendoGanttHierarchyBinding]',
@@ -7412,9 +7410,9 @@ class GanttExpandableDirective extends ExpandableDirective {
7412
7410
  super.expandBy = value;
7413
7411
  }
7414
7412
  }
7415
- GanttExpandableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttExpandableDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7416
- 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 });
7417
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttExpandableDirective, decorators: [{
7413
+ GanttExpandableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttExpandableDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7414
+ 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 });
7415
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttExpandableDirective, decorators: [{
7418
7416
  type: Directive,
7419
7417
  args: [{
7420
7418
  exportAs: 'kendoGanttExpandable',
@@ -7510,9 +7508,9 @@ class SelectableDirective {
7510
7508
  }
7511
7509
  }
7512
7510
  }
7513
- SelectableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SelectableDirective, deps: [{ token: GanttComponent }], target: i0.ɵɵFactoryTarget.Directive });
7514
- 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 });
7515
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SelectableDirective, decorators: [{
7511
+ SelectableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SelectableDirective, deps: [{ token: GanttComponent }], target: i0.ɵɵFactoryTarget.Directive });
7512
+ 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 });
7513
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SelectableDirective, decorators: [{
7516
7514
  type: Directive,
7517
7515
  args: [{
7518
7516
  exportAs: 'kendoGanttSelectable',
@@ -7541,8 +7539,8 @@ class DragValidationTooltipComponent {
7541
7539
  this.isValid = false;
7542
7540
  }
7543
7541
  }
7544
- DragValidationTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DragValidationTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7545
- DragValidationTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DragValidationTooltipComponent, selector: "ng-component", ngImport: i0, template: `
7542
+ DragValidationTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DragValidationTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7543
+ DragValidationTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DragValidationTooltipComponent, selector: "ng-component", ngImport: i0, template: `
7546
7544
  <div
7547
7545
  class="k-tooltip k-gantt-tooltip-validation"
7548
7546
  [class.k-gantt-tooltip-valid]="showValidityStatus && isValid"
@@ -7558,7 +7556,7 @@ DragValidationTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
7558
7556
  </div>
7559
7557
  </div>
7560
7558
  `, isInline: true });
7561
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DragValidationTooltipComponent, decorators: [{
7559
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DragValidationTooltipComponent, decorators: [{
7562
7560
  type: Component,
7563
7561
  args: [{
7564
7562
  template: `
@@ -7873,9 +7871,9 @@ class DependencyDragCreateDirective {
7873
7871
  };
7874
7872
  }
7875
7873
  }
7876
- 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 });
7877
- DependencyDragCreateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: DependencyDragCreateDirective, selector: "[kendoGanttDependencyDragCreate]", inputs: { displayValidationTooltip: "displayValidationTooltip" }, ngImport: i0 });
7878
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DependencyDragCreateDirective, decorators: [{
7874
+ 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 });
7875
+ DependencyDragCreateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: DependencyDragCreateDirective, selector: "[kendoGanttDependencyDragCreate]", inputs: { displayValidationTooltip: "displayValidationTooltip" }, ngImport: i0 });
7876
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DependencyDragCreateDirective, decorators: [{
7879
7877
  type: Directive,
7880
7878
  args: [{
7881
7879
  selector: '[kendoGanttDependencyDragCreate]'
@@ -7896,14 +7894,14 @@ class TimelineDayViewComponent extends ViewBase {
7896
7894
  this.type = 'day';
7897
7895
  }
7898
7896
  }
7899
- 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 });
7900
- TimelineDayViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineDayViewComponent, selector: "kendo-gantt-timeline-day-view", providers: [
7897
+ 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 });
7898
+ TimelineDayViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TimelineDayViewComponent, selector: "kendo-gantt-timeline-day-view", providers: [
7901
7899
  {
7902
7900
  provide: ViewBase,
7903
7901
  useExisting: forwardRef(() => TimelineDayViewComponent)
7904
7902
  }
7905
7903
  ], usesInheritance: true, ngImport: i0, template: '', isInline: true });
7906
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineDayViewComponent, decorators: [{
7904
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineDayViewComponent, decorators: [{
7907
7905
  type: Component,
7908
7906
  args: [{
7909
7907
  selector: 'kendo-gantt-timeline-day-view',
@@ -7929,14 +7927,14 @@ class TimelineWeekViewComponent extends ViewBase {
7929
7927
  this.type = 'week';
7930
7928
  }
7931
7929
  }
7932
- 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 });
7933
- TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineWeekViewComponent, selector: "kendo-gantt-timeline-week-view", providers: [
7930
+ 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 });
7931
+ TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TimelineWeekViewComponent, selector: "kendo-gantt-timeline-week-view", providers: [
7934
7932
  {
7935
7933
  provide: ViewBase,
7936
7934
  useExisting: forwardRef(() => TimelineWeekViewComponent)
7937
7935
  }
7938
7936
  ], usesInheritance: true, ngImport: i0, template: '', isInline: true });
7939
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewComponent, decorators: [{
7937
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineWeekViewComponent, decorators: [{
7940
7938
  type: Component,
7941
7939
  args: [{
7942
7940
  selector: 'kendo-gantt-timeline-week-view',
@@ -7962,14 +7960,14 @@ class TimelineMonthViewComponent extends ViewBase {
7962
7960
  this.type = 'month';
7963
7961
  }
7964
7962
  }
7965
- 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 });
7966
- TimelineMonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineMonthViewComponent, selector: "kendo-gantt-timeline-month-view", providers: [
7963
+ 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 });
7964
+ TimelineMonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TimelineMonthViewComponent, selector: "kendo-gantt-timeline-month-view", providers: [
7967
7965
  {
7968
7966
  provide: ViewBase,
7969
7967
  useExisting: forwardRef(() => TimelineMonthViewComponent)
7970
7968
  }
7971
7969
  ], usesInheritance: true, ngImport: i0, template: '', isInline: true });
7972
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewComponent, decorators: [{
7970
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineMonthViewComponent, decorators: [{
7973
7971
  type: Component,
7974
7972
  args: [{
7975
7973
  selector: 'kendo-gantt-timeline-month-view',
@@ -7995,14 +7993,14 @@ class TimelineYearViewComponent extends ViewBase {
7995
7993
  this.type = 'year';
7996
7994
  }
7997
7995
  }
7998
- 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 });
7999
- TimelineYearViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineYearViewComponent, selector: "kendo-gantt-timeline-year-view", providers: [
7996
+ 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 });
7997
+ TimelineYearViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TimelineYearViewComponent, selector: "kendo-gantt-timeline-year-view", providers: [
8000
7998
  {
8001
7999
  provide: ViewBase,
8002
8000
  useExisting: forwardRef(() => TimelineYearViewComponent)
8003
8001
  }
8004
8002
  ], usesInheritance: true, ngImport: i0, template: '', isInline: true });
8005
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineYearViewComponent, decorators: [{
8003
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineYearViewComponent, decorators: [{
8006
8004
  type: Component,
8007
8005
  args: [{
8008
8006
  selector: 'kendo-gantt-timeline-year-view',
@@ -8029,14 +8027,14 @@ class CustomMessagesComponent extends Messages {
8029
8027
  return true;
8030
8028
  }
8031
8029
  }
8032
- 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 });
8033
- CustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: CustomMessagesComponent, selector: "kendo-gantt-messages", providers: [
8030
+ 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 });
8031
+ CustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CustomMessagesComponent, selector: "kendo-gantt-messages", providers: [
8034
8032
  {
8035
8033
  provide: Messages,
8036
8034
  useExisting: forwardRef(() => CustomMessagesComponent)
8037
8035
  }
8038
8036
  ], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
8039
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CustomMessagesComponent, decorators: [{
8037
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CustomMessagesComponent, decorators: [{
8040
8038
  type: Component,
8041
8039
  args: [{
8042
8040
  providers: [
@@ -8147,8 +8145,8 @@ const DECLARATIONS = [
8147
8145
  */
8148
8146
  class GanttModule {
8149
8147
  }
8150
- GanttModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8151
- GanttModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttModule, declarations: [GanttComponent,
8148
+ GanttModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8149
+ GanttModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: GanttModule, declarations: [GanttComponent,
8152
8150
  GanttFlatBindingDirective,
8153
8151
  GanttHierarchyBindingDirective,
8154
8152
  GanttTaskComponent,
@@ -8247,14 +8245,14 @@ GanttModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "1
8247
8245
  TimelineScrollableDirective,
8248
8246
  DependenciesTableComponent,
8249
8247
  TaskFieldsComponent] });
8250
- GanttModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttModule, providers: [{
8248
+ GanttModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttModule, providers: [{
8251
8249
  provide: L10N_PREFIX,
8252
8250
  useValue: 'kendo.gantt'
8253
8251
  }, {
8254
8252
  provide: TOUCH_ENABLED,
8255
8253
  useValue: touchEnabled
8256
- }], imports: [[...IMPORTED_MODULES]] });
8257
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttModule, decorators: [{
8254
+ }], imports: [IMPORTED_MODULES] });
8255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GanttModule, decorators: [{
8258
8256
  type: NgModule,
8259
8257
  args: [{
8260
8258
  imports: [...IMPORTED_MODULES],