@progress/kendo-angular-gantt 0.2.0-dev.202111231320 → 0.2.0-dev.202111241002
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/js/kendo-angular-gantt.js +2 -2
- package/dist/cdn/main.js +2 -2
- package/dist/es/common/default-callbacks.js +4 -0
- package/dist/es/gantt.component.js +187 -32
- package/dist/es/gantt.module.js +3 -1
- package/dist/es/main.js +1 -0
- package/dist/es/package-metadata.js +1 -1
- package/dist/es/rendering/gantt-milestone-task.component.js +1 -1
- package/dist/es/rendering/gantt-summary-task.component.js +1 -1
- package/dist/es/rendering/gantt-task-base.js +8 -4
- package/dist/es/rendering/gantt-task.component.js +1 -1
- package/dist/es/rendering/gantt-tasks-table-body.component.js +3 -3
- package/dist/es/selection/selectable.directive.js +141 -0
- package/dist/es/selection/selection-change-event.js +4 -0
- package/dist/es/timeline/gantt-timeline.component.js +5 -1
- package/dist/es/utils.js +5 -1
- package/dist/es2015/common/default-callbacks.d.ts +4 -0
- package/dist/es2015/common/default-callbacks.js +4 -0
- package/dist/es2015/gantt.component.d.ts +66 -18
- package/dist/es2015/gantt.component.js +191 -34
- package/dist/es2015/gantt.module.js +3 -1
- package/dist/es2015/index.metadata.json +1 -1
- package/dist/es2015/main.d.ts +2 -0
- package/dist/es2015/main.js +1 -0
- package/dist/es2015/models/events/cell-click-event.interface.d.ts +31 -8
- package/dist/es2015/models/events/task-click-event.interface.d.ts +13 -5
- package/dist/es2015/models/models.d.ts +2 -0
- package/dist/es2015/package-metadata.js +1 -1
- package/dist/es2015/rendering/gantt-milestone-task.component.js +1 -0
- package/dist/es2015/rendering/gantt-summary-task.component.js +1 -0
- package/dist/es2015/rendering/gantt-task-base.d.ts +2 -1
- package/dist/es2015/rendering/gantt-task-base.js +8 -4
- package/dist/es2015/rendering/gantt-task.component.js +1 -0
- package/dist/es2015/rendering/gantt-tasks-table-body.component.d.ts +1 -1
- package/dist/es2015/rendering/gantt-tasks-table-body.component.js +5 -2
- package/dist/es2015/selection/selectable.directive.d.ts +42 -0
- package/dist/es2015/selection/selectable.directive.js +122 -0
- package/dist/es2015/selection/selection-change-event.d.ts +25 -0
- package/dist/es2015/selection/selection-change-event.js +4 -0
- package/dist/es2015/timeline/gantt-timeline.component.d.ts +1 -0
- package/dist/es2015/timeline/gantt-timeline.component.js +5 -0
- package/dist/es2015/utils.d.ts +5 -0
- package/dist/es2015/utils.js +5 -1
- package/dist/fesm2015/index.js +334 -39
- package/dist/fesm5/index.js +347 -42
- package/dist/npm/common/default-callbacks.js +4 -0
- package/dist/npm/gantt.component.js +187 -32
- package/dist/npm/gantt.module.js +3 -1
- package/dist/npm/main.js +2 -0
- package/dist/npm/package-metadata.js +1 -1
- package/dist/npm/rendering/gantt-milestone-task.component.js +1 -1
- package/dist/npm/rendering/gantt-summary-task.component.js +1 -1
- package/dist/npm/rendering/gantt-task-base.js +8 -4
- package/dist/npm/rendering/gantt-task.component.js +1 -1
- package/dist/npm/rendering/gantt-tasks-table-body.component.js +3 -3
- package/dist/npm/selection/selectable.directive.js +143 -0
- package/dist/npm/selection/selection-change-event.js +6 -0
- package/dist/npm/timeline/gantt-timeline.component.js +5 -1
- package/dist/npm/utils.js +4 -0
- package/dist/systemjs/kendo-angular-gantt.js +1 -1
- package/package.json +1 -1
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
6
|
import { Component, forwardRef, HostBinding, Input, Output, EventEmitter, ViewChild, ContentChildren, ContentChild, QueryList, isDevMode, Renderer2, ElementRef, NgZone } from '@angular/core';
|
|
7
|
-
import { DataBoundTreeComponent, ExpandableTreeComponent } from '@progress/kendo-angular-treelist';
|
|
8
|
-
import {
|
|
7
|
+
import { TreeListComponent, DataBoundTreeComponent, ExpandableTreeComponent } from '@progress/kendo-angular-treelist';
|
|
8
|
+
import { Day } from '@progress/kendo-date-math';
|
|
9
9
|
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
13
|
import { GanttColumnBase } from './columns/columns';
|
|
14
|
-
import { fetchChildren, hasChildren, rowClassCallback, taskClassCallback } from './common/default-callbacks';
|
|
14
|
+
import { fetchChildren, hasChildren, isSelected, rowClassCallback, taskClassCallback } from './common/default-callbacks';
|
|
15
15
|
import { TimelineViewService } from './timeline/timeline-view.service';
|
|
16
16
|
import { TimelineDayViewService } from './timeline/timeline-day-view.service';
|
|
17
17
|
import { TimelineWeekViewService } from './timeline/timeline-week-view.service';
|
|
@@ -29,7 +29,6 @@ import { GanttSummaryTaskTemplateDirective } from './template-directives/summary
|
|
|
29
29
|
import { GanttTaskContentTemplateDirective } from './template-directives/task-content-template.directive';
|
|
30
30
|
import { ToolbarTemplateDirective } from './toolbar/toolbar-template.directive';
|
|
31
31
|
import { ViewBase } from './timeline/view-base';
|
|
32
|
-
import { Day } from '@progress/kendo-date-math';
|
|
33
32
|
import { getEditItem } from './editing/util';
|
|
34
33
|
var TREELIST_GROUP_COLUMNS_CLASS = 'k-gantt-treelist-nested-columns';
|
|
35
34
|
var DEFAULT_VIEW = 'week';
|
|
@@ -118,6 +117,27 @@ var GanttComponent = /** @class */ (function () {
|
|
|
118
117
|
this.hostElement = hostElement;
|
|
119
118
|
this.zone = zone;
|
|
120
119
|
this.hostClasses = true;
|
|
120
|
+
/**
|
|
121
|
+
* Provides a callback that determines if the given task is selected ([see example]({% slug selection_gantt %}#toc-custom-selection))
|
|
122
|
+
*
|
|
123
|
+
* > The [`selectable`]({% slug gantt_api_ganttcomponent %}#toc-selectable) prop has to be set to `true` in order for this callback to be executed.
|
|
124
|
+
*/
|
|
125
|
+
this.isSelected = isSelected;
|
|
126
|
+
/**
|
|
127
|
+
* Fires when the Gantt selection is changed through user interaction.
|
|
128
|
+
*
|
|
129
|
+
* Holds data about the affected [`items`]({% slug api_gantt_selectionchangeevent %}#toc-items) and the attempted [`action`]({% slug api_gantt_selectionchangeevent %}#toc-action):
|
|
130
|
+
* - `select` - Triggered on `click` or `ctrl + click` on deselected items.
|
|
131
|
+
* - `remove` - Triggered on `ctrl + click` on selected items.
|
|
132
|
+
*/
|
|
133
|
+
this.selectionChange = new EventEmitter();
|
|
134
|
+
/**
|
|
135
|
+
* Enables or disables the Gantt selection mechanism ([see example]({% slug selection_gantt %}#toc-custom-selection)).
|
|
136
|
+
*
|
|
137
|
+
* > When set to `true`, the [`isSelected`]({% slug gantt_api_ganttcomponent %}#toc-isselected) callback has to be provided.
|
|
138
|
+
* > When applied, the [`SelectableDirective`]({% slug api_gantt_selectabledirective %}) sets `selectable` to `true` internally.
|
|
139
|
+
*/
|
|
140
|
+
this.selectable = false;
|
|
121
141
|
/**
|
|
122
142
|
* The position of the toolbar.
|
|
123
143
|
*
|
|
@@ -286,6 +306,14 @@ var GanttComponent = /** @class */ (function () {
|
|
|
286
306
|
* Fires when the user changes the locked state of the columns from the column menu or by reordering the columns.
|
|
287
307
|
*/
|
|
288
308
|
this.columnLockedChange = new EventEmitter();
|
|
309
|
+
/**
|
|
310
|
+
* Fires when a cell is clicked.
|
|
311
|
+
*/
|
|
312
|
+
this.cellClick = new EventEmitter();
|
|
313
|
+
/**
|
|
314
|
+
* Fires when a task is clicked.
|
|
315
|
+
*/
|
|
316
|
+
this.taskClick = new EventEmitter();
|
|
289
317
|
/**
|
|
290
318
|
* @hidden
|
|
291
319
|
*
|
|
@@ -311,9 +339,6 @@ var GanttComponent = /** @class */ (function () {
|
|
|
311
339
|
this.optionChangesSubscriptions = new Subscription();
|
|
312
340
|
this.editServiceSubscription = new Subscription();
|
|
313
341
|
validatePackage(packageMetadata);
|
|
314
|
-
this.handleTimelineDblClick = this.handleTimelineDblClick.bind(this);
|
|
315
|
-
this.handleTimelineMouseDown = this.handleTimelineMouseDown.bind(this);
|
|
316
|
-
this.handleDoubleClick = this.handleDoubleClick.bind(this);
|
|
317
342
|
this.optionChangesSubscriptions.add(this.optionChangesService.viewChanges.subscribe(function () {
|
|
318
343
|
_this.loadTimelineData();
|
|
319
344
|
}));
|
|
@@ -549,6 +574,19 @@ var GanttComponent = /** @class */ (function () {
|
|
|
549
574
|
enumerable: true,
|
|
550
575
|
configurable: true
|
|
551
576
|
});
|
|
577
|
+
Object.defineProperty(GanttComponent.prototype, "isTaskSelected", {
|
|
578
|
+
/**
|
|
579
|
+
* @hidden
|
|
580
|
+
*
|
|
581
|
+
* Retrieves the `isSelected` callback if `selectable` is set to `true`
|
|
582
|
+
* Otherwise returns the default callback, which always returns `false`.
|
|
583
|
+
*/
|
|
584
|
+
get: function () {
|
|
585
|
+
return this.selectable ? this.isSelected : isSelected;
|
|
586
|
+
},
|
|
587
|
+
enumerable: true,
|
|
588
|
+
configurable: true
|
|
589
|
+
});
|
|
552
590
|
Object.defineProperty(GanttComponent.prototype, "idGetter", {
|
|
553
591
|
/**
|
|
554
592
|
* @hidden
|
|
@@ -657,6 +695,14 @@ var GanttComponent = /** @class */ (function () {
|
|
|
657
695
|
this.treeList.reorderColumn(source, destIndex, options);
|
|
658
696
|
}
|
|
659
697
|
};
|
|
698
|
+
/**
|
|
699
|
+
* Updates the data of the Gantt and forces row-related callbacks to be called anew.
|
|
700
|
+
*/
|
|
701
|
+
GanttComponent.prototype.updateView = function () {
|
|
702
|
+
if (isPresent(this.treeList)) {
|
|
703
|
+
this.treeList.updateView();
|
|
704
|
+
}
|
|
705
|
+
};
|
|
660
706
|
/**
|
|
661
707
|
* Opens the task editing dialog.
|
|
662
708
|
*/
|
|
@@ -717,16 +763,6 @@ var GanttComponent = /** @class */ (function () {
|
|
|
717
763
|
this.dependencyDomService.notifyChanges();
|
|
718
764
|
}
|
|
719
765
|
};
|
|
720
|
-
/**
|
|
721
|
-
* @hidden
|
|
722
|
-
*
|
|
723
|
-
* Used by the GanttExpandableDirective.
|
|
724
|
-
*/
|
|
725
|
-
GanttComponent.prototype.updateView = function () {
|
|
726
|
-
if (isPresent(this.treeList)) {
|
|
727
|
-
this.treeList.updateView();
|
|
728
|
-
}
|
|
729
|
-
};
|
|
730
766
|
/**
|
|
731
767
|
* @hidden
|
|
732
768
|
*/
|
|
@@ -764,25 +800,92 @@ var GanttComponent = /** @class */ (function () {
|
|
|
764
800
|
/**
|
|
765
801
|
* @hidden
|
|
766
802
|
*/
|
|
767
|
-
GanttComponent.prototype.
|
|
768
|
-
|
|
803
|
+
GanttComponent.prototype.handleTimelineRightClick = function (event) {
|
|
804
|
+
var _this = this;
|
|
805
|
+
var target = event.target;
|
|
806
|
+
var gantt = this.hostElement.nativeElement;
|
|
807
|
+
if (!isTask(target, gantt) || isClearButton(target, gantt)) {
|
|
808
|
+
return;
|
|
809
|
+
}
|
|
810
|
+
if (hasObservers(this.taskClick)) {
|
|
811
|
+
var taskIndex_1 = getClosestTaskIndex(target, gantt);
|
|
812
|
+
var task_1 = this.renderedTreeListItems[taskIndex_1];
|
|
813
|
+
this.zone.run(function () { return _this.emitTaskClick(event, task_1, taskIndex_1); });
|
|
814
|
+
}
|
|
769
815
|
};
|
|
770
816
|
/**
|
|
771
817
|
* @hidden
|
|
772
818
|
*/
|
|
773
|
-
GanttComponent.prototype.
|
|
819
|
+
GanttComponent.prototype.handleTimelineClick = function (event) {
|
|
774
820
|
var _this = this;
|
|
775
|
-
var
|
|
776
|
-
|
|
821
|
+
var target = event.target;
|
|
822
|
+
var gantt = this.hostElement.nativeElement;
|
|
823
|
+
if (!isTask(target, gantt) || isClearButton(target, gantt)) {
|
|
777
824
|
return;
|
|
778
825
|
}
|
|
779
|
-
|
|
826
|
+
var taskIndex = getClosestTaskIndex(target, gantt);
|
|
827
|
+
var task = this.renderedTreeListItems[taskIndex];
|
|
828
|
+
var selectionAction = this.getSelectionAction(event, task);
|
|
829
|
+
if ((hasObservers(this.selectionChange) && !this.isSameSelection(selectionAction, task)) ||
|
|
830
|
+
hasObservers(this.taskClick)) {
|
|
831
|
+
this.zone.run(function () {
|
|
832
|
+
_this.emitSelectionChange(task, selectionAction);
|
|
833
|
+
_this.emitTaskClick(event, task, taskIndex);
|
|
834
|
+
});
|
|
835
|
+
}
|
|
836
|
+
};
|
|
837
|
+
/**
|
|
838
|
+
* @hidden
|
|
839
|
+
*/
|
|
840
|
+
GanttComponent.prototype.handleTreeListDoubleClick = function (event) {
|
|
841
|
+
var _this = this;
|
|
842
|
+
if (!isPresent(this.lastTreeListCellClick) || event.target !== this.lastTreeListCellClick.originalEvent.target) {
|
|
843
|
+
return;
|
|
844
|
+
}
|
|
845
|
+
this.editItem = getEditItem(this.lastTreeListCellClick.dataItem, this.treeList.view.data, this.mapper);
|
|
780
846
|
if (hasObservers(this.cellDblClick)) {
|
|
781
847
|
this.zone.run(function () {
|
|
782
|
-
_this.cellDblClick.emit(
|
|
848
|
+
_this.cellDblClick.emit({
|
|
849
|
+
column: _this.lastTreeListCellClick.column,
|
|
850
|
+
columnIndex: _this.lastTreeListCellClick.columnIndex,
|
|
851
|
+
dataItem: _this.lastTreeListCellClick.dataItem,
|
|
852
|
+
isEdited: _this.lastTreeListCellClick.isEdited,
|
|
853
|
+
originalEvent: _this.lastTreeListCellClick.originalEvent,
|
|
854
|
+
rowIndex: _this.lastTreeListCellClick.rowIndex,
|
|
855
|
+
type: 'dblclick',
|
|
856
|
+
sender: _this
|
|
857
|
+
});
|
|
783
858
|
});
|
|
784
859
|
}
|
|
785
860
|
};
|
|
861
|
+
/**
|
|
862
|
+
* @hidden
|
|
863
|
+
*/
|
|
864
|
+
GanttComponent.prototype.handleTreeListSelectionChange = function (event) {
|
|
865
|
+
// prevent selection change from right-click
|
|
866
|
+
if (isPresent(this.lastTreeListCellClick) && this.lastTreeListCellClick.type === 'contextmenu') {
|
|
867
|
+
return;
|
|
868
|
+
}
|
|
869
|
+
var task = event.items.map(function (item) { return item.dataItem; })[0]; // single selection only currently available
|
|
870
|
+
var action = event.action;
|
|
871
|
+
this.emitSelectionChange(task, action);
|
|
872
|
+
};
|
|
873
|
+
/**
|
|
874
|
+
* @hidden
|
|
875
|
+
*/
|
|
876
|
+
GanttComponent.prototype.handleTreeListCellClick = function (event) {
|
|
877
|
+
this.lastTreeListCellClick = event;
|
|
878
|
+
this.cellClick.emit({
|
|
879
|
+
column: event.column,
|
|
880
|
+
columnIndex: event.columnIndex,
|
|
881
|
+
dataItem: event.dataItem,
|
|
882
|
+
isEdited: event.isEdited,
|
|
883
|
+
originalEvent: event.originalEvent,
|
|
884
|
+
rowIndex: event.rowIndex,
|
|
885
|
+
type: event.type,
|
|
886
|
+
sender: this
|
|
887
|
+
});
|
|
888
|
+
};
|
|
786
889
|
/**
|
|
787
890
|
* @hidden
|
|
788
891
|
*/
|
|
@@ -810,13 +913,17 @@ var GanttComponent = /** @class */ (function () {
|
|
|
810
913
|
if (!isTask(target, gantt) || isClearButton(target, gantt)) {
|
|
811
914
|
return;
|
|
812
915
|
}
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
916
|
+
if (hasObservers(this.taskDblClick)) {
|
|
917
|
+
var taskIndex_2 = getClosestTaskIndex(target, gantt);
|
|
918
|
+
var task_2 = this.renderedTreeListItems[taskIndex_2];
|
|
919
|
+
this.zone.run(function () { return _this.taskDblClick.emit({
|
|
920
|
+
dataItem: task_2,
|
|
921
|
+
originalEvent: event,
|
|
922
|
+
sender: _this,
|
|
923
|
+
rowIndex: taskIndex_2,
|
|
924
|
+
type: 'dblclick'
|
|
925
|
+
}); });
|
|
926
|
+
}
|
|
820
927
|
};
|
|
821
928
|
/**
|
|
822
929
|
* @hidden
|
|
@@ -824,6 +931,26 @@ var GanttComponent = /** @class */ (function () {
|
|
|
824
931
|
GanttComponent.prototype.getText = function (token) {
|
|
825
932
|
return this.localizationService.get(token);
|
|
826
933
|
};
|
|
934
|
+
GanttComponent.prototype.emitTaskClick = function (event, dataItem, itemIndex) {
|
|
935
|
+
this.taskClick.emit({
|
|
936
|
+
originalEvent: event,
|
|
937
|
+
dataItem: dataItem,
|
|
938
|
+
rowIndex: itemIndex,
|
|
939
|
+
type: event.type,
|
|
940
|
+
sender: this
|
|
941
|
+
});
|
|
942
|
+
};
|
|
943
|
+
GanttComponent.prototype.emitSelectionChange = function (dataItem, action) {
|
|
944
|
+
if (this.isSameSelection(action, dataItem)) {
|
|
945
|
+
return;
|
|
946
|
+
}
|
|
947
|
+
this.selectionChange.emit({
|
|
948
|
+
action: action,
|
|
949
|
+
items: [dataItem],
|
|
950
|
+
sender: this
|
|
951
|
+
});
|
|
952
|
+
this.updateView();
|
|
953
|
+
};
|
|
827
954
|
GanttComponent.prototype.updateTreeListGroupClass = function (columns) {
|
|
828
955
|
if (columns === void 0) { columns = this.columns; }
|
|
829
956
|
if (!isPresent(this.treeList)) {
|
|
@@ -854,6 +981,14 @@ var GanttComponent = /** @class */ (function () {
|
|
|
854
981
|
}
|
|
855
982
|
return this.views.find(function (view) { return view.type === _this.activeView; });
|
|
856
983
|
};
|
|
984
|
+
GanttComponent.prototype.isSameSelection = function (action, dataItem) {
|
|
985
|
+
return action === 'select' && this.isSelected(dataItem);
|
|
986
|
+
};
|
|
987
|
+
GanttComponent.prototype.getSelectionAction = function (_a, dataItem) {
|
|
988
|
+
var ctrlKey = _a.ctrlKey, metaKey = _a.metaKey;
|
|
989
|
+
var shouldToggleSelection = ctrlKey || metaKey;
|
|
990
|
+
return (shouldToggleSelection && this.isSelected(dataItem)) ? 'remove' : 'select';
|
|
991
|
+
};
|
|
857
992
|
var GanttComponent_1;
|
|
858
993
|
tslib_1.__decorate([
|
|
859
994
|
ViewChild(TreeListComponent, { static: true }),
|
|
@@ -913,6 +1048,18 @@ var GanttComponent = /** @class */ (function () {
|
|
|
913
1048
|
tslib_1.__metadata("design:type", Array),
|
|
914
1049
|
tslib_1.__metadata("design:paramtypes", [Array])
|
|
915
1050
|
], GanttComponent.prototype, "data", null);
|
|
1051
|
+
tslib_1.__decorate([
|
|
1052
|
+
Input(),
|
|
1053
|
+
tslib_1.__metadata("design:type", Function)
|
|
1054
|
+
], GanttComponent.prototype, "isSelected", void 0);
|
|
1055
|
+
tslib_1.__decorate([
|
|
1056
|
+
Output(),
|
|
1057
|
+
tslib_1.__metadata("design:type", EventEmitter)
|
|
1058
|
+
], GanttComponent.prototype, "selectionChange", void 0);
|
|
1059
|
+
tslib_1.__decorate([
|
|
1060
|
+
Input(),
|
|
1061
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
1062
|
+
], GanttComponent.prototype, "selectable", void 0);
|
|
916
1063
|
tslib_1.__decorate([
|
|
917
1064
|
Input(),
|
|
918
1065
|
tslib_1.__metadata("design:type", String)
|
|
@@ -1081,6 +1228,14 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1081
1228
|
Output(),
|
|
1082
1229
|
tslib_1.__metadata("design:type", EventEmitter)
|
|
1083
1230
|
], GanttComponent.prototype, "columnLockedChange", void 0);
|
|
1231
|
+
tslib_1.__decorate([
|
|
1232
|
+
Output(),
|
|
1233
|
+
tslib_1.__metadata("design:type", EventEmitter)
|
|
1234
|
+
], GanttComponent.prototype, "cellClick", void 0);
|
|
1235
|
+
tslib_1.__decorate([
|
|
1236
|
+
Output(),
|
|
1237
|
+
tslib_1.__metadata("design:type", EventEmitter)
|
|
1238
|
+
], GanttComponent.prototype, "taskClick", void 0);
|
|
1084
1239
|
GanttComponent = GanttComponent_1 = tslib_1.__decorate([
|
|
1085
1240
|
Component({
|
|
1086
1241
|
selector: 'kendo-gantt',
|
|
@@ -1105,7 +1260,7 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1105
1260
|
OptionChangesService,
|
|
1106
1261
|
EditService
|
|
1107
1262
|
],
|
|
1108
|
-
template: "\n <ng-container kendoGanttLocalizedMessages\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-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 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 [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 (cellClick)=\"handleCellClick($event)\"\n (cellClose)=\"handleCellClose($event)\"\n [kendoEventsOutsideAngular]=\"{\n dblclick: handleDoubleClick\n }\">\n <kendo-treelist-messages [kendoGanttTreeListMessages]=\"localizationService\"></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 [kendoEventsOutsideAngular]=\"{\n dblclick: handleTimelineDblClick,\n mousedown: handleTimelineMouseDown\n }\"\n ></kendo-gantt-timeline>\n </kendo-splitter-pane>\n </kendo-splitter>\n </div>\n <kendo-gantt-toolbar\n *ngIf=\"showToolbar('bottom')\"\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 "
|
|
1263
|
+
template: "\n <ng-container kendoGanttLocalizedMessages\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-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 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 [kendoGanttTreeListMessages]=\"localizationService\"></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 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 "
|
|
1109
1264
|
}),
|
|
1110
1265
|
tslib_1.__metadata("design:paramtypes", [TimelineViewService,
|
|
1111
1266
|
ScrollSyncService,
|
package/dist/es/gantt.module.js
CHANGED
|
@@ -8,6 +8,7 @@ import { CommonModule } from '@angular/common';
|
|
|
8
8
|
import { SplitterModule } from '@progress/kendo-angular-layout';
|
|
9
9
|
import { TreeListModule } from '@progress/kendo-angular-treelist';
|
|
10
10
|
import { ButtonsModule } from '@progress/kendo-angular-buttons';
|
|
11
|
+
import { EventsModule } from '@progress/kendo-angular-common';
|
|
11
12
|
import { DialogModule } from '@progress/kendo-angular-dialog';
|
|
12
13
|
import { GanttComponent } from './gantt.component';
|
|
13
14
|
import { GanttTimelineComponent } from './timeline/gantt-timeline.component';
|
|
@@ -22,6 +23,7 @@ import { GanttMilestoneTaskComponent } from './rendering/gantt-milestone-task.co
|
|
|
22
23
|
import { GanttFlatBindingDirective } from './binding-directives/flat-binding.directive';
|
|
23
24
|
import { GanttHierarchyBindingDirective } from './binding-directives/hierarchy-binding.directive';
|
|
24
25
|
import { GanttExpandableDirective } from './expanded-state/expandable.directive';
|
|
26
|
+
import { SelectableDirective } from './selection/selectable.directive';
|
|
25
27
|
import { ToolbarComponent } from './toolbar/toolbar.component';
|
|
26
28
|
import { ToolbarTemplateDirective } from './toolbar/toolbar-template.directive';
|
|
27
29
|
import { ViewSelectorComponent } from './toolbar/view-selector.component';
|
|
@@ -39,7 +41,6 @@ import { CustomMessagesComponent } from './localization/custom-messages.componen
|
|
|
39
41
|
import { L10N_PREFIX } from '@progress/kendo-angular-l10n';
|
|
40
42
|
import { LocalizedMessagesDirective } from './localization/localized-messages.directive';
|
|
41
43
|
import { GanttTreeListMessagesDirective } from './localization/treelist-messages.directive';
|
|
42
|
-
import { EventsModule } from '@progress/kendo-angular-common';
|
|
43
44
|
var IMPORTED_MODULES = [
|
|
44
45
|
CommonModule,
|
|
45
46
|
ReactiveFormsModule,
|
|
@@ -84,6 +85,7 @@ var DECLARATIONS = [
|
|
|
84
85
|
TimelineDayViewComponent,
|
|
85
86
|
TimelineWeekViewComponent,
|
|
86
87
|
TimelineMonthViewComponent,
|
|
88
|
+
SelectableDirective,
|
|
87
89
|
EditDialogComponent,
|
|
88
90
|
CustomMessagesComponent,
|
|
89
91
|
LocalizedMessagesDirective,
|
package/dist/es/main.js
CHANGED
|
@@ -11,5 +11,6 @@ export { GanttTaskTemplateDirective } from './template-directives/task-template.
|
|
|
11
11
|
export { GanttTaskContentTemplateDirective } from './template-directives/task-content-template.directive';
|
|
12
12
|
export { GanttSummaryTaskTemplateDirective } from './template-directives/summary-task-template.directive';
|
|
13
13
|
export { ToolbarTemplateDirective } from './toolbar/toolbar-template.directive';
|
|
14
|
+
export { SelectableDirective } from './selection/selectable.directive';
|
|
14
15
|
export * from './models/models';
|
|
15
16
|
export * from './columns/columns';
|
|
@@ -9,7 +9,7 @@ export var packageMetadata = {
|
|
|
9
9
|
name: '@progress/kendo-angular-gantt',
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
|
11
11
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
12
|
-
publishDate:
|
|
12
|
+
publishDate: 1637747718,
|
|
13
13
|
version: '',
|
|
14
14
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
|
|
15
15
|
};
|
|
@@ -34,7 +34,7 @@ var GanttMilestoneTaskComponent = /** @class */ (function (_super) {
|
|
|
34
34
|
useExisting: forwardRef(function () { return GanttMilestoneTaskComponent_1; })
|
|
35
35
|
}
|
|
36
36
|
],
|
|
37
|
-
template: "\n <div\n #task\n class=\"k-task k-task-milestone\"\n [ngClass]=\"taskClass(dataItem)\"\n [style.left.px]=\"taskOffset\"\n [attr.title]=\"mapper.extractFromTask(dataItem, 'title')\"\n [attr.data-task-index]=\"index\"\n >\n </div>\n "
|
|
37
|
+
template: "\n <div\n #task\n class=\"k-task k-task-milestone\"\n [ngClass]=\"taskClass(dataItem)\"\n [style.left.px]=\"taskOffset\"\n [attr.title]=\"mapper.extractFromTask(dataItem, 'title')\"\n [class.k-state-selected]=\"isSelected(dataItem)\"\n [attr.data-task-index]=\"index\"\n >\n </div>\n "
|
|
38
38
|
}),
|
|
39
39
|
tslib_1.__metadata("design:paramtypes", [MappingService,
|
|
40
40
|
TimelineViewService,
|
|
@@ -38,7 +38,7 @@ var GanttSummaryTaskComponent = /** @class */ (function (_super) {
|
|
|
38
38
|
useExisting: forwardRef(function () { return GanttSummaryTaskComponent_1; })
|
|
39
39
|
}
|
|
40
40
|
],
|
|
41
|
-
template: "\n <div\n #task\n class=\"k-task k-task-summary\"\n [ngClass]=\"taskClass(dataItem)\"\n [style.width.px]=\"taskWidth\"\n [style.left.px]=\"taskOffset\"\n [attr.title]=\"mapper.extractFromTask(dataItem, 'title')\"\n [attr.data-task-index]=\"index\"\n >\n <div *ngIf=\"!template; else summaryTemplate\"\n class=\"k-task-summary-progress\"\n [style.width.px]=\"taskWidth\">\n <div\n class=\"k-task-summary-complete\"\n [style.width.px]=\"completionOverlayWidth\"\n >\n </div>\n </div>\n <ng-template\n #summaryTemplate\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{\n $implicit: dataItem,\n elementWidth: taskWidth\n }\"\n >\n </ng-template>\n </div>\n "
|
|
41
|
+
template: "\n <div\n #task\n class=\"k-task k-task-summary\"\n [ngClass]=\"taskClass(dataItem)\"\n [style.width.px]=\"taskWidth\"\n [style.left.px]=\"taskOffset\"\n [attr.title]=\"mapper.extractFromTask(dataItem, 'title')\"\n [attr.data-task-index]=\"index\"\n [class.k-state-selected]=\"isSelected(dataItem)\"\n >\n <div *ngIf=\"!template; else summaryTemplate\"\n class=\"k-task-summary-progress\"\n [style.width.px]=\"taskWidth\">\n <div\n class=\"k-task-summary-complete\"\n [style.width.px]=\"completionOverlayWidth\"\n >\n </div>\n </div>\n <ng-template\n #summaryTemplate\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{\n $implicit: dataItem,\n elementWidth: taskWidth\n }\"\n >\n </ng-template>\n </div>\n "
|
|
42
42
|
}),
|
|
43
43
|
tslib_1.__metadata("design:paramtypes", [MappingService,
|
|
44
44
|
TimelineViewService,
|
|
@@ -109,6 +109,14 @@ var GanttTaskBase = /** @class */ (function () {
|
|
|
109
109
|
Input(),
|
|
110
110
|
tslib_1.__metadata("design:type", Object)
|
|
111
111
|
], GanttTaskBase.prototype, "dataItem", void 0);
|
|
112
|
+
tslib_1.__decorate([
|
|
113
|
+
Input(),
|
|
114
|
+
tslib_1.__metadata("design:type", Number)
|
|
115
|
+
], GanttTaskBase.prototype, "index", void 0);
|
|
116
|
+
tslib_1.__decorate([
|
|
117
|
+
Input(),
|
|
118
|
+
tslib_1.__metadata("design:type", Function)
|
|
119
|
+
], GanttTaskBase.prototype, "isSelected", void 0);
|
|
112
120
|
tslib_1.__decorate([
|
|
113
121
|
Input(),
|
|
114
122
|
tslib_1.__metadata("design:type", String)
|
|
@@ -117,10 +125,6 @@ var GanttTaskBase = /** @class */ (function () {
|
|
|
117
125
|
Input(),
|
|
118
126
|
tslib_1.__metadata("design:type", Function)
|
|
119
127
|
], GanttTaskBase.prototype, "taskClass", void 0);
|
|
120
|
-
tslib_1.__decorate([
|
|
121
|
-
Input(),
|
|
122
|
-
tslib_1.__metadata("design:type", Number)
|
|
123
|
-
], GanttTaskBase.prototype, "index", void 0);
|
|
124
128
|
return GanttTaskBase;
|
|
125
129
|
}());
|
|
126
130
|
export { GanttTaskBase };
|
|
@@ -43,7 +43,7 @@ var GanttTaskComponent = /** @class */ (function (_super) {
|
|
|
43
43
|
useExisting: forwardRef(function () { return GanttTaskComponent_1; })
|
|
44
44
|
}
|
|
45
45
|
],
|
|
46
|
-
template: "\n <div\n #task\n class=\"k-task k-task-single\"\n [ngClass]=\"taskClass(dataItem)\"\n [style.width.px]=\"taskWidth\"\n [style.left.px]=\"taskOffset\"\n [attr.title]=\"mapper.extractFromTask(dataItem, 'title')\"\n [attr.data-task-index]=\"index\"\n >\n <ng-container *ngIf=\"!taskTemplate\">\n <div\n class=\"k-task-complete\"\n [style.width.px]=\"completionOverlayWidth\"\n >\n </div>\n <div class=\"k-task-content\">\n <div class=\"k-task-template\">\n <ng-container *ngIf=\"!taskContentTemplate; else taskContent\">\n {{ mapper.extractFromTask(dataItem, 'title') }}\n </ng-container>\n <ng-template\n #taskContent\n [ngTemplateOutlet]=\"taskContentTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"\n >\n </ng-template>\n </div>\n <span class=\"k-task-actions\">\n <span\n (click)=\"onTaskDelete()\"\n class=\"k-link k-task-delete\">\n <span class=\"k-icon k-i-close\"></span>\n </span>\n </span>\n </div>\n </ng-container>\n <ng-template\n *ngIf=\"taskTemplate\"\n [ngTemplateOutlet]=\"taskTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: dataItem,\n elementWidth: taskWidth\n }\"\n >\n </ng-template>\n </div>\n "
|
|
46
|
+
template: "\n <div\n #task\n class=\"k-task k-task-single\"\n [ngClass]=\"taskClass(dataItem)\"\n [style.width.px]=\"taskWidth\"\n [style.left.px]=\"taskOffset\"\n [attr.title]=\"mapper.extractFromTask(dataItem, 'title')\"\n [attr.data-task-index]=\"index\"\n [class.k-state-selected]=\"isSelected(dataItem)\"\n >\n <ng-container *ngIf=\"!taskTemplate\">\n <div\n class=\"k-task-complete\"\n [style.width.px]=\"completionOverlayWidth\"\n >\n </div>\n <div class=\"k-task-content\">\n <div class=\"k-task-template\">\n <ng-container *ngIf=\"!taskContentTemplate; else taskContent\">\n {{ mapper.extractFromTask(dataItem, 'title') }}\n </ng-container>\n <ng-template\n #taskContent\n [ngTemplateOutlet]=\"taskContentTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"\n >\n </ng-template>\n </div>\n <span class=\"k-task-actions\">\n <span\n (click)=\"onTaskDelete()\"\n class=\"k-link k-task-delete\">\n <span class=\"k-icon k-i-close\"></span>\n </span>\n </span>\n </div>\n </ng-container>\n <ng-template\n *ngIf=\"taskTemplate\"\n [ngTemplateOutlet]=\"taskTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: dataItem,\n elementWidth: taskWidth\n }\"\n >\n </ng-template>\n </div>\n "
|
|
47
47
|
}),
|
|
48
48
|
tslib_1.__metadata("design:paramtypes", [MappingService,
|
|
49
49
|
TimelineViewService,
|
|
@@ -65,12 +65,12 @@ var GanttTasksTableBodyComponent = /** @class */ (function () {
|
|
|
65
65
|
], GanttTasksTableBodyComponent.prototype, "hasChildren", void 0);
|
|
66
66
|
tslib_1.__decorate([
|
|
67
67
|
Input(),
|
|
68
|
-
tslib_1.__metadata("design:type",
|
|
69
|
-
], GanttTasksTableBodyComponent.prototype, "
|
|
68
|
+
tslib_1.__metadata("design:type", Function)
|
|
69
|
+
], GanttTasksTableBodyComponent.prototype, "isTaskSelected", void 0);
|
|
70
70
|
GanttTasksTableBodyComponent = tslib_1.__decorate([
|
|
71
71
|
Component({
|
|
72
72
|
selector: '[kendoGanttTasksTableBody]',
|
|
73
|
-
template: "\n <tr #timelineRow *ngFor=\"let item of rows; let index = index\">\n <td>\n <kendo-gantt-milestone-task\n *ngIf=\"isMileStone(item); else task\"\n [dataItem]=\"item\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n [index]=\"index\"\n >\n </kendo-gantt-milestone-task>\n <ng-template #task>\n <kendo-gantt-summary-task\n *ngIf=\"hasChildren(item)\"\n [dataItem]=\"item\"\n [template]=\"summaryTaskTemplate\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n [index]=\"index\"\n >\n </kendo-gantt-summary-task>\n <kendo-gantt-task\n *ngIf=\"!hasChildren(item)\"\n [dataItem]=\"item\"\n [taskContentTemplate]=\"taskContentTemplate\"\n [taskTemplate]=\"taskTemplate\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n [index]=\"index\"\n >\n </kendo-gantt-task>\n </ng-template>\n </td>\n </tr>\n "
|
|
73
|
+
template: "\n <tr #timelineRow *ngFor=\"let item of rows; let index = index\">\n <td>\n <kendo-gantt-milestone-task\n *ngIf=\"isMileStone(item); else task\"\n [dataItem]=\"item\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n [isSelected]=\"isTaskSelected\"\n [index]=\"index\"\n >\n </kendo-gantt-milestone-task>\n <ng-template #task>\n <kendo-gantt-summary-task\n *ngIf=\"hasChildren(item)\"\n [dataItem]=\"item\"\n [template]=\"summaryTaskTemplate\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n [isSelected]=\"isTaskSelected\"\n [index]=\"index\"\n >\n </kendo-gantt-summary-task>\n <kendo-gantt-task\n *ngIf=\"!hasChildren(item)\"\n [dataItem]=\"item\"\n [taskContentTemplate]=\"taskContentTemplate\"\n [taskTemplate]=\"taskTemplate\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n [isSelected]=\"isTaskSelected\"\n [index]=\"index\"\n >\n </kendo-gantt-task>\n </ng-template>\n </td>\n </tr>\n "
|
|
74
74
|
}),
|
|
75
75
|
tslib_1.__metadata("design:paramtypes", [DependencyDomService,
|
|
76
76
|
MappingService])
|