@progress/kendo-angular-gantt 13.5.1-develop.3 → 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.
- package/esm2020/gantt.component.mjs +47 -17
- package/esm2020/models/current-time-settings.interface.mjs +5 -0
- package/esm2020/package-metadata.mjs +2 -2
- package/esm2020/timeline/current-time-marker.service.mjs +85 -0
- package/esm2020/timeline/gantt-timeline.component.mjs +27 -11
- package/esm2020/timeline/timeline-base-view.service.mjs +10 -4
- package/esm2020/timeline/view-base.mjs +3 -1
- package/fesm2015/progress-kendo-angular-gantt.mjs +155 -27
- package/fesm2020/progress-kendo-angular-gantt.mjs +152 -27
- package/gantt.component.d.ts +18 -2
- package/index.d.ts +1 -0
- package/models/current-time-settings.interface.d.ts +19 -0
- package/package.json +13 -13
- package/schematics/ngAdd/index.js +11 -11
- package/timeline/current-time-marker.service.d.ts +40 -0
- package/timeline/gantt-timeline.component.d.ts +6 -2
- package/timeline/view-base.d.ts +9 -1
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
6
|
import { Injectable, Component, HostBinding, Input, InjectionToken, EventEmitter, Inject, LOCALE_ID, Directive, ViewChild, forwardRef, ViewContainerRef, Output, Optional, QueryList, SkipSelf, Host, ContentChildren, ContentChild, HostListener, isDevMode, NgModule } from '@angular/core';
|
|
7
|
-
import * as
|
|
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 { cloneDate, addWeeks, firstDayInWeek, addDays, lastDayOfMonth, getDate, firstDayOfMonth, addMonths, lastMonthOfYear, MS_PER_HOUR, MS_PER_DAY, isEqual } from '@progress/kendo-date-math';
|
|
10
10
|
import { Subject, Subscription, fromEvent, forkJoin, EMPTY, isObservable, of } from 'rxjs';
|
|
11
11
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
12
|
-
import * as
|
|
12
|
+
import * as i17 from '@progress/kendo-angular-common';
|
|
13
13
|
import { Keys, isDocumentAvailable, closestInScope, matchesClasses, PreventableEvent, anyChanged, closest, isFocusable, focusableSelector, isVisible, shouldShowValidationUI, hasObservers, EventsModule, DraggableModule, WatermarkModule } from '@progress/kendo-angular-common';
|
|
14
14
|
import { map, distinctUntilChanged, take, expand, reduce, switchMap, filter } from 'rxjs/operators';
|
|
15
15
|
import { getter, touchEnabled } from '@progress/kendo-common';
|
|
@@ -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:
|
|
56
|
-
version: '13.
|
|
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
|
|
|
@@ -277,7 +277,7 @@ const isArray = (value) => Array.isArray(value);
|
|
|
277
277
|
* Returns a new date with the specified hours, minutes, seconds and millliseconds set.
|
|
278
278
|
* Only the hours are required, the rest of the params are set to `0` by default.
|
|
279
279
|
*/
|
|
280
|
-
const setTime = (date, hours, minutes = 0, seconds = 0, milliseconds = 0) => {
|
|
280
|
+
const setTime$1 = (date, hours, minutes = 0, seconds = 0, milliseconds = 0) => {
|
|
281
281
|
if (!isPresent(date)) {
|
|
282
282
|
return null;
|
|
283
283
|
}
|
|
@@ -657,6 +657,81 @@ 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
|
+
return this.slots[0]?.slotWidth;
|
|
706
|
+
}
|
|
707
|
+
get slotIndex() {
|
|
708
|
+
return this.slots.indexOf(this.slots.find((slot) => slot.start <= this.now && slot.end > this.now));
|
|
709
|
+
}
|
|
710
|
+
get height() {
|
|
711
|
+
return this.rows.length * this.rowHeight;
|
|
712
|
+
}
|
|
713
|
+
get interval() {
|
|
714
|
+
if (typeof (this.currentTimeMarker) === 'boolean') {
|
|
715
|
+
return MS_PER_MINUTE;
|
|
716
|
+
}
|
|
717
|
+
return this.currentTimeMarker.updateInterval || MS_PER_MINUTE;
|
|
718
|
+
}
|
|
719
|
+
ngOnDestroy() {
|
|
720
|
+
clearInterval(this.currentTimeTimeout);
|
|
721
|
+
}
|
|
722
|
+
removeTimeMarker() {
|
|
723
|
+
if (this.timeMarkerDiv) {
|
|
724
|
+
this.renderer.removeChild(this.container.nativeElement, this.timeMarkerDiv);
|
|
725
|
+
clearInterval(this.currentTimeTimeout);
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
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 });
|
|
730
|
+
CurrentTimeMarkerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CurrentTimeMarkerService });
|
|
731
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CurrentTimeMarkerService, decorators: [{
|
|
732
|
+
type: Injectable
|
|
733
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.NgZone }]; } });
|
|
734
|
+
|
|
660
735
|
/**
|
|
661
736
|
* @hidden
|
|
662
737
|
*/
|
|
@@ -986,6 +1061,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
986
1061
|
type: Injectable
|
|
987
1062
|
}] });
|
|
988
1063
|
|
|
1064
|
+
const setTime = (origin, candidate) => {
|
|
1065
|
+
const date = cloneDate(origin);
|
|
1066
|
+
date.setHours(candidate.getHours(), candidate.getMinutes(), candidate.getSeconds(), candidate.getMilliseconds());
|
|
1067
|
+
return date;
|
|
1068
|
+
};
|
|
989
1069
|
/**
|
|
990
1070
|
* @hidden
|
|
991
1071
|
*/
|
|
@@ -1002,6 +1082,7 @@ const MONTH_FORMAT = 'MMM';
|
|
|
1002
1082
|
* @hidden
|
|
1003
1083
|
*/
|
|
1004
1084
|
const YEAR_FORMAT = 'yyyy';
|
|
1085
|
+
const END_OF_DAY_DATE = new Date(1980, 0, 1, 23, 59, 59, 999);
|
|
1005
1086
|
/**
|
|
1006
1087
|
* @hidden
|
|
1007
1088
|
*/
|
|
@@ -1112,7 +1193,7 @@ let TimelineBaseViewService = class TimelineBaseViewService {
|
|
|
1112
1193
|
if (span > 0) {
|
|
1113
1194
|
slots.push({
|
|
1114
1195
|
start: daySlots[0].start,
|
|
1115
|
-
end: daySlots[span - 1].end,
|
|
1196
|
+
end: setTime(daySlots[span - 1].end, END_OF_DAY_DATE),
|
|
1116
1197
|
text: `${firstDay} - ${lastDay}`,
|
|
1117
1198
|
span: span,
|
|
1118
1199
|
slotWidth: this.options.slotWidth
|
|
@@ -1138,7 +1219,7 @@ let TimelineBaseViewService = class TimelineBaseViewService {
|
|
|
1138
1219
|
if (span > 0) {
|
|
1139
1220
|
slots.push({
|
|
1140
1221
|
start: isMainViewType ? daySlots[0].start : weekSlots[0].start,
|
|
1141
|
-
end: isMainViewType ? daySlots[span - 1] : weekSlots[span - 1].end,
|
|
1222
|
+
end: isMainViewType ? daySlots[span - 1] : setTime(weekSlots[span - 1].end, END_OF_DAY_DATE),
|
|
1142
1223
|
span: span,
|
|
1143
1224
|
text: shortText,
|
|
1144
1225
|
slotWidth: this.options.slotWidth
|
|
@@ -1161,7 +1242,7 @@ let TimelineBaseViewService = class TimelineBaseViewService {
|
|
|
1161
1242
|
if (span > 0) {
|
|
1162
1243
|
slots.push({
|
|
1163
1244
|
start: monthSlots[0].start,
|
|
1164
|
-
end: monthSlots[span - 1].end,
|
|
1245
|
+
end: setTime(monthSlots[span - 1].end, END_OF_DAY_DATE),
|
|
1165
1246
|
span: span,
|
|
1166
1247
|
text: this.intlService.formatDate(slotEnd, yearFormat),
|
|
1167
1248
|
slotWidth: this.options.slotWidth
|
|
@@ -1190,13 +1271,13 @@ class TimelineDayViewService extends TimelineBaseViewService {
|
|
|
1190
1271
|
* Gets a date an hour before the first task start with minutes, seconds, milliseconds cleared.
|
|
1191
1272
|
*/
|
|
1192
1273
|
getStartOffset(rangeStart) {
|
|
1193
|
-
return setTime(rangeStart, rangeStart.getHours() - 1);
|
|
1274
|
+
return setTime$1(rangeStart, rangeStart.getHours() - 1);
|
|
1194
1275
|
}
|
|
1195
1276
|
/**
|
|
1196
1277
|
* Gets a date an hour after the last task end with minutes, seconds, milliseconds cleared.
|
|
1197
1278
|
*/
|
|
1198
1279
|
getEndOffset(rangeEnd) {
|
|
1199
|
-
return setTime(rangeEnd, rangeEnd.getHours() + 1);
|
|
1280
|
+
return setTime$1(rangeEnd, rangeEnd.getHours() + 1);
|
|
1200
1281
|
}
|
|
1201
1282
|
/**
|
|
1202
1283
|
*
|
|
@@ -2003,7 +2084,7 @@ GanttTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
2003
2084
|
>
|
|
2004
2085
|
</div>
|
|
2005
2086
|
</ng-container>
|
|
2006
|
-
`, 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:
|
|
2087
|
+
`, 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"] }] });
|
|
2007
2088
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTaskComponent, decorators: [{
|
|
2008
2089
|
type: Component,
|
|
2009
2090
|
args: [{
|
|
@@ -2694,11 +2775,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
2694
2775
|
* @hidden
|
|
2695
2776
|
*/
|
|
2696
2777
|
class GanttTimelineComponent {
|
|
2697
|
-
constructor(scrollSyncService, dependencyDomService, renderer, zone) {
|
|
2778
|
+
constructor(scrollSyncService, dependencyDomService, renderer, zone, currentTimeMarkerService) {
|
|
2698
2779
|
this.scrollSyncService = scrollSyncService;
|
|
2699
2780
|
this.dependencyDomService = dependencyDomService;
|
|
2700
2781
|
this.renderer = renderer;
|
|
2701
2782
|
this.zone = zone;
|
|
2783
|
+
this.currentTimeMarkerService = currentTimeMarkerService;
|
|
2702
2784
|
this.hostClass = true;
|
|
2703
2785
|
this.dependencies = [];
|
|
2704
2786
|
// as all drag-and-drop operations are on the timeline container, use a single draggable instance
|
|
@@ -2713,6 +2795,14 @@ class GanttTimelineComponent {
|
|
|
2713
2795
|
)
|
|
2714
2796
|
.subscribe(({ timelineRow }) => {
|
|
2715
2797
|
const timelineRowHeight = isDocumentAvailable() ? timelineRow.getBoundingClientRect().height : 0;
|
|
2798
|
+
this.currentTimeMarkerService.rowHeight = timelineRowHeight;
|
|
2799
|
+
this.currentTimeMarkerService.currentTimeMarker = this.currentTimeMarker;
|
|
2800
|
+
this.currentTimeMarkerService.removeTimeMarker();
|
|
2801
|
+
if ((typeof this.currentTimeMarker === 'boolean' && this.currentTimeMarker) || this.currentTimeMarker?.enabled) {
|
|
2802
|
+
this.zone.runOutsideAngular(() => {
|
|
2803
|
+
this.currentTimeMarkerService.createTimeMarker();
|
|
2804
|
+
});
|
|
2805
|
+
}
|
|
2716
2806
|
this.renderer.setStyle(this.timelineColumns.nativeElement, 'height', `${(this.rows || []).length * timelineRowHeight}px`);
|
|
2717
2807
|
}));
|
|
2718
2808
|
}
|
|
@@ -2723,6 +2813,9 @@ class GanttTimelineComponent {
|
|
|
2723
2813
|
return this.renderDependencyDragClues;
|
|
2724
2814
|
}
|
|
2725
2815
|
ngAfterViewInit() {
|
|
2816
|
+
this.currentTimeMarkerService.slots = this.slots;
|
|
2817
|
+
this.currentTimeMarkerService.rows = this.rows;
|
|
2818
|
+
this.currentTimeMarkerService.container = this.timelineContent;
|
|
2726
2819
|
const timelineHeader = this.timelineHeaderWrap.nativeElement;
|
|
2727
2820
|
const rightContainer = this.timelineContent.nativeElement;
|
|
2728
2821
|
this.scrollSyncService.registerElement(rightContainer, 'timeline');
|
|
@@ -2736,8 +2829,8 @@ class GanttTimelineComponent {
|
|
|
2736
2829
|
return item.hasOwnProperty('isWorking') && !item.isWorking;
|
|
2737
2830
|
}
|
|
2738
2831
|
}
|
|
2739
|
-
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 });
|
|
2740
|
-
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: `
|
|
2832
|
+
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 });
|
|
2833
|
+
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: `
|
|
2741
2834
|
<div class="k-timeline k-grid k-grid-md">
|
|
2742
2835
|
<div class="k-grid-header">
|
|
2743
2836
|
<div #timelineHeaderWrap class="k-grid-header-wrap">
|
|
@@ -2840,7 +2933,7 @@ GanttTimelineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
2840
2933
|
<ng-container #dragPopupContainer></ng-container>
|
|
2841
2934
|
</div>
|
|
2842
2935
|
</div>
|
|
2843
|
-
`, 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:
|
|
2936
|
+
`, 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"] }] });
|
|
2844
2937
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttTimelineComponent, decorators: [{
|
|
2845
2938
|
type: Component,
|
|
2846
2939
|
args: [{
|
|
@@ -2950,7 +3043,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
2950
3043
|
</div>
|
|
2951
3044
|
`
|
|
2952
3045
|
}]
|
|
2953
|
-
}], ctorParameters: function () { return [{ type: ScrollSyncService }, { type: DependencyDomService }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { timelineContent: [{
|
|
3046
|
+
}], ctorParameters: function () { return [{ type: ScrollSyncService }, { type: DependencyDomService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: CurrentTimeMarkerService }]; }, propDecorators: { timelineContent: [{
|
|
2954
3047
|
type: ViewChild,
|
|
2955
3048
|
args: ['timelineContent', { static: true }]
|
|
2956
3049
|
}], timelineColumns: [{
|
|
@@ -2993,6 +3086,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
2993
3086
|
type: Input
|
|
2994
3087
|
}], dragScrollSettings: [{
|
|
2995
3088
|
type: Input
|
|
3089
|
+
}], currentTimeMarker: [{
|
|
3090
|
+
type: Input
|
|
2996
3091
|
}], selectable: [{
|
|
2997
3092
|
type: Input
|
|
2998
3093
|
}], isTaskSelected: [{
|
|
@@ -3912,7 +4007,7 @@ class ViewBase {
|
|
|
3912
4007
|
}
|
|
3913
4008
|
}
|
|
3914
4009
|
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 });
|
|
3915
|
-
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 });
|
|
4010
|
+
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 });
|
|
3916
4011
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewBase, decorators: [{
|
|
3917
4012
|
type: Directive,
|
|
3918
4013
|
args: [{
|
|
@@ -3923,6 +4018,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
3923
4018
|
type: Input
|
|
3924
4019
|
}], timelineHeadersDateFormat: [{
|
|
3925
4020
|
type: Input
|
|
4021
|
+
}], currentTimeMarker: [{
|
|
4022
|
+
type: Input
|
|
3926
4023
|
}] } });
|
|
3927
4024
|
|
|
3928
4025
|
/**
|
|
@@ -4042,7 +4139,7 @@ GanttAddTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
4042
4139
|
(open)="handleOpen($event)">
|
|
4043
4140
|
{{ getText('addTaskText') }}
|
|
4044
4141
|
</kendo-dropdownbutton>
|
|
4045
|
-
`, 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:
|
|
4142
|
+
`, 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"] }] });
|
|
4046
4143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttAddTaskComponent, decorators: [{
|
|
4047
4144
|
type: Component,
|
|
4048
4145
|
args: [{
|
|
@@ -4347,7 +4444,7 @@ TaskFieldsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
4347
4444
|
></kendo-numerictextbox>
|
|
4348
4445
|
</kendo-formfield>
|
|
4349
4446
|
</form>
|
|
4350
|
-
`, 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:
|
|
4447
|
+
`, 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"] }] });
|
|
4351
4448
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskFieldsComponent, decorators: [{
|
|
4352
4449
|
type: Component,
|
|
4353
4450
|
args: [{
|
|
@@ -4707,7 +4804,7 @@ EditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
4707
4804
|
</button>
|
|
4708
4805
|
</kendo-dialog-actions>
|
|
4709
4806
|
</kendo-dialog>
|
|
4710
|
-
`, 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:
|
|
4807
|
+
`, 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"] }] });
|
|
4711
4808
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EditDialogComponent, decorators: [{
|
|
4712
4809
|
type: Component,
|
|
4713
4810
|
args: [{
|
|
@@ -5049,7 +5146,7 @@ const DEFAULT_DRAG_SCROLL_SETTINGS = {
|
|
|
5049
5146
|
* ```
|
|
5050
5147
|
*/
|
|
5051
5148
|
class GanttComponent {
|
|
5052
|
-
constructor(timelineViewService, scrollSyncService, renderer, mapper, optionChangesService, dependencyDomService, editService, localizationService, hostElement, zone, navigation) {
|
|
5149
|
+
constructor(timelineViewService, scrollSyncService, renderer, mapper, optionChangesService, dependencyDomService, editService, localizationService, hostElement, zone, navigation, currentTimeMarkerService) {
|
|
5053
5150
|
this.timelineViewService = timelineViewService;
|
|
5054
5151
|
this.scrollSyncService = scrollSyncService;
|
|
5055
5152
|
this.renderer = renderer;
|
|
@@ -5061,6 +5158,7 @@ class GanttComponent {
|
|
|
5061
5158
|
this.hostElement = hostElement;
|
|
5062
5159
|
this.zone = zone;
|
|
5063
5160
|
this.navigation = navigation;
|
|
5161
|
+
this.currentTimeMarkerService = currentTimeMarkerService;
|
|
5064
5162
|
/**
|
|
5065
5163
|
* @hidden
|
|
5066
5164
|
*/
|
|
@@ -5158,6 +5256,14 @@ class GanttComponent {
|
|
|
5158
5256
|
* @default false
|
|
5159
5257
|
*/
|
|
5160
5258
|
this.columnsAutoSize = false;
|
|
5259
|
+
/**
|
|
5260
|
+
* Specifies the Gantt current time marker settings.
|
|
5261
|
+
* The settings will be applied for all views.
|
|
5262
|
+
* If the `currentTimeMarker` is set for a view then it takes precedence.
|
|
5263
|
+
*
|
|
5264
|
+
* @default true
|
|
5265
|
+
*/
|
|
5266
|
+
this.currentTimeMarker = true;
|
|
5161
5267
|
/**
|
|
5162
5268
|
* Specifies if the column menu of the columns will be displayed.
|
|
5163
5269
|
*
|
|
@@ -5368,6 +5474,7 @@ class GanttComponent {
|
|
|
5368
5474
|
this.localizationSubscription = this.localizationService.changes.subscribe(({ rtl }) => {
|
|
5369
5475
|
this.rtl = rtl;
|
|
5370
5476
|
this.direction = this.rtl ? 'rtl' : 'ltr';
|
|
5477
|
+
this.currentTimeMarkerService.rtl = rtl;
|
|
5371
5478
|
});
|
|
5372
5479
|
}
|
|
5373
5480
|
get toolbarTemplate() {
|
|
@@ -5430,8 +5537,17 @@ class GanttComponent {
|
|
|
5430
5537
|
const view = this.views.find(view => view.type === this._activeView) ?
|
|
5431
5538
|
this._activeView :
|
|
5432
5539
|
this.views.first.type;
|
|
5540
|
+
this.currentTimeMarkerService.activeView = view;
|
|
5433
5541
|
return view;
|
|
5434
5542
|
}
|
|
5543
|
+
/**
|
|
5544
|
+
* @hidden
|
|
5545
|
+
*
|
|
5546
|
+
*/
|
|
5547
|
+
get activeViewCurrentTimeMarker() {
|
|
5548
|
+
const activeViewCurrentTimeMarker = this.views.find(view => view.type === this._activeView)?.currentTimeMarker;
|
|
5549
|
+
return activeViewCurrentTimeMarker || this.currentTimeMarker;
|
|
5550
|
+
}
|
|
5435
5551
|
/**
|
|
5436
5552
|
* Gets or sets the data of the Gantt.
|
|
5437
5553
|
*
|
|
@@ -5999,6 +6115,9 @@ class GanttComponent {
|
|
|
5999
6115
|
this.loadTimelineData();
|
|
6000
6116
|
this.scrollSyncService.resetTimelineScrollLeft();
|
|
6001
6117
|
this.activeViewChange.emit(view);
|
|
6118
|
+
this.currentTimeMarkerService.slots = this.timelineSlots;
|
|
6119
|
+
this.currentTimeMarkerService.rows = this.viewItems;
|
|
6120
|
+
this.currentTimeMarkerService.activeView = view;
|
|
6002
6121
|
}
|
|
6003
6122
|
}
|
|
6004
6123
|
/**
|
|
@@ -6215,8 +6334,8 @@ class GanttComponent {
|
|
|
6215
6334
|
}
|
|
6216
6335
|
}
|
|
6217
6336
|
}
|
|
6218
|
-
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 });
|
|
6219
|
-
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: [
|
|
6337
|
+
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 });
|
|
6338
|
+
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: [
|
|
6220
6339
|
GanttLocalizationService,
|
|
6221
6340
|
LocalizationService,
|
|
6222
6341
|
{
|
|
@@ -6238,7 +6357,8 @@ GanttComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
6238
6357
|
OptionChangesService,
|
|
6239
6358
|
EditService,
|
|
6240
6359
|
TimelineScrollService,
|
|
6241
|
-
NavigationService
|
|
6360
|
+
NavigationService,
|
|
6361
|
+
CurrentTimeMarkerService
|
|
6242
6362
|
], 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: `
|
|
6243
6363
|
<ng-container kendoGanttLocalizedMessages
|
|
6244
6364
|
i18n-taskEditingGeneralTabTitle="kendo.gantt.taskEditingGeneralTabTitle|The title of the 'General' tab of the editing dialog TabStrip"
|
|
@@ -6557,6 +6677,7 @@ GanttComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
6557
6677
|
[dragScrollSettings]="dragScrollSettings"
|
|
6558
6678
|
[rows]="viewItems"
|
|
6559
6679
|
[slots]="timelineSlots"
|
|
6680
|
+
[currentTimeMarker]="activeViewCurrentTimeMarker"
|
|
6560
6681
|
[groupSlots]="timelineGroupSlots"
|
|
6561
6682
|
[tableWidth]="tableWidth"
|
|
6562
6683
|
[activeView]="activeView"
|
|
@@ -6609,7 +6730,7 @@ GanttComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
6609
6730
|
</kendo-dialog>
|
|
6610
6731
|
|
|
6611
6732
|
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
|
|
6612
|
-
`, 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:
|
|
6733
|
+
`, 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"] }] });
|
|
6613
6734
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GanttComponent, decorators: [{
|
|
6614
6735
|
type: Component,
|
|
6615
6736
|
args: [{
|
|
@@ -6637,7 +6758,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
6637
6758
|
OptionChangesService,
|
|
6638
6759
|
EditService,
|
|
6639
6760
|
TimelineScrollService,
|
|
6640
|
-
NavigationService
|
|
6761
|
+
NavigationService,
|
|
6762
|
+
CurrentTimeMarkerService
|
|
6641
6763
|
],
|
|
6642
6764
|
template: `
|
|
6643
6765
|
<ng-container kendoGanttLocalizedMessages
|
|
@@ -6957,6 +7079,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
6957
7079
|
[dragScrollSettings]="dragScrollSettings"
|
|
6958
7080
|
[rows]="viewItems"
|
|
6959
7081
|
[slots]="timelineSlots"
|
|
7082
|
+
[currentTimeMarker]="activeViewCurrentTimeMarker"
|
|
6960
7083
|
[groupSlots]="timelineGroupSlots"
|
|
6961
7084
|
[tableWidth]="tableWidth"
|
|
6962
7085
|
[activeView]="activeView"
|
|
@@ -7011,7 +7134,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7011
7134
|
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
|
|
7012
7135
|
`
|
|
7013
7136
|
}]
|
|
7014
|
-
}], 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: [{
|
|
7137
|
+
}], 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: [{
|
|
7015
7138
|
type: ViewChild,
|
|
7016
7139
|
args: [TreeListComponent, { static: true }]
|
|
7017
7140
|
}], timeline: [{
|
|
@@ -7109,6 +7232,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7109
7232
|
type: Input
|
|
7110
7233
|
}], columnsAutoSize: [{
|
|
7111
7234
|
type: Input
|
|
7235
|
+
}], currentTimeMarker: [{
|
|
7236
|
+
type: Input
|
|
7112
7237
|
}], columnMenu: [{
|
|
7113
7238
|
type: Input
|
|
7114
7239
|
}], columnsReorderable: [{
|
package/gantt.component.d.ts
CHANGED
|
@@ -37,6 +37,8 @@ import { TaskAddEvent } from './models/events/task-add-event.interface';
|
|
|
37
37
|
import { ViewItem } from './models/view-item.interface';
|
|
38
38
|
import { DragScrollSettings } from './scrolling/drag-scroll-settings';
|
|
39
39
|
import { FilterableSettings } from './models/filterable-settings';
|
|
40
|
+
import { CurrentTimeMarkerService } from './timeline/current-time-marker.service';
|
|
41
|
+
import { CurrentTimeSettings } from './models/current-time-settings.interface';
|
|
40
42
|
import * as i0 from "@angular/core";
|
|
41
43
|
/**
|
|
42
44
|
* Represents the Kendo UI Gantt component for Angular.
|
|
@@ -121,6 +123,7 @@ export declare class GanttComponent implements AfterContentInit, OnChanges, OnDe
|
|
|
121
123
|
private hostElement;
|
|
122
124
|
private zone;
|
|
123
125
|
private navigation;
|
|
126
|
+
private currentTimeMarkerService;
|
|
124
127
|
treeList: TreeListComponent;
|
|
125
128
|
timeline: GanttTimelineComponent;
|
|
126
129
|
/**
|
|
@@ -190,6 +193,11 @@ export declare class GanttComponent implements AfterContentInit, OnChanges, OnDe
|
|
|
190
193
|
*/
|
|
191
194
|
set activeView(view: TimelineViewType);
|
|
192
195
|
get activeView(): TimelineViewType;
|
|
196
|
+
/**
|
|
197
|
+
* @hidden
|
|
198
|
+
*
|
|
199
|
+
*/
|
|
200
|
+
get activeViewCurrentTimeMarker(): boolean | CurrentTimeSettings;
|
|
193
201
|
/**
|
|
194
202
|
* Gets or sets the data of the Gantt.
|
|
195
203
|
*
|
|
@@ -347,6 +355,14 @@ export declare class GanttComponent implements AfterContentInit, OnChanges, OnDe
|
|
|
347
355
|
* @default false
|
|
348
356
|
*/
|
|
349
357
|
columnsAutoSize: boolean;
|
|
358
|
+
/**
|
|
359
|
+
* Specifies the Gantt current time marker settings.
|
|
360
|
+
* The settings will be applied for all views.
|
|
361
|
+
* If the `currentTimeMarker` is set for a view then it takes precedence.
|
|
362
|
+
*
|
|
363
|
+
* @default true
|
|
364
|
+
*/
|
|
365
|
+
currentTimeMarker: boolean | CurrentTimeSettings;
|
|
350
366
|
/**
|
|
351
367
|
* Specifies if the column menu of the columns will be displayed.
|
|
352
368
|
*
|
|
@@ -574,7 +590,7 @@ export declare class GanttComponent implements AfterContentInit, OnChanges, OnDe
|
|
|
574
590
|
private editServiceSubscription;
|
|
575
591
|
private localizationSubscription;
|
|
576
592
|
private keydownListenerDisposers;
|
|
577
|
-
constructor(timelineViewService: TimelineViewService, scrollSyncService: ScrollSyncService, renderer: Renderer2, mapper: MappingService, optionChangesService: OptionChangesService, dependencyDomService: DependencyDomService, editService: EditService, localizationService: LocalizationService, hostElement: ElementRef<HTMLElement>, zone: NgZone, navigation: NavigationService);
|
|
593
|
+
constructor(timelineViewService: TimelineViewService, scrollSyncService: ScrollSyncService, renderer: Renderer2, mapper: MappingService, optionChangesService: OptionChangesService, dependencyDomService: DependencyDomService, editService: EditService, localizationService: LocalizationService, hostElement: ElementRef<HTMLElement>, zone: NgZone, navigation: NavigationService, currentTimeMarkerService: CurrentTimeMarkerService);
|
|
578
594
|
ngOnChanges(changes: SimpleChanges): void;
|
|
579
595
|
ngAfterViewInit(): void;
|
|
580
596
|
ngAfterContentInit(): void;
|
|
@@ -755,5 +771,5 @@ export declare class GanttComponent implements AfterContentInit, OnChanges, OnDe
|
|
|
755
771
|
private defaultValidateNewDependencyCallback;
|
|
756
772
|
private handleKeydown;
|
|
757
773
|
static ɵfac: i0.ɵɵFactoryDeclaration<GanttComponent, never>;
|
|
758
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<GanttComponent, "kendo-gantt", ["kendoGantt"], { "roleDescription": "aria-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"; }, { "selectionChange": "selectionChange"; "rowExpand": "rowExpand"; "taskDblClick": "taskDblClick"; "cellDblClick": "cellDblClick"; "cellClose": "cellClose"; "taskDelete": "taskDelete"; "rowCollapse": "rowCollapse"; "remove": "remove"; "cancel": "cancel"; "save": "save"; "taskAdd": "taskAdd"; "dependencyAdd": "dependencyAdd"; "sortChange": "sortChange"; "filterChange": "filterChange"; "dataStateChange": "dataStateChange"; "treeListPaneCollapsedChange": "treeListPaneCollapsedChange"; "timelinePaneCollapsedChange": "timelinePaneCollapsedChange"; "timelinePaneSizeChange": "timelinePaneSizeChange"; "activeViewChange": "activeViewChange"; "columnResize": "columnResize"; "columnReorder": "columnReorder"; "columnVisibilityChange": "columnVisibilityChange"; "columnLockedChange": "columnLockedChange"; "cellClick": "cellClick"; "taskClick": "taskClick"; }, ["taskContentTemplate", "taskTemplate", "summaryTaskTemplate", "toolbarTemplateChildren", "columns", "views"], never>;
|
|
774
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GanttComponent, "kendo-gantt", ["kendoGantt"], { "roleDescription": "aria-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"; }, { "selectionChange": "selectionChange"; "rowExpand": "rowExpand"; "taskDblClick": "taskDblClick"; "cellDblClick": "cellDblClick"; "cellClose": "cellClose"; "taskDelete": "taskDelete"; "rowCollapse": "rowCollapse"; "remove": "remove"; "cancel": "cancel"; "save": "save"; "taskAdd": "taskAdd"; "dependencyAdd": "dependencyAdd"; "sortChange": "sortChange"; "filterChange": "filterChange"; "dataStateChange": "dataStateChange"; "treeListPaneCollapsedChange": "treeListPaneCollapsedChange"; "timelinePaneCollapsedChange": "timelinePaneCollapsedChange"; "timelinePaneSizeChange": "timelinePaneSizeChange"; "activeViewChange": "activeViewChange"; "columnResize": "columnResize"; "columnReorder": "columnReorder"; "columnVisibilityChange": "columnVisibilityChange"; "columnLockedChange": "columnLockedChange"; "cellClick": "cellClick"; "taskClick": "taskClick"; }, ["taskContentTemplate", "taskTemplate", "summaryTaskTemplate", "toolbarTemplateChildren", "columns", "views"], never>;
|
|
759
775
|
}
|
package/index.d.ts
CHANGED
|
@@ -36,5 +36,6 @@ export { SelectionChangeEvent } from './selection/selection-change-event';
|
|
|
36
36
|
export { TreeListPaneOptions, TimelinePaneOptions } from './models/splitter-pane-options.interface';
|
|
37
37
|
export { LocalizedMessagesDirective } from './localization/localized-messages.directive';
|
|
38
38
|
export { CustomMessagesComponent } from './localization/custom-messages.component';
|
|
39
|
+
export { CurrentTimeSettings } from './models/current-time-settings.interface';
|
|
39
40
|
export * from './models/models';
|
|
40
41
|
export * from './columns/columns';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
/**
|
|
6
|
+
* The settings for the current time marker.
|
|
7
|
+
*/
|
|
8
|
+
export interface CurrentTimeSettings {
|
|
9
|
+
/**
|
|
10
|
+
* The update interval (in milliseconds) of the current time marker.
|
|
11
|
+
* Defaults to `60000` (a minute).
|
|
12
|
+
*/
|
|
13
|
+
updateInterval?: number;
|
|
14
|
+
/**
|
|
15
|
+
* Specifies if the current time marker will be displayed.
|
|
16
|
+
* Defaults to `true`.
|
|
17
|
+
*/
|
|
18
|
+
enabled?: boolean;
|
|
19
|
+
}
|