@progress/kendo-angular-gantt 0.3.0-dev.202201111723 → 1.0.0
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 -29
- package/dist/es/common/touch-enabled.js +9 -0
- package/dist/es/dependencies/utils.js +34 -0
- 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 +1 -1
- package/dist/es/editing/edit-dialog.component.js +3 -3
- package/dist/es/editing/edit.service.js +4 -2
- package/dist/es/editing/task-fields.component.js +1 -1
- package/dist/es/editing/{util.js → utils.js} +0 -0
- package/dist/es/gantt.component.js +313 -28
- package/dist/es/gantt.module.js +23 -6
- package/dist/es/index.js +5 -0
- package/dist/es/main.js +1 -0
- package/dist/es/models/events/dependency-add-event.interface.js +4 -0
- package/dist/es/models/events/task-delete-event.interface.js +4 -0
- package/dist/es/models/view-item.interface.js +4 -0
- package/dist/es/navigation/navigation-models.js +4 -0
- package/dist/es/navigation/navigation.service.js +390 -0
- package/dist/es/navigation/utils.js +77 -0
- package/dist/es/package-metadata.js +1 -1
- package/dist/es/rendering/gantt-milestone-task.component.js +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 +34 -0
- 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.js +1 -1
- package/dist/es2015/editing/edit-dialog.component.d.ts +1 -1
- package/dist/es2015/editing/edit-dialog.component.js +12 -4
- package/dist/es2015/editing/edit.service.d.ts +2 -3
- package/dist/es2015/editing/edit.service.js +4 -2
- package/dist/es2015/editing/task-fields.component.js +1 -1
- package/dist/es2015/editing/{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 +112 -17
- package/dist/es2015/gantt.component.js +292 -30
- package/dist/es2015/gantt.module.js +23 -6
- package/dist/es2015/index.d.ts +5 -0
- package/dist/es2015/index.js +5 -0
- package/dist/es2015/index.metadata.json +1 -1
- package/dist/es2015/main.d.ts +1 -0
- package/dist/es2015/main.js +1 -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 +27 -10
- package/dist/es2015/models/models.d.ts +4 -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 +3033 -1367
- package/dist/fesm5/index.js +2447 -830
- package/dist/npm/common/touch-enabled.js +11 -0
- package/dist/npm/dependencies/utils.js +34 -0
- 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 +1 -1
- package/dist/npm/editing/edit-dialog.component.js +3 -3
- package/dist/npm/editing/edit.service.js +4 -2
- package/dist/npm/editing/task-fields.component.js +1 -1
- package/dist/npm/editing/{util.js → utils.js} +0 -0
- package/dist/npm/gantt.component.js +315 -30
- package/dist/npm/gantt.module.js +22 -5
- package/dist/npm/index.js +10 -0
- package/dist/npm/main.js +2 -0
- package/dist/npm/models/events/dependency-add-event.interface.js +6 -0
- package/dist/npm/models/events/task-delete-event.interface.js +6 -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 -21
|
@@ -10,8 +10,11 @@ import { Subscription } from 'rxjs';
|
|
|
10
10
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
11
11
|
import { packageMetadata } from './package-metadata';
|
|
12
12
|
import { anyChanged, hasObservers } from '@progress/kendo-angular-common';
|
|
13
|
+
import { GanttTimelineComponent } from './timeline/gantt-timeline.component';
|
|
13
14
|
import { GanttColumnBase } from './columns/columns';
|
|
14
15
|
import { fetchChildren, hasChildren, isSelected, rowClassCallback, taskClassCallback } from './common/default-callbacks';
|
|
16
|
+
import { DependencyType } from './models/models';
|
|
17
|
+
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
|
15
18
|
import { TimelineViewService } from './timeline/timeline-view.service';
|
|
16
19
|
import { TimelineDayViewService } from './timeline/timeline-day-view.service';
|
|
17
20
|
import { TimelineWeekViewService } from './timeline/timeline-week-view.service';
|
|
@@ -21,18 +24,25 @@ import { DependencyDomService } from './dependencies/dependency-dom.service';
|
|
|
21
24
|
import { MappingService } from './common/mapping.service';
|
|
22
25
|
import { OptionChangesService } from './common/option-changes.service';
|
|
23
26
|
import { EditService } from './editing/edit.service';
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
27
|
+
import { TimelineScrollService } from './scrolling/timeline-scroll.service';
|
|
28
|
+
import { GanttLocalizationService } from './localization/gantt-localization.service';
|
|
29
|
+
import { NavigationService } from './navigation/navigation.service';
|
|
30
|
+
import { areParentChild, getClosestTaskIndex, isClearButton, isColumnGroup, isPresent, isTask, normalizeGanttData, scrollbarWidth } from './utils';
|
|
26
31
|
import { DEFAULT_TIMELINE_PANE_SETTINGS, DEFAULT_TREELIST_PANE_SETTINGS } from './models/splitter-pane-options.interface';
|
|
27
32
|
import { GanttTaskTemplateDirective } from './template-directives/task-template.directive';
|
|
28
33
|
import { GanttSummaryTaskTemplateDirective } from './template-directives/summary-task-template.directive';
|
|
29
34
|
import { GanttTaskContentTemplateDirective } from './template-directives/task-content-template.directive';
|
|
30
35
|
import { ToolbarTemplateDirective } from './toolbar/toolbar-template.directive';
|
|
31
36
|
import { ViewBase } from './timeline/view-base';
|
|
32
|
-
import { getEditItem } from './editing/
|
|
33
|
-
import { GanttLocalizationService } from './localization/gantt-localization.service';
|
|
37
|
+
import { getEditItem } from './editing/utils';
|
|
34
38
|
var TREELIST_GROUP_COLUMNS_CLASS = 'k-gantt-treelist-nested-columns';
|
|
35
39
|
var DEFAULT_VIEW = 'week';
|
|
40
|
+
var DEFAULT_DRAG_SCROLL_SETTINGS = {
|
|
41
|
+
enabled: true,
|
|
42
|
+
step: 3,
|
|
43
|
+
interval: 1,
|
|
44
|
+
threshold: 10
|
|
45
|
+
};
|
|
36
46
|
/**
|
|
37
47
|
* Represents the Kendo UI Gantt component for Angular.
|
|
38
48
|
*
|
|
@@ -105,7 +115,7 @@ var DEFAULT_VIEW = 'week';
|
|
|
105
115
|
* ```
|
|
106
116
|
*/
|
|
107
117
|
var GanttComponent = /** @class */ (function () {
|
|
108
|
-
function GanttComponent(timelineViewService, scrollSyncService, renderer, mapper, optionChangesService, dependencyDomService, editService, localizationService, hostElement, zone) {
|
|
118
|
+
function GanttComponent(timelineViewService, scrollSyncService, renderer, mapper, optionChangesService, dependencyDomService, editService, localizationService, hostElement, zone, navigationService) {
|
|
109
119
|
var _this = this;
|
|
110
120
|
this.timelineViewService = timelineViewService;
|
|
111
121
|
this.scrollSyncService = scrollSyncService;
|
|
@@ -117,13 +127,33 @@ var GanttComponent = /** @class */ (function () {
|
|
|
117
127
|
this.localizationService = localizationService;
|
|
118
128
|
this.hostElement = hostElement;
|
|
119
129
|
this.zone = zone;
|
|
130
|
+
this.navigationService = navigationService;
|
|
131
|
+
/**
|
|
132
|
+
* @hidden
|
|
133
|
+
*/
|
|
134
|
+
this.roleDescription = 'Gantt Chart';
|
|
135
|
+
/**
|
|
136
|
+
* @hidden
|
|
137
|
+
*/
|
|
138
|
+
this.role = 'application';
|
|
120
139
|
this.hostClasses = true;
|
|
121
140
|
/**
|
|
122
|
-
*
|
|
141
|
+
* Specifies a callback that determines if the given task is selected ([see example]({% slug selection_gantt %}#toc-custom-selection)).
|
|
123
142
|
*
|
|
124
143
|
* > The [`selectable`]({% slug api_gantt_ganttcomponent %}#toc-selectable) prop has to be set to `true` in order for this callback to be executed.
|
|
125
144
|
*/
|
|
126
145
|
this.isSelected = isSelected;
|
|
146
|
+
/**
|
|
147
|
+
* Specifies a callback that determines if a new dependency is valid.
|
|
148
|
+
* Used when evaluating if an attempt to create a new dependency will result in a valid link between the two tasks
|
|
149
|
+
* [see example]({% slug editing_drag_create_dependencies_gantt %}#toc-validation).
|
|
150
|
+
*
|
|
151
|
+
* By defalut, dependencies are deemed invalid when:
|
|
152
|
+
* - The two tasks are in a parent-child relationship.
|
|
153
|
+
* - The two tasks are already dependent on one another. Only one dependency is allowed per pair.
|
|
154
|
+
* - The start or end times of the two tasks are incompatible with the attempted dependency type.
|
|
155
|
+
*/
|
|
156
|
+
this.validateNewDependency = this.defaultValidateNewDependencyCallback.bind(this);
|
|
127
157
|
/**
|
|
128
158
|
* Fires when the Gantt selection is changed through user interaction.
|
|
129
159
|
*
|
|
@@ -177,6 +207,12 @@ var GanttComponent = /** @class */ (function () {
|
|
|
177
207
|
* The end of the work week (index based).
|
|
178
208
|
*/
|
|
179
209
|
this.workWeekEnd = 5;
|
|
210
|
+
/**
|
|
211
|
+
* If set to `true`, the user can use dedicated shortcuts to interact with the Gantt.
|
|
212
|
+
* By default, navigation is disabled for the TreeList and Timeline parts of the component,
|
|
213
|
+
* ([see example]({% slug keyboard_navigation_gantt %})).
|
|
214
|
+
*/
|
|
215
|
+
this.navigable = false;
|
|
180
216
|
/**
|
|
181
217
|
* Indicates whether the Gantt columns will be resized during initialization so that they fit their headers and row content.
|
|
182
218
|
* Columns with autoSize set to false are excluded.
|
|
@@ -220,7 +256,8 @@ var GanttComponent = /** @class */ (function () {
|
|
|
220
256
|
*/
|
|
221
257
|
this.cellClose = new EventEmitter();
|
|
222
258
|
/**
|
|
223
|
-
* Fires when the end user clicks the `Delete` button in the task editing dialog
|
|
259
|
+
* Fires when the end user clicks the `Delete` button in the task editing dialog,
|
|
260
|
+
* the task delete icon, or presses the `Delete` key on the keyboard when a task in the timeline is focused.
|
|
224
261
|
* Use the event handler to open a confirmation dialog when necessary.
|
|
225
262
|
*/
|
|
226
263
|
this.taskDelete = new EventEmitter();
|
|
@@ -244,6 +281,11 @@ var GanttComponent = /** @class */ (function () {
|
|
|
244
281
|
* Fires when the user adds a task.
|
|
245
282
|
*/
|
|
246
283
|
this.taskAdd = new EventEmitter();
|
|
284
|
+
/**
|
|
285
|
+
* Fires when the user adds a dependency via dragging
|
|
286
|
+
* [see example]({% slug editing_drag_create_dependencies_gantt %}#toc-basic-concepts).
|
|
287
|
+
*/
|
|
288
|
+
this.dependencyAdd = new EventEmitter();
|
|
247
289
|
/**
|
|
248
290
|
* Fires when the sorting of the Gantt is changed.
|
|
249
291
|
* You have to handle the event yourself and sort the data.
|
|
@@ -300,6 +342,15 @@ var GanttComponent = /** @class */ (function () {
|
|
|
300
342
|
* Fires when a task is clicked.
|
|
301
343
|
*/
|
|
302
344
|
this.taskClick = new EventEmitter();
|
|
345
|
+
/**
|
|
346
|
+
* @hidden
|
|
347
|
+
*
|
|
348
|
+
* Specifies whether the dependency drag clues will be rendered.
|
|
349
|
+
* Set internally by the dependency-drag-create directive.
|
|
350
|
+
*
|
|
351
|
+
* @default false
|
|
352
|
+
*/
|
|
353
|
+
this.renderDependencyDragClues = false;
|
|
303
354
|
/**
|
|
304
355
|
* @hidden
|
|
305
356
|
*
|
|
@@ -316,6 +367,7 @@ var GanttComponent = /** @class */ (function () {
|
|
|
316
367
|
this.showConfirmationDialog = false;
|
|
317
368
|
this._columns = new QueryList();
|
|
318
369
|
this._data = [];
|
|
370
|
+
this._dragScrollSettings = tslib_1.__assign({}, DEFAULT_DRAG_SCROLL_SETTINGS);
|
|
319
371
|
this._timelinePaneOptions = tslib_1.__assign({}, DEFAULT_TIMELINE_PANE_SETTINGS);
|
|
320
372
|
this._treeListPaneOptions = tslib_1.__assign({}, DEFAULT_TREELIST_PANE_SETTINGS);
|
|
321
373
|
this._rowClass = rowClassCallback;
|
|
@@ -340,7 +392,13 @@ var GanttComponent = /** @class */ (function () {
|
|
|
340
392
|
}));
|
|
341
393
|
this.editService.getSelectedItem = this.getFirstSelectedItem.bind(this);
|
|
342
394
|
this.editServiceSubscription.add(this.editService.showEditingDialog.subscribe(function (show) { return _this.showEditingDialog = show; }));
|
|
343
|
-
this.editServiceSubscription.add(this.editService.
|
|
395
|
+
this.editServiceSubscription.add(this.editService.taskDelete.subscribe(function (task) {
|
|
396
|
+
if (hasObservers(_this.taskDelete)) {
|
|
397
|
+
_this.zone.run(function () {
|
|
398
|
+
return _this.notifyTaskDelete(task);
|
|
399
|
+
});
|
|
400
|
+
}
|
|
401
|
+
}));
|
|
344
402
|
this.editServiceSubscription.add(this.editService.editEvent.subscribe(function (args) {
|
|
345
403
|
_this[args.editResultType].emit({
|
|
346
404
|
taskFormGroup: args.taskFormGroup,
|
|
@@ -351,6 +409,9 @@ var GanttComponent = /** @class */ (function () {
|
|
|
351
409
|
_this.showConfirmationDialog = _this.showEditingDialog = false;
|
|
352
410
|
_this.editService.dataItem = _this.editService.taskFormGroup = null;
|
|
353
411
|
_this.updateView();
|
|
412
|
+
if (_this.navigable) {
|
|
413
|
+
_this.focus();
|
|
414
|
+
}
|
|
354
415
|
}));
|
|
355
416
|
this.editServiceSubscription.add(this.editService.addEvent.subscribe(function (args) {
|
|
356
417
|
var selectedItem = _this.getFirstSelectedItem();
|
|
@@ -380,6 +441,20 @@ var GanttComponent = /** @class */ (function () {
|
|
|
380
441
|
enumerable: true,
|
|
381
442
|
configurable: true
|
|
382
443
|
});
|
|
444
|
+
Object.defineProperty(GanttComponent.prototype, "hostRoleDescriptionAttr", {
|
|
445
|
+
get: function () {
|
|
446
|
+
return this.roleDescription;
|
|
447
|
+
},
|
|
448
|
+
enumerable: true,
|
|
449
|
+
configurable: true
|
|
450
|
+
});
|
|
451
|
+
Object.defineProperty(GanttComponent.prototype, "hostRoleAttr", {
|
|
452
|
+
get: function () {
|
|
453
|
+
return this.role;
|
|
454
|
+
},
|
|
455
|
+
enumerable: true,
|
|
456
|
+
configurable: true
|
|
457
|
+
});
|
|
383
458
|
Object.defineProperty(GanttComponent.prototype, "dir", {
|
|
384
459
|
get: function () {
|
|
385
460
|
return this.direction;
|
|
@@ -594,6 +669,21 @@ var GanttComponent = /** @class */ (function () {
|
|
|
594
669
|
enumerable: true,
|
|
595
670
|
configurable: true
|
|
596
671
|
});
|
|
672
|
+
Object.defineProperty(GanttComponent.prototype, "dragScrollSettings", {
|
|
673
|
+
get: function () {
|
|
674
|
+
return this._dragScrollSettings;
|
|
675
|
+
},
|
|
676
|
+
/**
|
|
677
|
+
* Specifies the settings for auto-scrolling during dragging
|
|
678
|
+
* when the pointer moves outside of the container bounderies
|
|
679
|
+
* [see example]({% slug editing_drag_create_dependencies_gantt %}#toc-auto-scrolling).
|
|
680
|
+
*/
|
|
681
|
+
set: function (settings) {
|
|
682
|
+
this._dragScrollSettings = tslib_1.__assign({}, DEFAULT_DRAG_SCROLL_SETTINGS, settings);
|
|
683
|
+
},
|
|
684
|
+
enumerable: true,
|
|
685
|
+
configurable: true
|
|
686
|
+
});
|
|
597
687
|
Object.defineProperty(GanttComponent.prototype, "renderedTreeListItems", {
|
|
598
688
|
/**
|
|
599
689
|
* @hidden
|
|
@@ -607,6 +697,19 @@ var GanttComponent = /** @class */ (function () {
|
|
|
607
697
|
enumerable: true,
|
|
608
698
|
configurable: true
|
|
609
699
|
});
|
|
700
|
+
Object.defineProperty(GanttComponent.prototype, "viewItems", {
|
|
701
|
+
/**
|
|
702
|
+
* @hidden
|
|
703
|
+
*/
|
|
704
|
+
get: function () {
|
|
705
|
+
if (!isPresent(this.treeList)) {
|
|
706
|
+
return [];
|
|
707
|
+
}
|
|
708
|
+
return this.treeList.view.data;
|
|
709
|
+
},
|
|
710
|
+
enumerable: true,
|
|
711
|
+
configurable: true
|
|
712
|
+
});
|
|
610
713
|
Object.defineProperty(GanttComponent.prototype, "filterMenu", {
|
|
611
714
|
/**
|
|
612
715
|
* @hidden
|
|
@@ -670,6 +773,16 @@ var GanttComponent = /** @class */ (function () {
|
|
|
670
773
|
enumerable: true,
|
|
671
774
|
configurable: true
|
|
672
775
|
});
|
|
776
|
+
Object.defineProperty(GanttComponent.prototype, "isInEditMode", {
|
|
777
|
+
/**
|
|
778
|
+
* @hidden
|
|
779
|
+
*/
|
|
780
|
+
get: function () {
|
|
781
|
+
return this.showEditingDialog || this.showConfirmationDialog || this.treeList.isEditing();
|
|
782
|
+
},
|
|
783
|
+
enumerable: true,
|
|
784
|
+
configurable: true
|
|
785
|
+
});
|
|
673
786
|
GanttComponent.prototype.ngOnChanges = function (changes) {
|
|
674
787
|
if (anyChanged(['data', 'activeView', 'workWeekStart', 'workWeekEnd', 'workDayStart', 'workDayEnd'], changes)) {
|
|
675
788
|
this.loadTimelineData();
|
|
@@ -677,6 +790,14 @@ var GanttComponent = /** @class */ (function () {
|
|
|
677
790
|
};
|
|
678
791
|
GanttComponent.prototype.ngAfterViewInit = function () {
|
|
679
792
|
this.updateTreeListMargin();
|
|
793
|
+
if (this.navigable) {
|
|
794
|
+
this.navigationService.initialize({
|
|
795
|
+
gantt: this,
|
|
796
|
+
host: this.hostElement.nativeElement,
|
|
797
|
+
treeListElement: this.treeList.wrapper.nativeElement,
|
|
798
|
+
timelineElement: this.timeline.timelineContent.nativeElement
|
|
799
|
+
});
|
|
800
|
+
}
|
|
680
801
|
var leftContainer = this.treeList.wrapper.nativeElement.querySelector('kendo-treelist-list > div');
|
|
681
802
|
this.scrollSyncService.registerElement(leftContainer, 'treelist');
|
|
682
803
|
};
|
|
@@ -694,6 +815,34 @@ var GanttComponent = /** @class */ (function () {
|
|
|
694
815
|
this.localizationSubscription.unsubscribe();
|
|
695
816
|
}
|
|
696
817
|
};
|
|
818
|
+
/**
|
|
819
|
+
* Focuses the last active cell or task in the Gantt.
|
|
820
|
+
* If no item has previously been focused, the first cell of the TreeList part will receive focus,
|
|
821
|
+
* ([see example]({% slug keyboard_navigation_gantt %}#toc-controlling-the-focus)).
|
|
822
|
+
*/
|
|
823
|
+
GanttComponent.prototype.focus = function () {
|
|
824
|
+
if (this.navigable) {
|
|
825
|
+
this.navigationService.focusLastActiveItem();
|
|
826
|
+
}
|
|
827
|
+
};
|
|
828
|
+
/**
|
|
829
|
+
* Focuses the targeted cell in the TreeList part of the component,
|
|
830
|
+
* ([see example]({% slug keyboard_navigation_gantt %}#toc-controlling-the-focus)).
|
|
831
|
+
*/
|
|
832
|
+
GanttComponent.prototype.focusCell = function (rowIndex, colIndex) {
|
|
833
|
+
if (this.navigable) {
|
|
834
|
+
this.navigationService.focusCell(rowIndex, colIndex);
|
|
835
|
+
}
|
|
836
|
+
};
|
|
837
|
+
/**
|
|
838
|
+
* Focuses the targeted task in the Timeline part of the component,
|
|
839
|
+
* ([see example]({% slug keyboard_navigation_gantt %}#toc-controlling-the-focus)).
|
|
840
|
+
*/
|
|
841
|
+
GanttComponent.prototype.focusTask = function (taskIndex) {
|
|
842
|
+
if (this.navigable) {
|
|
843
|
+
this.navigationService.focusTask(taskIndex);
|
|
844
|
+
}
|
|
845
|
+
};
|
|
697
846
|
/**
|
|
698
847
|
* Applies the minimum possible width for the specified column,
|
|
699
848
|
* so that the whole text fits without wrapping. This method expects the Gantt
|
|
@@ -783,6 +932,15 @@ var GanttComponent = /** @class */ (function () {
|
|
|
783
932
|
GanttComponent.prototype.openConfirmationDialog = function () {
|
|
784
933
|
this.showConfirmationDialog = true;
|
|
785
934
|
};
|
|
935
|
+
/**
|
|
936
|
+
* @hidden
|
|
937
|
+
*/
|
|
938
|
+
GanttComponent.prototype.handleConfirmationDialogClose = function () {
|
|
939
|
+
this.showConfirmationDialog = false;
|
|
940
|
+
if (this.navigable) {
|
|
941
|
+
this.focus();
|
|
942
|
+
}
|
|
943
|
+
};
|
|
786
944
|
/**
|
|
787
945
|
* Opens a cell for editing.
|
|
788
946
|
*/
|
|
@@ -868,7 +1026,7 @@ var GanttComponent = /** @class */ (function () {
|
|
|
868
1026
|
if (hasObservers(this.taskClick)) {
|
|
869
1027
|
var taskIndex_1 = getClosestTaskIndex(target, gantt);
|
|
870
1028
|
var task_1 = this.renderedTreeListItems[taskIndex_1];
|
|
871
|
-
this.zone.run(function () { return _this.
|
|
1029
|
+
this.zone.run(function () { return _this.notifyTaskClick(event, task_1, taskIndex_1); });
|
|
872
1030
|
}
|
|
873
1031
|
};
|
|
874
1032
|
/**
|
|
@@ -887,8 +1045,8 @@ var GanttComponent = /** @class */ (function () {
|
|
|
887
1045
|
if ((hasObservers(this.selectionChange) && !this.isSameSelection(selectionAction, task)) ||
|
|
888
1046
|
hasObservers(this.taskClick)) {
|
|
889
1047
|
this.zone.run(function () {
|
|
890
|
-
_this.
|
|
891
|
-
_this.
|
|
1048
|
+
_this.notifySelectionChange(task, selectionAction);
|
|
1049
|
+
_this.notifyTaskClick(event, task, taskIndex);
|
|
892
1050
|
});
|
|
893
1051
|
}
|
|
894
1052
|
};
|
|
@@ -926,7 +1084,7 @@ var GanttComponent = /** @class */ (function () {
|
|
|
926
1084
|
}
|
|
927
1085
|
var task = event.items.map(function (item) { return item.dataItem; })[0]; // single selection only currently available
|
|
928
1086
|
var action = event.action;
|
|
929
|
-
this.
|
|
1087
|
+
this.notifySelectionChange(task, action);
|
|
930
1088
|
};
|
|
931
1089
|
/**
|
|
932
1090
|
* @hidden
|
|
@@ -978,7 +1136,7 @@ var GanttComponent = /** @class */ (function () {
|
|
|
978
1136
|
dataItem: task_2,
|
|
979
1137
|
originalEvent: event,
|
|
980
1138
|
sender: _this,
|
|
981
|
-
|
|
1139
|
+
index: taskIndex_2,
|
|
982
1140
|
type: 'dblclick'
|
|
983
1141
|
}); });
|
|
984
1142
|
}
|
|
@@ -989,16 +1147,35 @@ var GanttComponent = /** @class */ (function () {
|
|
|
989
1147
|
GanttComponent.prototype.getText = function (token) {
|
|
990
1148
|
return this.localizationService.get(token);
|
|
991
1149
|
};
|
|
992
|
-
|
|
1150
|
+
/**
|
|
1151
|
+
* @hidden
|
|
1152
|
+
*/
|
|
1153
|
+
GanttComponent.prototype.changeActiveView = function (view) {
|
|
1154
|
+
if (view !== this.activeView) {
|
|
1155
|
+
this.activeView = view;
|
|
1156
|
+
this.loadTimelineData();
|
|
1157
|
+
this.scrollSyncService.resetTimelineScrollLeft();
|
|
1158
|
+
this.activeViewChange.emit(view);
|
|
1159
|
+
}
|
|
1160
|
+
};
|
|
1161
|
+
/**
|
|
1162
|
+
* @hidden
|
|
1163
|
+
*/
|
|
1164
|
+
GanttComponent.prototype.notifyTaskClick = function (event, dataItem, itemIndex) {
|
|
1165
|
+
// simulates the TreeList `cellClick` event triggered by enter press (type: 'click')
|
|
1166
|
+
var type = event instanceof KeyboardEvent ? 'click' : event.type;
|
|
993
1167
|
this.taskClick.emit({
|
|
994
1168
|
originalEvent: event,
|
|
995
1169
|
dataItem: dataItem,
|
|
996
|
-
|
|
997
|
-
type:
|
|
1170
|
+
index: itemIndex,
|
|
1171
|
+
type: type,
|
|
998
1172
|
sender: this
|
|
999
1173
|
});
|
|
1000
1174
|
};
|
|
1001
|
-
|
|
1175
|
+
/**
|
|
1176
|
+
* @hidden
|
|
1177
|
+
*/
|
|
1178
|
+
GanttComponent.prototype.notifySelectionChange = function (dataItem, action) {
|
|
1002
1179
|
if (this.isSameSelection(action, dataItem)) {
|
|
1003
1180
|
return;
|
|
1004
1181
|
}
|
|
@@ -1009,6 +1186,30 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1009
1186
|
});
|
|
1010
1187
|
this.treeList.updateView();
|
|
1011
1188
|
};
|
|
1189
|
+
/**
|
|
1190
|
+
* @hidden
|
|
1191
|
+
*/
|
|
1192
|
+
GanttComponent.prototype.notifyTaskDelete = function (task) {
|
|
1193
|
+
this.editService.dataItem = task;
|
|
1194
|
+
this.taskDelete.emit({
|
|
1195
|
+
item: getEditItem(task, this.treeList.view.data, this.mapper),
|
|
1196
|
+
sender: this
|
|
1197
|
+
});
|
|
1198
|
+
};
|
|
1199
|
+
/**
|
|
1200
|
+
* @hidden
|
|
1201
|
+
*/
|
|
1202
|
+
GanttComponent.prototype.isSameSelection = function (action, dataItem) {
|
|
1203
|
+
return action === 'select' && this.isSelected(dataItem);
|
|
1204
|
+
};
|
|
1205
|
+
/**
|
|
1206
|
+
* @hidden
|
|
1207
|
+
*/
|
|
1208
|
+
GanttComponent.prototype.getSelectionAction = function (_a, dataItem) {
|
|
1209
|
+
var ctrlKey = _a.ctrlKey, metaKey = _a.metaKey;
|
|
1210
|
+
var shouldToggleSelection = ctrlKey || metaKey;
|
|
1211
|
+
return (shouldToggleSelection && this.isSelected(dataItem)) ? 'remove' : 'select';
|
|
1212
|
+
};
|
|
1012
1213
|
GanttComponent.prototype.updateTreeListGroupClass = function (columns) {
|
|
1013
1214
|
if (columns === void 0) { columns = this.columns; }
|
|
1014
1215
|
if (!isPresent(this.treeList)) {
|
|
@@ -1039,24 +1240,70 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1039
1240
|
}
|
|
1040
1241
|
return this.views.find(function (view) { return view.type === _this.activeView; });
|
|
1041
1242
|
};
|
|
1042
|
-
GanttComponent.prototype.isSameSelection = function (action, dataItem) {
|
|
1043
|
-
return action === 'select' && this.isSelected(dataItem);
|
|
1044
|
-
};
|
|
1045
|
-
GanttComponent.prototype.getSelectionAction = function (_a, dataItem) {
|
|
1046
|
-
var ctrlKey = _a.ctrlKey, metaKey = _a.metaKey;
|
|
1047
|
-
var shouldToggleSelection = ctrlKey || metaKey;
|
|
1048
|
-
return (shouldToggleSelection && this.isSelected(dataItem)) ? 'remove' : 'select';
|
|
1049
|
-
};
|
|
1050
1243
|
GanttComponent.prototype.getFirstSelectedItem = function () {
|
|
1051
1244
|
var isSelectedCallback = this.isSelected || isSelected;
|
|
1052
1245
|
var loadedItems = this.renderedTreeListItems || [];
|
|
1053
1246
|
return loadedItems.find(isSelectedCallback);
|
|
1054
1247
|
};
|
|
1248
|
+
GanttComponent.prototype.defaultValidateNewDependencyCallback = function (dependency) {
|
|
1249
|
+
var _this = this;
|
|
1250
|
+
var fromTaskId = this.mapper.extractFromDependency(dependency, 'fromId');
|
|
1251
|
+
var toTaskId = this.mapper.extractFromDependency(dependency, 'toId');
|
|
1252
|
+
var fromTask = this.treeList.view.data.find(function (task) {
|
|
1253
|
+
return _this.mapper.extractFromTask(task.data, 'id') === fromTaskId;
|
|
1254
|
+
});
|
|
1255
|
+
var toTask = this.treeList.view.data.find(function (task) {
|
|
1256
|
+
return _this.mapper.extractFromTask(task.data, 'id') === toTaskId;
|
|
1257
|
+
});
|
|
1258
|
+
// mark as invalid if the attempted dependency is lacking valid from- and to-tasks
|
|
1259
|
+
// or when the from- and to-tasks are actually the same task
|
|
1260
|
+
if (!isPresent(fromTask) || !isPresent(fromTask.data) ||
|
|
1261
|
+
!isPresent(toTask) || !isPresent(toTask.data) ||
|
|
1262
|
+
fromTask.data === toTask.data) {
|
|
1263
|
+
return false;
|
|
1264
|
+
}
|
|
1265
|
+
var tasksDependentOnOneAnother = this.dependencies.some(function (current) {
|
|
1266
|
+
var currentFromId = _this.mapper.extractFromDependency(current, 'fromId');
|
|
1267
|
+
var currentToId = _this.mapper.extractFromDependency(current, 'toId');
|
|
1268
|
+
return (fromTaskId === currentFromId && toTaskId === currentToId) ||
|
|
1269
|
+
(toTaskId === currentFromId && fromTaskId === currentToId);
|
|
1270
|
+
});
|
|
1271
|
+
// mark as invalid if the attempted dependency is trying to connect already dependent tasks
|
|
1272
|
+
// mark as invalid if the two tasks are in parent-child relationship
|
|
1273
|
+
if (tasksDependentOnOneAnother || areParentChild(fromTask, toTask)) {
|
|
1274
|
+
return false;
|
|
1275
|
+
}
|
|
1276
|
+
var fromTaskStart = this.mapper.extractFromTask(fromTask.data, 'start');
|
|
1277
|
+
var fromTaskEnd = this.mapper.extractFromTask(fromTask.data, 'end');
|
|
1278
|
+
var toTaskStart = this.mapper.extractFromTask(toTask.data, 'start');
|
|
1279
|
+
var toTaskEnd = this.mapper.extractFromTask(toTask.data, 'end');
|
|
1280
|
+
// if the two tasks are available to be connected via a dependency,
|
|
1281
|
+
// check if their start and end time allow for the attempted dependency type
|
|
1282
|
+
switch (this.mapper.extractFromDependency(dependency, 'type')) {
|
|
1283
|
+
// finish to finish (FF) — the from-task ends before the to-task can end
|
|
1284
|
+
case DependencyType.FF:
|
|
1285
|
+
return fromTaskEnd <= toTaskEnd;
|
|
1286
|
+
// finish to start (FS) — the from-task ends before the to-task can begin
|
|
1287
|
+
case DependencyType.FS:
|
|
1288
|
+
return fromTaskEnd <= toTaskStart;
|
|
1289
|
+
// start to finish (SF) — the from-task begins before the to-task can end
|
|
1290
|
+
case DependencyType.SF:
|
|
1291
|
+
return fromTaskStart <= toTaskEnd;
|
|
1292
|
+
// start to start (SS) — the from-task begins before the to-task can begin
|
|
1293
|
+
case DependencyType.SS:
|
|
1294
|
+
return fromTaskStart <= toTaskStart;
|
|
1295
|
+
default: return false;
|
|
1296
|
+
}
|
|
1297
|
+
};
|
|
1055
1298
|
var GanttComponent_1;
|
|
1056
1299
|
tslib_1.__decorate([
|
|
1057
1300
|
ViewChild(TreeListComponent, { static: true }),
|
|
1058
1301
|
tslib_1.__metadata("design:type", TreeListComponent)
|
|
1059
1302
|
], GanttComponent.prototype, "treeList", void 0);
|
|
1303
|
+
tslib_1.__decorate([
|
|
1304
|
+
ViewChild(GanttTimelineComponent, { static: false }),
|
|
1305
|
+
tslib_1.__metadata("design:type", GanttTimelineComponent)
|
|
1306
|
+
], GanttComponent.prototype, "timeline", void 0);
|
|
1060
1307
|
tslib_1.__decorate([
|
|
1061
1308
|
ContentChild(GanttTaskContentTemplateDirective, { static: true }),
|
|
1062
1309
|
tslib_1.__metadata("design:type", GanttTaskContentTemplateDirective)
|
|
@@ -1073,6 +1320,24 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1073
1320
|
ContentChildren(ToolbarTemplateDirective),
|
|
1074
1321
|
tslib_1.__metadata("design:type", QueryList)
|
|
1075
1322
|
], GanttComponent.prototype, "toolbarTemplateChildren", void 0);
|
|
1323
|
+
tslib_1.__decorate([
|
|
1324
|
+
Input('aria-roledescription'),
|
|
1325
|
+
tslib_1.__metadata("design:type", String)
|
|
1326
|
+
], GanttComponent.prototype, "roleDescription", void 0);
|
|
1327
|
+
tslib_1.__decorate([
|
|
1328
|
+
HostBinding('attr.aria-roledescription'),
|
|
1329
|
+
tslib_1.__metadata("design:type", String),
|
|
1330
|
+
tslib_1.__metadata("design:paramtypes", [])
|
|
1331
|
+
], GanttComponent.prototype, "hostRoleDescriptionAttr", null);
|
|
1332
|
+
tslib_1.__decorate([
|
|
1333
|
+
Input('role'),
|
|
1334
|
+
tslib_1.__metadata("design:type", String)
|
|
1335
|
+
], GanttComponent.prototype, "role", void 0);
|
|
1336
|
+
tslib_1.__decorate([
|
|
1337
|
+
HostBinding('attr.role'),
|
|
1338
|
+
tslib_1.__metadata("design:type", String),
|
|
1339
|
+
tslib_1.__metadata("design:paramtypes", [])
|
|
1340
|
+
], GanttComponent.prototype, "hostRoleAttr", null);
|
|
1076
1341
|
tslib_1.__decorate([
|
|
1077
1342
|
HostBinding('class.k-gantt'),
|
|
1078
1343
|
tslib_1.__metadata("design:type", Boolean)
|
|
@@ -1115,6 +1380,10 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1115
1380
|
Input(),
|
|
1116
1381
|
tslib_1.__metadata("design:type", Function)
|
|
1117
1382
|
], GanttComponent.prototype, "isSelected", void 0);
|
|
1383
|
+
tslib_1.__decorate([
|
|
1384
|
+
Input(),
|
|
1385
|
+
tslib_1.__metadata("design:type", Function)
|
|
1386
|
+
], GanttComponent.prototype, "validateNewDependency", void 0);
|
|
1118
1387
|
tslib_1.__decorate([
|
|
1119
1388
|
Output(),
|
|
1120
1389
|
tslib_1.__metadata("design:type", EventEmitter)
|
|
@@ -1174,6 +1443,10 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1174
1443
|
Input(),
|
|
1175
1444
|
tslib_1.__metadata("design:type", Number)
|
|
1176
1445
|
], GanttComponent.prototype, "workWeekEnd", void 0);
|
|
1446
|
+
tslib_1.__decorate([
|
|
1447
|
+
Input(),
|
|
1448
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
1449
|
+
], GanttComponent.prototype, "navigable", void 0);
|
|
1177
1450
|
tslib_1.__decorate([
|
|
1178
1451
|
Input(),
|
|
1179
1452
|
tslib_1.__metadata("design:type", Object),
|
|
@@ -1214,6 +1487,11 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1214
1487
|
Input(),
|
|
1215
1488
|
tslib_1.__metadata("design:type", Boolean)
|
|
1216
1489
|
], GanttComponent.prototype, "columnsResizable", void 0);
|
|
1490
|
+
tslib_1.__decorate([
|
|
1491
|
+
Input(),
|
|
1492
|
+
tslib_1.__metadata("design:type", Object),
|
|
1493
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
1494
|
+
], GanttComponent.prototype, "dragScrollSettings", null);
|
|
1217
1495
|
tslib_1.__decorate([
|
|
1218
1496
|
Output(),
|
|
1219
1497
|
tslib_1.__metadata("design:type", EventEmitter)
|
|
@@ -1254,6 +1532,10 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1254
1532
|
Output(),
|
|
1255
1533
|
tslib_1.__metadata("design:type", EventEmitter)
|
|
1256
1534
|
], GanttComponent.prototype, "taskAdd", void 0);
|
|
1535
|
+
tslib_1.__decorate([
|
|
1536
|
+
Output(),
|
|
1537
|
+
tslib_1.__metadata("design:type", EventEmitter)
|
|
1538
|
+
], GanttComponent.prototype, "dependencyAdd", void 0);
|
|
1257
1539
|
tslib_1.__decorate([
|
|
1258
1540
|
Output(),
|
|
1259
1541
|
tslib_1.__metadata("design:type", EventEmitter)
|
|
@@ -1329,9 +1611,11 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1329
1611
|
DependencyDomService,
|
|
1330
1612
|
MappingService,
|
|
1331
1613
|
OptionChangesService,
|
|
1332
|
-
EditService
|
|
1614
|
+
EditService,
|
|
1615
|
+
TimelineScrollService,
|
|
1616
|
+
NavigationService
|
|
1333
1617
|
],
|
|
1334
|
-
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\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)=\"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 "
|
|
1618
|
+
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 "
|
|
1335
1619
|
}),
|
|
1336
1620
|
tslib_1.__metadata("design:paramtypes", [TimelineViewService,
|
|
1337
1621
|
ScrollSyncService,
|
|
@@ -1342,7 +1626,8 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1342
1626
|
EditService,
|
|
1343
1627
|
LocalizationService,
|
|
1344
1628
|
ElementRef,
|
|
1345
|
-
NgZone
|
|
1629
|
+
NgZone,
|
|
1630
|
+
NavigationService])
|
|
1346
1631
|
], GanttComponent);
|
|
1347
1632
|
return GanttComponent;
|
|
1348
1633
|
}());
|