@progress/kendo-angular-gantt 0.3.0-dev.202201131518 → 0.3.0-dev.202201190830
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/dist/cdn/js/kendo-angular-gantt.js +2 -2
- package/dist/cdn/main.js +2 -2
- package/dist/es/editing/edit-dialog.component.js +3 -3
- package/dist/es/editing/edit.service.js +4 -2
- package/dist/es/gantt.component.js +191 -24
- package/dist/es/index.js +1 -0
- package/dist/es/models/events/task-delete-event.interface.js +4 -0
- package/dist/es/navigation/navigation-models.js +4 -0
- package/dist/es/navigation/navigation.service.js +390 -0
- package/dist/es/navigation/utils.js +77 -0
- package/dist/es/package-metadata.js +1 -1
- package/dist/es/rendering/gantt-milestone-task.component.js +7 -4
- package/dist/es/rendering/gantt-summary-task.component.js +22 -4
- package/dist/es/rendering/gantt-task-base.js +57 -6
- package/dist/es/rendering/gantt-task.component.js +9 -6
- package/dist/es/rendering/gantt-tasks-table-body.component.js +9 -5
- package/dist/es/timeline/gantt-timeline.component.js +10 -6
- package/dist/es/toolbar/toolbar.component.js +12 -13
- package/dist/es/toolbar/view-selector.component.js +1 -1
- package/dist/es/utils.js +14 -4
- package/dist/es2015/editing/edit-dialog.component.d.ts +1 -1
- package/dist/es2015/editing/edit-dialog.component.js +11 -3
- package/dist/es2015/editing/edit.service.d.ts +2 -3
- package/dist/es2015/editing/edit.service.js +4 -2
- package/dist/es2015/editing/utils.d.ts +2 -2
- package/dist/es2015/gantt.component.d.ts +75 -16
- package/dist/es2015/gantt.component.js +177 -26
- package/dist/es2015/index.d.ts +1 -0
- package/dist/es2015/index.js +1 -0
- package/dist/es2015/index.metadata.json +1 -1
- package/dist/es2015/models/events/task-click-event.interface.d.ts +3 -3
- package/dist/es2015/models/events/task-delete-event.interface.d.ts +21 -0
- package/dist/es2015/models/events/task-delete-event.interface.js +4 -0
- package/dist/es2015/models/events/task-edit-event.interface.d.ts +27 -10
- package/dist/es2015/models/models.d.ts +2 -0
- package/dist/es2015/navigation/navigation-models.d.ts +34 -0
- package/dist/es2015/navigation/navigation-models.js +4 -0
- package/dist/es2015/navigation/navigation.service.d.ts +126 -0
- package/dist/es2015/navigation/navigation.service.js +355 -0
- package/dist/es2015/navigation/utils.d.ts +26 -0
- package/dist/es2015/navigation/utils.js +69 -0
- package/dist/es2015/package-metadata.js +1 -1
- package/dist/es2015/rendering/gantt-milestone-task.component.d.ts +2 -1
- package/dist/es2015/rendering/gantt-milestone-task.component.js +18 -4
- package/dist/es2015/rendering/gantt-summary-task.component.d.ts +4 -1
- package/dist/es2015/rendering/gantt-summary-task.component.js +30 -4
- package/dist/es2015/rendering/gantt-task-base.d.ts +10 -2
- package/dist/es2015/rendering/gantt-task-base.js +48 -6
- package/dist/es2015/rendering/gantt-task.component.d.ts +3 -2
- package/dist/es2015/rendering/gantt-task.component.js +31 -9
- package/dist/es2015/rendering/gantt-tasks-table-body.component.d.ts +5 -3
- package/dist/es2015/rendering/gantt-tasks-table-body.component.js +23 -12
- package/dist/es2015/scrolling/scroll-sync.service.d.ts +1 -1
- package/dist/es2015/timeline/gantt-timeline.component.d.ts +5 -3
- package/dist/es2015/timeline/gantt-timeline.component.js +15 -6
- package/dist/es2015/toolbar/toolbar.component.d.ts +4 -5
- package/dist/es2015/toolbar/toolbar.component.js +12 -13
- package/dist/es2015/toolbar/view-selector.component.js +3 -1
- package/dist/es2015/utils.d.ts +10 -3
- package/dist/es2015/utils.js +14 -4
- package/dist/fesm2015/index.js +2311 -1610
- package/dist/fesm5/index.js +1722 -1013
- package/dist/npm/editing/edit-dialog.component.js +3 -3
- package/dist/npm/editing/edit.service.js +4 -2
- package/dist/npm/gantt.component.js +191 -24
- package/dist/npm/index.js +2 -0
- package/dist/npm/models/events/task-delete-event.interface.js +6 -0
- package/dist/npm/navigation/navigation-models.js +6 -0
- package/dist/npm/navigation/navigation.service.js +392 -0
- package/dist/npm/navigation/utils.js +79 -0
- package/dist/npm/package-metadata.js +1 -1
- package/dist/npm/rendering/gantt-milestone-task.component.js +7 -4
- package/dist/npm/rendering/gantt-summary-task.component.js +22 -4
- package/dist/npm/rendering/gantt-task-base.js +57 -6
- package/dist/npm/rendering/gantt-task.component.js +9 -6
- package/dist/npm/rendering/gantt-tasks-table-body.component.js +9 -5
- package/dist/npm/timeline/gantt-timeline.component.js +10 -6
- package/dist/npm/toolbar/toolbar.component.js +10 -11
- package/dist/npm/toolbar/view-selector.component.js +1 -1
- package/dist/npm/utils.js +14 -4
- package/dist/systemjs/kendo-angular-gantt.js +1 -1
- package/package.json +1 -1
|
@@ -14,24 +14,42 @@ var slotUnitDuration = {
|
|
|
14
14
|
week: kendo_date_math_1.MS_PER_DAY,
|
|
15
15
|
month: kendo_date_math_1.MS_PER_DAY * 7
|
|
16
16
|
};
|
|
17
|
+
var FOCUSED_CLASS = 'k-focus';
|
|
17
18
|
/**
|
|
18
19
|
* @hidden
|
|
19
20
|
*/
|
|
20
21
|
var GanttTaskBase = /** @class */ (function () {
|
|
21
22
|
function GanttTaskBase(mapper, // left public to be available for usage in the templates
|
|
22
|
-
timelineViewService, dependencyDomService, optionChangesService, cdr) {
|
|
23
|
+
timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
|
|
23
24
|
var _this = this;
|
|
24
25
|
this.mapper = mapper;
|
|
25
26
|
this.timelineViewService = timelineViewService;
|
|
26
27
|
this.dependencyDomService = dependencyDomService;
|
|
27
28
|
this.optionChangesService = optionChangesService;
|
|
28
29
|
this.cdr = cdr;
|
|
30
|
+
this.navigationService = navigationService;
|
|
29
31
|
this.wrapperClass = true;
|
|
30
|
-
this.
|
|
31
|
-
this.
|
|
32
|
-
_this.cdr.markForCheck();
|
|
33
|
-
|
|
32
|
+
this.subscriptions = new rxjs_1.Subscription();
|
|
33
|
+
this.subscriptions.add(this.optionChangesService.viewChanges
|
|
34
|
+
.subscribe(function () { return _this.cdr.markForCheck(); }));
|
|
35
|
+
this.subscriptions.add(this.navigationService.taskStatusChanges
|
|
36
|
+
.subscribe(this.updateActiveState.bind(this)));
|
|
34
37
|
}
|
|
38
|
+
Object.defineProperty(GanttTaskBase.prototype, "taskIndexAttribute", {
|
|
39
|
+
get: function () {
|
|
40
|
+
return this.index;
|
|
41
|
+
},
|
|
42
|
+
enumerable: true,
|
|
43
|
+
configurable: true
|
|
44
|
+
});
|
|
45
|
+
Object.defineProperty(GanttTaskBase.prototype, "ariaSelected", {
|
|
46
|
+
get: function () {
|
|
47
|
+
// assinging null will not render the attribute at all (desired in selectable="false" mode)
|
|
48
|
+
return this.selectable ? String(this.isSelected(this.dataItem)) : null;
|
|
49
|
+
},
|
|
50
|
+
enumerable: true,
|
|
51
|
+
configurable: true
|
|
52
|
+
});
|
|
35
53
|
Object.defineProperty(GanttTaskBase.prototype, "slotUnitDuration", {
|
|
36
54
|
get: function () {
|
|
37
55
|
return slotUnitDuration[this.activeView];
|
|
@@ -98,17 +116,38 @@ var GanttTaskBase = /** @class */ (function () {
|
|
|
98
116
|
else if (utils_1.isPresent(changes.activeView)) {
|
|
99
117
|
this.dependencyDomService.notifyChanges();
|
|
100
118
|
}
|
|
119
|
+
if (this.navigationService.enabled && utils_1.isPresent(changes.index)) {
|
|
120
|
+
this.updateActiveState(this.navigationService.activeTask);
|
|
121
|
+
}
|
|
101
122
|
};
|
|
102
123
|
GanttTaskBase.prototype.ngOnDestroy = function () {
|
|
103
124
|
if (utils_1.isPresent(this.dataItem)) {
|
|
104
125
|
this.dependencyDomService.unregisterTask(this.dataItem);
|
|
105
126
|
}
|
|
106
|
-
this.
|
|
127
|
+
this.subscriptions.unsubscribe();
|
|
128
|
+
};
|
|
129
|
+
GanttTaskBase.prototype.updateActiveState = function (_a) {
|
|
130
|
+
var activeIndex = _a.activeIndex, isFocused = _a.isFocused;
|
|
131
|
+
var isActive = activeIndex === this.index;
|
|
132
|
+
var tabindex = isActive ? '0' : '-1';
|
|
133
|
+
this.taskElement.nativeElement.setAttribute('tabindex', tabindex);
|
|
134
|
+
if (isActive && isFocused) {
|
|
135
|
+
this.taskElement.nativeElement.focus();
|
|
136
|
+
this.taskElement.nativeElement.classList.add(FOCUSED_CLASS);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
this.taskElement.nativeElement.classList.remove(FOCUSED_CLASS);
|
|
140
|
+
}
|
|
107
141
|
};
|
|
108
142
|
tslib_1.__decorate([
|
|
109
143
|
core_1.HostBinding('class.k-task-wrap'),
|
|
110
144
|
tslib_1.__metadata("design:type", Boolean)
|
|
111
145
|
], GanttTaskBase.prototype, "wrapperClass", void 0);
|
|
146
|
+
tslib_1.__decorate([
|
|
147
|
+
core_1.HostBinding('attr.data-task-index'),
|
|
148
|
+
tslib_1.__metadata("design:type", Number),
|
|
149
|
+
tslib_1.__metadata("design:paramtypes", [])
|
|
150
|
+
], GanttTaskBase.prototype, "taskIndexAttribute", null);
|
|
112
151
|
tslib_1.__decorate([
|
|
113
152
|
core_1.ViewChild('task', { static: true }),
|
|
114
153
|
tslib_1.__metadata("design:type", core_1.ElementRef)
|
|
@@ -117,10 +156,22 @@ var GanttTaskBase = /** @class */ (function () {
|
|
|
117
156
|
core_1.Input(),
|
|
118
157
|
tslib_1.__metadata("design:type", Object)
|
|
119
158
|
], GanttTaskBase.prototype, "dataItem", void 0);
|
|
159
|
+
tslib_1.__decorate([
|
|
160
|
+
core_1.Input(),
|
|
161
|
+
tslib_1.__metadata("design:type", Number)
|
|
162
|
+
], GanttTaskBase.prototype, "index", void 0);
|
|
163
|
+
tslib_1.__decorate([
|
|
164
|
+
core_1.Input(),
|
|
165
|
+
tslib_1.__metadata("design:type", Number)
|
|
166
|
+
], GanttTaskBase.prototype, "level", void 0);
|
|
120
167
|
tslib_1.__decorate([
|
|
121
168
|
core_1.Input(),
|
|
122
169
|
tslib_1.__metadata("design:type", Boolean)
|
|
123
170
|
], GanttTaskBase.prototype, "renderDependencyDragClues", void 0);
|
|
171
|
+
tslib_1.__decorate([
|
|
172
|
+
core_1.Input(),
|
|
173
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
174
|
+
], GanttTaskBase.prototype, "selectable", void 0);
|
|
124
175
|
tslib_1.__decorate([
|
|
125
176
|
core_1.Input(),
|
|
126
177
|
tslib_1.__metadata("design:type", Function)
|
|
@@ -7,19 +7,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
var tslib_1 = require("tslib");
|
|
8
8
|
var core_1 = require("@angular/core");
|
|
9
9
|
var mapping_service_1 = require("../common/mapping.service");
|
|
10
|
+
var navigation_service_1 = require("../navigation/navigation.service");
|
|
11
|
+
var edit_service_1 = require("../editing/edit.service");
|
|
10
12
|
var touch_enabled_1 = require("../common/touch-enabled");
|
|
11
13
|
var dependency_dom_service_1 = require("../dependencies/dependency-dom.service");
|
|
12
14
|
var option_changes_service_1 = require("../common/option-changes.service");
|
|
13
15
|
var timeline_view_service_1 = require("./../timeline/timeline-view.service");
|
|
14
16
|
var gantt_task_base_1 = require("./gantt-task-base");
|
|
15
|
-
var edit_service_1 = require("../editing/edit.service");
|
|
16
17
|
/**
|
|
17
18
|
* @hidden
|
|
18
19
|
*/
|
|
19
20
|
var GanttTaskComponent = /** @class */ (function (_super) {
|
|
20
21
|
tslib_1.__extends(GanttTaskComponent, _super);
|
|
21
|
-
function GanttTaskComponent(editService, touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr) {
|
|
22
|
-
var _this = _super.call(this, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr) || this;
|
|
22
|
+
function GanttTaskComponent(editService, touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
|
|
23
|
+
var _this = _super.call(this, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) || this;
|
|
23
24
|
_this.editService = editService;
|
|
24
25
|
_this.touchEnabled = touchEnabled;
|
|
25
26
|
return _this;
|
|
@@ -27,7 +28,7 @@ var GanttTaskComponent = /** @class */ (function (_super) {
|
|
|
27
28
|
GanttTaskComponent_1 = GanttTaskComponent;
|
|
28
29
|
GanttTaskComponent.prototype.onTaskDelete = function () {
|
|
29
30
|
this.editService.dataItem = this.dataItem;
|
|
30
|
-
this.editService.
|
|
31
|
+
this.editService.taskDelete.next(this.dataItem);
|
|
31
32
|
};
|
|
32
33
|
var GanttTaskComponent_1;
|
|
33
34
|
tslib_1.__decorate([
|
|
@@ -47,14 +48,16 @@ var GanttTaskComponent = /** @class */ (function (_super) {
|
|
|
47
48
|
useExisting: core_1.forwardRef(function () { return GanttTaskComponent_1; })
|
|
48
49
|
}
|
|
49
50
|
],
|
|
50
|
-
template: "\n <div\n #task\n class=\"k-task k-task-single\"\n [ngClass]=\"taskClass(dataItem)\"\n [style.width.px]=\"taskWidth\"\n [attr.title]=\"mapper.extractFromTask(dataItem, 'title')\"\n [class.k-state-selected]=\"isSelected(dataItem)\"\n >\n <ng-container *ngIf=\"!taskTemplate\">\n <div\n class=\"k-task-complete\"\n [style.width.px]=\"completionOverlayWidth\"\n >\n </div>\n <div class=\"k-task-content\">\n <div class=\"k-task-template\">\n <ng-container *ngIf=\"!taskContentTemplate; else taskContent\">\n {{ mapper.extractFromTask(dataItem, 'title') }}\n </ng-container>\n <ng-template\n #taskContent\n [ngTemplateOutlet]=\"taskContentTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"\n >\n </ng-template>\n </div>\n <span
|
|
51
|
+
template: "\n <div\n #task\n class=\"k-task k-task-single\"\n role=\"treeitem\"\n [ngClass]=\"taskClass(dataItem)\"\n [style.width.px]=\"taskWidth\"\n [attr.title]=\"mapper.extractFromTask(dataItem, 'title')\"\n [class.k-state-selected]=\"isSelected(dataItem)\"\n [attr.aria-selected]=\"ariaSelected\"\n [attr.aria-level]=\"level + 1\"\n >\n <ng-container *ngIf=\"!taskTemplate\">\n <div\n class=\"k-task-complete\"\n [style.width.px]=\"completionOverlayWidth\"\n aria-hidden=\"true\"\n >\n </div>\n <div class=\"k-task-content\">\n <div class=\"k-task-template\">\n <ng-container *ngIf=\"!taskContentTemplate; else taskContent\">\n {{ mapper.extractFromTask(dataItem, 'title') }}\n </ng-container>\n <ng-template\n #taskContent\n [ngTemplateOutlet]=\"taskContentTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"\n >\n </ng-template>\n </div>\n <span\n class=\"k-task-actions\"\n aria-hidden=\"true\"\n >\n <span\n class=\"k-link k-task-delete\"\n [kendoEventsOutsideAngular]=\"{\n click: onTaskDelete\n }\"\n [scope]=\"this\"\n >\n <span class=\"k-icon k-i-close\"></span>\n </span>\n </span>\n </div>\n </ng-container>\n <ng-template\n *ngIf=\"taskTemplate\"\n [ngTemplateOutlet]=\"taskTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: dataItem,\n elementWidth: taskWidth\n }\"\n >\n </ng-template>\n </div>\n <ng-container *ngIf=\"renderDependencyDragClues\">\n <div\n class=\"k-task-dot k-task-start k-touch-action-none\"\n [class.k-display-block]=\"touchEnabled\"\n >\n </div>\n <div\n class=\"k-task-dot k-task-end k-touch-action-none\"\n [class.k-display-block]=\"touchEnabled\"\n >\n </div>\n </ng-container>\n ",
|
|
52
|
+
styles: ["\n .k-task.k-focus {\n box-shadow: 0 0 4px 3px grey;\n outline: none;\n }\n .k-task.k-focus.k-state-selected {\n box-shadow: 0 0 4px 3px #ffaea8;\n }\n "]
|
|
51
53
|
}),
|
|
52
54
|
tslib_1.__param(1, core_1.Inject(touch_enabled_1.TOUCH_ENABLED)),
|
|
53
55
|
tslib_1.__metadata("design:paramtypes", [edit_service_1.EditService, Boolean, mapping_service_1.MappingService,
|
|
54
56
|
timeline_view_service_1.TimelineViewService,
|
|
55
57
|
dependency_dom_service_1.DependencyDomService,
|
|
56
58
|
option_changes_service_1.OptionChangesService,
|
|
57
|
-
core_1.ChangeDetectorRef
|
|
59
|
+
core_1.ChangeDetectorRef,
|
|
60
|
+
navigation_service_1.NavigationService])
|
|
58
61
|
], GanttTaskComponent);
|
|
59
62
|
return GanttTaskComponent;
|
|
60
63
|
}(gantt_task_base_1.GanttTaskBase));
|
|
@@ -8,8 +8,8 @@ var tslib_1 = require("tslib");
|
|
|
8
8
|
var core_1 = require("@angular/core");
|
|
9
9
|
var kendo_date_math_1 = require("@progress/kendo-date-math");
|
|
10
10
|
var dependency_dom_service_1 = require("../dependencies/dependency-dom.service");
|
|
11
|
-
var utils_1 = require("../utils");
|
|
12
11
|
var mapping_service_1 = require("../common/mapping.service");
|
|
12
|
+
var utils_1 = require("../utils");
|
|
13
13
|
/**
|
|
14
14
|
* @hidden
|
|
15
15
|
*/
|
|
@@ -29,14 +29,18 @@ var GanttTasksTableBodyComponent = /** @class */ (function () {
|
|
|
29
29
|
enumerable: true,
|
|
30
30
|
configurable: true
|
|
31
31
|
});
|
|
32
|
-
GanttTasksTableBodyComponent.prototype.isMileStone = function (
|
|
33
|
-
return !
|
|
32
|
+
GanttTasksTableBodyComponent.prototype.isMileStone = function (item) {
|
|
33
|
+
return !item.hasChildren && kendo_date_math_1.isEqual(this.mapper.extractFromTask(item.data, 'start'), this.mapper.extractFromTask(item.data, 'end'));
|
|
34
34
|
};
|
|
35
35
|
tslib_1.__decorate([
|
|
36
36
|
core_1.ViewChild('timelineRow', { static: false }),
|
|
37
37
|
tslib_1.__metadata("design:type", core_1.ElementRef),
|
|
38
38
|
tslib_1.__metadata("design:paramtypes", [core_1.ElementRef])
|
|
39
39
|
], GanttTasksTableBodyComponent.prototype, "timelineRow", null);
|
|
40
|
+
tslib_1.__decorate([
|
|
41
|
+
core_1.Input(),
|
|
42
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
43
|
+
], GanttTasksTableBodyComponent.prototype, "selectable", void 0);
|
|
40
44
|
tslib_1.__decorate([
|
|
41
45
|
core_1.Input(),
|
|
42
46
|
tslib_1.__metadata("design:type", Array)
|
|
@@ -64,7 +68,7 @@ var GanttTasksTableBodyComponent = /** @class */ (function () {
|
|
|
64
68
|
tslib_1.__decorate([
|
|
65
69
|
core_1.Input(),
|
|
66
70
|
tslib_1.__metadata("design:type", Function)
|
|
67
|
-
], GanttTasksTableBodyComponent.prototype, "
|
|
71
|
+
], GanttTasksTableBodyComponent.prototype, "isExpanded", void 0);
|
|
68
72
|
tslib_1.__decorate([
|
|
69
73
|
core_1.Input(),
|
|
70
74
|
tslib_1.__metadata("design:type", Function)
|
|
@@ -76,7 +80,7 @@ var GanttTasksTableBodyComponent = /** @class */ (function () {
|
|
|
76
80
|
GanttTasksTableBodyComponent = tslib_1.__decorate([
|
|
77
81
|
core_1.Component({
|
|
78
82
|
selector: '[kendoGanttTasksTableBody]',
|
|
79
|
-
template: "\n <tr #timelineRow *ngFor=\"let item of rows; let index = index\">\n <td>\n <kendo-gantt-milestone-task\n *ngIf=\"isMileStone(item); else task\"\n [dataItem]=\"item\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n [isSelected]=\"isTaskSelected\"\n [
|
|
83
|
+
template: "\n <tr #timelineRow *ngFor=\"let item of rows; let index = index\">\n <td>\n <kendo-gantt-milestone-task\n *ngIf=\"isMileStone(item); else task\"\n [dataItem]=\"item.data\"\n [level]=\"item.level\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n [selectable]=\"selectable\"\n [isSelected]=\"isTaskSelected\"\n [index]=\"index\"\n [renderDependencyDragClues]=\"renderDependencyDragClues\"\n >\n </kendo-gantt-milestone-task>\n <ng-template #task>\n <kendo-gantt-summary-task\n *ngIf=\"item.hasChildren\"\n [dataItem]=\"item.data\"\n [level]=\"item.level\"\n [template]=\"summaryTaskTemplate\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n [selectable]=\"selectable\"\n [isSelected]=\"isTaskSelected\"\n [isExpanded]=\"isExpanded\"\n [index]=\"index\"\n [renderDependencyDragClues]=\"renderDependencyDragClues\"\n >\n </kendo-gantt-summary-task>\n <kendo-gantt-task\n *ngIf=\"!item.hasChildren\"\n [dataItem]=\"item.data\"\n [level]=\"item.level\"\n [taskContentTemplate]=\"taskContentTemplate\"\n [taskTemplate]=\"taskTemplate\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n [selectable]=\"selectable\"\n [isSelected]=\"isTaskSelected\"\n [index]=\"index\"\n [renderDependencyDragClues]=\"renderDependencyDragClues\"\n >\n </kendo-gantt-task>\n </ng-template>\n </td>\n </tr>\n "
|
|
80
84
|
}),
|
|
81
85
|
tslib_1.__metadata("design:paramtypes", [dependency_dom_service_1.DependencyDomService,
|
|
82
86
|
mapping_service_1.MappingService])
|
|
@@ -127,10 +127,6 @@ var GanttTimelineComponent = /** @class */ (function () {
|
|
|
127
127
|
core_1.Input(),
|
|
128
128
|
tslib_1.__metadata("design:type", Function)
|
|
129
129
|
], GanttTimelineComponent.prototype, "taskClass", void 0);
|
|
130
|
-
tslib_1.__decorate([
|
|
131
|
-
core_1.Input(),
|
|
132
|
-
tslib_1.__metadata("design:type", Function)
|
|
133
|
-
], GanttTimelineComponent.prototype, "isTaskSelected", void 0);
|
|
134
130
|
tslib_1.__decorate([
|
|
135
131
|
core_1.Input(),
|
|
136
132
|
tslib_1.__metadata("design:type", Boolean)
|
|
@@ -139,10 +135,18 @@ var GanttTimelineComponent = /** @class */ (function () {
|
|
|
139
135
|
core_1.Input(),
|
|
140
136
|
tslib_1.__metadata("design:type", Object)
|
|
141
137
|
], GanttTimelineComponent.prototype, "dragScrollSettings", void 0);
|
|
138
|
+
tslib_1.__decorate([
|
|
139
|
+
core_1.Input(),
|
|
140
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
141
|
+
], GanttTimelineComponent.prototype, "selectable", void 0);
|
|
142
|
+
tslib_1.__decorate([
|
|
143
|
+
core_1.Input(),
|
|
144
|
+
tslib_1.__metadata("design:type", Function)
|
|
145
|
+
], GanttTimelineComponent.prototype, "isTaskSelected", void 0);
|
|
142
146
|
tslib_1.__decorate([
|
|
143
147
|
core_1.Input(),
|
|
144
148
|
tslib_1.__metadata("design:type", Function)
|
|
145
|
-
], GanttTimelineComponent.prototype, "
|
|
149
|
+
], GanttTimelineComponent.prototype, "isExpanded", void 0);
|
|
146
150
|
tslib_1.__decorate([
|
|
147
151
|
core_1.Input(),
|
|
148
152
|
tslib_1.__metadata("design:type", Array)
|
|
@@ -162,7 +166,7 @@ var GanttTimelineComponent = /** @class */ (function () {
|
|
|
162
166
|
GanttTimelineComponent = tslib_1.__decorate([
|
|
163
167
|
core_1.Component({
|
|
164
168
|
selector: 'kendo-gantt-timeline',
|
|
165
|
-
template: "\n <div class=\"k-timeline k-grid k-widget\">\n <div class=\"k-grid-header\">\n <div #timelineHeaderWrap class=\"k-grid-header-wrap\">\n <table\n role=\"presentation\"\n [style.width.px]=\"tableWidth\"\n >\n <tbody\n kendoGanttHeaderTableBody\n [groupSlots]=\"groupSlots\"\n [slots]=\"slots\">\n </tbody>\n </table>\n </div>\n </div>\n <div\n #timelineContent\n class=\"k-grid-content\"\n kendoGanttTimelineScrollable\n [scrollSettings]=\"dragScrollSettings\"\n kendoDraggable\n [enableDrag]=\"draggableEnabled\"\n (kendoPress)=\"timelineContainerPress.emit($event)\"\n (kendoDrag)=\"timelineContainerDrag.emit($event)\"\n (kendoRelease)=\"timelineContainerRelease.emit($event)\"\n >\n <div class=\"k-gantt-tables\">\n <table\n class=\"k-gantt-rows\"\n [style.width.px]=\"tableWidth\"\n role=\"presentation\"\n >\n <tbody>\n <tr *ngFor=\"let item of rows; let i = index;\"\n [class.k-alt]=\"i % 2\"\n >\n <td></td>\n </tr>\n </tbody>\n </table>\n\n <table\n #timelineColumns\n class=\"k-gantt-columns\"\n role=\"presentation\"\n [style.width.px]=\"tableWidth\"\n >\n <colgroup>\n <col *ngFor=\"let item of slots\">\n </colgroup>\n\n <tbody>\n <tr>\n <td *ngFor=\"let item of slots\"\n [class.k-nonwork-hour]=\"isNonWorking(item)\"\n >\n </td>\n </tr>\n </tbody>\n </table>\n\n <table\n #tasksContainer\n class=\"k-gantt-tasks\"\n role=\"presentation\"\n style=\"border-collapse: collapse;\"\n [style.width.px]=\"tableWidth\"\n >\n <tbody\n kendoGanttTasksTableBody\n [rows]=\"rows\"\n [activeView]=\"activeView\"\n [taskContentTemplate]=\"taskContentTemplate\"\n [taskTemplate]=\"taskTemplate\"\n [summaryTaskTemplate]=\"summaryTaskTemplate\"\n [taskClass]=\"taskClass\"\n [
|
|
169
|
+
template: "\n <div class=\"k-timeline k-grid k-widget\">\n <div class=\"k-grid-header\">\n <div #timelineHeaderWrap class=\"k-grid-header-wrap\">\n <table\n role=\"presentation\"\n [style.width.px]=\"tableWidth\"\n >\n <tbody\n kendoGanttHeaderTableBody\n [groupSlots]=\"groupSlots\"\n [slots]=\"slots\">\n </tbody>\n </table>\n </div>\n </div>\n <!-- tabindex=\"-1\" required for https://bugzilla.mozilla.org/show_bug.cgi?id=1069739 -->\n <div\n #timelineContent\n class=\"k-grid-content\"\n tabindex=\"-1\"\n role=\"tree\"\n aria-roledescription=\"Timeline\"\n kendoGanttTimelineScrollable\n [scrollSettings]=\"dragScrollSettings\"\n kendoDraggable\n [enableDrag]=\"draggableEnabled\"\n (kendoPress)=\"timelineContainerPress.emit($event)\"\n (kendoDrag)=\"timelineContainerDrag.emit($event)\"\n (kendoRelease)=\"timelineContainerRelease.emit($event)\"\n >\n <div class=\"k-gantt-tables\">\n <table\n class=\"k-gantt-rows\"\n [style.width.px]=\"tableWidth\"\n role=\"presentation\"\n >\n <tbody>\n <tr *ngFor=\"let item of rows; let i = index;\"\n [class.k-alt]=\"i % 2\"\n >\n <td></td>\n </tr>\n </tbody>\n </table>\n\n <table\n #timelineColumns\n class=\"k-gantt-columns\"\n role=\"presentation\"\n [style.width.px]=\"tableWidth\"\n >\n <colgroup>\n <col *ngFor=\"let item of slots\">\n </colgroup>\n\n <tbody>\n <tr>\n <td *ngFor=\"let item of slots\"\n [class.k-nonwork-hour]=\"isNonWorking(item)\"\n >\n </td>\n </tr>\n </tbody>\n </table>\n\n <table\n #tasksContainer\n class=\"k-gantt-tasks\"\n role=\"presentation\"\n style=\"border-collapse: collapse;\"\n [style.width.px]=\"tableWidth\"\n >\n <tbody\n kendoGanttTasksTableBody\n [rows]=\"rows\"\n [activeView]=\"activeView\"\n [taskContentTemplate]=\"taskContentTemplate\"\n [taskTemplate]=\"taskTemplate\"\n [summaryTaskTemplate]=\"summaryTaskTemplate\"\n [taskClass]=\"taskClass\"\n [isExpanded]=\"isExpanded\"\n [selectable]=\"selectable\"\n [isTaskSelected]=\"isTaskSelected\"\n [renderDependencyDragClues]=\"renderDependencyDragClues\"\n >\n </tbody>\n </table>\n </div>\n <svg class=\"k-gantt-dependencies-svg\">\n <polyline\n *ngFor=\"let dependency of dependencies\"\n kendoGanttDependency\n [dependency]=\"dependency\"\n />\n <polyline #dependencyDragCreatePolyline />\n </svg>\n\n <!-- placeholder for the dependency drag popup; its position is not arbitrary - the popup is intended to be absolutely positioned inside the .k-grid-content element -->\n <ng-container #dragPopupContainer></ng-container>\n </div>\n </div>\n "
|
|
166
170
|
}),
|
|
167
171
|
tslib_1.__metadata("design:paramtypes", [scroll_sync_service_1.ScrollSyncService,
|
|
168
172
|
dependency_dom_service_1.DependencyDomService,
|
|
@@ -7,15 +7,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
var tslib_1 = require("tslib");
|
|
8
8
|
var core_1 = require("@angular/core");
|
|
9
9
|
var gantt_component_1 = require("../gantt.component");
|
|
10
|
-
var scroll_sync_service_1 = require("../scrolling/scroll-sync.service");
|
|
11
10
|
/**
|
|
12
11
|
* @hidden
|
|
13
12
|
*/
|
|
14
13
|
var ToolbarComponent = /** @class */ (function () {
|
|
15
|
-
function ToolbarComponent(gantt
|
|
14
|
+
function ToolbarComponent(gantt) {
|
|
16
15
|
this.gantt = gantt;
|
|
17
|
-
this.scrollSyncService = scrollSyncService;
|
|
18
16
|
this.context = {};
|
|
17
|
+
this.role = 'toolbar';
|
|
19
18
|
}
|
|
20
19
|
Object.defineProperty(ToolbarComponent.prototype, "position", {
|
|
21
20
|
get: function () {
|
|
@@ -43,12 +42,13 @@ var ToolbarComponent = /** @class */ (function () {
|
|
|
43
42
|
enumerable: true,
|
|
44
43
|
configurable: true
|
|
45
44
|
});
|
|
46
|
-
ToolbarComponent.prototype.
|
|
47
|
-
this.gantt.
|
|
48
|
-
this.gantt.loadTimelineData();
|
|
49
|
-
this.gantt.activeViewChange.emit(e);
|
|
50
|
-
this.scrollSyncService.resetTimelineScrollLeft();
|
|
45
|
+
ToolbarComponent.prototype.handleViewChange = function (view) {
|
|
46
|
+
this.gantt.changeActiveView(view);
|
|
51
47
|
};
|
|
48
|
+
tslib_1.__decorate([
|
|
49
|
+
core_1.HostBinding('attr.role'),
|
|
50
|
+
tslib_1.__metadata("design:type", String)
|
|
51
|
+
], ToolbarComponent.prototype, "role", void 0);
|
|
52
52
|
tslib_1.__decorate([
|
|
53
53
|
core_1.Input(),
|
|
54
54
|
tslib_1.__metadata("design:type", Boolean)
|
|
@@ -65,10 +65,9 @@ var ToolbarComponent = /** @class */ (function () {
|
|
|
65
65
|
ToolbarComponent = tslib_1.__decorate([
|
|
66
66
|
core_1.Component({
|
|
67
67
|
selector: 'kendo-gantt-toolbar',
|
|
68
|
-
template: "\n <ng-container *ngIf=\"!renderTemplate\">\n <kendo-gantt-add-task *ngIf=\"showAddTask\"></kendo-gantt-add-task>\n <span class=\"k-spacer k-toolbar-spacer\"></span>\n <kendo-gantt-view-selector\n *ngIf=\"showViewSelector\"\n [views]=\"gantt.viewTypes\"\n [activeView]=\"gantt.activeView\"\n (activeViewChange)=\"
|
|
68
|
+
template: "\n <ng-container *ngIf=\"!renderTemplate\">\n <kendo-gantt-add-task *ngIf=\"showAddTask\"></kendo-gantt-add-task>\n <span class=\"k-spacer k-toolbar-spacer\"></span>\n <kendo-gantt-view-selector\n *ngIf=\"showViewSelector\"\n [views]=\"gantt.viewTypes\"\n [activeView]=\"gantt.activeView\"\n (activeViewChange)=\"handleViewChange($event)\"></kendo-gantt-view-selector>\n </ng-container>\n <ng-template\n *ngIf=\"renderTemplate\"\n [ngTemplateOutlet]=\"toolbarTemplateRef\"\n [ngTemplateOutletContext]=\"context\"\n >\n </ng-template>\n "
|
|
69
69
|
}),
|
|
70
|
-
tslib_1.__metadata("design:paramtypes", [gantt_component_1.GanttComponent
|
|
71
|
-
scroll_sync_service_1.ScrollSyncService])
|
|
70
|
+
tslib_1.__metadata("design:paramtypes", [gantt_component_1.GanttComponent])
|
|
72
71
|
], ToolbarComponent);
|
|
73
72
|
return ToolbarComponent;
|
|
74
73
|
}());
|
|
@@ -57,7 +57,7 @@ var ViewSelectorComponent = /** @class */ (function () {
|
|
|
57
57
|
ViewSelectorComponent = tslib_1.__decorate([
|
|
58
58
|
core_1.Component({
|
|
59
59
|
selector: 'kendo-gantt-view-selector',
|
|
60
|
-
template: "\n <select
|
|
60
|
+
template: "\n <select\n class=\"k-dropdown k-views-dropdown\"\n aria-label=\"View Selector\"\n [value]=\"activeView\"\n (change)=\"activeViewChange.emit($event.target.value)\">\n <option *ngFor=\"let view of views\" [value]=\"view\">{{getViewTypeText(view)}}</option>\n </select>\n <kendo-buttongroup class=\"k-gantt-views\" selection=\"single\">\n <button *ngFor=\"let view of views\"\n kendoButton\n type=\"button\"\n [selected]=\"view === activeView\"\n (click)=\"onClick(view)\">{{getViewTypeText(view)}}</button>\n </kendo-buttongroup>\n "
|
|
61
61
|
}),
|
|
62
62
|
tslib_1.__metadata("design:paramtypes", [kendo_angular_l10n_1.LocalizationService])
|
|
63
63
|
], ViewSelectorComponent);
|
package/dist/npm/utils.js
CHANGED
|
@@ -165,6 +165,16 @@ exports.isTask = function (contender, parentScope) {
|
|
|
165
165
|
var task = kendo_angular_common_1.closestInScope(contender, kendo_angular_common_1.matchesClasses('k-task'), parentScope);
|
|
166
166
|
return exports.isPresent(task);
|
|
167
167
|
};
|
|
168
|
+
/**
|
|
169
|
+
* @hidden
|
|
170
|
+
*
|
|
171
|
+
* Checks whether the queried item or its parent items has a `k-toolbar` selector.
|
|
172
|
+
* Restricts the search up to the provided parent element from the second param.
|
|
173
|
+
*/
|
|
174
|
+
exports.isToolbar = function (contender, parentScope) {
|
|
175
|
+
var toolbar = kendo_angular_common_1.closestInScope(contender, kendo_angular_common_1.matchesClasses('k-gantt-toolbar'), parentScope);
|
|
176
|
+
return exports.isPresent(toolbar);
|
|
177
|
+
};
|
|
168
178
|
/**
|
|
169
179
|
* @hidden
|
|
170
180
|
*
|
|
@@ -239,12 +249,12 @@ exports.sameTaskClues = function (fromTaskClue, toTaskClue, parentScope) {
|
|
|
239
249
|
* If the contender is above the max value, the max value is returned.
|
|
240
250
|
*/
|
|
241
251
|
exports.fitToRange = function (contender, min, max) {
|
|
242
|
-
if (contender
|
|
243
|
-
return max;
|
|
244
|
-
}
|
|
245
|
-
else if (contender < min) {
|
|
252
|
+
if (!exports.isPresent(contender) || contender < min) {
|
|
246
253
|
return min;
|
|
247
254
|
}
|
|
255
|
+
else if (contender > max) {
|
|
256
|
+
return max;
|
|
257
|
+
}
|
|
248
258
|
else {
|
|
249
259
|
return contender;
|
|
250
260
|
}
|