@progress/kendo-angular-gantt 0.3.0-dev.202112141015 → 1.0.0-dev.202201191538
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/common/touch-enabled.js +9 -0
- package/dist/es/dependencies/utils.js +40 -5
- package/dist/es/dragging/dependency-drag-create.directive.js +347 -0
- package/dist/es/dragging/drag-validation-tooltip.component.js +27 -0
- package/dist/es/editing/dependencies-table.component.js +131 -0
- package/dist/es/editing/edit-dialog.component.js +39 -8
- package/dist/es/editing/edit.service.js +91 -8
- package/dist/es/editing/task-fields.component.js +43 -0
- package/dist/es/editing/{util.js → utils.js} +0 -0
- package/dist/es/gantt.component.js +352 -44
- package/dist/es/gantt.module.js +35 -9
- package/dist/es/index.js +8 -0
- package/dist/es/localization/gantt-localization.service.js +26 -0
- package/dist/es/main.js +1 -0
- package/dist/es/models/dependency-type.enum.js +16 -0
- package/dist/es/models/events/{edit-event.interface.js → dependency-add-event.interface.js} +0 -0
- package/dist/es/models/events/{remove-event.interface.js → task-delete-event.interface.js} +0 -0
- package/dist/es/models/models.js +1 -0
- package/dist/{es2015/models/events/edit-event.interface.js → es/models/view-item.interface.js} +0 -0
- package/dist/{es2015/models/events/remove-event.interface.js → es/navigation/navigation-models.js} +0 -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 +12 -6
- package/dist/es/rendering/gantt-summary-task.component.js +27 -6
- package/dist/es/rendering/gantt-task-base.js +84 -22
- package/dist/es/rendering/gantt-task.component.js +13 -8
- package/dist/es/rendering/gantt-tasks-table-body.component.js +13 -5
- package/dist/es/scrolling/drag-scroll-settings.js +20 -0
- package/dist/es/scrolling/timeline-scroll.directive.js +89 -0
- package/dist/es/scrolling/timeline-scroll.service.js +39 -0
- package/dist/es/scrolling/utils.js +80 -0
- package/dist/es/timeline/gantt-timeline.component.js +50 -4
- package/dist/es/toolbar/toolbar.component.js +12 -13
- package/dist/es/toolbar/view-selector.component.js +1 -1
- package/dist/es/utils.js +153 -12
- package/dist/es2015/common/touch-enabled.d.ts +9 -0
- package/dist/es2015/common/touch-enabled.js +9 -0
- package/dist/es2015/dependencies/utils.d.ts +15 -0
- package/dist/es2015/dependencies/utils.js +40 -5
- package/dist/es2015/dragging/dependency-drag-create.directive.d.ts +72 -0
- package/dist/es2015/dragging/dependency-drag-create.directive.js +324 -0
- package/dist/es2015/dragging/drag-validation-tooltip.component.d.ts +29 -0
- package/dist/es2015/dragging/drag-validation-tooltip.component.js +76 -0
- package/dist/es2015/editing/dependencies-table.component.d.ts +39 -0
- package/dist/es2015/editing/dependencies-table.component.js +160 -0
- package/dist/es2015/editing/edit-dialog.component.d.ts +11 -4
- package/dist/es2015/editing/edit-dialog.component.js +66 -36
- package/dist/es2015/editing/edit.service.d.ts +22 -5
- package/dist/es2015/editing/edit.service.js +80 -11
- package/dist/es2015/editing/task-fields.component.d.ts +22 -0
- package/dist/es2015/editing/task-fields.component.js +67 -0
- package/dist/es2015/editing/{util.d.ts → utils.d.ts} +2 -2
- package/dist/es2015/editing/{util.js → utils.js} +0 -0
- package/dist/es2015/gantt.component.d.ts +116 -23
- package/dist/es2015/gantt.component.js +329 -48
- package/dist/es2015/gantt.module.js +35 -9
- package/dist/es2015/index.d.ts +8 -0
- package/dist/es2015/index.js +8 -0
- package/dist/es2015/index.metadata.json +1 -1
- package/dist/es2015/{models/events/remove-event.interface.d.ts → localization/gantt-localization.service.d.ts} +6 -7
- package/dist/es2015/localization/gantt-localization.service.js +25 -0
- package/dist/es2015/main.d.ts +1 -0
- package/dist/es2015/main.js +1 -0
- package/dist/es2015/models/dependency-type.enum.d.ts +1 -1
- package/dist/es2015/models/dependency-type.enum.js +16 -0
- package/dist/es2015/models/events/dependency-add-event.interface.d.ts +26 -0
- package/dist/es2015/models/events/dependency-add-event.interface.js +4 -0
- 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 +36 -6
- package/dist/es2015/models/models.d.ts +4 -2
- package/dist/es2015/models/models.js +1 -0
- package/dist/es2015/models/view-item.interface.d.ts +35 -0
- package/dist/es2015/models/view-item.interface.js +4 -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 +3 -1
- package/dist/es2015/rendering/gantt-milestone-task.component.js +35 -8
- package/dist/es2015/rendering/gantt-summary-task.component.d.ts +5 -1
- package/dist/es2015/rendering/gantt-summary-task.component.js +47 -8
- package/dist/es2015/rendering/gantt-task-base.d.ts +20 -6
- package/dist/es2015/rendering/gantt-task-base.js +75 -22
- package/dist/es2015/rendering/gantt-task.component.d.ts +4 -2
- package/dist/es2015/rendering/gantt-task.component.js +47 -13
- package/dist/es2015/rendering/gantt-tasks-table-body.component.d.ts +6 -3
- package/dist/es2015/rendering/gantt-tasks-table-body.component.js +27 -9
- package/dist/es2015/scrolling/drag-scroll-settings.d.ts +47 -0
- package/dist/es2015/scrolling/drag-scroll-settings.js +20 -0
- package/dist/es2015/scrolling/scroll-sync.service.d.ts +1 -1
- package/dist/es2015/scrolling/timeline-scroll.directive.d.ts +24 -0
- package/dist/es2015/scrolling/timeline-scroll.directive.js +78 -0
- package/dist/es2015/scrolling/timeline-scroll.service.d.ts +20 -0
- package/dist/es2015/scrolling/timeline-scroll.service.js +44 -0
- package/dist/es2015/scrolling/utils.d.ts +29 -0
- package/dist/es2015/scrolling/utils.js +80 -0
- package/dist/es2015/timeline/gantt-timeline.component.d.ts +29 -4
- package/dist/es2015/timeline/gantt-timeline.component.js +67 -5
- 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 +77 -8
- package/dist/es2015/utils.js +153 -12
- package/dist/fesm2015/index.js +2807 -788
- package/dist/fesm5/index.js +2633 -688
- package/dist/{es2015/models/events/edit-event.interface.d.ts → npm/common/touch-enabled.js} +4 -12
- package/dist/npm/dependencies/utils.js +40 -5
- package/dist/npm/dragging/dependency-drag-create.directive.js +349 -0
- package/dist/npm/dragging/drag-validation-tooltip.component.js +29 -0
- package/dist/npm/editing/dependencies-table.component.js +133 -0
- package/dist/npm/editing/edit-dialog.component.js +38 -7
- package/dist/npm/editing/edit.service.js +90 -7
- package/dist/npm/editing/task-fields.component.js +45 -0
- package/dist/npm/editing/{util.js → utils.js} +0 -0
- package/dist/npm/gantt.component.js +354 -46
- package/dist/npm/gantt.module.js +33 -7
- package/dist/npm/index.js +16 -0
- package/dist/npm/localization/gantt-localization.service.js +28 -0
- package/dist/npm/main.js +2 -0
- package/dist/npm/models/dependency-type.enum.js +16 -0
- package/dist/npm/models/events/{edit-event.interface.js → dependency-add-event.interface.js} +0 -0
- package/dist/npm/models/events/{remove-event.interface.js → task-delete-event.interface.js} +0 -0
- package/dist/npm/models/models.js +2 -0
- package/dist/npm/models/view-item.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 +11 -5
- package/dist/npm/rendering/gantt-summary-task.component.js +26 -5
- package/dist/npm/rendering/gantt-task-base.js +84 -22
- package/dist/npm/rendering/gantt-task.component.js +12 -7
- package/dist/npm/rendering/gantt-tasks-table-body.component.js +13 -5
- package/dist/npm/scrolling/drag-scroll-settings.js +22 -0
- package/dist/npm/scrolling/timeline-scroll.directive.js +91 -0
- package/dist/npm/scrolling/timeline-scroll.service.js +41 -0
- package/dist/npm/scrolling/utils.js +83 -0
- package/dist/npm/timeline/gantt-timeline.component.js +49 -3
- package/dist/npm/toolbar/toolbar.component.js +10 -11
- package/dist/npm/toolbar/view-selector.component.js +1 -1
- package/dist/npm/utils.js +153 -12
- package/dist/systemjs/kendo-angular-gantt.js +1 -1
- package/package.json +23 -19
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
"use strict";
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
var kendo_angular_common_1 = require("@progress/kendo-angular-common");
|
|
8
|
+
// TODO: add those keys to `import { Keys } from '@progress/kendo-angular-common';`
|
|
9
|
+
var NumpadKeys;
|
|
10
|
+
(function (NumpadKeys) {
|
|
11
|
+
NumpadKeys[NumpadKeys["Digit1"] = 97] = "Digit1";
|
|
12
|
+
NumpadKeys[NumpadKeys["Digit2"] = 98] = "Digit2";
|
|
13
|
+
NumpadKeys[NumpadKeys["Digit3"] = 99] = "Digit3";
|
|
14
|
+
NumpadKeys[NumpadKeys["Digit4"] = 100] = "Digit4";
|
|
15
|
+
})(NumpadKeys || (NumpadKeys = {}));
|
|
16
|
+
/**
|
|
17
|
+
* @hidden
|
|
18
|
+
*/
|
|
19
|
+
exports.isArrowUpDownKey = function (keyCode) { return [
|
|
20
|
+
kendo_angular_common_1.Keys.ArrowUp,
|
|
21
|
+
kendo_angular_common_1.Keys.ArrowDown
|
|
22
|
+
].some(function (arrowKeyCode) {
|
|
23
|
+
return keyCode === arrowKeyCode;
|
|
24
|
+
}); };
|
|
25
|
+
/**
|
|
26
|
+
* @hidden
|
|
27
|
+
*/
|
|
28
|
+
exports.isNavigationKey = function (keyCode) { return [
|
|
29
|
+
kendo_angular_common_1.Keys.ArrowUp,
|
|
30
|
+
kendo_angular_common_1.Keys.ArrowDown,
|
|
31
|
+
kendo_angular_common_1.Keys.Home,
|
|
32
|
+
kendo_angular_common_1.Keys.End
|
|
33
|
+
].some(function (navigationKeyCode) {
|
|
34
|
+
return keyCode === navigationKeyCode;
|
|
35
|
+
}); };
|
|
36
|
+
/**
|
|
37
|
+
* @hidden
|
|
38
|
+
*/
|
|
39
|
+
exports.isExpandCollapseKey = function (keyCode, altKey) {
|
|
40
|
+
return altKey && [
|
|
41
|
+
kendo_angular_common_1.Keys.ArrowLeft,
|
|
42
|
+
kendo_angular_common_1.Keys.ArrowRight
|
|
43
|
+
].some(function (navigationKeyCode) {
|
|
44
|
+
return keyCode === navigationKeyCode;
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* @hidden
|
|
49
|
+
*/
|
|
50
|
+
exports.isViewDigitKey = function (keyCode) { return [
|
|
51
|
+
kendo_angular_common_1.Keys.Digit1,
|
|
52
|
+
NumpadKeys.Digit1,
|
|
53
|
+
kendo_angular_common_1.Keys.Digit2,
|
|
54
|
+
NumpadKeys.Digit2,
|
|
55
|
+
kendo_angular_common_1.Keys.Digit3,
|
|
56
|
+
NumpadKeys.Digit3,
|
|
57
|
+
kendo_angular_common_1.Keys.Digit4,
|
|
58
|
+
NumpadKeys.Digit4
|
|
59
|
+
].some(function (digitKeyCode) {
|
|
60
|
+
return keyCode === digitKeyCode;
|
|
61
|
+
}); };
|
|
62
|
+
/**
|
|
63
|
+
* @hidden
|
|
64
|
+
*
|
|
65
|
+
* Returns the corresponding view index for the pressed digit key (Digit 1 => 0, Digit 2 => 1, etc.).
|
|
66
|
+
*/
|
|
67
|
+
exports.getIndexFromViewDigitKeyCode = function (keyCode) {
|
|
68
|
+
switch (keyCode) {
|
|
69
|
+
case NumpadKeys.Digit1:
|
|
70
|
+
case kendo_angular_common_1.Keys.Digit1: return 0;
|
|
71
|
+
case NumpadKeys.Digit2:
|
|
72
|
+
case kendo_angular_common_1.Keys.Digit2: return 1;
|
|
73
|
+
case NumpadKeys.Digit3:
|
|
74
|
+
case kendo_angular_common_1.Keys.Digit3: return 2;
|
|
75
|
+
case NumpadKeys.Digit4:
|
|
76
|
+
case kendo_angular_common_1.Keys.Digit4: return 3;
|
|
77
|
+
default: return null;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
@@ -11,7 +11,7 @@ exports.packageMetadata = {
|
|
|
11
11
|
name: '@progress/kendo-angular-gantt',
|
|
12
12
|
productName: 'Kendo UI for Angular',
|
|
13
13
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
14
|
-
publishDate:
|
|
14
|
+
publishDate: 1642606197,
|
|
15
15
|
version: '',
|
|
16
16
|
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'
|
|
17
17
|
};
|
|
@@ -7,6 +7,8 @@ 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 touch_enabled_1 = require("../common/touch-enabled");
|
|
10
12
|
var dependency_dom_service_1 = require("../dependencies/dependency-dom.service");
|
|
11
13
|
var option_changes_service_1 = require("../common/option-changes.service");
|
|
12
14
|
var timeline_view_service_1 = require("./../timeline/timeline-view.service");
|
|
@@ -16,8 +18,9 @@ var gantt_task_base_1 = require("./gantt-task-base");
|
|
|
16
18
|
*/
|
|
17
19
|
var GanttMilestoneTaskComponent = /** @class */ (function (_super) {
|
|
18
20
|
tslib_1.__extends(GanttMilestoneTaskComponent, _super);
|
|
19
|
-
function GanttMilestoneTaskComponent(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr) {
|
|
20
|
-
var _this = _super.call(this, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr) || this;
|
|
21
|
+
function GanttMilestoneTaskComponent(touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
|
|
22
|
+
var _this = _super.call(this, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) || this;
|
|
23
|
+
_this.touchEnabled = touchEnabled;
|
|
21
24
|
_this.milestoneWrapperClass = true;
|
|
22
25
|
return _this;
|
|
23
26
|
}
|
|
@@ -36,13 +39,16 @@ var GanttMilestoneTaskComponent = /** @class */ (function (_super) {
|
|
|
36
39
|
useExisting: core_1.forwardRef(function () { return GanttMilestoneTaskComponent_1; })
|
|
37
40
|
}
|
|
38
41
|
],
|
|
39
|
-
template: "\n <div\n #task\n class=\"k-task k-task-milestone\"\n [ngClass]=\"taskClass(dataItem)\"\n [
|
|
42
|
+
template: "\n <div\n #task\n role=\"treeitem\"\n class=\"k-task k-task-milestone\"\n [ngClass]=\"taskClass(dataItem)\"\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 </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 ",
|
|
43
|
+
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 "]
|
|
40
44
|
}),
|
|
41
|
-
tslib_1.
|
|
45
|
+
tslib_1.__param(0, core_1.Inject(touch_enabled_1.TOUCH_ENABLED)),
|
|
46
|
+
tslib_1.__metadata("design:paramtypes", [Boolean, mapping_service_1.MappingService,
|
|
42
47
|
timeline_view_service_1.TimelineViewService,
|
|
43
48
|
dependency_dom_service_1.DependencyDomService,
|
|
44
49
|
option_changes_service_1.OptionChangesService,
|
|
45
|
-
core_1.ChangeDetectorRef
|
|
50
|
+
core_1.ChangeDetectorRef,
|
|
51
|
+
navigation_service_1.NavigationService])
|
|
46
52
|
], GanttMilestoneTaskComponent);
|
|
47
53
|
return GanttMilestoneTaskComponent;
|
|
48
54
|
}(gantt_task_base_1.GanttTaskBase));
|
|
@@ -7,21 +7,35 @@ 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 touch_enabled_1 = require("../common/touch-enabled");
|
|
10
12
|
var dependency_dom_service_1 = require("../dependencies/dependency-dom.service");
|
|
11
13
|
var option_changes_service_1 = require("../common/option-changes.service");
|
|
12
14
|
var timeline_view_service_1 = require("./../timeline/timeline-view.service");
|
|
13
15
|
var gantt_task_base_1 = require("./gantt-task-base");
|
|
16
|
+
var utils_1 = require("../utils");
|
|
14
17
|
/**
|
|
15
18
|
* @hidden
|
|
16
19
|
*/
|
|
17
20
|
var GanttSummaryTaskComponent = /** @class */ (function (_super) {
|
|
18
21
|
tslib_1.__extends(GanttSummaryTaskComponent, _super);
|
|
19
|
-
function GanttSummaryTaskComponent(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr) {
|
|
20
|
-
var _this = _super.call(this, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr) || this;
|
|
22
|
+
function GanttSummaryTaskComponent(touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
|
|
23
|
+
var _this = _super.call(this, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) || this;
|
|
24
|
+
_this.touchEnabled = touchEnabled;
|
|
21
25
|
_this.summaryWrapperClass = true;
|
|
22
26
|
return _this;
|
|
23
27
|
}
|
|
24
28
|
GanttSummaryTaskComponent_1 = GanttSummaryTaskComponent;
|
|
29
|
+
Object.defineProperty(GanttSummaryTaskComponent.prototype, "ariaExpanded", {
|
|
30
|
+
get: function () {
|
|
31
|
+
// if no callback is provided, all child items are displayed and the item is regarded as expanded
|
|
32
|
+
// replicates the TreeList aria-expanded behavior
|
|
33
|
+
var isExpanded = !utils_1.isPresent(this.isExpanded) || this.isExpanded(this.dataItem);
|
|
34
|
+
return String(isExpanded);
|
|
35
|
+
},
|
|
36
|
+
enumerable: true,
|
|
37
|
+
configurable: true
|
|
38
|
+
});
|
|
25
39
|
var GanttSummaryTaskComponent_1;
|
|
26
40
|
tslib_1.__decorate([
|
|
27
41
|
core_1.HostBinding('class.k-summary-wrap'),
|
|
@@ -31,6 +45,10 @@ var GanttSummaryTaskComponent = /** @class */ (function (_super) {
|
|
|
31
45
|
core_1.Input(),
|
|
32
46
|
tslib_1.__metadata("design:type", core_1.TemplateRef)
|
|
33
47
|
], GanttSummaryTaskComponent.prototype, "template", void 0);
|
|
48
|
+
tslib_1.__decorate([
|
|
49
|
+
core_1.Input(),
|
|
50
|
+
tslib_1.__metadata("design:type", Function)
|
|
51
|
+
], GanttSummaryTaskComponent.prototype, "isExpanded", void 0);
|
|
34
52
|
GanttSummaryTaskComponent = GanttSummaryTaskComponent_1 = tslib_1.__decorate([
|
|
35
53
|
core_1.Component({
|
|
36
54
|
selector: 'kendo-gantt-summary-task',
|
|
@@ -40,13 +58,16 @@ var GanttSummaryTaskComponent = /** @class */ (function (_super) {
|
|
|
40
58
|
useExisting: core_1.forwardRef(function () { return GanttSummaryTaskComponent_1; })
|
|
41
59
|
}
|
|
42
60
|
],
|
|
43
|
-
template: "\n <div\n #task\n class=\"k-task k-task-summary\"\n [ngClass]=\"taskClass(dataItem)\"\n [style.width.px]=\"taskWidth\"\n [
|
|
61
|
+
template: "\n <div\n #task\n role=\"treeitem\"\n class=\"k-task k-task-summary\"\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-expanded]=\"ariaExpanded\"\n [attr.aria-level]=\"level + 1\"\n >\n <div *ngIf=\"!template; else summaryTemplate\"\n class=\"k-task-summary-progress\"\n [style.width.px]=\"taskWidth\">\n <div\n class=\"k-task-summary-complete\"\n [style.width.px]=\"completionOverlayWidth\"\n >\n </div>\n </div>\n <ng-template\n #summaryTemplate\n [ngTemplateOutlet]=\"template\"\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 ",
|
|
62
|
+
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 "]
|
|
44
63
|
}),
|
|
45
|
-
tslib_1.
|
|
64
|
+
tslib_1.__param(0, core_1.Inject(touch_enabled_1.TOUCH_ENABLED)),
|
|
65
|
+
tslib_1.__metadata("design:paramtypes", [Boolean, mapping_service_1.MappingService,
|
|
46
66
|
timeline_view_service_1.TimelineViewService,
|
|
47
67
|
dependency_dom_service_1.DependencyDomService,
|
|
48
68
|
option_changes_service_1.OptionChangesService,
|
|
49
|
-
core_1.ChangeDetectorRef
|
|
69
|
+
core_1.ChangeDetectorRef,
|
|
70
|
+
navigation_service_1.NavigationService])
|
|
50
71
|
], GanttSummaryTaskComponent);
|
|
51
72
|
return GanttSummaryTaskComponent;
|
|
52
73
|
}(gantt_task_base_1.GanttTaskBase));
|
|
@@ -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];
|
|
@@ -53,23 +71,6 @@ var GanttTaskBase = /** @class */ (function () {
|
|
|
53
71
|
enumerable: true,
|
|
54
72
|
configurable: true
|
|
55
73
|
});
|
|
56
|
-
GanttTaskBase.prototype.ngOnChanges = function (changes) {
|
|
57
|
-
if (utils_1.isPresent(changes.dataItem)) {
|
|
58
|
-
if (utils_1.isPresent(changes.dataItem.previousValue)) {
|
|
59
|
-
this.dependencyDomService.unregisterTask(changes.dataItem.previousValue);
|
|
60
|
-
}
|
|
61
|
-
this.dependencyDomService.registerTask(this.dataItem, this.taskElement.nativeElement);
|
|
62
|
-
}
|
|
63
|
-
else if (utils_1.isPresent(changes.activeView)) {
|
|
64
|
-
this.dependencyDomService.notifyChanges();
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
GanttTaskBase.prototype.ngOnDestroy = function () {
|
|
68
|
-
if (utils_1.isPresent(this.dataItem)) {
|
|
69
|
-
this.dependencyDomService.unregisterTask(this.dataItem);
|
|
70
|
-
}
|
|
71
|
-
this.viewChangesSubscription.unsubscribe();
|
|
72
|
-
};
|
|
73
74
|
Object.defineProperty(GanttTaskBase.prototype, "taskWidth", {
|
|
74
75
|
get: function () {
|
|
75
76
|
var itemDuration = this.mapper.extractFromTask(this.dataItem, 'end') - this.mapper.extractFromTask(this.dataItem, 'start');
|
|
@@ -81,6 +82,12 @@ var GanttTaskBase = /** @class */ (function () {
|
|
|
81
82
|
configurable: true
|
|
82
83
|
});
|
|
83
84
|
Object.defineProperty(GanttTaskBase.prototype, "taskOffset", {
|
|
85
|
+
/**
|
|
86
|
+
* The `left` style prop has to be applied to the host element (.k-task-wrap), as the drag clue elements are displayed on .k-task-wrap hover.
|
|
87
|
+
* Applying the `left` offset to the inner .k-task element leaves the .k-task-wrap element rendered with an offset of 0 somewhere on the left
|
|
88
|
+
* and hovering just the .k-task element doesn't expose the drag clues.
|
|
89
|
+
* Additionally, positioning the entire container takes care of positioning the hints as well.
|
|
90
|
+
*/
|
|
84
91
|
get: function () {
|
|
85
92
|
var timeAfterViewStart = this.mapper.extractFromTask(this.dataItem, 'start') - this.viewService.viewStart;
|
|
86
93
|
var offsetInSlotUnits = timeAfterViewStart / this.slotUnitDuration;
|
|
@@ -99,10 +106,48 @@ var GanttTaskBase = /** @class */ (function () {
|
|
|
99
106
|
enumerable: true,
|
|
100
107
|
configurable: true
|
|
101
108
|
});
|
|
109
|
+
GanttTaskBase.prototype.ngOnChanges = function (changes) {
|
|
110
|
+
if (utils_1.isPresent(changes.dataItem)) {
|
|
111
|
+
if (utils_1.isPresent(changes.dataItem.previousValue)) {
|
|
112
|
+
this.dependencyDomService.unregisterTask(changes.dataItem.previousValue);
|
|
113
|
+
}
|
|
114
|
+
this.dependencyDomService.registerTask(this.dataItem, this.taskElement.nativeElement);
|
|
115
|
+
}
|
|
116
|
+
else if (utils_1.isPresent(changes.activeView)) {
|
|
117
|
+
this.dependencyDomService.notifyChanges();
|
|
118
|
+
}
|
|
119
|
+
if (this.navigationService.enabled && utils_1.isPresent(changes.index)) {
|
|
120
|
+
this.updateActiveState(this.navigationService.activeTask);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
GanttTaskBase.prototype.ngOnDestroy = function () {
|
|
124
|
+
if (utils_1.isPresent(this.dataItem)) {
|
|
125
|
+
this.dependencyDomService.unregisterTask(this.dataItem);
|
|
126
|
+
}
|
|
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
|
+
}
|
|
141
|
+
};
|
|
102
142
|
tslib_1.__decorate([
|
|
103
143
|
core_1.HostBinding('class.k-task-wrap'),
|
|
104
144
|
tslib_1.__metadata("design:type", Boolean)
|
|
105
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);
|
|
106
151
|
tslib_1.__decorate([
|
|
107
152
|
core_1.ViewChild('task', { static: true }),
|
|
108
153
|
tslib_1.__metadata("design:type", core_1.ElementRef)
|
|
@@ -115,6 +160,18 @@ var GanttTaskBase = /** @class */ (function () {
|
|
|
115
160
|
core_1.Input(),
|
|
116
161
|
tslib_1.__metadata("design:type", Number)
|
|
117
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);
|
|
167
|
+
tslib_1.__decorate([
|
|
168
|
+
core_1.Input(),
|
|
169
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
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);
|
|
118
175
|
tslib_1.__decorate([
|
|
119
176
|
core_1.Input(),
|
|
120
177
|
tslib_1.__metadata("design:type", Function)
|
|
@@ -127,6 +184,11 @@ var GanttTaskBase = /** @class */ (function () {
|
|
|
127
184
|
core_1.Input(),
|
|
128
185
|
tslib_1.__metadata("design:type", Function)
|
|
129
186
|
], GanttTaskBase.prototype, "taskClass", void 0);
|
|
187
|
+
tslib_1.__decorate([
|
|
188
|
+
core_1.HostBinding('style.left.px'),
|
|
189
|
+
tslib_1.__metadata("design:type", Number),
|
|
190
|
+
tslib_1.__metadata("design:paramtypes", [])
|
|
191
|
+
], GanttTaskBase.prototype, "taskOffset", null);
|
|
130
192
|
return GanttTaskBase;
|
|
131
193
|
}());
|
|
132
194
|
exports.GanttTaskBase = GanttTaskBase;
|
|
@@ -7,25 +7,28 @@ 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");
|
|
12
|
+
var touch_enabled_1 = require("../common/touch-enabled");
|
|
10
13
|
var dependency_dom_service_1 = require("../dependencies/dependency-dom.service");
|
|
11
14
|
var option_changes_service_1 = require("../common/option-changes.service");
|
|
12
15
|
var timeline_view_service_1 = require("./../timeline/timeline-view.service");
|
|
13
16
|
var gantt_task_base_1 = require("./gantt-task-base");
|
|
14
|
-
var edit_service_1 = require("../editing/edit.service");
|
|
15
17
|
/**
|
|
16
18
|
* @hidden
|
|
17
19
|
*/
|
|
18
20
|
var GanttTaskComponent = /** @class */ (function (_super) {
|
|
19
21
|
tslib_1.__extends(GanttTaskComponent, _super);
|
|
20
|
-
function GanttTaskComponent(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr,
|
|
21
|
-
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;
|
|
22
24
|
_this.editService = editService;
|
|
25
|
+
_this.touchEnabled = touchEnabled;
|
|
23
26
|
return _this;
|
|
24
27
|
}
|
|
25
28
|
GanttTaskComponent_1 = GanttTaskComponent;
|
|
26
29
|
GanttTaskComponent.prototype.onTaskDelete = function () {
|
|
27
30
|
this.editService.dataItem = this.dataItem;
|
|
28
|
-
this.editService.
|
|
31
|
+
this.editService.taskDelete.next(this.dataItem);
|
|
29
32
|
};
|
|
30
33
|
var GanttTaskComponent_1;
|
|
31
34
|
tslib_1.__decorate([
|
|
@@ -45,14 +48,16 @@ var GanttTaskComponent = /** @class */ (function (_super) {
|
|
|
45
48
|
useExisting: core_1.forwardRef(function () { return GanttTaskComponent_1; })
|
|
46
49
|
}
|
|
47
50
|
],
|
|
48
|
-
template: "\n <div\n #task\n class=\"k-task k-task-single\"\n [ngClass]=\"taskClass(dataItem)\"\n [style.width.px]=\"taskWidth\"\n [
|
|
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 "]
|
|
49
53
|
}),
|
|
50
|
-
tslib_1.
|
|
54
|
+
tslib_1.__param(1, core_1.Inject(touch_enabled_1.TOUCH_ENABLED)),
|
|
55
|
+
tslib_1.__metadata("design:paramtypes", [edit_service_1.EditService, Boolean, mapping_service_1.MappingService,
|
|
51
56
|
timeline_view_service_1.TimelineViewService,
|
|
52
57
|
dependency_dom_service_1.DependencyDomService,
|
|
53
58
|
option_changes_service_1.OptionChangesService,
|
|
54
59
|
core_1.ChangeDetectorRef,
|
|
55
|
-
|
|
60
|
+
navigation_service_1.NavigationService])
|
|
56
61
|
], GanttTaskComponent);
|
|
57
62
|
return GanttTaskComponent;
|
|
58
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,15 +68,19 @@ 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)
|
|
71
75
|
], GanttTasksTableBodyComponent.prototype, "isTaskSelected", void 0);
|
|
76
|
+
tslib_1.__decorate([
|
|
77
|
+
core_1.Input(),
|
|
78
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
79
|
+
], GanttTasksTableBodyComponent.prototype, "renderDependencyDragClues", void 0);
|
|
72
80
|
GanttTasksTableBodyComponent = tslib_1.__decorate([
|
|
73
81
|
core_1.Component({
|
|
74
82
|
selector: '[kendoGanttTasksTableBody]',
|
|
75
|
-
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 [index]=\"index\"\n >\n </kendo-gantt-milestone-task>\n <ng-template #task>\n <kendo-gantt-summary-task\n *ngIf=\"hasChildren
|
|
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 "
|
|
76
84
|
}),
|
|
77
85
|
tslib_1.__metadata("design:paramtypes", [dependency_dom_service_1.DependencyDomService,
|
|
78
86
|
mapping_service_1.MappingService])
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
"use strict";
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
/**
|
|
8
|
+
* @hidden
|
|
9
|
+
*/
|
|
10
|
+
var ScrollDirection;
|
|
11
|
+
(function (ScrollDirection) {
|
|
12
|
+
ScrollDirection[ScrollDirection["Backwards"] = -1] = "Backwards";
|
|
13
|
+
ScrollDirection[ScrollDirection["Forward"] = 1] = "Forward";
|
|
14
|
+
})(ScrollDirection = exports.ScrollDirection || (exports.ScrollDirection = {}));
|
|
15
|
+
/**
|
|
16
|
+
* @hidden
|
|
17
|
+
*/
|
|
18
|
+
var ScrollAxis;
|
|
19
|
+
(function (ScrollAxis) {
|
|
20
|
+
ScrollAxis["Vertical"] = "scrollTop";
|
|
21
|
+
ScrollAxis["Horizontal"] = "scrollLeft";
|
|
22
|
+
})(ScrollAxis = exports.ScrollAxis || (exports.ScrollAxis = {}));
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
"use strict";
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
var tslib_1 = require("tslib");
|
|
8
|
+
var core_1 = require("@angular/core");
|
|
9
|
+
var rxjs_1 = require("rxjs");
|
|
10
|
+
var utils_1 = require("../utils");
|
|
11
|
+
var drag_scroll_settings_1 = require("./drag-scroll-settings");
|
|
12
|
+
var timeline_scroll_service_1 = require("./timeline-scroll.service");
|
|
13
|
+
var utils_2 = require("./utils");
|
|
14
|
+
/**
|
|
15
|
+
* @hidden
|
|
16
|
+
*/
|
|
17
|
+
var TimelineScrollableDirective = /** @class */ (function () {
|
|
18
|
+
function TimelineScrollableDirective(timelineScrollableContainer, scrollService, zone) {
|
|
19
|
+
this.timelineScrollableContainer = timelineScrollableContainer;
|
|
20
|
+
this.scrollService = scrollService;
|
|
21
|
+
this.zone = zone;
|
|
22
|
+
this.subscriptions = new rxjs_1.Subscription();
|
|
23
|
+
this.subscriptions.add(this.scrollService.horizontalScroll
|
|
24
|
+
.subscribe(this.scrollHorizontallyTo.bind(this)));
|
|
25
|
+
this.subscriptions.add(this.scrollService.verticalScroll
|
|
26
|
+
.subscribe(this.scrollVerticallyTo.bind(this)));
|
|
27
|
+
this.subscriptions.add(this.scrollService.scrollCancel
|
|
28
|
+
.subscribe(this.cancelScroll.bind(this)));
|
|
29
|
+
}
|
|
30
|
+
TimelineScrollableDirective.prototype.ngOnDestroy = function () {
|
|
31
|
+
this.subscriptions.unsubscribe();
|
|
32
|
+
};
|
|
33
|
+
TimelineScrollableDirective.prototype.scrollHorizontallyTo = function (left) {
|
|
34
|
+
var _this = this;
|
|
35
|
+
this.zone.runOutsideAngular(function () {
|
|
36
|
+
var container = _this.timelineScrollableContainer.nativeElement;
|
|
37
|
+
var visibleBoundaries = utils_2.getViewportBoundaries(container);
|
|
38
|
+
if (left < visibleBoundaries.left + _this.scrollSettings.threshold) {
|
|
39
|
+
_this.horizontalScrollInterval = setInterval(function () {
|
|
40
|
+
return utils_2.scrollElement(container, _this.scrollSettings.step, drag_scroll_settings_1.ScrollDirection.Backwards, drag_scroll_settings_1.ScrollAxis.Horizontal);
|
|
41
|
+
}, _this.scrollSettings.interval);
|
|
42
|
+
}
|
|
43
|
+
else if (left > visibleBoundaries.right - _this.scrollSettings.threshold) {
|
|
44
|
+
_this.horizontalScrollInterval = setInterval(function () {
|
|
45
|
+
return utils_2.scrollElement(container, _this.scrollSettings.step, drag_scroll_settings_1.ScrollDirection.Forward, drag_scroll_settings_1.ScrollAxis.Horizontal);
|
|
46
|
+
}, _this.scrollSettings.interval);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
TimelineScrollableDirective.prototype.scrollVerticallyTo = function (top) {
|
|
51
|
+
var _this = this;
|
|
52
|
+
this.zone.runOutsideAngular(function () {
|
|
53
|
+
var container = _this.timelineScrollableContainer.nativeElement;
|
|
54
|
+
var visibleBoundaries = utils_2.getViewportBoundaries(container);
|
|
55
|
+
if (top < visibleBoundaries.top + _this.scrollSettings.threshold) {
|
|
56
|
+
_this.verticalScrollInterval = setInterval(function () {
|
|
57
|
+
return utils_2.scrollElement(container, _this.scrollSettings.step, drag_scroll_settings_1.ScrollDirection.Backwards, drag_scroll_settings_1.ScrollAxis.Vertical);
|
|
58
|
+
}, _this.scrollSettings.interval);
|
|
59
|
+
}
|
|
60
|
+
else if (top > visibleBoundaries.bottom - _this.scrollSettings.threshold) {
|
|
61
|
+
_this.verticalScrollInterval = setInterval(function () {
|
|
62
|
+
return utils_2.scrollElement(container, _this.scrollSettings.step, drag_scroll_settings_1.ScrollDirection.Forward, drag_scroll_settings_1.ScrollAxis.Vertical);
|
|
63
|
+
}, _this.scrollSettings.interval);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
TimelineScrollableDirective.prototype.cancelScroll = function () {
|
|
68
|
+
if (utils_1.isPresent(this.verticalScrollInterval)) {
|
|
69
|
+
clearInterval(this.verticalScrollInterval);
|
|
70
|
+
this.verticalScrollInterval = null;
|
|
71
|
+
}
|
|
72
|
+
if (utils_1.isPresent(this.horizontalScrollInterval)) {
|
|
73
|
+
clearInterval(this.horizontalScrollInterval);
|
|
74
|
+
this.horizontalScrollInterval = null;
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
tslib_1.__decorate([
|
|
78
|
+
core_1.Input(),
|
|
79
|
+
tslib_1.__metadata("design:type", Object)
|
|
80
|
+
], TimelineScrollableDirective.prototype, "scrollSettings", void 0);
|
|
81
|
+
TimelineScrollableDirective = tslib_1.__decorate([
|
|
82
|
+
core_1.Directive({
|
|
83
|
+
selector: '[kendoGanttTimelineScrollable]'
|
|
84
|
+
}),
|
|
85
|
+
tslib_1.__metadata("design:paramtypes", [core_1.ElementRef,
|
|
86
|
+
timeline_scroll_service_1.TimelineScrollService,
|
|
87
|
+
core_1.NgZone])
|
|
88
|
+
], TimelineScrollableDirective);
|
|
89
|
+
return TimelineScrollableDirective;
|
|
90
|
+
}());
|
|
91
|
+
exports.TimelineScrollableDirective = TimelineScrollableDirective;
|