@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
|
@@ -12,8 +12,11 @@ var rxjs_1 = require("rxjs");
|
|
|
12
12
|
var kendo_licensing_1 = require("@progress/kendo-licensing");
|
|
13
13
|
var package_metadata_1 = require("./package-metadata");
|
|
14
14
|
var kendo_angular_common_1 = require("@progress/kendo-angular-common");
|
|
15
|
+
var gantt_timeline_component_1 = require("./timeline/gantt-timeline.component");
|
|
15
16
|
var columns_1 = require("./columns/columns");
|
|
16
17
|
var default_callbacks_1 = require("./common/default-callbacks");
|
|
18
|
+
var models_1 = require("./models/models");
|
|
19
|
+
var kendo_angular_l10n_1 = require("@progress/kendo-angular-l10n");
|
|
17
20
|
var timeline_view_service_1 = require("./timeline/timeline-view.service");
|
|
18
21
|
var timeline_day_view_service_1 = require("./timeline/timeline-day-view.service");
|
|
19
22
|
var timeline_week_view_service_1 = require("./timeline/timeline-week-view.service");
|
|
@@ -23,7 +26,9 @@ var dependency_dom_service_1 = require("./dependencies/dependency-dom.service");
|
|
|
23
26
|
var mapping_service_1 = require("./common/mapping.service");
|
|
24
27
|
var option_changes_service_1 = require("./common/option-changes.service");
|
|
25
28
|
var edit_service_1 = require("./editing/edit.service");
|
|
26
|
-
var
|
|
29
|
+
var timeline_scroll_service_1 = require("./scrolling/timeline-scroll.service");
|
|
30
|
+
var gantt_localization_service_1 = require("./localization/gantt-localization.service");
|
|
31
|
+
var navigation_service_1 = require("./navigation/navigation.service");
|
|
27
32
|
var utils_1 = require("./utils");
|
|
28
33
|
var splitter_pane_options_interface_1 = require("./models/splitter-pane-options.interface");
|
|
29
34
|
var task_template_directive_1 = require("./template-directives/task-template.directive");
|
|
@@ -31,9 +36,15 @@ var summary_task_template_directive_1 = require("./template-directives/summary-t
|
|
|
31
36
|
var task_content_template_directive_1 = require("./template-directives/task-content-template.directive");
|
|
32
37
|
var toolbar_template_directive_1 = require("./toolbar/toolbar-template.directive");
|
|
33
38
|
var view_base_1 = require("./timeline/view-base");
|
|
34
|
-
var
|
|
39
|
+
var utils_2 = require("./editing/utils");
|
|
35
40
|
var TREELIST_GROUP_COLUMNS_CLASS = 'k-gantt-treelist-nested-columns';
|
|
36
41
|
var DEFAULT_VIEW = 'week';
|
|
42
|
+
var DEFAULT_DRAG_SCROLL_SETTINGS = {
|
|
43
|
+
enabled: true,
|
|
44
|
+
step: 3,
|
|
45
|
+
interval: 1,
|
|
46
|
+
threshold: 10
|
|
47
|
+
};
|
|
37
48
|
/**
|
|
38
49
|
* Represents the Kendo UI Gantt component for Angular.
|
|
39
50
|
*
|
|
@@ -106,7 +117,7 @@ var DEFAULT_VIEW = 'week';
|
|
|
106
117
|
* ```
|
|
107
118
|
*/
|
|
108
119
|
var GanttComponent = /** @class */ (function () {
|
|
109
|
-
function GanttComponent(timelineViewService, scrollSyncService, renderer, mapper, optionChangesService, dependencyDomService, editService, localizationService, hostElement, zone) {
|
|
120
|
+
function GanttComponent(timelineViewService, scrollSyncService, renderer, mapper, optionChangesService, dependencyDomService, editService, localizationService, hostElement, zone, navigationService) {
|
|
110
121
|
var _this = this;
|
|
111
122
|
this.timelineViewService = timelineViewService;
|
|
112
123
|
this.scrollSyncService = scrollSyncService;
|
|
@@ -118,13 +129,33 @@ var GanttComponent = /** @class */ (function () {
|
|
|
118
129
|
this.localizationService = localizationService;
|
|
119
130
|
this.hostElement = hostElement;
|
|
120
131
|
this.zone = zone;
|
|
132
|
+
this.navigationService = navigationService;
|
|
133
|
+
/**
|
|
134
|
+
* @hidden
|
|
135
|
+
*/
|
|
136
|
+
this.roleDescription = 'Gantt Chart';
|
|
137
|
+
/**
|
|
138
|
+
* @hidden
|
|
139
|
+
*/
|
|
140
|
+
this.role = 'application';
|
|
121
141
|
this.hostClasses = true;
|
|
122
142
|
/**
|
|
123
|
-
*
|
|
143
|
+
* Specifies a callback that determines if the given task is selected ([see example]({% slug selection_gantt %}#toc-custom-selection)).
|
|
124
144
|
*
|
|
125
145
|
* > The [`selectable`]({% slug api_gantt_ganttcomponent %}#toc-selectable) prop has to be set to `true` in order for this callback to be executed.
|
|
126
146
|
*/
|
|
127
147
|
this.isSelected = default_callbacks_1.isSelected;
|
|
148
|
+
/**
|
|
149
|
+
* Specifies a callback that determines if a new dependency is valid.
|
|
150
|
+
* Used when evaluating if an attempt to create a new dependency will result in a valid link between the two tasks
|
|
151
|
+
* [see example]({% slug editing_drag_create_dependencies_gantt %}#toc-validation).
|
|
152
|
+
*
|
|
153
|
+
* By defalut, dependencies are deemed invalid when:
|
|
154
|
+
* - The two tasks are in a parent-child relationship.
|
|
155
|
+
* - The two tasks are already dependent on one another. Only one dependency is allowed per pair.
|
|
156
|
+
* - The start or end times of the two tasks are incompatible with the attempted dependency type.
|
|
157
|
+
*/
|
|
158
|
+
this.validateNewDependency = this.defaultValidateNewDependencyCallback.bind(this);
|
|
128
159
|
/**
|
|
129
160
|
* Fires when the Gantt selection is changed through user interaction.
|
|
130
161
|
*
|
|
@@ -140,14 +171,6 @@ var GanttComponent = /** @class */ (function () {
|
|
|
140
171
|
* > When applied, the [`SelectableDirective`]({% slug api_gantt_selectabledirective %}) sets `selectable` to `true` internally.
|
|
141
172
|
*/
|
|
142
173
|
this.selectable = false;
|
|
143
|
-
/**
|
|
144
|
-
* Gets or sets the callback function that retrieves the child items for a particular item.
|
|
145
|
-
*/
|
|
146
|
-
this.fetchChildren = default_callbacks_1.fetchChildren;
|
|
147
|
-
/**
|
|
148
|
-
* Gets or sets the callback function that indicates if a particular item has child items.
|
|
149
|
-
*/
|
|
150
|
-
this.hasChildren = default_callbacks_1.hasChildren;
|
|
151
174
|
/**
|
|
152
175
|
* Defines the dependencies that will be drawn between the rendered tasks.
|
|
153
176
|
*
|
|
@@ -186,6 +209,12 @@ var GanttComponent = /** @class */ (function () {
|
|
|
186
209
|
* The end of the work week (index based).
|
|
187
210
|
*/
|
|
188
211
|
this.workWeekEnd = 5;
|
|
212
|
+
/**
|
|
213
|
+
* If set to `true`, the user can use dedicated shortcuts to interact with the Gantt.
|
|
214
|
+
* By default, navigation is disabled for the TreeList and Timeline parts of the component,
|
|
215
|
+
* ([see example]({% slug keyboard_navigation_gantt %})).
|
|
216
|
+
*/
|
|
217
|
+
this.navigable = false;
|
|
189
218
|
/**
|
|
190
219
|
* Indicates whether the Gantt columns will be resized during initialization so that they fit their headers and row content.
|
|
191
220
|
* Columns with autoSize set to false are excluded.
|
|
@@ -229,7 +258,8 @@ var GanttComponent = /** @class */ (function () {
|
|
|
229
258
|
*/
|
|
230
259
|
this.cellClose = new core_1.EventEmitter();
|
|
231
260
|
/**
|
|
232
|
-
* Fires when the end user clicks the `Delete` button in the task editing dialog
|
|
261
|
+
* Fires when the end user clicks the `Delete` button in the task editing dialog,
|
|
262
|
+
* the task delete icon, or presses the `Delete` key on the keyboard when a task in the timeline is focused.
|
|
233
263
|
* Use the event handler to open a confirmation dialog when necessary.
|
|
234
264
|
*/
|
|
235
265
|
this.taskDelete = new core_1.EventEmitter();
|
|
@@ -253,6 +283,11 @@ var GanttComponent = /** @class */ (function () {
|
|
|
253
283
|
* Fires when the user adds a task.
|
|
254
284
|
*/
|
|
255
285
|
this.taskAdd = new core_1.EventEmitter();
|
|
286
|
+
/**
|
|
287
|
+
* Fires when the user adds a dependency via dragging
|
|
288
|
+
* [see example]({% slug editing_drag_create_dependencies_gantt %}#toc-basic-concepts).
|
|
289
|
+
*/
|
|
290
|
+
this.dependencyAdd = new core_1.EventEmitter();
|
|
256
291
|
/**
|
|
257
292
|
* Fires when the sorting of the Gantt is changed.
|
|
258
293
|
* You have to handle the event yourself and sort the data.
|
|
@@ -309,6 +344,15 @@ var GanttComponent = /** @class */ (function () {
|
|
|
309
344
|
* Fires when a task is clicked.
|
|
310
345
|
*/
|
|
311
346
|
this.taskClick = new core_1.EventEmitter();
|
|
347
|
+
/**
|
|
348
|
+
* @hidden
|
|
349
|
+
*
|
|
350
|
+
* Specifies whether the dependency drag clues will be rendered.
|
|
351
|
+
* Set internally by the dependency-drag-create directive.
|
|
352
|
+
*
|
|
353
|
+
* @default false
|
|
354
|
+
*/
|
|
355
|
+
this.renderDependencyDragClues = false;
|
|
312
356
|
/**
|
|
313
357
|
* @hidden
|
|
314
358
|
*
|
|
@@ -325,6 +369,7 @@ var GanttComponent = /** @class */ (function () {
|
|
|
325
369
|
this.showConfirmationDialog = false;
|
|
326
370
|
this._columns = new core_1.QueryList();
|
|
327
371
|
this._data = [];
|
|
372
|
+
this._dragScrollSettings = tslib_1.__assign({}, DEFAULT_DRAG_SCROLL_SETTINGS);
|
|
328
373
|
this._timelinePaneOptions = tslib_1.__assign({}, splitter_pane_options_interface_1.DEFAULT_TIMELINE_PANE_SETTINGS);
|
|
329
374
|
this._treeListPaneOptions = tslib_1.__assign({}, splitter_pane_options_interface_1.DEFAULT_TREELIST_PANE_SETTINGS);
|
|
330
375
|
this._rowClass = default_callbacks_1.rowClassCallback;
|
|
@@ -335,6 +380,8 @@ var GanttComponent = /** @class */ (function () {
|
|
|
335
380
|
addTaskTool: 'none',
|
|
336
381
|
viewSelectorTool: 'top'
|
|
337
382
|
};
|
|
383
|
+
this._fetchChildren = default_callbacks_1.fetchChildren;
|
|
384
|
+
this._hasChildren = default_callbacks_1.hasChildren;
|
|
338
385
|
this.rtl = false;
|
|
339
386
|
this.optionChangesSubscriptions = new rxjs_1.Subscription();
|
|
340
387
|
this.editServiceSubscription = new rxjs_1.Subscription();
|
|
@@ -347,22 +394,32 @@ var GanttComponent = /** @class */ (function () {
|
|
|
347
394
|
}));
|
|
348
395
|
this.editService.getSelectedItem = this.getFirstSelectedItem.bind(this);
|
|
349
396
|
this.editServiceSubscription.add(this.editService.showEditingDialog.subscribe(function (show) { return _this.showEditingDialog = show; }));
|
|
350
|
-
this.editServiceSubscription.add(this.editService.
|
|
397
|
+
this.editServiceSubscription.add(this.editService.taskDelete.subscribe(function (task) {
|
|
398
|
+
if (kendo_angular_common_1.hasObservers(_this.taskDelete)) {
|
|
399
|
+
_this.zone.run(function () {
|
|
400
|
+
return _this.notifyTaskDelete(task);
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
}));
|
|
351
404
|
this.editServiceSubscription.add(this.editService.editEvent.subscribe(function (args) {
|
|
352
405
|
_this[args.editResultType].emit({
|
|
353
|
-
|
|
354
|
-
item:
|
|
406
|
+
taskFormGroup: args.taskFormGroup,
|
|
407
|
+
item: utils_2.getEditItem(args.dataItem, _this.treeList.view.data, _this.mapper),
|
|
408
|
+
dependencies: args.dependencies,
|
|
355
409
|
sender: _this
|
|
356
410
|
});
|
|
357
411
|
_this.showConfirmationDialog = _this.showEditingDialog = false;
|
|
358
|
-
_this.editService.dataItem = _this.editService.
|
|
412
|
+
_this.editService.dataItem = _this.editService.taskFormGroup = null;
|
|
359
413
|
_this.updateView();
|
|
414
|
+
if (_this.navigable) {
|
|
415
|
+
_this.focus();
|
|
416
|
+
}
|
|
360
417
|
}));
|
|
361
418
|
this.editServiceSubscription.add(this.editService.addEvent.subscribe(function (args) {
|
|
362
419
|
var selectedItem = _this.getFirstSelectedItem();
|
|
363
420
|
_this.taskAdd.emit({
|
|
364
421
|
actionType: args.actionType,
|
|
365
|
-
selectedItem: selectedItem ?
|
|
422
|
+
selectedItem: selectedItem ? utils_2.getEditItem(selectedItem, _this.treeList.view.data, _this.mapper) : null
|
|
366
423
|
});
|
|
367
424
|
_this.updateView();
|
|
368
425
|
}));
|
|
@@ -386,6 +443,20 @@ var GanttComponent = /** @class */ (function () {
|
|
|
386
443
|
enumerable: true,
|
|
387
444
|
configurable: true
|
|
388
445
|
});
|
|
446
|
+
Object.defineProperty(GanttComponent.prototype, "hostRoleDescriptionAttr", {
|
|
447
|
+
get: function () {
|
|
448
|
+
return this.roleDescription;
|
|
449
|
+
},
|
|
450
|
+
enumerable: true,
|
|
451
|
+
configurable: true
|
|
452
|
+
});
|
|
453
|
+
Object.defineProperty(GanttComponent.prototype, "hostRoleAttr", {
|
|
454
|
+
get: function () {
|
|
455
|
+
return this.role;
|
|
456
|
+
},
|
|
457
|
+
enumerable: true,
|
|
458
|
+
configurable: true
|
|
459
|
+
});
|
|
389
460
|
Object.defineProperty(GanttComponent.prototype, "dir", {
|
|
390
461
|
get: function () {
|
|
391
462
|
return this.direction;
|
|
@@ -497,6 +568,34 @@ var GanttComponent = /** @class */ (function () {
|
|
|
497
568
|
enumerable: true,
|
|
498
569
|
configurable: true
|
|
499
570
|
});
|
|
571
|
+
Object.defineProperty(GanttComponent.prototype, "fetchChildren", {
|
|
572
|
+
get: function () {
|
|
573
|
+
return this._fetchChildren;
|
|
574
|
+
},
|
|
575
|
+
/**
|
|
576
|
+
* Gets or sets the callback function that retrieves the child items for a particular item.
|
|
577
|
+
*/
|
|
578
|
+
set: function (fn) {
|
|
579
|
+
this._fetchChildren = fn;
|
|
580
|
+
this.editService.fetchChildren = fn;
|
|
581
|
+
},
|
|
582
|
+
enumerable: true,
|
|
583
|
+
configurable: true
|
|
584
|
+
});
|
|
585
|
+
Object.defineProperty(GanttComponent.prototype, "hasChildren", {
|
|
586
|
+
get: function () {
|
|
587
|
+
return this._hasChildren;
|
|
588
|
+
},
|
|
589
|
+
/**
|
|
590
|
+
* Gets or sets the callback function that indicates if a particular item has child items.
|
|
591
|
+
*/
|
|
592
|
+
set: function (fn) {
|
|
593
|
+
this._hasChildren = fn;
|
|
594
|
+
this.editService.hasChildren = fn;
|
|
595
|
+
},
|
|
596
|
+
enumerable: true,
|
|
597
|
+
configurable: true
|
|
598
|
+
});
|
|
500
599
|
Object.defineProperty(GanttComponent.prototype, "timelinePaneOptions", {
|
|
501
600
|
get: function () {
|
|
502
601
|
return tslib_1.__assign({}, this._timelinePaneOptions, { size: this.treeListPaneOptions.collapsed ? '100%' : this._timelinePaneOptions.size });
|
|
@@ -572,6 +671,21 @@ var GanttComponent = /** @class */ (function () {
|
|
|
572
671
|
enumerable: true,
|
|
573
672
|
configurable: true
|
|
574
673
|
});
|
|
674
|
+
Object.defineProperty(GanttComponent.prototype, "dragScrollSettings", {
|
|
675
|
+
get: function () {
|
|
676
|
+
return this._dragScrollSettings;
|
|
677
|
+
},
|
|
678
|
+
/**
|
|
679
|
+
* Specifies the settings for auto-scrolling during dragging
|
|
680
|
+
* when the pointer moves outside of the container bounderies
|
|
681
|
+
* [see example]({% slug editing_drag_create_dependencies_gantt %}#toc-auto-scrolling).
|
|
682
|
+
*/
|
|
683
|
+
set: function (settings) {
|
|
684
|
+
this._dragScrollSettings = tslib_1.__assign({}, DEFAULT_DRAG_SCROLL_SETTINGS, settings);
|
|
685
|
+
},
|
|
686
|
+
enumerable: true,
|
|
687
|
+
configurable: true
|
|
688
|
+
});
|
|
575
689
|
Object.defineProperty(GanttComponent.prototype, "renderedTreeListItems", {
|
|
576
690
|
/**
|
|
577
691
|
* @hidden
|
|
@@ -585,6 +699,19 @@ var GanttComponent = /** @class */ (function () {
|
|
|
585
699
|
enumerable: true,
|
|
586
700
|
configurable: true
|
|
587
701
|
});
|
|
702
|
+
Object.defineProperty(GanttComponent.prototype, "viewItems", {
|
|
703
|
+
/**
|
|
704
|
+
* @hidden
|
|
705
|
+
*/
|
|
706
|
+
get: function () {
|
|
707
|
+
if (!utils_1.isPresent(this.treeList)) {
|
|
708
|
+
return [];
|
|
709
|
+
}
|
|
710
|
+
return this.treeList.view.data;
|
|
711
|
+
},
|
|
712
|
+
enumerable: true,
|
|
713
|
+
configurable: true
|
|
714
|
+
});
|
|
588
715
|
Object.defineProperty(GanttComponent.prototype, "filterMenu", {
|
|
589
716
|
/**
|
|
590
717
|
* @hidden
|
|
@@ -648,12 +775,12 @@ var GanttComponent = /** @class */ (function () {
|
|
|
648
775
|
enumerable: true,
|
|
649
776
|
configurable: true
|
|
650
777
|
});
|
|
651
|
-
Object.defineProperty(GanttComponent.prototype, "
|
|
778
|
+
Object.defineProperty(GanttComponent.prototype, "isInEditMode", {
|
|
652
779
|
/**
|
|
653
780
|
* @hidden
|
|
654
781
|
*/
|
|
655
782
|
get: function () {
|
|
656
|
-
return this.
|
|
783
|
+
return this.showEditingDialog || this.showConfirmationDialog || this.treeList.isEditing();
|
|
657
784
|
},
|
|
658
785
|
enumerable: true,
|
|
659
786
|
configurable: true
|
|
@@ -665,6 +792,14 @@ var GanttComponent = /** @class */ (function () {
|
|
|
665
792
|
};
|
|
666
793
|
GanttComponent.prototype.ngAfterViewInit = function () {
|
|
667
794
|
this.updateTreeListMargin();
|
|
795
|
+
if (this.navigable) {
|
|
796
|
+
this.navigationService.initialize({
|
|
797
|
+
gantt: this,
|
|
798
|
+
host: this.hostElement.nativeElement,
|
|
799
|
+
treeListElement: this.treeList.wrapper.nativeElement,
|
|
800
|
+
timelineElement: this.timeline.timelineContent.nativeElement
|
|
801
|
+
});
|
|
802
|
+
}
|
|
668
803
|
var leftContainer = this.treeList.wrapper.nativeElement.querySelector('kendo-treelist-list > div');
|
|
669
804
|
this.scrollSyncService.registerElement(leftContainer, 'treelist');
|
|
670
805
|
};
|
|
@@ -682,6 +817,34 @@ var GanttComponent = /** @class */ (function () {
|
|
|
682
817
|
this.localizationSubscription.unsubscribe();
|
|
683
818
|
}
|
|
684
819
|
};
|
|
820
|
+
/**
|
|
821
|
+
* Focuses the last active cell or task in the Gantt.
|
|
822
|
+
* If no item has previously been focused, the first cell of the TreeList part will receive focus,
|
|
823
|
+
* ([see example]({% slug keyboard_navigation_gantt %}#toc-controlling-the-focus)).
|
|
824
|
+
*/
|
|
825
|
+
GanttComponent.prototype.focus = function () {
|
|
826
|
+
if (this.navigable) {
|
|
827
|
+
this.navigationService.focusLastActiveItem();
|
|
828
|
+
}
|
|
829
|
+
};
|
|
830
|
+
/**
|
|
831
|
+
* Focuses the targeted cell in the TreeList part of the component,
|
|
832
|
+
* ([see example]({% slug keyboard_navigation_gantt %}#toc-controlling-the-focus)).
|
|
833
|
+
*/
|
|
834
|
+
GanttComponent.prototype.focusCell = function (rowIndex, colIndex) {
|
|
835
|
+
if (this.navigable) {
|
|
836
|
+
this.navigationService.focusCell(rowIndex, colIndex);
|
|
837
|
+
}
|
|
838
|
+
};
|
|
839
|
+
/**
|
|
840
|
+
* Focuses the targeted task in the Timeline part of the component,
|
|
841
|
+
* ([see example]({% slug keyboard_navigation_gantt %}#toc-controlling-the-focus)).
|
|
842
|
+
*/
|
|
843
|
+
GanttComponent.prototype.focusTask = function (taskIndex) {
|
|
844
|
+
if (this.navigable) {
|
|
845
|
+
this.navigationService.focusTask(taskIndex);
|
|
846
|
+
}
|
|
847
|
+
};
|
|
685
848
|
/**
|
|
686
849
|
* Applies the minimum possible width for the specified column,
|
|
687
850
|
* so that the whole text fits without wrapping. This method expects the Gantt
|
|
@@ -747,8 +910,14 @@ var GanttComponent = /** @class */ (function () {
|
|
|
747
910
|
* Opens the task editing dialog.
|
|
748
911
|
*/
|
|
749
912
|
GanttComponent.prototype.editTask = function (dataItem, formGroup) {
|
|
913
|
+
var _this = this;
|
|
750
914
|
if (!this.showEditingDialog) {
|
|
751
|
-
this.
|
|
915
|
+
var taskId_1 = this.mapper.extractFromTask(dataItem, 'id');
|
|
916
|
+
var dependencies = this.dependencies.filter(function (item) {
|
|
917
|
+
return _this.mapper.extractFromDependency(item, 'toId') === taskId_1
|
|
918
|
+
|| _this.mapper.extractFromDependency(item, 'fromId') === taskId_1;
|
|
919
|
+
});
|
|
920
|
+
this.editService.createEditDialog(dataItem, formGroup, dependencies);
|
|
752
921
|
}
|
|
753
922
|
};
|
|
754
923
|
/**
|
|
@@ -765,6 +934,15 @@ var GanttComponent = /** @class */ (function () {
|
|
|
765
934
|
GanttComponent.prototype.openConfirmationDialog = function () {
|
|
766
935
|
this.showConfirmationDialog = true;
|
|
767
936
|
};
|
|
937
|
+
/**
|
|
938
|
+
* @hidden
|
|
939
|
+
*/
|
|
940
|
+
GanttComponent.prototype.handleConfirmationDialogClose = function () {
|
|
941
|
+
this.showConfirmationDialog = false;
|
|
942
|
+
if (this.navigable) {
|
|
943
|
+
this.focus();
|
|
944
|
+
}
|
|
945
|
+
};
|
|
768
946
|
/**
|
|
769
947
|
* Opens a cell for editing.
|
|
770
948
|
*/
|
|
@@ -850,7 +1028,7 @@ var GanttComponent = /** @class */ (function () {
|
|
|
850
1028
|
if (kendo_angular_common_1.hasObservers(this.taskClick)) {
|
|
851
1029
|
var taskIndex_1 = utils_1.getClosestTaskIndex(target, gantt);
|
|
852
1030
|
var task_1 = this.renderedTreeListItems[taskIndex_1];
|
|
853
|
-
this.zone.run(function () { return _this.
|
|
1031
|
+
this.zone.run(function () { return _this.notifyTaskClick(event, task_1, taskIndex_1); });
|
|
854
1032
|
}
|
|
855
1033
|
};
|
|
856
1034
|
/**
|
|
@@ -869,8 +1047,8 @@ var GanttComponent = /** @class */ (function () {
|
|
|
869
1047
|
if ((kendo_angular_common_1.hasObservers(this.selectionChange) && !this.isSameSelection(selectionAction, task)) ||
|
|
870
1048
|
kendo_angular_common_1.hasObservers(this.taskClick)) {
|
|
871
1049
|
this.zone.run(function () {
|
|
872
|
-
_this.
|
|
873
|
-
_this.
|
|
1050
|
+
_this.notifySelectionChange(task, selectionAction);
|
|
1051
|
+
_this.notifyTaskClick(event, task, taskIndex);
|
|
874
1052
|
});
|
|
875
1053
|
}
|
|
876
1054
|
};
|
|
@@ -882,7 +1060,7 @@ var GanttComponent = /** @class */ (function () {
|
|
|
882
1060
|
if (!utils_1.isPresent(this.lastTreeListCellClick) || event.target !== this.lastTreeListCellClick.originalEvent.target) {
|
|
883
1061
|
return;
|
|
884
1062
|
}
|
|
885
|
-
this.editItem =
|
|
1063
|
+
this.editItem = utils_2.getEditItem(this.lastTreeListCellClick.dataItem, this.treeList.view.data, this.mapper);
|
|
886
1064
|
if (kendo_angular_common_1.hasObservers(this.cellDblClick)) {
|
|
887
1065
|
this.zone.run(function () {
|
|
888
1066
|
_this.cellDblClick.emit({
|
|
@@ -908,7 +1086,7 @@ var GanttComponent = /** @class */ (function () {
|
|
|
908
1086
|
}
|
|
909
1087
|
var task = event.items.map(function (item) { return item.dataItem; })[0]; // single selection only currently available
|
|
910
1088
|
var action = event.action;
|
|
911
|
-
this.
|
|
1089
|
+
this.notifySelectionChange(task, action);
|
|
912
1090
|
};
|
|
913
1091
|
/**
|
|
914
1092
|
* @hidden
|
|
@@ -960,7 +1138,7 @@ var GanttComponent = /** @class */ (function () {
|
|
|
960
1138
|
dataItem: task_2,
|
|
961
1139
|
originalEvent: event,
|
|
962
1140
|
sender: _this,
|
|
963
|
-
|
|
1141
|
+
index: taskIndex_2,
|
|
964
1142
|
type: 'dblclick'
|
|
965
1143
|
}); });
|
|
966
1144
|
}
|
|
@@ -971,16 +1149,35 @@ var GanttComponent = /** @class */ (function () {
|
|
|
971
1149
|
GanttComponent.prototype.getText = function (token) {
|
|
972
1150
|
return this.localizationService.get(token);
|
|
973
1151
|
};
|
|
974
|
-
|
|
1152
|
+
/**
|
|
1153
|
+
* @hidden
|
|
1154
|
+
*/
|
|
1155
|
+
GanttComponent.prototype.changeActiveView = function (view) {
|
|
1156
|
+
if (view !== this.activeView) {
|
|
1157
|
+
this.activeView = view;
|
|
1158
|
+
this.loadTimelineData();
|
|
1159
|
+
this.scrollSyncService.resetTimelineScrollLeft();
|
|
1160
|
+
this.activeViewChange.emit(view);
|
|
1161
|
+
}
|
|
1162
|
+
};
|
|
1163
|
+
/**
|
|
1164
|
+
* @hidden
|
|
1165
|
+
*/
|
|
1166
|
+
GanttComponent.prototype.notifyTaskClick = function (event, dataItem, itemIndex) {
|
|
1167
|
+
// simulates the TreeList `cellClick` event triggered by enter press (type: 'click')
|
|
1168
|
+
var type = event instanceof KeyboardEvent ? 'click' : event.type;
|
|
975
1169
|
this.taskClick.emit({
|
|
976
1170
|
originalEvent: event,
|
|
977
1171
|
dataItem: dataItem,
|
|
978
|
-
|
|
979
|
-
type:
|
|
1172
|
+
index: itemIndex,
|
|
1173
|
+
type: type,
|
|
980
1174
|
sender: this
|
|
981
1175
|
});
|
|
982
1176
|
};
|
|
983
|
-
|
|
1177
|
+
/**
|
|
1178
|
+
* @hidden
|
|
1179
|
+
*/
|
|
1180
|
+
GanttComponent.prototype.notifySelectionChange = function (dataItem, action) {
|
|
984
1181
|
if (this.isSameSelection(action, dataItem)) {
|
|
985
1182
|
return;
|
|
986
1183
|
}
|
|
@@ -991,6 +1188,30 @@ var GanttComponent = /** @class */ (function () {
|
|
|
991
1188
|
});
|
|
992
1189
|
this.treeList.updateView();
|
|
993
1190
|
};
|
|
1191
|
+
/**
|
|
1192
|
+
* @hidden
|
|
1193
|
+
*/
|
|
1194
|
+
GanttComponent.prototype.notifyTaskDelete = function (task) {
|
|
1195
|
+
this.editService.dataItem = task;
|
|
1196
|
+
this.taskDelete.emit({
|
|
1197
|
+
item: utils_2.getEditItem(task, this.treeList.view.data, this.mapper),
|
|
1198
|
+
sender: this
|
|
1199
|
+
});
|
|
1200
|
+
};
|
|
1201
|
+
/**
|
|
1202
|
+
* @hidden
|
|
1203
|
+
*/
|
|
1204
|
+
GanttComponent.prototype.isSameSelection = function (action, dataItem) {
|
|
1205
|
+
return action === 'select' && this.isSelected(dataItem);
|
|
1206
|
+
};
|
|
1207
|
+
/**
|
|
1208
|
+
* @hidden
|
|
1209
|
+
*/
|
|
1210
|
+
GanttComponent.prototype.getSelectionAction = function (_a, dataItem) {
|
|
1211
|
+
var ctrlKey = _a.ctrlKey, metaKey = _a.metaKey;
|
|
1212
|
+
var shouldToggleSelection = ctrlKey || metaKey;
|
|
1213
|
+
return (shouldToggleSelection && this.isSelected(dataItem)) ? 'remove' : 'select';
|
|
1214
|
+
};
|
|
994
1215
|
GanttComponent.prototype.updateTreeListGroupClass = function (columns) {
|
|
995
1216
|
if (columns === void 0) { columns = this.columns; }
|
|
996
1217
|
if (!utils_1.isPresent(this.treeList)) {
|
|
@@ -1021,24 +1242,70 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1021
1242
|
}
|
|
1022
1243
|
return this.views.find(function (view) { return view.type === _this.activeView; });
|
|
1023
1244
|
};
|
|
1024
|
-
GanttComponent.prototype.isSameSelection = function (action, dataItem) {
|
|
1025
|
-
return action === 'select' && this.isSelected(dataItem);
|
|
1026
|
-
};
|
|
1027
|
-
GanttComponent.prototype.getSelectionAction = function (_a, dataItem) {
|
|
1028
|
-
var ctrlKey = _a.ctrlKey, metaKey = _a.metaKey;
|
|
1029
|
-
var shouldToggleSelection = ctrlKey || metaKey;
|
|
1030
|
-
return (shouldToggleSelection && this.isSelected(dataItem)) ? 'remove' : 'select';
|
|
1031
|
-
};
|
|
1032
1245
|
GanttComponent.prototype.getFirstSelectedItem = function () {
|
|
1033
1246
|
var isSelectedCallback = this.isSelected || default_callbacks_1.isSelected;
|
|
1034
1247
|
var loadedItems = this.renderedTreeListItems || [];
|
|
1035
1248
|
return loadedItems.find(isSelectedCallback);
|
|
1036
1249
|
};
|
|
1250
|
+
GanttComponent.prototype.defaultValidateNewDependencyCallback = function (dependency) {
|
|
1251
|
+
var _this = this;
|
|
1252
|
+
var fromTaskId = this.mapper.extractFromDependency(dependency, 'fromId');
|
|
1253
|
+
var toTaskId = this.mapper.extractFromDependency(dependency, 'toId');
|
|
1254
|
+
var fromTask = this.treeList.view.data.find(function (task) {
|
|
1255
|
+
return _this.mapper.extractFromTask(task.data, 'id') === fromTaskId;
|
|
1256
|
+
});
|
|
1257
|
+
var toTask = this.treeList.view.data.find(function (task) {
|
|
1258
|
+
return _this.mapper.extractFromTask(task.data, 'id') === toTaskId;
|
|
1259
|
+
});
|
|
1260
|
+
// mark as invalid if the attempted dependency is lacking valid from- and to-tasks
|
|
1261
|
+
// or when the from- and to-tasks are actually the same task
|
|
1262
|
+
if (!utils_1.isPresent(fromTask) || !utils_1.isPresent(fromTask.data) ||
|
|
1263
|
+
!utils_1.isPresent(toTask) || !utils_1.isPresent(toTask.data) ||
|
|
1264
|
+
fromTask.data === toTask.data) {
|
|
1265
|
+
return false;
|
|
1266
|
+
}
|
|
1267
|
+
var tasksDependentOnOneAnother = this.dependencies.some(function (current) {
|
|
1268
|
+
var currentFromId = _this.mapper.extractFromDependency(current, 'fromId');
|
|
1269
|
+
var currentToId = _this.mapper.extractFromDependency(current, 'toId');
|
|
1270
|
+
return (fromTaskId === currentFromId && toTaskId === currentToId) ||
|
|
1271
|
+
(toTaskId === currentFromId && fromTaskId === currentToId);
|
|
1272
|
+
});
|
|
1273
|
+
// mark as invalid if the attempted dependency is trying to connect already dependent tasks
|
|
1274
|
+
// mark as invalid if the two tasks are in parent-child relationship
|
|
1275
|
+
if (tasksDependentOnOneAnother || utils_1.areParentChild(fromTask, toTask)) {
|
|
1276
|
+
return false;
|
|
1277
|
+
}
|
|
1278
|
+
var fromTaskStart = this.mapper.extractFromTask(fromTask.data, 'start');
|
|
1279
|
+
var fromTaskEnd = this.mapper.extractFromTask(fromTask.data, 'end');
|
|
1280
|
+
var toTaskStart = this.mapper.extractFromTask(toTask.data, 'start');
|
|
1281
|
+
var toTaskEnd = this.mapper.extractFromTask(toTask.data, 'end');
|
|
1282
|
+
// if the two tasks are available to be connected via a dependency,
|
|
1283
|
+
// check if their start and end time allow for the attempted dependency type
|
|
1284
|
+
switch (this.mapper.extractFromDependency(dependency, 'type')) {
|
|
1285
|
+
// finish to finish (FF) — the from-task ends before the to-task can end
|
|
1286
|
+
case models_1.DependencyType.FF:
|
|
1287
|
+
return fromTaskEnd <= toTaskEnd;
|
|
1288
|
+
// finish to start (FS) — the from-task ends before the to-task can begin
|
|
1289
|
+
case models_1.DependencyType.FS:
|
|
1290
|
+
return fromTaskEnd <= toTaskStart;
|
|
1291
|
+
// start to finish (SF) — the from-task begins before the to-task can end
|
|
1292
|
+
case models_1.DependencyType.SF:
|
|
1293
|
+
return fromTaskStart <= toTaskEnd;
|
|
1294
|
+
// start to start (SS) — the from-task begins before the to-task can begin
|
|
1295
|
+
case models_1.DependencyType.SS:
|
|
1296
|
+
return fromTaskStart <= toTaskStart;
|
|
1297
|
+
default: return false;
|
|
1298
|
+
}
|
|
1299
|
+
};
|
|
1037
1300
|
var GanttComponent_1;
|
|
1038
1301
|
tslib_1.__decorate([
|
|
1039
1302
|
core_1.ViewChild(kendo_angular_treelist_1.TreeListComponent, { static: true }),
|
|
1040
1303
|
tslib_1.__metadata("design:type", kendo_angular_treelist_1.TreeListComponent)
|
|
1041
1304
|
], GanttComponent.prototype, "treeList", void 0);
|
|
1305
|
+
tslib_1.__decorate([
|
|
1306
|
+
core_1.ViewChild(gantt_timeline_component_1.GanttTimelineComponent, { static: false }),
|
|
1307
|
+
tslib_1.__metadata("design:type", gantt_timeline_component_1.GanttTimelineComponent)
|
|
1308
|
+
], GanttComponent.prototype, "timeline", void 0);
|
|
1042
1309
|
tslib_1.__decorate([
|
|
1043
1310
|
core_1.ContentChild(task_content_template_directive_1.GanttTaskContentTemplateDirective, { static: true }),
|
|
1044
1311
|
tslib_1.__metadata("design:type", task_content_template_directive_1.GanttTaskContentTemplateDirective)
|
|
@@ -1055,6 +1322,24 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1055
1322
|
core_1.ContentChildren(toolbar_template_directive_1.ToolbarTemplateDirective),
|
|
1056
1323
|
tslib_1.__metadata("design:type", core_1.QueryList)
|
|
1057
1324
|
], GanttComponent.prototype, "toolbarTemplateChildren", void 0);
|
|
1325
|
+
tslib_1.__decorate([
|
|
1326
|
+
core_1.Input('aria-roledescription'),
|
|
1327
|
+
tslib_1.__metadata("design:type", String)
|
|
1328
|
+
], GanttComponent.prototype, "roleDescription", void 0);
|
|
1329
|
+
tslib_1.__decorate([
|
|
1330
|
+
core_1.HostBinding('attr.aria-roledescription'),
|
|
1331
|
+
tslib_1.__metadata("design:type", String),
|
|
1332
|
+
tslib_1.__metadata("design:paramtypes", [])
|
|
1333
|
+
], GanttComponent.prototype, "hostRoleDescriptionAttr", null);
|
|
1334
|
+
tslib_1.__decorate([
|
|
1335
|
+
core_1.Input('role'),
|
|
1336
|
+
tslib_1.__metadata("design:type", String)
|
|
1337
|
+
], GanttComponent.prototype, "role", void 0);
|
|
1338
|
+
tslib_1.__decorate([
|
|
1339
|
+
core_1.HostBinding('attr.role'),
|
|
1340
|
+
tslib_1.__metadata("design:type", String),
|
|
1341
|
+
tslib_1.__metadata("design:paramtypes", [])
|
|
1342
|
+
], GanttComponent.prototype, "hostRoleAttr", null);
|
|
1058
1343
|
tslib_1.__decorate([
|
|
1059
1344
|
core_1.HostBinding('class.k-gantt'),
|
|
1060
1345
|
tslib_1.__metadata("design:type", Boolean)
|
|
@@ -1097,6 +1382,10 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1097
1382
|
core_1.Input(),
|
|
1098
1383
|
tslib_1.__metadata("design:type", Function)
|
|
1099
1384
|
], GanttComponent.prototype, "isSelected", void 0);
|
|
1385
|
+
tslib_1.__decorate([
|
|
1386
|
+
core_1.Input(),
|
|
1387
|
+
tslib_1.__metadata("design:type", Function)
|
|
1388
|
+
], GanttComponent.prototype, "validateNewDependency", void 0);
|
|
1100
1389
|
tslib_1.__decorate([
|
|
1101
1390
|
core_1.Output(),
|
|
1102
1391
|
tslib_1.__metadata("design:type", core_1.EventEmitter)
|
|
@@ -1112,12 +1401,14 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1112
1401
|
], GanttComponent.prototype, "toolbarSettings", null);
|
|
1113
1402
|
tslib_1.__decorate([
|
|
1114
1403
|
core_1.Input(),
|
|
1115
|
-
tslib_1.__metadata("design:type", Function)
|
|
1116
|
-
|
|
1404
|
+
tslib_1.__metadata("design:type", Function),
|
|
1405
|
+
tslib_1.__metadata("design:paramtypes", [Function])
|
|
1406
|
+
], GanttComponent.prototype, "fetchChildren", null);
|
|
1117
1407
|
tslib_1.__decorate([
|
|
1118
1408
|
core_1.Input(),
|
|
1119
|
-
tslib_1.__metadata("design:type", Function)
|
|
1120
|
-
|
|
1409
|
+
tslib_1.__metadata("design:type", Function),
|
|
1410
|
+
tslib_1.__metadata("design:paramtypes", [Function])
|
|
1411
|
+
], GanttComponent.prototype, "hasChildren", null);
|
|
1121
1412
|
tslib_1.__decorate([
|
|
1122
1413
|
core_1.Input(),
|
|
1123
1414
|
tslib_1.__metadata("design:type", Array)
|
|
@@ -1154,6 +1445,10 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1154
1445
|
core_1.Input(),
|
|
1155
1446
|
tslib_1.__metadata("design:type", Number)
|
|
1156
1447
|
], GanttComponent.prototype, "workWeekEnd", void 0);
|
|
1448
|
+
tslib_1.__decorate([
|
|
1449
|
+
core_1.Input(),
|
|
1450
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
1451
|
+
], GanttComponent.prototype, "navigable", void 0);
|
|
1157
1452
|
tslib_1.__decorate([
|
|
1158
1453
|
core_1.Input(),
|
|
1159
1454
|
tslib_1.__metadata("design:type", Object),
|
|
@@ -1194,6 +1489,11 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1194
1489
|
core_1.Input(),
|
|
1195
1490
|
tslib_1.__metadata("design:type", Boolean)
|
|
1196
1491
|
], GanttComponent.prototype, "columnsResizable", void 0);
|
|
1492
|
+
tslib_1.__decorate([
|
|
1493
|
+
core_1.Input(),
|
|
1494
|
+
tslib_1.__metadata("design:type", Object),
|
|
1495
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
1496
|
+
], GanttComponent.prototype, "dragScrollSettings", null);
|
|
1197
1497
|
tslib_1.__decorate([
|
|
1198
1498
|
core_1.Output(),
|
|
1199
1499
|
tslib_1.__metadata("design:type", core_1.EventEmitter)
|
|
@@ -1234,6 +1534,10 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1234
1534
|
core_1.Output(),
|
|
1235
1535
|
tslib_1.__metadata("design:type", core_1.EventEmitter)
|
|
1236
1536
|
], GanttComponent.prototype, "taskAdd", void 0);
|
|
1537
|
+
tslib_1.__decorate([
|
|
1538
|
+
core_1.Output(),
|
|
1539
|
+
tslib_1.__metadata("design:type", core_1.EventEmitter)
|
|
1540
|
+
], GanttComponent.prototype, "dependencyAdd", void 0);
|
|
1237
1541
|
tslib_1.__decorate([
|
|
1238
1542
|
core_1.Output(),
|
|
1239
1543
|
tslib_1.__metadata("design:type", core_1.EventEmitter)
|
|
@@ -1291,6 +1595,7 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1291
1595
|
selector: 'kendo-gantt',
|
|
1292
1596
|
exportAs: 'kendoGantt',
|
|
1293
1597
|
providers: [
|
|
1598
|
+
gantt_localization_service_1.GanttLocalizationService,
|
|
1294
1599
|
kendo_angular_l10n_1.LocalizationService,
|
|
1295
1600
|
{
|
|
1296
1601
|
provide: kendo_angular_treelist_1.DataBoundTreeComponent,
|
|
@@ -1308,9 +1613,11 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1308
1613
|
dependency_dom_service_1.DependencyDomService,
|
|
1309
1614
|
mapping_service_1.MappingService,
|
|
1310
1615
|
option_changes_service_1.OptionChangesService,
|
|
1311
|
-
edit_service_1.EditService
|
|
1616
|
+
edit_service_1.EditService,
|
|
1617
|
+
timeline_scroll_service_1.TimelineScrollService,
|
|
1618
|
+
navigation_service_1.NavigationService
|
|
1312
1619
|
],
|
|
1313
|
-
template: "\n <ng-container kendoGanttLocalizedMessages\n i18n-taskEditingGeneralTabTitle=\"kendo.gantt.taskEditingGeneralTabTitle|The title of the 'General' tab of the editing dialog TabStrip\"\n taskEditingGeneralTabTitle=\"General\"\n\n i18n-taskEditingPredecessorsTabTitle=\"kendo.gantt.taskEditingPredecessorsTabTitle|The title of the 'Predecessors' dependencies tab of the editing dialog TabStrip\"\n taskEditingPredecessorsTabTitle=\"Predecessors\"\n\n i18n-taskEditingSuccessorsTabTitle=\"kendo.gantt.taskEditingSuccessorsTabTitle|The title of the 'Successors' dependencies tab of the editing dialog TabStrip\"\n taskEditingSuccessorsTabTitle=\"Successors\"\n\n i18n-taskEditingDependenciesAddButtonText=\"kendo.gantt.taskEditingDependenciesAddButtonText|The text of the 'Add' button in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesAddButtonText=\"Add\"\n\n i18n-taskEditingDependenciesRemoveButtonText=\"kendo.gantt.taskEditingDependenciesRemoveButtonText|The text of the 'Remove' button in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesRemoveButtonText=\"Remove\"\n\n i18n-taskEditingDependenciesGridNameColumnTitle=\"kendo.gantt.taskEditingDependenciesGridNameColumnTitle|The title of the 'Task Title' Grid column in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesGridNameColumnTitle=\"Task Title\"\n\n i18n-taskEditingDependenciesGridTypeColumnTitle=\"kendo.gantt.taskEditingDependenciesGridTypeColumnTitle|The title of the 'Type' Grid column in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesGridTypeColumnTitle=\"Type\"\n\n i18n-taskDeleteLabel=\"kendo.gantt.taskDeleteLabel|The label of the task delete icon\"\n taskDeleteLabel=\"Delete\"\n\n i18n-taskEditingDialogTitle=\"kendo.gantt.taskEditingDialogTitle|The title of the task editing dialog\"\n taskEditingDialogTitle=\"Editing Task\"\n\n i18n-taskEditingDialogCloseTitle=\"kendo.gantt.taskEditingDialogCloseTitle|The title of the task editing dialog close button\"\n taskEditingDialogCloseTitle=\"Close\"\n\n i18n-confirmationDialogCloseTitle=\"kendo.gantt.confirmationDialogCloseTitle|The title of the confirmation dialog close button\"\n confirmationDialogCloseTitle=\"Close\"\n\n i18n-confirmationDialogTitle=\"kendo.gantt.confirmationDialogTitle|The title of the delete task confirmation dialog\"\n confirmationDialogTitle=\"Delete Task\"\n\n i18n-confirmationDialogContent=\"kendo.gantt.confirmationDialogContent|The content of the delete task confirmation dialog\"\n confirmationDialogContent=\"Are you sure you want to delete this task?\"\n\n i18n-deleteButtonText=\"kendo.gantt.deleteButtonText|The text of the task editing dialog 'Delete' button\"\n deleteButtonText=\"Delete\"\n\n i18n-cancelButtonText=\"kendo.gantt.cancelButtonText|The text of the task editing dialog 'Cancel' button\"\n cancelButtonText=\"Cancel\"\n\n i18n-saveButtonText=\"kendo.gantt.saveButtonText|The text of the task editing dialog 'Save' button\"\n saveButtonText=\"Save\"\n\n i18n-titleFieldInputLabel=\"kendo.gantt.titleFieldInputLabel|The label of the 'title' field input in editing mode\"\n titleFieldInputLabel=\"Title\"\n\n i18n-startFieldInputLabel=\"kendo.gantt.startFieldInputLabel|The label of the 'start' field input in editing mode\"\n startFieldInputLabel=\"Start\"\n\n i18n-endFieldInputLabel=\"kendo.gantt.endFieldInputLabel|The label of the 'end' field input in editing mode\"\n endFieldInputLabel=\"End\"\n\n i18n-completionRatioFieldInputLabel=\"kendo.gantt.completionRatioFieldInputLabel|The label of the 'completionRatio' field input in editing mode\"\n completionRatioFieldInputLabel=\"Progress\"\n\n i18n-dayViewText=\"kendo.gantt.dayViewText|The text of the day view in the ViewSelector component\"\n dayViewText=\"Day\"\n\n i18n-weekViewText=\"kendo.gantt.weekViewText|The text of the week view in the ViewSelector component\"\n weekViewText=\"Week\"\n\n i18n-monthViewText=\"kendo.gantt.monthViewText|The text of the month view in the ViewSelector component\"\n monthViewText=\"Month\"\n\n i18n-yearViewText-disabled=\"kendo.gantt.yearViewText|The text of the year view in the ViewSelector component\"\n yearViewText=\"Year\"\n\n i18n-addTaskText=\"kendo.gantt.addTaskText|The text of the DropDownButton in the AddTask component\"\n addTaskText=\"Add Task\"\n\n i18n-addChildText=\"kendo.gantt.addChildText|The text of the 'Add Child' option in the AddTask component\"\n addChildText=\"Add Child\"\n\n i18n-addAboveText=\"kendo.gantt.addAboveText|The text of the 'Add Above' option in the AddTask component\"\n addAboveText=\"Add Above\"\n\n i18n-addBelowText=\"kendo.gantt.addBelowText|The text of the 'Add Below' option in the AddTask component\"\n addBelowText=\"Add Below\"\n\n i18n-noRecords=\"kendo.gantt.noRecords|The label visible in the TreeList when there are no records\"\n noRecords=\"No records available.\"\n\n i18n-filter=\"kendo.gantt.filter|The label of the filter cell or icon\"\n filter=\"Filter\"\n\n i18n-filterEqOperator=\"kendo.gantt.filterEqOperator|The text of the equal filter operator\"\n filterEqOperator=\"Is equal to\"\n\n i18n-filterNotEqOperator=\"kendo.gantt.filterNotEqOperator|The text of the not equal filter operator\"\n filterNotEqOperator=\"Is not equal to\"\n\n i18n-filterIsNullOperator=\"kendo.gantt.filterIsNullOperator|The text of the is null filter operator\"\n filterIsNullOperator=\"Is null\"\n\n i18n-filterIsNotNullOperator=\"kendo.gantt.filterIsNotNullOperator|The text of the is not null filter operator\"\n filterIsNotNullOperator=\"Is not null\"\n\n i18n-filterIsEmptyOperator=\"kendo.gantt.filterIsEmptyOperator|The text of the is empty filter operator\"\n filterIsEmptyOperator=\"Is empty\"\n\n i18n-filterIsNotEmptyOperator=\"kendo.gantt.filterIsNotEmptyOperator|The text of the is not empty filter operator\"\n filterIsNotEmptyOperator=\"Is not empty\"\n\n i18n-filterStartsWithOperator=\"kendo.gantt.filterStartsWithOperator|The text of the starts with filter operator\"\n filterStartsWithOperator=\"Starts with\"\n\n i18n-filterContainsOperator=\"kendo.gantt.filterContainsOperator|The text of the contains filter operator\"\n filterContainsOperator=\"Contains\"\n\n i18n-filterNotContainsOperator=\"kendo.gantt.filterNotContainsOperator|The text of the does not contain filter operator\"\n filterNotContainsOperator=\"Does not contain\"\n\n i18n-filterEndsWithOperator=\"kendo.gantt.filterEndsWithOperator|The text of the ends with filter operator\"\n filterEndsWithOperator=\"Ends with\"\n\n i18n-filterGteOperator=\"kendo.gantt.filterGteOperator|The text of the greater than or equal filter operator\"\n filterGteOperator=\"Is greater than or equal to\"\n\n i18n-filterGtOperator=\"kendo.gantt.filterGtOperator|The text of the greater than filter operator\"\n filterGtOperator=\"Is greater than\"\n\n i18n-filterLteOperator=\"kendo.gantt.filterLteOperator|The text of the less than or equal filter operator\"\n filterLteOperator=\"Is less than or equal to\"\n\n i18n-filterLtOperator=\"kendo.gantt.filterLtOperator|The text of the less than filter operator\"\n filterLtOperator=\"Is less than\"\n\n i18n-filterIsTrue=\"kendo.gantt.filterIsTrue|The text of the IsTrue boolean filter option\"\n filterIsTrue=\"Is True\"\n\n i18n-filterIsFalse=\"kendo.gantt.filterIsFalse|The text of the IsFalse boolean filter option\"\n filterIsFalse=\"Is False\"\n\n i18n-filterBooleanAll=\"kendo.gantt.filterBooleanAll|The text of the (All) boolean filter option\"\n filterBooleanAll=\"(All)\"\n\n i18n-filterAfterOrEqualOperator=\"kendo.gantt.filterAfterOrEqualOperator|The text of the after or equal date filter operator\"\n filterAfterOrEqualOperator=\"Is after or equal to\"\n\n i18n-filterAfterOperator=\"kendo.gantt.filterAfterOperator|The text of the after date filter operator\"\n filterAfterOperator=\"Is after\"\n\n i18n-filterBeforeOperator=\"kendo.gantt.filterBeforeOperator|The text of the before date filter operator\"\n filterBeforeOperator=\"Is before\"\n\n i18n-filterBeforeOrEqualOperator=\"kendo.gantt.filterBeforeOrEqualOperator|The text of the before or equal date filter operator\"\n filterBeforeOrEqualOperator=\"Is before or equal to\"\n\n i18n-filterFilterButton=\"kendo.gantt.filterFilterButton|The text of the filter button\"\n filterFilterButton=\"Filter\"\n\n i18n-filterClearButton=\"kendo.gantt.filterClearButton|The text of the clear filter button\"\n filterClearButton=\"Clear\"\n\n i18n-filterAndLogic=\"kendo.gantt.filterAndLogic|The text of the And filter logic\"\n filterAndLogic=\"And\"\n\n i18n-filterOrLogic=\"kendo.gantt.filterOrLogic|The text of the Or filter logic\"\n filterOrLogic=\"Or\"\n\n i18n-loading=\"kendo.gantt.loading|The loading text\"\n loading=\"Loading\"\n\n i18n-columnMenu=\"kendo.gantt.columnMenu|The title of the column menu icon\"\n columnMenu=\"Column Menu\"\n\n i18n-columns=\"kendo.gantt.columns|The text shown in the column menu for the columns item\"\n columns=\"Columns\"\n\n i18n-lock-disabled=\"kendo.gantt.lock|The text shown in the column menu for the lock item\"\n lock-disabled=\"Lock\"\n\n i18n-unlock-disabled=\"kendo.gantt.unlock|The text shown in the column menu for the unlock item\"\n unlock-disabled=\"Unlock\"\n\n i18n-sortable=\"kendo.gantt.sortable|The label of the sort icon\"\n sortable=\"Sortable\"\n\n i18n-sortAscending=\"kendo.gantt.sortAscending|The text shown in the column menu for the sort ascending item\"\n sortAscending=\"Sort Ascending\"\n\n i18n-sortDescending=\"kendo.gantt.sortDescending|The text shown in the column menu for the sort descending item\"\n sortDescending=\"Sort Descending\"\n\n i18n-sortedAscending=\"kendo.gantt.sortedAscending|The status announcement when a column is sorted ascending\"\n sortedAscending=\"Sorted Ascending\"\n\n i18n-sortedDescending=\"kendo.gantt.sortedDescending|The status announcement when a column is sorted descending\"\n sortedDescending=\"Sorted Descending\"\n\n i18n-sortedDefault=\"kendo.gantt.sortedDefault|The status announcement when a column is no longer sorted\"\n sortedDefault=\"Not Sorted\"\n\n i18n-columnsApply=\"kendo.gantt.columnsApply|The text shown in the column menu or column chooser for the columns apply button\"\n columnsApply=\"Apply\"\n\n i18n-columnsReset=\"kendo.gantt.columnsReset|The text shown in the column menu or column chooser for the columns reset button\"\n columnsReset=\"Reset\"></ng-container>\n <kendo-gantt-toolbar\n *ngIf=\"showToolbar('top')\"\n [showAddTask]=\"toolbarSettings.addTaskTool === 'top' || toolbarSettings.addTaskTool === 'both'\"\n [showViewSelector]=\"toolbarSettings.viewSelectorTool === 'top' || toolbarSettings.viewSelectorTool === 'both'\"\n class=\"k-gantt-header k-toolbar k-gantt-toolbar\"\n position=\"top\"></kendo-gantt-toolbar>\n <div class=\"k-gantt-content\">\n <kendo-splitter [style.border]=\"0\">\n <kendo-splitter-pane\n class=\"k-gantt-treelist k-gantt-treelist-scrollable\"\n [collapsible]=\"treeListPaneOptions?.collapsible\"\n [collapsed]=\"treeListPaneOptions?.collapsed\"\n (collapsedChange)=\"onTreeListCollapsedChange($event)\"\n [scrollable]=\"false\">\n <kendo-treelist\n [idField]=\"taskIdField\"\n [columns]=\"columns\"\n [data]=\"data\"\n [hasChildren]=\"hasChildren\"\n [fetchChildren]=\"fetchChildren\"\n [isExpanded]=\"isExpanded\"\n [autoSize]=\"columnsAutoSize\"\n [columnMenu]=\"columnMenu\"\n [reorderable]=\"columnsReorderable\"\n [resizable]=\"columnsResizable\"\n [rowClass]=\"rowClass\"\n [isSelected]=\"isSelected\"\n [selectable]=\"selectable\"\n [sortable]=\"sortable\"\n [sort]=\"sort\"\n [filterable]=\"filterMenu\"\n [filter]=\"filter\"\n (filterChange)=\"filterChange.emit($event)\"\n (sortChange)=\"sortChange.emit($event)\"\n (dataStateChange)=\"dataStateChange.emit({\n filter: $event.filter,\n sort: $event.sort\n })\"\n (expandStateChange)=\"expandStateChange.emit($event)\"\n (expand)=\"rowExpand.emit({ dataItem: $event.dataItem })\"\n (collapse)=\"rowCollapse.emit({ dataItem: $event.dataItem })\"\n (columnReorder)=\"columnReorder.emit($event)\"\n (columnResize)=\"columnResize.emit($event)\"\n (columnVisibilityChange)=\"handleColumnVisibilityChange($event)\"\n (columnLockedChange)=\"columnLockedChange.emit($event)\"\n (selectionChange)=\"handleTreeListSelectionChange($event)\"\n (cellClick)=\"handleTreeListCellClick($event)\"\n (cellClose)=\"handleCellClose($event)\"\n [kendoEventsOutsideAngular]=\"{\n dblclick: handleTreeListDoubleClick\n }\"\n [scope]=\"this\"\n >\n <kendo-treelist-messages\n [noRecords]=\"getText('noRecords')\"\n [filter]=\"getText('filter')\"\n [filterEqOperator]=\"getText('filterEqOperator')\"\n [filterNotEqOperator]=\"getText('filterNotEqOperator')\"\n [filterIsNullOperator]=\"getText('filterIsNullOperator')\"\n [filterIsNotNullOperator]=\"getText('filterIsNotNullOperator')\"\n [filterIsEmptyOperator]=\"getText('filterIsEmptyOperator')\"\n [filterIsNotEmptyOperator]=\"getText('filterIsNotEmptyOperator')\"\n [filterStartsWithOperator]=\"getText('filterStartsWithOperator')\"\n [filterContainsOperator]=\"getText('filterContainsOperator')\"\n [filterNotContainsOperator]=\"getText('filterNotContainsOperator')\"\n [filterEndsWithOperator]=\"getText('filterEndsWithOperator')\"\n [filterGteOperator]=\"getText('filterGteOperator')\"\n [filterGtOperator]=\"getText('filterGtOperator')\"\n [filterLteOperator]=\"getText('filterLteOperator')\"\n [filterLtOperator]=\"getText('filterLtOperator')\"\n [filterIsTrue]=\"getText('filterIsTrue')\"\n [filterIsFalse]=\"getText('filterIsFalse')\"\n [filterBooleanAll]=\"getText('filterBooleanAll')\"\n [filterAfterOrEqualOperator]=\"getText('filterAfterOrEqualOperator')\"\n [filterAfterOperator]=\"getText('filterAfterOperator')\"\n [filterBeforeOperator]=\"getText('filterBeforeOperator')\"\n [filterBeforeOrEqualOperator]=\"getText('filterBeforeOrEqualOperator')\"\n [filterFilterButton]=\"getText('filterFilterButton')\"\n [filterClearButton]=\"getText('filterClearButton')\"\n [filterAndLogic]=\"getText('filterAndLogic')\"\n [filterOrLogic]=\"getText('filterOrLogic')\"\n [loading]=\"getText('loading')\"\n [columnMenu]=\"getText('columnMenu')\"\n [columns]=\"getText('columns')\"\n [sortable]=\"getText('sortable')\"\n [sortAscending]=\"getText('sortAscending')\"\n [sortDescending]=\"getText('sortDescending')\"\n [sortedAscending]=\"getText('sortedAscending')\"\n [sortedDescending]=\"getText('sortedDescending')\"\n [sortedDefault]=\"getText('sortedDefault')\"\n [columnsApply]=\"getText('columnsApply')\"\n [columnsReset]=\"getText('columnsReset')\"\n >\n </kendo-treelist-messages>\n </kendo-treelist>\n </kendo-splitter-pane>\n <kendo-splitter-pane\n [collapsible]=\"timelinePaneOptions?.collapsible\"\n [resizable]=\"timelinePaneOptions?.resizable\"\n [collapsed]=\"timelinePaneOptions?.collapsed\"\n [min]=\"timelinePaneOptions?.min\"\n [max]=\"timelinePaneOptions?.max\"\n [size]=\"timelinePaneOptions?.size\"\n (collapsedChange)=\"onTimelineCollapsedChange($event)\"\n (sizeChange)=\"onTimelinePaneSizeChange($event)\"\n [scrollable]=\"false\">\n <kendo-gantt-timeline\n *ngIf=\"views && views.length\"\n [rows]=\"renderedTreeListItems\"\n [slots]=\"timelineSlots\"\n [groupSlots]=\"timelineGroupSlots\"\n [tableWidth]=\"tableWidth\"\n [activeView]=\"activeView\"\n [taskContentTemplate]=\"taskContentTemplate?.templateRef\"\n [taskTemplate]=\"taskTemplate?.templateRef\"\n [summaryTaskTemplate]=\"summaryTaskTemplate?.templateRef\"\n [taskClass]=\"taskClass\"\n [dependencies]=\"dependencies\"\n [hasChildren]=\"hasChildren\"\n [isTaskSelected]=\"isTaskSelected\"\n [kendoEventsOutsideAngular]=\"{\n click: handleTimelineClick,\n contextmenu: handleTimelineRightClick,\n dblclick: handleTimelineDblClick,\n mousedown: handleTimelineMouseDown\n }\"\n [scope]=\"this\"\n ></kendo-gantt-timeline>\n </kendo-splitter-pane>\n </kendo-splitter>\n </div>\n <kendo-gantt-toolbar\n *ngIf=\"showToolbar('bottom')\"\n [showAddTask]=\"toolbarSettings.addTaskTool === 'bottom' || toolbarSettings.addTaskTool === 'both'\"\n [showViewSelector]=\"toolbarSettings.viewSelectorTool === 'bottom' || toolbarSettings.viewSelectorTool === 'both'\"\n class=\"k-gantt-footer k-toolbar k-gantt-toolbar\"\n position=\"bottom\"></kendo-gantt-toolbar>\n <kendo-gantt-edit-dialog *ngIf=\"showEditingDialog\" [formGroup]=\"editDialogFormGroup\"></kendo-gantt-edit-dialog>\n <kendo-dialog\n *ngIf=\"showConfirmationDialog\"\n [width]=\"575\"\n [height]=\"170\"\n [title]=\"getText('confirmationDialogTitle')\"\n (close)=\"showConfirmationDialog = false;\">\n <span>{{getText('confirmationDialogContent')}}</span>\n <kendo-dialog-actions layout=\"normal\">\n <kendo-treelist-spacer></kendo-treelist-spacer>\n <button kendoButton [primary]=\"true\" (click)=\"handleDeleteConfirmation()\">{{ getText('deleteButtonText') }}</button>\n <button kendoButton (click)=\"showConfirmationDialog = false;\">{{ getText('cancelButtonText') }}</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n "
|
|
1620
|
+
template: "\n <ng-container kendoGanttLocalizedMessages\n i18n-taskEditingGeneralTabTitle=\"kendo.gantt.taskEditingGeneralTabTitle|The title of the 'General' tab of the editing dialog TabStrip\"\n taskEditingGeneralTabTitle=\"General\"\n\n i18n-taskEditingPredecessorsTabTitle=\"kendo.gantt.taskEditingPredecessorsTabTitle|The title of the 'Predecessors' dependencies tab of the editing dialog TabStrip\"\n taskEditingPredecessorsTabTitle=\"Predecessors\"\n\n i18n-taskEditingSuccessorsTabTitle=\"kendo.gantt.taskEditingSuccessorsTabTitle|The title of the 'Successors' dependencies tab of the editing dialog TabStrip\"\n taskEditingSuccessorsTabTitle=\"Successors\"\n\n i18n-taskEditingDependenciesAddButtonText=\"kendo.gantt.taskEditingDependenciesAddButtonText|The text of the 'Add' button in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesAddButtonText=\"Add\"\n\n i18n-taskEditingDependenciesRemoveButtonText=\"kendo.gantt.taskEditingDependenciesRemoveButtonText|The text of the 'Remove' button in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesRemoveButtonText=\"Remove\"\n\n i18n-taskEditingDependenciesGridNameColumnTitle=\"kendo.gantt.taskEditingDependenciesGridNameColumnTitle|The title of the 'Task Title' Grid column in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesGridNameColumnTitle=\"Task Title\"\n\n i18n-taskEditingDependenciesGridTypeColumnTitle=\"kendo.gantt.taskEditingDependenciesGridTypeColumnTitle|The title of the 'Type' Grid column in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesGridTypeColumnTitle=\"Type\"\n\n i18n-taskDeleteLabel=\"kendo.gantt.taskDeleteLabel|The label of the task delete icon\"\n taskDeleteLabel=\"Delete\"\n\n i18n-taskEditingDialogTitle=\"kendo.gantt.taskEditingDialogTitle|The title of the task editing dialog\"\n taskEditingDialogTitle=\"Editing Task\"\n\n i18n-taskEditingDialogCloseTitle=\"kendo.gantt.taskEditingDialogCloseTitle|The title of the task editing dialog close button\"\n taskEditingDialogCloseTitle=\"Close\"\n\n i18n-confirmationDialogCloseTitle=\"kendo.gantt.confirmationDialogCloseTitle|The title of the confirmation dialog close button\"\n confirmationDialogCloseTitle=\"Close\"\n\n i18n-confirmationDialogTitle=\"kendo.gantt.confirmationDialogTitle|The title of the delete task confirmation dialog\"\n confirmationDialogTitle=\"Delete Task\"\n\n i18n-confirmationDialogContent=\"kendo.gantt.confirmationDialogContent|The content of the delete task confirmation dialog\"\n confirmationDialogContent=\"Are you sure you want to delete this task?\"\n\n i18n-deleteButtonText=\"kendo.gantt.deleteButtonText|The text of the task editing dialog 'Delete' button\"\n deleteButtonText=\"Delete\"\n\n i18n-cancelButtonText=\"kendo.gantt.cancelButtonText|The text of the task editing dialog 'Cancel' button\"\n cancelButtonText=\"Cancel\"\n\n i18n-saveButtonText=\"kendo.gantt.saveButtonText|The text of the task editing dialog 'Save' button\"\n saveButtonText=\"Save\"\n\n i18n-titleFieldInputLabel=\"kendo.gantt.titleFieldInputLabel|The label of the 'title' field input in editing mode\"\n titleFieldInputLabel=\"Title\"\n\n i18n-startFieldInputLabel=\"kendo.gantt.startFieldInputLabel|The label of the 'start' field input in editing mode\"\n startFieldInputLabel=\"Start\"\n\n i18n-endFieldInputLabel=\"kendo.gantt.endFieldInputLabel|The label of the 'end' field input in editing mode\"\n endFieldInputLabel=\"End\"\n\n i18n-completionRatioFieldInputLabel=\"kendo.gantt.completionRatioFieldInputLabel|The label of the 'completionRatio' field input in editing mode\"\n completionRatioFieldInputLabel=\"Progress\"\n\n i18n-dayViewText=\"kendo.gantt.dayViewText|The text of the day view in the ViewSelector component\"\n dayViewText=\"Day\"\n\n i18n-weekViewText=\"kendo.gantt.weekViewText|The text of the week view in the ViewSelector component\"\n weekViewText=\"Week\"\n\n i18n-monthViewText=\"kendo.gantt.monthViewText|The text of the month view in the ViewSelector component\"\n monthViewText=\"Month\"\n\n i18n-yearViewText-disabled=\"kendo.gantt.yearViewText|The text of the year view in the ViewSelector component\"\n yearViewText=\"Year\"\n\n i18n-addTaskText=\"kendo.gantt.addTaskText|The text of the DropDownButton in the AddTask component\"\n addTaskText=\"Add Task\"\n\n i18n-addChildText=\"kendo.gantt.addChildText|The text of the 'Add Child' option in the AddTask component\"\n addChildText=\"Add Child\"\n\n i18n-addAboveText=\"kendo.gantt.addAboveText|The text of the 'Add Above' option in the AddTask component\"\n addAboveText=\"Add Above\"\n\n i18n-addBelowText=\"kendo.gantt.addBelowText|The text of the 'Add Below' option in the AddTask component\"\n addBelowText=\"Add Below\"\n\n i18n-noRecords=\"kendo.gantt.noRecords|The label visible in the TreeList when there are no records\"\n noRecords=\"No records available.\"\n\n i18n-filter=\"kendo.gantt.filter|The label of the filter cell or icon\"\n filter=\"Filter\"\n\n i18n-filterEqOperator=\"kendo.gantt.filterEqOperator|The text of the equal filter operator\"\n filterEqOperator=\"Is equal to\"\n\n i18n-filterNotEqOperator=\"kendo.gantt.filterNotEqOperator|The text of the not equal filter operator\"\n filterNotEqOperator=\"Is not equal to\"\n\n i18n-filterIsNullOperator=\"kendo.gantt.filterIsNullOperator|The text of the is null filter operator\"\n filterIsNullOperator=\"Is null\"\n\n i18n-filterIsNotNullOperator=\"kendo.gantt.filterIsNotNullOperator|The text of the is not null filter operator\"\n filterIsNotNullOperator=\"Is not null\"\n\n i18n-filterIsEmptyOperator=\"kendo.gantt.filterIsEmptyOperator|The text of the is empty filter operator\"\n filterIsEmptyOperator=\"Is empty\"\n\n i18n-filterIsNotEmptyOperator=\"kendo.gantt.filterIsNotEmptyOperator|The text of the is not empty filter operator\"\n filterIsNotEmptyOperator=\"Is not empty\"\n\n i18n-filterStartsWithOperator=\"kendo.gantt.filterStartsWithOperator|The text of the starts with filter operator\"\n filterStartsWithOperator=\"Starts with\"\n\n i18n-filterContainsOperator=\"kendo.gantt.filterContainsOperator|The text of the contains filter operator\"\n filterContainsOperator=\"Contains\"\n\n i18n-filterNotContainsOperator=\"kendo.gantt.filterNotContainsOperator|The text of the does not contain filter operator\"\n filterNotContainsOperator=\"Does not contain\"\n\n i18n-filterEndsWithOperator=\"kendo.gantt.filterEndsWithOperator|The text of the ends with filter operator\"\n filterEndsWithOperator=\"Ends with\"\n\n i18n-filterGteOperator=\"kendo.gantt.filterGteOperator|The text of the greater than or equal filter operator\"\n filterGteOperator=\"Is greater than or equal to\"\n\n i18n-filterGtOperator=\"kendo.gantt.filterGtOperator|The text of the greater than filter operator\"\n filterGtOperator=\"Is greater than\"\n\n i18n-filterLteOperator=\"kendo.gantt.filterLteOperator|The text of the less than or equal filter operator\"\n filterLteOperator=\"Is less than or equal to\"\n\n i18n-filterLtOperator=\"kendo.gantt.filterLtOperator|The text of the less than filter operator\"\n filterLtOperator=\"Is less than\"\n\n i18n-filterIsTrue=\"kendo.gantt.filterIsTrue|The text of the IsTrue boolean filter option\"\n filterIsTrue=\"Is True\"\n\n i18n-filterIsFalse=\"kendo.gantt.filterIsFalse|The text of the IsFalse boolean filter option\"\n filterIsFalse=\"Is False\"\n\n i18n-filterBooleanAll=\"kendo.gantt.filterBooleanAll|The text of the (All) boolean filter option\"\n filterBooleanAll=\"(All)\"\n\n i18n-filterAfterOrEqualOperator=\"kendo.gantt.filterAfterOrEqualOperator|The text of the after or equal date filter operator\"\n filterAfterOrEqualOperator=\"Is after or equal to\"\n\n i18n-filterAfterOperator=\"kendo.gantt.filterAfterOperator|The text of the after date filter operator\"\n filterAfterOperator=\"Is after\"\n\n i18n-filterBeforeOperator=\"kendo.gantt.filterBeforeOperator|The text of the before date filter operator\"\n filterBeforeOperator=\"Is before\"\n\n i18n-filterBeforeOrEqualOperator=\"kendo.gantt.filterBeforeOrEqualOperator|The text of the before or equal date filter operator\"\n filterBeforeOrEqualOperator=\"Is before or equal to\"\n\n i18n-filterFilterButton=\"kendo.gantt.filterFilterButton|The text of the filter button\"\n filterFilterButton=\"Filter\"\n\n i18n-filterClearButton=\"kendo.gantt.filterClearButton|The text of the clear filter button\"\n filterClearButton=\"Clear\"\n\n i18n-filterAndLogic=\"kendo.gantt.filterAndLogic|The text of the And filter logic\"\n filterAndLogic=\"And\"\n\n i18n-filterOrLogic=\"kendo.gantt.filterOrLogic|The text of the Or filter logic\"\n filterOrLogic=\"Or\"\n\n i18n-loading=\"kendo.gantt.loading|The loading text\"\n loading=\"Loading\"\n\n i18n-columnMenu=\"kendo.gantt.columnMenu|The title of the column menu icon\"\n columnMenu=\"Column Menu\"\n\n i18n-columns=\"kendo.gantt.columns|The text shown in the column menu for the columns item\"\n columns=\"Columns\"\n\n i18n-lock-disabled=\"kendo.gantt.lock|The text shown in the column menu for the lock item\"\n lock-disabled=\"Lock\"\n\n i18n-unlock-disabled=\"kendo.gantt.unlock|The text shown in the column menu for the unlock item\"\n unlock-disabled=\"Unlock\"\n\n i18n-sortable=\"kendo.gantt.sortable|The label of the sort icon\"\n sortable=\"Sortable\"\n\n i18n-sortAscending=\"kendo.gantt.sortAscending|The text shown in the column menu for the sort ascending item\"\n sortAscending=\"Sort Ascending\"\n\n i18n-sortDescending=\"kendo.gantt.sortDescending|The text shown in the column menu for the sort descending item\"\n sortDescending=\"Sort Descending\"\n\n i18n-sortedAscending=\"kendo.gantt.sortedAscending|The status announcement when a column is sorted ascending\"\n sortedAscending=\"Sorted Ascending\"\n\n i18n-sortedDescending=\"kendo.gantt.sortedDescending|The status announcement when a column is sorted descending\"\n sortedDescending=\"Sorted Descending\"\n\n i18n-sortedDefault=\"kendo.gantt.sortedDefault|The status announcement when a column is no longer sorted\"\n sortedDefault=\"Not Sorted\"\n\n i18n-columnsApply=\"kendo.gantt.columnsApply|The text shown in the column menu or column chooser for the columns apply button\"\n columnsApply=\"Apply\"\n\n i18n-columnsReset=\"kendo.gantt.columnsReset|The text shown in the column menu or column chooser for the columns reset button\"\n columnsReset=\"Reset\"></ng-container>\n <kendo-gantt-toolbar\n *ngIf=\"showToolbar('top')\"\n [showAddTask]=\"toolbarSettings.addTaskTool === 'top' || toolbarSettings.addTaskTool === 'both'\"\n [showViewSelector]=\"toolbarSettings.viewSelectorTool === 'top' || toolbarSettings.viewSelectorTool === 'both'\"\n class=\"k-gantt-header k-toolbar k-gantt-toolbar\"\n position=\"top\"></kendo-gantt-toolbar>\n <div class=\"k-gantt-content\">\n <kendo-splitter [style.border]=\"0\">\n <kendo-splitter-pane\n class=\"k-gantt-treelist k-gantt-treelist-scrollable\"\n [collapsible]=\"treeListPaneOptions?.collapsible\"\n [collapsed]=\"treeListPaneOptions?.collapsed\"\n (collapsedChange)=\"onTreeListCollapsedChange($event)\"\n [scrollable]=\"false\">\n <kendo-treelist\n [idField]=\"taskIdField\"\n [columns]=\"columns\"\n [data]=\"data\"\n [hasChildren]=\"hasChildren\"\n [fetchChildren]=\"fetchChildren\"\n [navigable]=\"navigable\"\n [isExpanded]=\"isExpanded\"\n [autoSize]=\"columnsAutoSize\"\n [columnMenu]=\"columnMenu\"\n [reorderable]=\"columnsReorderable\"\n [resizable]=\"columnsResizable\"\n [rowClass]=\"rowClass\"\n [isSelected]=\"isSelected\"\n [selectable]=\"selectable\"\n [sortable]=\"sortable\"\n [sort]=\"sort\"\n [filterable]=\"filterMenu\"\n [filter]=\"filter\"\n (filterChange)=\"filterChange.emit($event)\"\n (sortChange)=\"sortChange.emit($event)\"\n (dataStateChange)=\"dataStateChange.emit({\n filter: $event.filter,\n sort: $event.sort\n })\"\n (expandStateChange)=\"expandStateChange.emit($event)\"\n (expand)=\"rowExpand.emit({ dataItem: $event.dataItem })\"\n (collapse)=\"rowCollapse.emit({ dataItem: $event.dataItem })\"\n (columnReorder)=\"columnReorder.emit($event)\"\n (columnResize)=\"columnResize.emit($event)\"\n (columnVisibilityChange)=\"handleColumnVisibilityChange($event)\"\n (columnLockedChange)=\"columnLockedChange.emit($event)\"\n (selectionChange)=\"handleTreeListSelectionChange($event)\"\n (cellClick)=\"handleTreeListCellClick($event)\"\n (cellClose)=\"handleCellClose($event)\"\n [kendoEventsOutsideAngular]=\"{\n dblclick: handleTreeListDoubleClick\n }\"\n [scope]=\"this\"\n >\n <kendo-treelist-messages\n [noRecords]=\"getText('noRecords')\"\n [filter]=\"getText('filter')\"\n [filterEqOperator]=\"getText('filterEqOperator')\"\n [filterNotEqOperator]=\"getText('filterNotEqOperator')\"\n [filterIsNullOperator]=\"getText('filterIsNullOperator')\"\n [filterIsNotNullOperator]=\"getText('filterIsNotNullOperator')\"\n [filterIsEmptyOperator]=\"getText('filterIsEmptyOperator')\"\n [filterIsNotEmptyOperator]=\"getText('filterIsNotEmptyOperator')\"\n [filterStartsWithOperator]=\"getText('filterStartsWithOperator')\"\n [filterContainsOperator]=\"getText('filterContainsOperator')\"\n [filterNotContainsOperator]=\"getText('filterNotContainsOperator')\"\n [filterEndsWithOperator]=\"getText('filterEndsWithOperator')\"\n [filterGteOperator]=\"getText('filterGteOperator')\"\n [filterGtOperator]=\"getText('filterGtOperator')\"\n [filterLteOperator]=\"getText('filterLteOperator')\"\n [filterLtOperator]=\"getText('filterLtOperator')\"\n [filterIsTrue]=\"getText('filterIsTrue')\"\n [filterIsFalse]=\"getText('filterIsFalse')\"\n [filterBooleanAll]=\"getText('filterBooleanAll')\"\n [filterAfterOrEqualOperator]=\"getText('filterAfterOrEqualOperator')\"\n [filterAfterOperator]=\"getText('filterAfterOperator')\"\n [filterBeforeOperator]=\"getText('filterBeforeOperator')\"\n [filterBeforeOrEqualOperator]=\"getText('filterBeforeOrEqualOperator')\"\n [filterFilterButton]=\"getText('filterFilterButton')\"\n [filterClearButton]=\"getText('filterClearButton')\"\n [filterAndLogic]=\"getText('filterAndLogic')\"\n [filterOrLogic]=\"getText('filterOrLogic')\"\n [loading]=\"getText('loading')\"\n [columnMenu]=\"getText('columnMenu')\"\n [columns]=\"getText('columns')\"\n [sortable]=\"getText('sortable')\"\n [sortAscending]=\"getText('sortAscending')\"\n [sortDescending]=\"getText('sortDescending')\"\n [sortedAscending]=\"getText('sortedAscending')\"\n [sortedDescending]=\"getText('sortedDescending')\"\n [sortedDefault]=\"getText('sortedDefault')\"\n [columnsApply]=\"getText('columnsApply')\"\n [columnsReset]=\"getText('columnsReset')\"\n >\n </kendo-treelist-messages>\n </kendo-treelist>\n </kendo-splitter-pane>\n <kendo-splitter-pane\n [collapsible]=\"timelinePaneOptions?.collapsible\"\n [resizable]=\"timelinePaneOptions?.resizable\"\n [collapsed]=\"timelinePaneOptions?.collapsed\"\n [min]=\"timelinePaneOptions?.min\"\n [max]=\"timelinePaneOptions?.max\"\n [size]=\"timelinePaneOptions?.size\"\n (collapsedChange)=\"onTimelineCollapsedChange($event)\"\n (sizeChange)=\"onTimelinePaneSizeChange($event)\"\n [scrollable]=\"false\">\n <kendo-gantt-timeline\n *ngIf=\"views && views.length\"\n [renderDependencyDragClues]=\"renderDependencyDragClues\"\n [dragScrollSettings]=\"dragScrollSettings\"\n [rows]=\"viewItems\"\n [slots]=\"timelineSlots\"\n [groupSlots]=\"timelineGroupSlots\"\n [tableWidth]=\"tableWidth\"\n [activeView]=\"activeView\"\n [taskContentTemplate]=\"taskContentTemplate?.templateRef\"\n [taskTemplate]=\"taskTemplate?.templateRef\"\n [summaryTaskTemplate]=\"summaryTaskTemplate?.templateRef\"\n [taskClass]=\"taskClass\"\n [dependencies]=\"dependencies\"\n [isExpanded]=\"isExpanded\"\n [selectable]=\"selectable\"\n [isTaskSelected]=\"isTaskSelected\"\n [kendoEventsOutsideAngular]=\"{\n click: handleTimelineClick,\n contextmenu: handleTimelineRightClick,\n dblclick: handleTimelineDblClick,\n mousedown: handleTimelineMouseDown\n }\"\n [scope]=\"this\"\n ></kendo-gantt-timeline>\n </kendo-splitter-pane>\n </kendo-splitter>\n </div>\n <kendo-gantt-toolbar\n *ngIf=\"showToolbar('bottom')\"\n [showAddTask]=\"toolbarSettings.addTaskTool === 'bottom' || toolbarSettings.addTaskTool === 'both'\"\n [showViewSelector]=\"toolbarSettings.viewSelectorTool === 'bottom' || toolbarSettings.viewSelectorTool === 'both'\"\n class=\"k-gantt-footer k-toolbar k-gantt-toolbar\"\n position=\"bottom\"></kendo-gantt-toolbar>\n <kendo-gantt-edit-dialog\n *ngIf=\"showEditingDialog\"\n [data]=\"data\">\n </kendo-gantt-edit-dialog>\n <kendo-dialog\n *ngIf=\"showConfirmationDialog\"\n [width]=\"575\"\n [height]=\"170\"\n [title]=\"getText('confirmationDialogTitle')\"\n (close)=\"handleConfirmationDialogClose()\">\n <span>{{ getText('confirmationDialogContent') }}</span>\n <kendo-dialog-actions layout=\"normal\">\n <kendo-treelist-spacer></kendo-treelist-spacer>\n <button kendoButton [primary]=\"true\" (click)=\"handleDeleteConfirmation()\">{{ getText('deleteButtonText') }}</button>\n <button kendoButton (click)=\"handleConfirmationDialogClose()\">{{ getText('cancelButtonText') }}</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n "
|
|
1314
1621
|
}),
|
|
1315
1622
|
tslib_1.__metadata("design:paramtypes", [timeline_view_service_1.TimelineViewService,
|
|
1316
1623
|
scroll_sync_service_1.ScrollSyncService,
|
|
@@ -1321,7 +1628,8 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1321
1628
|
edit_service_1.EditService,
|
|
1322
1629
|
kendo_angular_l10n_1.LocalizationService,
|
|
1323
1630
|
core_1.ElementRef,
|
|
1324
|
-
core_1.NgZone
|
|
1631
|
+
core_1.NgZone,
|
|
1632
|
+
navigation_service_1.NavigationService])
|
|
1325
1633
|
], GanttComponent);
|
|
1326
1634
|
return GanttComponent;
|
|
1327
1635
|
}());
|