@progress/kendo-angular-gantt 13.5.1-develop.2 → 13.6.0-develop.1

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.
@@ -4,11 +4,11 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
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 i11 from '@progress/kendo-angular-treelist';
7
+ import * as i12 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 i16 from '@progress/kendo-angular-common';
11
+ import * as i17 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';
@@ -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: 1695044356,
56
- version: '13.5.1-develop.2',
55
+ publishDate: 1695633813,
56
+ version: '13.6.0-develop.1',
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
 
@@ -182,7 +182,7 @@ const isArray = (value) => Array.isArray(value);
182
182
  * Returns a new date with the specified hours, minutes, seconds and millliseconds set.
183
183
  * Only the hours are required, the rest of the params are set to `0` by default.
184
184
  */
185
- const setTime = (date, hours, minutes = 0, seconds = 0, milliseconds = 0) => {
185
+ const setTime$1 = (date, hours, minutes = 0, seconds = 0, milliseconds = 0) => {
186
186
  if (!isPresent(date)) {
187
187
  return null;
188
188
  }
@@ -657,6 +657,82 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
657
657
  type: Injectable
658
658
  }], ctorParameters: function () { return [{ type: MappingService }]; } });
659
659
 
660
+ const MS_PER_SECOND = 1000;
661
+ const MS_PER_MINUTE = 60 * MS_PER_SECOND;
662
+ /**
663
+ * @hidden
664
+ */
665
+ class CurrentTimeMarkerService {
666
+ constructor(renderer, zone) {
667
+ this.renderer = renderer;
668
+ this.zone = zone;
669
+ this.slots = [];
670
+ this.rows = [];
671
+ this.now = new Date(Date.now());
672
+ this.createTimeMarker = () => {
673
+ if (!isDocumentAvailable()) {
674
+ return;
675
+ }
676
+ this.removeTimeMarker();
677
+ if (this.slotIndex >= 0) {
678
+ this.now = new Date(Date.now());
679
+ this.timeMarkerDiv = this.renderer.createElement('div');
680
+ this.renderer.addClass(this.timeMarkerDiv, 'k-current-time');
681
+ this.renderer.setStyle(this.timeMarkerDiv, 'width', '1px');
682
+ this.renderer.setStyle(this.timeMarkerDiv, 'top', '0px');
683
+ this.renderer.setStyle(this.timeMarkerDiv, `${this.rtl ? 'right' : 'left'}`, this.deltaOffset + 'px');
684
+ this.renderer.appendChild(this.container.nativeElement, this.timeMarkerDiv);
685
+ this.renderer.setStyle(this.timeMarkerDiv, 'height', this.height + 'px');
686
+ this.currentTimeTimeout = setTimeout(this.createTimeMarker, this.interval || MS_PER_MINUTE);
687
+ }
688
+ };
689
+ }
690
+ get deltaOffset() {
691
+ if (this.slotIndex >= 0) {
692
+ const total = this.slots[this.slotIndex].end.getTime() - this.slots[this.slotIndex].start.getTime();
693
+ if (total > 0) {
694
+ const currentTimeValue = this.now.getTime() - this.slots[this.slotIndex].start.getTime();
695
+ const fractionInsideCell = currentTimeValue / total;
696
+ const deltaOffsetToSlot = this.slotIndex * this.slotWidth;
697
+ const deltaOffsetInsideSlot = fractionInsideCell * this.slotWidth;
698
+ return deltaOffsetToSlot + deltaOffsetInsideSlot;
699
+ }
700
+ return 0;
701
+ }
702
+ }
703
+ ;
704
+ get slotWidth() {
705
+ var _a;
706
+ return (_a = this.slots[0]) === null || _a === void 0 ? void 0 : _a.slotWidth;
707
+ }
708
+ get slotIndex() {
709
+ return this.slots.indexOf(this.slots.find((slot) => slot.start <= this.now && slot.end > this.now));
710
+ }
711
+ get height() {
712
+ return this.rows.length * this.rowHeight;
713
+ }
714
+ get interval() {
715
+ if (typeof (this.currentTimeMarker) === 'boolean') {
716
+ return MS_PER_MINUTE;
717
+ }
718
+ return this.currentTimeMarker.updateInterval || MS_PER_MINUTE;
719
+ }
720
+ ngOnDestroy() {
721
+ clearInterval(this.currentTimeTimeout);
722
+ }
723
+ removeTimeMarker() {
724
+ if (this.timeMarkerDiv) {
725
+ this.renderer.removeChild(this.container.nativeElement, this.timeMarkerDiv);
726
+ clearInterval(this.currentTimeTimeout);
727
+ }
728
+ }
729
+ }
730
+ CurrentTimeMarkerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CurrentTimeMarkerService, deps: [{ token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
731
+ CurrentTimeMarkerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CurrentTimeMarkerService });
732
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CurrentTimeMarkerService, decorators: [{
733
+ type: Injectable
734
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.NgZone }]; } });
735
+
660
736
  /**
661
737
  * @hidden
662
738
  */
@@ -704,6 +780,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
704
780
  */
705
781
  const TOUCH_ENABLED = new InjectionToken('gantt-touch-enabled');
706
782
 
783
+ const setTime = (origin, candidate) => {
784
+ const date = cloneDate(origin);
785
+ date.setHours(candidate.getHours(), candidate.getMinutes(), candidate.getSeconds(), candidate.getMilliseconds());
786
+ return date;
787
+ };
707
788
  /**
708
789
  * @hidden
709
790
  */
@@ -720,6 +801,7 @@ const MONTH_FORMAT = 'MMM';
720
801
  * @hidden
721
802
  */
722
803
  const YEAR_FORMAT = 'yyyy';
804
+ const END_OF_DAY_DATE = new Date(1980, 0, 1, 23, 59, 59, 999);
723
805
  /**
724
806
  * @hidden
725
807
  */
@@ -830,7 +912,7 @@ let TimelineBaseViewService = class TimelineBaseViewService {
830
912
  if (span > 0) {
831
913
  slots.push({
832
914
  start: daySlots[0].start,
833
- end: daySlots[span - 1].end,
915
+ end: setTime(daySlots[span - 1].end, END_OF_DAY_DATE),
834
916
  text: `${firstDay} - ${lastDay}`,
835
917
  span: span,
836
918
  slotWidth: this.options.slotWidth
@@ -856,7 +938,7 @@ let TimelineBaseViewService = class TimelineBaseViewService {
856
938
  if (span > 0) {
857
939
  slots.push({
858
940
  start: isMainViewType ? daySlots[0].start : weekSlots[0].start,
859
- end: isMainViewType ? daySlots[span - 1] : weekSlots[span - 1].end,
941
+ end: isMainViewType ? daySlots[span - 1] : setTime(weekSlots[span - 1].end, END_OF_DAY_DATE),
860
942
  span: span,
861
943
  text: shortText,
862
944
  slotWidth: this.options.slotWidth
@@ -879,7 +961,7 @@ let TimelineBaseViewService = class TimelineBaseViewService {
879
961
  if (span > 0) {
880
962
  slots.push({
881
963
  start: monthSlots[0].start,
882
- end: monthSlots[span - 1].end,
964
+ end: setTime(monthSlots[span - 1].end, END_OF_DAY_DATE),
883
965
  span: span,
884
966
  text: this.intlService.formatDate(slotEnd, yearFormat),
885
967
  slotWidth: this.options.slotWidth
@@ -908,13 +990,13 @@ class TimelineDayViewService extends TimelineBaseViewService {
908
990
  * Gets a date an hour before the first task start with minutes, seconds, milliseconds cleared.
909
991
  */
910
992
  getStartOffset(rangeStart) {
911
- return setTime(rangeStart, rangeStart.getHours() - 1);
993
+ return setTime$1(rangeStart, rangeStart.getHours() - 1);
912
994
  }
913
995
  /**
914
996
  * Gets a date an hour after the last task end with minutes, seconds, milliseconds cleared.
915
997
  */
916
998
  getEndOffset(rangeEnd) {
917
- return setTime(rangeEnd, rangeEnd.getHours() + 1);
999
+ return setTime$1(rangeEnd, rangeEnd.getHours() + 1);
918
1000
  }
919
1001
  /**
920
1002
  *
@@ -2019,7 +2101,7 @@ GanttTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
2019
2101
  >
2020
2102
  </div>
2021
2103
  </ng-container>
2022
- `, 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: i16.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
2104
+ `, 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"] }] });
2023
2105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTaskComponent, decorators: [{
2024
2106
  type: Component,
2025
2107
  args: [{
@@ -2712,11 +2794,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2712
2794
  * @hidden
2713
2795
  */
2714
2796
  class GanttTimelineComponent {
2715
- constructor(scrollSyncService, dependencyDomService, renderer, zone) {
2797
+ constructor(scrollSyncService, dependencyDomService, renderer, zone, currentTimeMarkerService) {
2716
2798
  this.scrollSyncService = scrollSyncService;
2717
2799
  this.dependencyDomService = dependencyDomService;
2718
2800
  this.renderer = renderer;
2719
2801
  this.zone = zone;
2802
+ this.currentTimeMarkerService = currentTimeMarkerService;
2720
2803
  this.hostClass = true;
2721
2804
  this.dependencies = [];
2722
2805
  // as all drag-and-drop operations are on the timeline container, use a single draggable instance
@@ -2730,7 +2813,16 @@ class GanttTimelineComponent {
2730
2813
  .pipe(filter(args => isPresent(args.timelineRow)), switchMap(args => this.zone.onStable.pipe(take(1), map(() => args))) // ensure the content is rendered
2731
2814
  )
2732
2815
  .subscribe(({ timelineRow }) => {
2816
+ var _a;
2733
2817
  const timelineRowHeight = isDocumentAvailable() ? timelineRow.getBoundingClientRect().height : 0;
2818
+ this.currentTimeMarkerService.rowHeight = timelineRowHeight;
2819
+ this.currentTimeMarkerService.currentTimeMarker = this.currentTimeMarker;
2820
+ this.currentTimeMarkerService.removeTimeMarker();
2821
+ if ((typeof this.currentTimeMarker === 'boolean' && this.currentTimeMarker) || ((_a = this.currentTimeMarker) === null || _a === void 0 ? void 0 : _a.enabled)) {
2822
+ this.zone.runOutsideAngular(() => {
2823
+ this.currentTimeMarkerService.createTimeMarker();
2824
+ });
2825
+ }
2734
2826
  this.renderer.setStyle(this.timelineColumns.nativeElement, 'height', `${(this.rows || []).length * timelineRowHeight}px`);
2735
2827
  }));
2736
2828
  }
@@ -2741,6 +2833,9 @@ class GanttTimelineComponent {
2741
2833
  return this.renderDependencyDragClues;
2742
2834
  }
2743
2835
  ngAfterViewInit() {
2836
+ this.currentTimeMarkerService.slots = this.slots;
2837
+ this.currentTimeMarkerService.rows = this.rows;
2838
+ this.currentTimeMarkerService.container = this.timelineContent;
2744
2839
  const timelineHeader = this.timelineHeaderWrap.nativeElement;
2745
2840
  const rightContainer = this.timelineContent.nativeElement;
2746
2841
  this.scrollSyncService.registerElement(rightContainer, 'timeline');
@@ -2754,8 +2849,8 @@ class GanttTimelineComponent {
2754
2849
  return item.hasOwnProperty('isWorking') && !item.isWorking;
2755
2850
  }
2756
2851
  }
2757
- 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 }], target: i0.ɵɵFactoryTarget.Component });
2758
- 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", selectable: "selectable", isTaskSelected: "isTaskSelected", isExpanded: "isExpanded", dependencies: "dependencies" }, outputs: { timelineContainerPress: "timelineContainerPress", timelineContainerDrag: "timelineContainerDrag", timelineContainerRelease: "timelineContainerRelease" }, host: { properties: { "class.k-gantt-timeline": "this.hostClass" } }, 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 }], ngImport: i0, template: `
2852
+ 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 });
2853
+ 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" }, host: { properties: { "class.k-gantt-timeline": "this.hostClass" } }, 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 }], ngImport: i0, template: `
2759
2854
  <div class="k-timeline k-grid k-grid-md">
2760
2855
  <div class="k-grid-header">
2761
2856
  <div #timelineHeaderWrap class="k-grid-header-wrap">
@@ -2858,7 +2953,7 @@ GanttTimelineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
2858
2953
  <ng-container #dragPopupContainer></ng-container>
2859
2954
  </div>
2860
2955
  </div>
2861
- `, 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: i16.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"] }] });
2956
+ `, 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"] }] });
2862
2957
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTimelineComponent, decorators: [{
2863
2958
  type: Component,
2864
2959
  args: [{
@@ -2968,7 +3063,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2968
3063
  </div>
2969
3064
  `
2970
3065
  }]
2971
- }], ctorParameters: function () { return [{ type: ScrollSyncService }, { type: DependencyDomService }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { timelineContent: [{
3066
+ }], ctorParameters: function () { return [{ type: ScrollSyncService }, { type: DependencyDomService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: CurrentTimeMarkerService }]; }, propDecorators: { timelineContent: [{
2972
3067
  type: ViewChild,
2973
3068
  args: ['timelineContent', { static: true }]
2974
3069
  }], timelineColumns: [{
@@ -3011,6 +3106,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3011
3106
  type: Input
3012
3107
  }], dragScrollSettings: [{
3013
3108
  type: Input
3109
+ }], currentTimeMarker: [{
3110
+ type: Input
3014
3111
  }], selectable: [{
3015
3112
  type: Input
3016
3113
  }], isTaskSelected: [{
@@ -3958,7 +4055,7 @@ class ViewBase {
3958
4055
  }
3959
4056
  }
3960
4057
  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 });
3961
- ViewBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: ViewBase, selector: "kendo-gantt-view-base", inputs: { slotWidth: "slotWidth", timelineHeadersDateFormat: "timelineHeadersDateFormat" }, usesOnChanges: true, ngImport: i0 });
4058
+ 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 });
3962
4059
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewBase, decorators: [{
3963
4060
  type: Directive,
3964
4061
  args: [{
@@ -3969,6 +4066,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3969
4066
  type: Input
3970
4067
  }], timelineHeadersDateFormat: [{
3971
4068
  type: Input
4069
+ }], currentTimeMarker: [{
4070
+ type: Input
3972
4071
  }] } });
3973
4072
 
3974
4073
  /**
@@ -4088,7 +4187,7 @@ GanttAddTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
4088
4187
  (open)="handleOpen($event)">
4089
4188
  {{ getText('addTaskText') }}
4090
4189
  </kendo-dropdownbutton>
4091
- `, isInline: true, components: [{ type: i2.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }], directives: [{ type: i16.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
4190
+ `, isInline: true, components: [{ type: i2.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }], directives: [{ type: i17.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
4092
4191
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttAddTaskComponent, decorators: [{
4093
4192
  type: Component,
4094
4193
  args: [{
@@ -4393,7 +4492,7 @@ TaskFieldsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
4393
4492
  ></kendo-numerictextbox>
4394
4493
  </kendo-formfield>
4395
4494
  </form>
4396
- `, 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", "value", "format", "twoDigitYearMax", "tabindex", "disabledDates", "popupSettings", "title", "subtitle", "disabled", "readonly", "readOnlyInput", "cancelButton", "formatPlaceholder", "placeholder", "steps", "focusedDate", "calendarType", "animateCalendarNavigation", "weekNumber", "min", "max", "rangeValidation", "disabledDatesValidation", "incompleteDateValidation", "adaptiveMode", "defaultTab", "size", "rounded", "fillMode"], outputs: ["valueChange", "open", "close", "focus", "blur"], exportAs: ["kendo-datetimepicker"] }, { type: i11.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"], outputs: ["valueChange", "focus", "blur"], 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"] }] });
4495
+ `, 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", "value", "format", "twoDigitYearMax", "tabindex", "disabledDates", "popupSettings", "title", "subtitle", "disabled", "readonly", "readOnlyInput", "cancelButton", "formatPlaceholder", "placeholder", "steps", "focusedDate", "calendarType", "animateCalendarNavigation", "weekNumber", "min", "max", "rangeValidation", "disabledDatesValidation", "incompleteDateValidation", "adaptiveMode", "defaultTab", "size", "rounded", "fillMode"], 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"], outputs: ["valueChange", "focus", "blur"], 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"] }] });
4397
4496
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskFieldsComponent, decorators: [{
4398
4497
  type: Component,
4399
4498
  args: [{
@@ -4753,7 +4852,7 @@ EditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
4753
4852
  </button>
4754
4853
  </kendo-dialog-actions>
4755
4854
  </kendo-dialog>
4756
- `, 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"], 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: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: i11.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: i16.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
4855
+ `, 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"], 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: ["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"] }] });
4757
4856
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EditDialogComponent, decorators: [{
4758
4857
  type: Component,
4759
4858
  args: [{
@@ -5095,7 +5194,7 @@ const DEFAULT_DRAG_SCROLL_SETTINGS = {
5095
5194
  * ```
5096
5195
  */
5097
5196
  class GanttComponent {
5098
- constructor(timelineViewService, scrollSyncService, renderer, mapper, optionChangesService, dependencyDomService, editService, localizationService, hostElement, zone, navigation) {
5197
+ constructor(timelineViewService, scrollSyncService, renderer, mapper, optionChangesService, dependencyDomService, editService, localizationService, hostElement, zone, navigation, currentTimeMarkerService) {
5099
5198
  this.timelineViewService = timelineViewService;
5100
5199
  this.scrollSyncService = scrollSyncService;
5101
5200
  this.renderer = renderer;
@@ -5107,6 +5206,7 @@ class GanttComponent {
5107
5206
  this.hostElement = hostElement;
5108
5207
  this.zone = zone;
5109
5208
  this.navigation = navigation;
5209
+ this.currentTimeMarkerService = currentTimeMarkerService;
5110
5210
  /**
5111
5211
  * @hidden
5112
5212
  */
@@ -5204,6 +5304,14 @@ class GanttComponent {
5204
5304
  * @default false
5205
5305
  */
5206
5306
  this.columnsAutoSize = false;
5307
+ /**
5308
+ * Specifies the Gantt current time marker settings.
5309
+ * The settings will be applied for all views.
5310
+ * If the `currentTimeMarker` is set for a view then it takes precedence.
5311
+ *
5312
+ * @default true
5313
+ */
5314
+ this.currentTimeMarker = true;
5207
5315
  /**
5208
5316
  * Specifies if the column menu of the columns will be displayed.
5209
5317
  *
@@ -5414,6 +5522,7 @@ class GanttComponent {
5414
5522
  this.localizationSubscription = this.localizationService.changes.subscribe(({ rtl }) => {
5415
5523
  this.rtl = rtl;
5416
5524
  this.direction = this.rtl ? 'rtl' : 'ltr';
5525
+ this.currentTimeMarkerService.rtl = rtl;
5417
5526
  });
5418
5527
  }
5419
5528
  get toolbarTemplate() {
@@ -5476,8 +5585,18 @@ class GanttComponent {
5476
5585
  const view = this.views.find(view => view.type === this._activeView) ?
5477
5586
  this._activeView :
5478
5587
  this.views.first.type;
5588
+ this.currentTimeMarkerService.activeView = view;
5479
5589
  return view;
5480
5590
  }
5591
+ /**
5592
+ * @hidden
5593
+ *
5594
+ */
5595
+ get activeViewCurrentTimeMarker() {
5596
+ var _a;
5597
+ const activeViewCurrentTimeMarker = (_a = this.views.find(view => view.type === this._activeView)) === null || _a === void 0 ? void 0 : _a.currentTimeMarker;
5598
+ return activeViewCurrentTimeMarker || this.currentTimeMarker;
5599
+ }
5481
5600
  /**
5482
5601
  * Gets or sets the data of the Gantt.
5483
5602
  *
@@ -6039,6 +6158,9 @@ class GanttComponent {
6039
6158
  this.loadTimelineData();
6040
6159
  this.scrollSyncService.resetTimelineScrollLeft();
6041
6160
  this.activeViewChange.emit(view);
6161
+ this.currentTimeMarkerService.slots = this.timelineSlots;
6162
+ this.currentTimeMarkerService.rows = this.viewItems;
6163
+ this.currentTimeMarkerService.activeView = view;
6042
6164
  }
6043
6165
  }
6044
6166
  /**
@@ -6252,8 +6374,8 @@ class GanttComponent {
6252
6374
  }
6253
6375
  }
6254
6376
  }
6255
- 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 }], target: i0.ɵɵFactoryTarget.Component });
6256
- 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", 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: [
6377
+ 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 });
6378
+ 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: [
6257
6379
  GanttLocalizationService,
6258
6380
  LocalizationService,
6259
6381
  {
@@ -6275,7 +6397,8 @@ GanttComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
6275
6397
  OptionChangesService,
6276
6398
  EditService,
6277
6399
  TimelineScrollService,
6278
- NavigationService
6400
+ NavigationService,
6401
+ CurrentTimeMarkerService
6279
6402
  ], queries: [{ propertyName: "taskContentTemplate", first: true, predicate: GanttTaskContentTemplateDirective, descendants: true }, { propertyName: "taskTemplate", first: true, predicate: GanttTaskTemplateDirective, descendants: true }, { propertyName: "summaryTaskTemplate", first: true, predicate: GanttSummaryTaskTemplateDirective, descendants: true }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columns", predicate: GanttColumnBase }, { propertyName: "views", predicate: ViewBase }], viewQueries: [{ propertyName: "treeList", first: true, predicate: TreeListComponent, descendants: true, static: true }, { propertyName: "timeline", first: true, predicate: GanttTimelineComponent, descendants: true }], exportAs: ["kendoGantt"], usesOnChanges: true, ngImport: i0, template: `
6280
6403
  <ng-container kendoGanttLocalizedMessages
6281
6404
  i18n-taskEditingGeneralTabTitle="kendo.gantt.taskEditingGeneralTabTitle|The title of the 'General' tab of the editing dialog TabStrip"
@@ -6594,6 +6717,7 @@ GanttComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
6594
6717
  [dragScrollSettings]="dragScrollSettings"
6595
6718
  [rows]="viewItems"
6596
6719
  [slots]="timelineSlots"
6720
+ [currentTimeMarker]="activeViewCurrentTimeMarker"
6597
6721
  [groupSlots]="timelineGroupSlots"
6598
6722
  [tableWidth]="tableWidth"
6599
6723
  [activeView]="activeView"
@@ -6646,7 +6770,7 @@ GanttComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
6646
6770
  </kendo-dialog>
6647
6771
 
6648
6772
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
6649
- `, 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", "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: i11.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: i11.CustomMessagesComponent, selector: "kendo-treelist-messages" }, { type: GanttTimelineComponent, selector: "kendo-gantt-timeline", inputs: ["rows", "slots", "groupSlots", "tableWidth", "activeView", "taskContentTemplate", "taskTemplate", "summaryTaskTemplate", "taskClass", "renderDependencyDragClues", "dragScrollSettings", "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: i11.TreeListSpacerComponent, selector: "kendo-treelist-spacer, kendo-treelist-pager-spacer", inputs: ["width"] }, { type: i2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: i16.WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoGanttLocalizedMessages]" }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i16.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
6773
+ `, 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", "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: ["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"] }] });
6650
6774
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttComponent, decorators: [{
6651
6775
  type: Component,
6652
6776
  args: [{
@@ -6674,7 +6798,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6674
6798
  OptionChangesService,
6675
6799
  EditService,
6676
6800
  TimelineScrollService,
6677
- NavigationService
6801
+ NavigationService,
6802
+ CurrentTimeMarkerService
6678
6803
  ],
6679
6804
  template: `
6680
6805
  <ng-container kendoGanttLocalizedMessages
@@ -6994,6 +7119,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6994
7119
  [dragScrollSettings]="dragScrollSettings"
6995
7120
  [rows]="viewItems"
6996
7121
  [slots]="timelineSlots"
7122
+ [currentTimeMarker]="activeViewCurrentTimeMarker"
6997
7123
  [groupSlots]="timelineGroupSlots"
6998
7124
  [tableWidth]="tableWidth"
6999
7125
  [activeView]="activeView"
@@ -7048,7 +7174,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7048
7174
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
7049
7175
  `
7050
7176
  }]
7051
- }], ctorParameters: function () { return [{ type: TimelineViewService }, { type: ScrollSyncService }, { type: i0.Renderer2 }, { type: MappingService }, { type: OptionChangesService }, { type: DependencyDomService }, { type: EditService }, { type: i1$1.LocalizationService }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: NavigationService }]; }, propDecorators: { treeList: [{
7177
+ }], ctorParameters: function () { return [{ type: TimelineViewService }, { type: ScrollSyncService }, { type: i0.Renderer2 }, { type: MappingService }, { type: OptionChangesService }, { type: DependencyDomService }, { type: EditService }, { type: i1$1.LocalizationService }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: NavigationService }, { type: CurrentTimeMarkerService }]; }, propDecorators: { treeList: [{
7052
7178
  type: ViewChild,
7053
7179
  args: [TreeListComponent, { static: true }]
7054
7180
  }], timeline: [{
@@ -7146,6 +7272,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7146
7272
  type: Input
7147
7273
  }], columnsAutoSize: [{
7148
7274
  type: Input
7275
+ }], currentTimeMarker: [{
7276
+ type: Input
7149
7277
  }], columnMenu: [{
7150
7278
  type: Input
7151
7279
  }], columnsReorderable: [{