@progress/kendo-angular-gantt 0.3.0-dev.202201131518 → 1.0.1-dev.202201201207
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 +1 -23
- package/dist/es/editing/dependencies-table.component.js +1 -1
- package/dist/es/editing/edit-dialog.component.js +3 -3
- package/dist/es/editing/edit.service.js +4 -2
- package/dist/es/editing/task-fields.component.js +1 -1
- 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/dependencies-table.component.js +1 -1
- package/dist/es2015/editing/edit-dialog.component.d.ts +1 -1
- package/dist/es2015/editing/edit-dialog.component.js +12 -4
- package/dist/es2015/editing/edit.service.d.ts +2 -3
- package/dist/es2015/editing/edit.service.js +4 -2
- package/dist/es2015/editing/task-fields.component.js +1 -1
- 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 +2314 -1613
- package/dist/fesm5/index.js +1724 -1015
- package/dist/npm/editing/dependencies-table.component.js +1 -1
- package/dist/npm/editing/edit-dialog.component.js +3 -3
- package/dist/npm/editing/edit.service.js +4 -2
- package/dist/npm/editing/task-fields.component.js +1 -1
- 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 +22 -21
- package/schematics/ngAdd/index.js +4 -4
|
@@ -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-dropdownlist k-picker k-rounded-md 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
|
}
|