@progress/kendo-angular-gantt 0.1.4 → 0.2.0-dev.202111241002

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.
Files changed (137) hide show
  1. package/dist/cdn/js/kendo-angular-gantt.js +2 -76
  2. package/dist/cdn/main.js +23 -1
  3. package/dist/es/columns/column.component.js +5 -0
  4. package/dist/es/columns/columns.js +1 -0
  5. package/dist/es/columns/edit-template.directive.js +34 -0
  6. package/dist/es/columns/span-column.component.js +6 -0
  7. package/dist/es/common/default-callbacks.js +4 -0
  8. package/dist/es/editing/edit-dialog.component.js +44 -0
  9. package/dist/es/editing/edit.service.js +39 -0
  10. package/dist/es/editing/util.js +17 -0
  11. package/dist/es/gantt.component.js +478 -22
  12. package/dist/es/gantt.module.js +62 -5
  13. package/dist/es/index.js +6 -0
  14. package/dist/es/localization/custom-messages.component.js +44 -0
  15. package/dist/es/localization/localized-messages.directive.js +35 -0
  16. package/dist/es/localization/messages.js +246 -0
  17. package/dist/es/localization/treelist-messages.directive.js +31 -0
  18. package/dist/es/main.js +1 -0
  19. package/dist/es/models/events/cell-click-event.interface.js +4 -0
  20. package/dist/es/models/events/cell-close-event.interface.js +19 -0
  21. package/dist/es/models/events/preventable-event.js +32 -0
  22. package/dist/es/models/events/task-click-event.interface.js +4 -0
  23. package/dist/es/models/events/task-edit-event.interface.js +4 -0
  24. package/dist/es/models/gantt-task-model-fields.interface.js +2 -1
  25. package/dist/es/package-metadata.js +1 -1
  26. package/dist/es/rendering/gantt-milestone-task.component.js +1 -1
  27. package/dist/es/rendering/gantt-summary-task.component.js +1 -1
  28. package/dist/es/rendering/gantt-task-base.js +8 -0
  29. package/dist/es/rendering/gantt-task.component.js +12 -4
  30. package/dist/es/rendering/gantt-tasks-table-body.component.js +5 -1
  31. package/dist/es/selection/selectable.directive.js +141 -0
  32. package/dist/es/selection/selection-change-event.js +4 -0
  33. package/dist/es/timeline/gantt-timeline.component.js +5 -1
  34. package/dist/es/toolbar/view-selector.component.js +7 -4
  35. package/dist/es/utils.js +48 -1
  36. package/dist/es2015/columns/column.component.d.ts +2 -0
  37. package/dist/es2015/columns/column.component.js +5 -0
  38. package/dist/es2015/columns/columns.d.ts +1 -0
  39. package/dist/es2015/columns/columns.js +1 -0
  40. package/dist/es2015/columns/edit-template.directive.d.ts +23 -0
  41. package/dist/es2015/columns/edit-template.directive.js +33 -0
  42. package/dist/es2015/columns/span-column.component.d.ts +2 -0
  43. package/dist/es2015/columns/span-column.component.js +6 -0
  44. package/dist/es2015/common/default-callbacks.d.ts +4 -0
  45. package/dist/es2015/common/default-callbacks.js +4 -0
  46. package/dist/es2015/editing/edit-dialog.component.d.ts +21 -0
  47. package/dist/es2015/editing/edit-dialog.component.js +86 -0
  48. package/dist/es2015/editing/edit.service.d.ts +20 -0
  49. package/dist/es2015/editing/edit.service.js +41 -0
  50. package/dist/es2015/editing/util.d.ts +10 -0
  51. package/dist/es2015/editing/util.js +17 -0
  52. package/dist/es2015/gantt.component.d.ts +236 -12
  53. package/dist/es2015/gantt.component.js +662 -21
  54. package/dist/es2015/gantt.module.d.ts +29 -1
  55. package/dist/es2015/gantt.module.js +62 -5
  56. package/dist/es2015/index.d.ts +6 -0
  57. package/dist/es2015/index.js +6 -0
  58. package/dist/es2015/index.metadata.json +1 -1
  59. package/dist/es2015/localization/custom-messages.component.d.ts +15 -0
  60. package/dist/es2015/localization/custom-messages.component.js +36 -0
  61. package/dist/es2015/localization/localized-messages.directive.d.ts +13 -0
  62. package/dist/es2015/localization/localized-messages.directive.js +31 -0
  63. package/dist/es2015/localization/messages.d.ts +246 -0
  64. package/dist/es2015/localization/messages.js +240 -0
  65. package/dist/es2015/localization/treelist-messages.directive.d.ts +14 -0
  66. package/dist/es2015/localization/treelist-messages.directive.js +29 -0
  67. package/dist/es2015/main.d.ts +2 -0
  68. package/dist/es2015/main.js +1 -0
  69. package/dist/es2015/models/events/cell-click-event.interface.d.ts +43 -0
  70. package/dist/es2015/models/events/cell-click-event.interface.js +4 -0
  71. package/dist/es2015/models/events/cell-close-event.interface.d.ts +48 -0
  72. package/dist/es2015/models/events/cell-close-event.interface.js +14 -0
  73. package/dist/es2015/models/events/preventable-event.d.ts +24 -0
  74. package/dist/es2015/models/events/preventable-event.js +30 -0
  75. package/dist/es2015/models/events/task-click-event.interface.d.ts +30 -0
  76. package/dist/es2015/models/events/task-click-event.interface.js +4 -0
  77. package/dist/es2015/models/events/task-edit-event.interface.d.ts +46 -0
  78. package/dist/es2015/models/events/task-edit-event.interface.js +4 -0
  79. package/dist/es2015/models/gantt-task-model-fields.interface.d.ts +1 -0
  80. package/dist/es2015/models/gantt-task-model-fields.interface.js +2 -1
  81. package/dist/es2015/models/models.d.ts +2 -0
  82. package/dist/es2015/package-metadata.js +1 -1
  83. package/dist/es2015/rendering/gantt-milestone-task.component.js +2 -0
  84. package/dist/es2015/rendering/gantt-summary-task.component.js +2 -0
  85. package/dist/es2015/rendering/gantt-task-base.d.ts +2 -0
  86. package/dist/es2015/rendering/gantt-task-base.js +8 -0
  87. package/dist/es2015/rendering/gantt-task.component.d.ts +4 -1
  88. package/dist/es2015/rendering/gantt-task.component.js +18 -2
  89. package/dist/es2015/rendering/gantt-tasks-table-body.component.d.ts +1 -0
  90. package/dist/es2015/rendering/gantt-tasks-table-body.component.js +11 -1
  91. package/dist/es2015/selection/selectable.directive.d.ts +42 -0
  92. package/dist/es2015/selection/selectable.directive.js +122 -0
  93. package/dist/es2015/selection/selection-change-event.d.ts +25 -0
  94. package/dist/es2015/selection/selection-change-event.js +4 -0
  95. package/dist/es2015/timeline/gantt-timeline.component.d.ts +1 -0
  96. package/dist/es2015/timeline/gantt-timeline.component.js +5 -0
  97. package/dist/es2015/toolbar/view-selector.component.d.ts +3 -0
  98. package/dist/es2015/toolbar/view-selector.component.js +7 -7
  99. package/dist/es2015/utils.d.ts +39 -0
  100. package/dist/es2015/utils.js +48 -1
  101. package/dist/fesm2015/index.js +1387 -35
  102. package/dist/fesm5/index.js +1191 -45
  103. package/dist/npm/columns/column.component.js +5 -0
  104. package/dist/npm/columns/columns.js +2 -0
  105. package/dist/npm/columns/edit-template.directive.js +36 -0
  106. package/dist/npm/columns/span-column.component.js +6 -0
  107. package/dist/npm/common/default-callbacks.js +4 -0
  108. package/dist/npm/editing/edit-dialog.component.js +46 -0
  109. package/dist/npm/editing/edit.service.js +41 -0
  110. package/dist/npm/editing/util.js +19 -0
  111. package/dist/npm/gantt.component.js +475 -19
  112. package/dist/npm/gantt.module.js +61 -4
  113. package/dist/npm/index.js +12 -0
  114. package/dist/npm/localization/custom-messages.component.js +46 -0
  115. package/dist/npm/localization/localized-messages.directive.js +37 -0
  116. package/dist/npm/localization/messages.js +248 -0
  117. package/dist/npm/localization/treelist-messages.directive.js +33 -0
  118. package/dist/npm/main.js +2 -0
  119. package/dist/npm/models/events/cell-click-event.interface.js +6 -0
  120. package/dist/npm/models/events/cell-close-event.interface.js +21 -0
  121. package/dist/npm/models/events/preventable-event.js +34 -0
  122. package/dist/npm/models/events/task-click-event.interface.js +6 -0
  123. package/dist/npm/models/events/task-edit-event.interface.js +6 -0
  124. package/dist/npm/models/gantt-task-model-fields.interface.js +2 -1
  125. package/dist/npm/package-metadata.js +1 -1
  126. package/dist/npm/rendering/gantt-milestone-task.component.js +1 -1
  127. package/dist/npm/rendering/gantt-summary-task.component.js +1 -1
  128. package/dist/npm/rendering/gantt-task-base.js +8 -0
  129. package/dist/npm/rendering/gantt-task.component.js +12 -4
  130. package/dist/npm/rendering/gantt-tasks-table-body.component.js +5 -1
  131. package/dist/npm/selection/selectable.directive.js +143 -0
  132. package/dist/npm/selection/selection-change-event.js +6 -0
  133. package/dist/npm/timeline/gantt-timeline.component.js +5 -1
  134. package/dist/npm/toolbar/view-selector.component.js +7 -4
  135. package/dist/npm/utils.js +47 -0
  136. package/dist/systemjs/kendo-angular-gantt.js +1 -1
  137. package/package.json +15 -10
@@ -11,15 +11,22 @@ var dependency_dom_service_1 = require("../dependencies/dependency-dom.service")
11
11
  var option_changes_service_1 = require("../common/option-changes.service");
12
12
  var timeline_view_service_1 = require("./../timeline/timeline-view.service");
13
13
  var gantt_task_base_1 = require("./gantt-task-base");
14
+ var edit_service_1 = require("../editing/edit.service");
14
15
  /**
15
16
  * @hidden
16
17
  */
17
18
  var GanttTaskComponent = /** @class */ (function (_super) {
18
19
  tslib_1.__extends(GanttTaskComponent, _super);
19
- function GanttTaskComponent(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr) {
20
- return _super.call(this, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr) || this;
20
+ function GanttTaskComponent(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, editService) {
21
+ var _this = _super.call(this, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr) || this;
22
+ _this.editService = editService;
23
+ return _this;
21
24
  }
22
25
  GanttTaskComponent_1 = GanttTaskComponent;
26
+ GanttTaskComponent.prototype.onTaskDelete = function () {
27
+ this.editService.dataItem = this.dataItem;
28
+ this.editService.showConfirmationDialog.next();
29
+ };
23
30
  var GanttTaskComponent_1;
24
31
  tslib_1.__decorate([
25
32
  core_1.Input(),
@@ -38,13 +45,14 @@ var GanttTaskComponent = /** @class */ (function (_super) {
38
45
  useExisting: core_1.forwardRef(function () { return GanttTaskComponent_1; })
39
46
  }
40
47
  ],
41
- template: "\n <div\n #task\n class=\"k-task k-task-single\"\n [ngClass]=\"taskClass(dataItem)\"\n [style.width.px]=\"taskWidth\"\n [style.left.px]=\"taskOffset\"\n [attr.title]=\"mapper.extractFromTask(dataItem, 'title')\"\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 </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 "
48
+ template: "\n <div\n #task\n class=\"k-task k-task-single\"\n [ngClass]=\"taskClass(dataItem)\"\n [style.width.px]=\"taskWidth\"\n [style.left.px]=\"taskOffset\"\n [attr.title]=\"mapper.extractFromTask(dataItem, 'title')\"\n [attr.data-task-index]=\"index\"\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 class=\"k-task-actions\">\n <span\n (click)=\"onTaskDelete()\"\n class=\"k-link k-task-delete\">\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 "
42
49
  }),
43
50
  tslib_1.__metadata("design:paramtypes", [mapping_service_1.MappingService,
44
51
  timeline_view_service_1.TimelineViewService,
45
52
  dependency_dom_service_1.DependencyDomService,
46
53
  option_changes_service_1.OptionChangesService,
47
- core_1.ChangeDetectorRef])
54
+ core_1.ChangeDetectorRef,
55
+ edit_service_1.EditService])
48
56
  ], GanttTaskComponent);
49
57
  return GanttTaskComponent;
50
58
  }(gantt_task_base_1.GanttTaskBase));
@@ -65,10 +65,14 @@ var GanttTasksTableBodyComponent = /** @class */ (function () {
65
65
  core_1.Input(),
66
66
  tslib_1.__metadata("design:type", Function)
67
67
  ], GanttTasksTableBodyComponent.prototype, "hasChildren", void 0);
68
+ tslib_1.__decorate([
69
+ core_1.Input(),
70
+ tslib_1.__metadata("design:type", Function)
71
+ ], GanttTasksTableBodyComponent.prototype, "isTaskSelected", void 0);
68
72
  GanttTasksTableBodyComponent = tslib_1.__decorate([
69
73
  core_1.Component({
70
74
  selector: '[kendoGanttTasksTableBody]',
71
- template: "\n <tr #timelineRow *ngFor=\"let item of rows\">\n <td>\n <kendo-gantt-milestone-task\n *ngIf=\"isMileStone(item); else task\"\n [dataItem]=\"item\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n >\n </kendo-gantt-milestone-task>\n <ng-template #task>\n <kendo-gantt-summary-task\n *ngIf=\"hasChildren(item)\"\n [dataItem]=\"item\"\n [template]=\"summaryTaskTemplate\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n >\n </kendo-gantt-summary-task>\n <kendo-gantt-task\n *ngIf=\"!hasChildren(item)\"\n [dataItem]=\"item\"\n [taskContentTemplate]=\"taskContentTemplate\"\n [taskTemplate]=\"taskTemplate\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n >\n </kendo-gantt-task>\n </ng-template>\n </td>\n </tr>\n "
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(item)\"\n [dataItem]=\"item\"\n [template]=\"summaryTaskTemplate\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n [isSelected]=\"isTaskSelected\"\n [index]=\"index\"\n >\n </kendo-gantt-summary-task>\n <kendo-gantt-task\n *ngIf=\"!hasChildren(item)\"\n [dataItem]=\"item\"\n [taskContentTemplate]=\"taskContentTemplate\"\n [taskTemplate]=\"taskTemplate\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n [isSelected]=\"isTaskSelected\"\n [index]=\"index\"\n >\n </kendo-gantt-task>\n </ng-template>\n </td>\n </tr>\n "
72
76
  }),
73
77
  tslib_1.__metadata("design:paramtypes", [dependency_dom_service_1.DependencyDomService,
74
78
  mapping_service_1.MappingService])
@@ -0,0 +1,143 @@
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 kendo_common_1 = require("@progress/kendo-common");
10
+ var gantt_component_1 = require("../gantt.component");
11
+ var utils_1 = require("../utils");
12
+ /**
13
+ * A directive which handles the [`selectionChange`]({% slug api_gantt_ganttcomponent %}#toc-selectionchange) event of the Gantt
14
+ * ([see example]({% slug selection_gantt %}#toc-built-in-directive))
15
+ */
16
+ var SelectableDirective = /** @class */ (function () {
17
+ function SelectableDirective(gantt) {
18
+ this.gantt = gantt;
19
+ /**
20
+ * Fires when the selected keys are changed.
21
+ */
22
+ this.selectedKeysChange = new core_1.EventEmitter();
23
+ this.state = new Set();
24
+ this.isSelected = this.isSelected.bind(this);
25
+ this.selectionChange = this.selectionChange.bind(this);
26
+ this.selectable = true;
27
+ }
28
+ Object.defineProperty(SelectableDirective.prototype, "selectable", {
29
+ /**
30
+ * @hidden
31
+ */
32
+ set: function (value) {
33
+ if (value) {
34
+ this.gantt.isSelected = this.isSelected;
35
+ this.subscribeSelection();
36
+ }
37
+ else {
38
+ this.gantt.isSelected = function () { return false; };
39
+ this.unsubscribeSelection();
40
+ }
41
+ this.gantt.selectable = value;
42
+ this.gantt.updateView();
43
+ },
44
+ enumerable: true,
45
+ configurable: true
46
+ });
47
+ Object.defineProperty(SelectableDirective.prototype, "selectedKeys", {
48
+ /**
49
+ * Sets the selected keys.
50
+ */
51
+ set: function (value) {
52
+ if (utils_1.isPresent(value) && value === this.lastChange) {
53
+ return;
54
+ }
55
+ // prevent multiple items displayed as selected as multiple selection still not supported fully
56
+ var keys = (value || []).slice(0, 1);
57
+ this.state = new Set(keys);
58
+ this.gantt.updateView();
59
+ },
60
+ enumerable: true,
61
+ configurable: true
62
+ });
63
+ Object.defineProperty(SelectableDirective.prototype, "itemKey", {
64
+ /**
65
+ * The field name or a function that specifies the data item unique key identifier.
66
+ * By default, the string field `id` is used.
67
+ */
68
+ set: function (value) {
69
+ if (utils_1.isString(value)) {
70
+ this._keyGetter = kendo_common_1.getter(value);
71
+ }
72
+ else {
73
+ this._keyGetter = value;
74
+ }
75
+ },
76
+ enumerable: true,
77
+ configurable: true
78
+ });
79
+ Object.defineProperty(SelectableDirective.prototype, "keyGetter", {
80
+ get: function () {
81
+ return this._keyGetter || this.gantt.idGetter;
82
+ },
83
+ enumerable: true,
84
+ configurable: true
85
+ });
86
+ SelectableDirective.prototype.ngOnDestroy = function () {
87
+ this.unsubscribeSelection();
88
+ };
89
+ SelectableDirective.prototype.isSelected = function (dataItem) {
90
+ return this.state.has(this.keyGetter(dataItem));
91
+ };
92
+ SelectableDirective.prototype.selectionChange = function (_a) {
93
+ var _this = this;
94
+ var action = _a.action, items = _a.items;
95
+ this.state.clear();
96
+ if (action === 'select') {
97
+ items.forEach(function (item) { return _this.state.add(_this.keyGetter(item)); });
98
+ }
99
+ this.emitSelectedItemsChange();
100
+ };
101
+ SelectableDirective.prototype.emitSelectedItemsChange = function () {
102
+ this.lastChange = Array.from(this.state);
103
+ this.selectedKeysChange.emit(this.lastChange);
104
+ };
105
+ SelectableDirective.prototype.subscribeSelection = function () {
106
+ this.unsubscribeSelection();
107
+ this.selectionSubscription = this.gantt.selectionChange.subscribe(this.selectionChange);
108
+ };
109
+ SelectableDirective.prototype.unsubscribeSelection = function () {
110
+ if (this.selectionSubscription) {
111
+ this.selectionSubscription.unsubscribe();
112
+ this.selectionSubscription = null;
113
+ }
114
+ };
115
+ tslib_1.__decorate([
116
+ core_1.Input(),
117
+ tslib_1.__metadata("design:type", Boolean),
118
+ tslib_1.__metadata("design:paramtypes", [Boolean])
119
+ ], SelectableDirective.prototype, "selectable", null);
120
+ tslib_1.__decorate([
121
+ core_1.Input(),
122
+ tslib_1.__metadata("design:type", Array),
123
+ tslib_1.__metadata("design:paramtypes", [Array])
124
+ ], SelectableDirective.prototype, "selectedKeys", null);
125
+ tslib_1.__decorate([
126
+ core_1.Output(),
127
+ tslib_1.__metadata("design:type", core_1.EventEmitter)
128
+ ], SelectableDirective.prototype, "selectedKeysChange", void 0);
129
+ tslib_1.__decorate([
130
+ core_1.Input(),
131
+ tslib_1.__metadata("design:type", Object),
132
+ tslib_1.__metadata("design:paramtypes", [Object])
133
+ ], SelectableDirective.prototype, "itemKey", null);
134
+ SelectableDirective = tslib_1.__decorate([
135
+ core_1.Directive({
136
+ exportAs: 'kendoGanttSelectable',
137
+ selector: '[kendoGanttSelectable]'
138
+ }),
139
+ tslib_1.__metadata("design:paramtypes", [gantt_component_1.GanttComponent])
140
+ ], SelectableDirective);
141
+ return SelectableDirective;
142
+ }());
143
+ exports.SelectableDirective = SelectableDirective;
@@ -0,0 +1,6 @@
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 });
@@ -105,6 +105,10 @@ var GanttTimelineComponent = /** @class */ (function () {
105
105
  core_1.Input(),
106
106
  tslib_1.__metadata("design:type", Function)
107
107
  ], GanttTimelineComponent.prototype, "taskClass", void 0);
108
+ tslib_1.__decorate([
109
+ core_1.Input(),
110
+ tslib_1.__metadata("design:type", Function)
111
+ ], GanttTimelineComponent.prototype, "isTaskSelected", void 0);
108
112
  tslib_1.__decorate([
109
113
  core_1.Input(),
110
114
  tslib_1.__metadata("design:type", Function)
@@ -116,7 +120,7 @@ var GanttTimelineComponent = /** @class */ (function () {
116
120
  GanttTimelineComponent = tslib_1.__decorate([
117
121
  core_1.Component({
118
122
  selector: 'kendo-gantt-timeline',
119
- 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 #timelineContent class=\"k-grid-content\">\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 [hasChildren]=\"hasChildren\"\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 </svg>\n </div>\n </div>\n "
123
+ 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 #timelineContent class=\"k-grid-content\">\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 [hasChildren]=\"hasChildren\"\n [isTaskSelected]=\"isTaskSelected\"\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 </svg>\n </div>\n </div>\n "
120
124
  }),
121
125
  tslib_1.__metadata("design:paramtypes", [scroll_sync_service_1.ScrollSyncService,
122
126
  dependency_dom_service_1.DependencyDomService,
@@ -6,11 +6,13 @@
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  var tslib_1 = require("tslib");
8
8
  var core_1 = require("@angular/core");
9
+ var kendo_angular_l10n_1 = require("@progress/kendo-angular-l10n");
9
10
  /**
10
11
  * The Gantt ViewSelector component. Shows the currently active view type, and allows switching to another view type.
11
12
  */
12
13
  var ViewSelectorComponent = /** @class */ (function () {
13
- function ViewSelectorComponent() {
14
+ function ViewSelectorComponent(localizationService) {
15
+ this.localizationService = localizationService;
14
16
  this.hostClass = true;
15
17
  /**
16
18
  * The currently active view type.
@@ -34,7 +36,7 @@ var ViewSelectorComponent = /** @class */ (function () {
34
36
  * @hidden
35
37
  */
36
38
  ViewSelectorComponent.prototype.getViewTypeText = function (viewType) {
37
- return "" + viewType[0].toLocaleUpperCase() + viewType.slice(1);
39
+ return this.localizationService.get(viewType + "ViewText");
38
40
  };
39
41
  tslib_1.__decorate([
40
42
  core_1.HostBinding('class.k-gantt-views-wrapper'),
@@ -55,8 +57,9 @@ var ViewSelectorComponent = /** @class */ (function () {
55
57
  ViewSelectorComponent = tslib_1.__decorate([
56
58
  core_1.Component({
57
59
  selector: 'kendo-gantt-view-selector',
58
- template: "\n <select class=\"k-dropdown k-views-dropdown\" style=\"text-transform: capitalize;\"\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 [selected]=\"view === activeView\"\n (click)=\"onClick(view)\">{{getViewTypeText(view)}}</button>\n </kendo-buttongroup>\n "
59
- })
60
+ template: "\n <select class=\"k-dropdown k-views-dropdown\"\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 [selected]=\"view === activeView\"\n (click)=\"onClick(view)\">{{getViewTypeText(view)}}</button>\n </kendo-buttongroup>\n "
61
+ }),
62
+ tslib_1.__metadata("design:paramtypes", [kendo_angular_l10n_1.LocalizationService])
60
63
  ], ViewSelectorComponent);
61
64
  return ViewSelectorComponent;
62
65
  }());
package/dist/npm/utils.js CHANGED
@@ -108,3 +108,50 @@ exports.isColumnGroup = function (column) { return column.isColumnGroup; };
108
108
  * @hidden
109
109
  */
110
110
  exports.isNumber = function (contender) { return typeof contender === 'number' && !isNaN(contender); };
111
+ /**
112
+ * @hidden
113
+ */
114
+ exports.isString = function (contender) { return typeof contender === 'string'; };
115
+ /**
116
+ * @hidden
117
+ *
118
+ * Gets the closest timeline task element from an event target.
119
+ * Restricts the search up to the provided gantt element from the second param.
120
+ */
121
+ exports.getClosestTask = function (element, gantt) {
122
+ return kendo_angular_common_1.closestInScope(element, kendo_angular_common_1.matchesClasses('k-task'), gantt);
123
+ };
124
+ /**
125
+ * @hidden
126
+ *
127
+ * Gets the closest timeline task element index from an event target.
128
+ * Uses the `data-task-index` attribute assigned to each task.
129
+ * Restricts the search up to the provided gantt element from the second param.
130
+ */
131
+ exports.getClosestTaskIndex = function (element, gantt) {
132
+ var task = kendo_angular_common_1.closestInScope(element, kendo_angular_common_1.matchesClasses('k-task'), gantt);
133
+ if (!exports.isPresent(task)) {
134
+ return null;
135
+ }
136
+ return Number(task.getAttribute('data-task-index'));
137
+ };
138
+ /**
139
+ * @hidden
140
+ *
141
+ * Checks whether the queried item or its parent items has a `k-task` selector.
142
+ * Restricts the search up to the provided gantt element from the second param.
143
+ */
144
+ exports.isTask = function (contender, gantt) {
145
+ var task = kendo_angular_common_1.closestInScope(contender, kendo_angular_common_1.matchesClasses('k-task'), gantt);
146
+ return exports.isPresent(task);
147
+ };
148
+ /**
149
+ * @hidden
150
+ *
151
+ * Checks whether the queried item or its parent items has a `k-task-actions` selector - used for the clear button.
152
+ * Restricts the search up to the provided gantt element from the second param.
153
+ */
154
+ exports.isClearButton = function (contender, gantt) {
155
+ var clearButtonContainer = kendo_angular_common_1.closestInScope(contender, kendo_angular_common_1.matchesClasses('k-task-actions'), gantt);
156
+ return exports.isPresent(clearButtonContainer);
157
+ };