@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
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
var tslib_1 = require("tslib");
|
|
8
8
|
var core_1 = require("@angular/core");
|
|
9
9
|
var kendo_angular_treelist_1 = require("@progress/kendo-angular-treelist");
|
|
10
|
-
var
|
|
10
|
+
var kendo_date_math_1 = require("@progress/kendo-date-math");
|
|
11
11
|
var rxjs_1 = require("rxjs");
|
|
12
12
|
var kendo_licensing_1 = require("@progress/kendo-licensing");
|
|
13
13
|
var package_metadata_1 = require("./package-metadata");
|
|
@@ -31,7 +31,6 @@ var summary_task_template_directive_1 = require("./template-directives/summary-t
|
|
|
31
31
|
var task_content_template_directive_1 = require("./template-directives/task-content-template.directive");
|
|
32
32
|
var toolbar_template_directive_1 = require("./toolbar/toolbar-template.directive");
|
|
33
33
|
var view_base_1 = require("./timeline/view-base");
|
|
34
|
-
var kendo_date_math_1 = require("@progress/kendo-date-math");
|
|
35
34
|
var util_1 = require("./editing/util");
|
|
36
35
|
var TREELIST_GROUP_COLUMNS_CLASS = 'k-gantt-treelist-nested-columns';
|
|
37
36
|
var DEFAULT_VIEW = 'week';
|
|
@@ -120,6 +119,27 @@ var GanttComponent = /** @class */ (function () {
|
|
|
120
119
|
this.hostElement = hostElement;
|
|
121
120
|
this.zone = zone;
|
|
122
121
|
this.hostClasses = true;
|
|
122
|
+
/**
|
|
123
|
+
* Provides a callback that determines if the given task is selected ([see example]({% slug selection_gantt %}#toc-custom-selection))
|
|
124
|
+
*
|
|
125
|
+
* > The [`selectable`]({% slug gantt_api_ganttcomponent %}#toc-selectable) prop has to be set to `true` in order for this callback to be executed.
|
|
126
|
+
*/
|
|
127
|
+
this.isSelected = default_callbacks_1.isSelected;
|
|
128
|
+
/**
|
|
129
|
+
* Fires when the Gantt selection is changed through user interaction.
|
|
130
|
+
*
|
|
131
|
+
* Holds data about the affected [`items`]({% slug api_gantt_selectionchangeevent %}#toc-items) and the attempted [`action`]({% slug api_gantt_selectionchangeevent %}#toc-action):
|
|
132
|
+
* - `select` - Triggered on `click` or `ctrl + click` on deselected items.
|
|
133
|
+
* - `remove` - Triggered on `ctrl + click` on selected items.
|
|
134
|
+
*/
|
|
135
|
+
this.selectionChange = new core_1.EventEmitter();
|
|
136
|
+
/**
|
|
137
|
+
* Enables or disables the Gantt selection mechanism ([see example]({% slug selection_gantt %}#toc-custom-selection)).
|
|
138
|
+
*
|
|
139
|
+
* > When set to `true`, the [`isSelected`]({% slug gantt_api_ganttcomponent %}#toc-isselected) callback has to be provided.
|
|
140
|
+
* > When applied, the [`SelectableDirective`]({% slug api_gantt_selectabledirective %}) sets `selectable` to `true` internally.
|
|
141
|
+
*/
|
|
142
|
+
this.selectable = false;
|
|
123
143
|
/**
|
|
124
144
|
* The position of the toolbar.
|
|
125
145
|
*
|
|
@@ -288,6 +308,14 @@ var GanttComponent = /** @class */ (function () {
|
|
|
288
308
|
* Fires when the user changes the locked state of the columns from the column menu or by reordering the columns.
|
|
289
309
|
*/
|
|
290
310
|
this.columnLockedChange = new core_1.EventEmitter();
|
|
311
|
+
/**
|
|
312
|
+
* Fires when a cell is clicked.
|
|
313
|
+
*/
|
|
314
|
+
this.cellClick = new core_1.EventEmitter();
|
|
315
|
+
/**
|
|
316
|
+
* Fires when a task is clicked.
|
|
317
|
+
*/
|
|
318
|
+
this.taskClick = new core_1.EventEmitter();
|
|
291
319
|
/**
|
|
292
320
|
* @hidden
|
|
293
321
|
*
|
|
@@ -313,9 +341,6 @@ var GanttComponent = /** @class */ (function () {
|
|
|
313
341
|
this.optionChangesSubscriptions = new rxjs_1.Subscription();
|
|
314
342
|
this.editServiceSubscription = new rxjs_1.Subscription();
|
|
315
343
|
kendo_licensing_1.validatePackage(package_metadata_1.packageMetadata);
|
|
316
|
-
this.handleTimelineDblClick = this.handleTimelineDblClick.bind(this);
|
|
317
|
-
this.handleTimelineMouseDown = this.handleTimelineMouseDown.bind(this);
|
|
318
|
-
this.handleDoubleClick = this.handleDoubleClick.bind(this);
|
|
319
344
|
this.optionChangesSubscriptions.add(this.optionChangesService.viewChanges.subscribe(function () {
|
|
320
345
|
_this.loadTimelineData();
|
|
321
346
|
}));
|
|
@@ -551,6 +576,19 @@ var GanttComponent = /** @class */ (function () {
|
|
|
551
576
|
enumerable: true,
|
|
552
577
|
configurable: true
|
|
553
578
|
});
|
|
579
|
+
Object.defineProperty(GanttComponent.prototype, "isTaskSelected", {
|
|
580
|
+
/**
|
|
581
|
+
* @hidden
|
|
582
|
+
*
|
|
583
|
+
* Retrieves the `isSelected` callback if `selectable` is set to `true`
|
|
584
|
+
* Otherwise returns the default callback, which always returns `false`.
|
|
585
|
+
*/
|
|
586
|
+
get: function () {
|
|
587
|
+
return this.selectable ? this.isSelected : default_callbacks_1.isSelected;
|
|
588
|
+
},
|
|
589
|
+
enumerable: true,
|
|
590
|
+
configurable: true
|
|
591
|
+
});
|
|
554
592
|
Object.defineProperty(GanttComponent.prototype, "idGetter", {
|
|
555
593
|
/**
|
|
556
594
|
* @hidden
|
|
@@ -659,6 +697,14 @@ var GanttComponent = /** @class */ (function () {
|
|
|
659
697
|
this.treeList.reorderColumn(source, destIndex, options);
|
|
660
698
|
}
|
|
661
699
|
};
|
|
700
|
+
/**
|
|
701
|
+
* Updates the data of the Gantt and forces row-related callbacks to be called anew.
|
|
702
|
+
*/
|
|
703
|
+
GanttComponent.prototype.updateView = function () {
|
|
704
|
+
if (utils_1.isPresent(this.treeList)) {
|
|
705
|
+
this.treeList.updateView();
|
|
706
|
+
}
|
|
707
|
+
};
|
|
662
708
|
/**
|
|
663
709
|
* Opens the task editing dialog.
|
|
664
710
|
*/
|
|
@@ -719,16 +765,6 @@ var GanttComponent = /** @class */ (function () {
|
|
|
719
765
|
this.dependencyDomService.notifyChanges();
|
|
720
766
|
}
|
|
721
767
|
};
|
|
722
|
-
/**
|
|
723
|
-
* @hidden
|
|
724
|
-
*
|
|
725
|
-
* Used by the GanttExpandableDirective.
|
|
726
|
-
*/
|
|
727
|
-
GanttComponent.prototype.updateView = function () {
|
|
728
|
-
if (utils_1.isPresent(this.treeList)) {
|
|
729
|
-
this.treeList.updateView();
|
|
730
|
-
}
|
|
731
|
-
};
|
|
732
768
|
/**
|
|
733
769
|
* @hidden
|
|
734
770
|
*/
|
|
@@ -766,25 +802,92 @@ var GanttComponent = /** @class */ (function () {
|
|
|
766
802
|
/**
|
|
767
803
|
* @hidden
|
|
768
804
|
*/
|
|
769
|
-
GanttComponent.prototype.
|
|
770
|
-
|
|
805
|
+
GanttComponent.prototype.handleTimelineRightClick = function (event) {
|
|
806
|
+
var _this = this;
|
|
807
|
+
var target = event.target;
|
|
808
|
+
var gantt = this.hostElement.nativeElement;
|
|
809
|
+
if (!utils_1.isTask(target, gantt) || utils_1.isClearButton(target, gantt)) {
|
|
810
|
+
return;
|
|
811
|
+
}
|
|
812
|
+
if (kendo_angular_common_1.hasObservers(this.taskClick)) {
|
|
813
|
+
var taskIndex_1 = utils_1.getClosestTaskIndex(target, gantt);
|
|
814
|
+
var task_1 = this.renderedTreeListItems[taskIndex_1];
|
|
815
|
+
this.zone.run(function () { return _this.emitTaskClick(event, task_1, taskIndex_1); });
|
|
816
|
+
}
|
|
771
817
|
};
|
|
772
818
|
/**
|
|
773
819
|
* @hidden
|
|
774
820
|
*/
|
|
775
|
-
GanttComponent.prototype.
|
|
821
|
+
GanttComponent.prototype.handleTimelineClick = function (event) {
|
|
776
822
|
var _this = this;
|
|
777
|
-
var
|
|
778
|
-
|
|
823
|
+
var target = event.target;
|
|
824
|
+
var gantt = this.hostElement.nativeElement;
|
|
825
|
+
if (!utils_1.isTask(target, gantt) || utils_1.isClearButton(target, gantt)) {
|
|
779
826
|
return;
|
|
780
827
|
}
|
|
781
|
-
|
|
828
|
+
var taskIndex = utils_1.getClosestTaskIndex(target, gantt);
|
|
829
|
+
var task = this.renderedTreeListItems[taskIndex];
|
|
830
|
+
var selectionAction = this.getSelectionAction(event, task);
|
|
831
|
+
if ((kendo_angular_common_1.hasObservers(this.selectionChange) && !this.isSameSelection(selectionAction, task)) ||
|
|
832
|
+
kendo_angular_common_1.hasObservers(this.taskClick)) {
|
|
833
|
+
this.zone.run(function () {
|
|
834
|
+
_this.emitSelectionChange(task, selectionAction);
|
|
835
|
+
_this.emitTaskClick(event, task, taskIndex);
|
|
836
|
+
});
|
|
837
|
+
}
|
|
838
|
+
};
|
|
839
|
+
/**
|
|
840
|
+
* @hidden
|
|
841
|
+
*/
|
|
842
|
+
GanttComponent.prototype.handleTreeListDoubleClick = function (event) {
|
|
843
|
+
var _this = this;
|
|
844
|
+
if (!utils_1.isPresent(this.lastTreeListCellClick) || event.target !== this.lastTreeListCellClick.originalEvent.target) {
|
|
845
|
+
return;
|
|
846
|
+
}
|
|
847
|
+
this.editItem = util_1.getEditItem(this.lastTreeListCellClick.dataItem, this.treeList.view.data, this.mapper);
|
|
782
848
|
if (kendo_angular_common_1.hasObservers(this.cellDblClick)) {
|
|
783
849
|
this.zone.run(function () {
|
|
784
|
-
_this.cellDblClick.emit(
|
|
850
|
+
_this.cellDblClick.emit({
|
|
851
|
+
column: _this.lastTreeListCellClick.column,
|
|
852
|
+
columnIndex: _this.lastTreeListCellClick.columnIndex,
|
|
853
|
+
dataItem: _this.lastTreeListCellClick.dataItem,
|
|
854
|
+
isEdited: _this.lastTreeListCellClick.isEdited,
|
|
855
|
+
originalEvent: _this.lastTreeListCellClick.originalEvent,
|
|
856
|
+
rowIndex: _this.lastTreeListCellClick.rowIndex,
|
|
857
|
+
type: 'dblclick',
|
|
858
|
+
sender: _this
|
|
859
|
+
});
|
|
785
860
|
});
|
|
786
861
|
}
|
|
787
862
|
};
|
|
863
|
+
/**
|
|
864
|
+
* @hidden
|
|
865
|
+
*/
|
|
866
|
+
GanttComponent.prototype.handleTreeListSelectionChange = function (event) {
|
|
867
|
+
// prevent selection change from right-click
|
|
868
|
+
if (utils_1.isPresent(this.lastTreeListCellClick) && this.lastTreeListCellClick.type === 'contextmenu') {
|
|
869
|
+
return;
|
|
870
|
+
}
|
|
871
|
+
var task = event.items.map(function (item) { return item.dataItem; })[0]; // single selection only currently available
|
|
872
|
+
var action = event.action;
|
|
873
|
+
this.emitSelectionChange(task, action);
|
|
874
|
+
};
|
|
875
|
+
/**
|
|
876
|
+
* @hidden
|
|
877
|
+
*/
|
|
878
|
+
GanttComponent.prototype.handleTreeListCellClick = function (event) {
|
|
879
|
+
this.lastTreeListCellClick = event;
|
|
880
|
+
this.cellClick.emit({
|
|
881
|
+
column: event.column,
|
|
882
|
+
columnIndex: event.columnIndex,
|
|
883
|
+
dataItem: event.dataItem,
|
|
884
|
+
isEdited: event.isEdited,
|
|
885
|
+
originalEvent: event.originalEvent,
|
|
886
|
+
rowIndex: event.rowIndex,
|
|
887
|
+
type: event.type,
|
|
888
|
+
sender: this
|
|
889
|
+
});
|
|
890
|
+
};
|
|
788
891
|
/**
|
|
789
892
|
* @hidden
|
|
790
893
|
*/
|
|
@@ -812,13 +915,17 @@ var GanttComponent = /** @class */ (function () {
|
|
|
812
915
|
if (!utils_1.isTask(target, gantt) || utils_1.isClearButton(target, gantt)) {
|
|
813
916
|
return;
|
|
814
917
|
}
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
918
|
+
if (kendo_angular_common_1.hasObservers(this.taskDblClick)) {
|
|
919
|
+
var taskIndex_2 = utils_1.getClosestTaskIndex(target, gantt);
|
|
920
|
+
var task_2 = this.renderedTreeListItems[taskIndex_2];
|
|
921
|
+
this.zone.run(function () { return _this.taskDblClick.emit({
|
|
922
|
+
dataItem: task_2,
|
|
923
|
+
originalEvent: event,
|
|
924
|
+
sender: _this,
|
|
925
|
+
rowIndex: taskIndex_2,
|
|
926
|
+
type: 'dblclick'
|
|
927
|
+
}); });
|
|
928
|
+
}
|
|
822
929
|
};
|
|
823
930
|
/**
|
|
824
931
|
* @hidden
|
|
@@ -826,6 +933,26 @@ var GanttComponent = /** @class */ (function () {
|
|
|
826
933
|
GanttComponent.prototype.getText = function (token) {
|
|
827
934
|
return this.localizationService.get(token);
|
|
828
935
|
};
|
|
936
|
+
GanttComponent.prototype.emitTaskClick = function (event, dataItem, itemIndex) {
|
|
937
|
+
this.taskClick.emit({
|
|
938
|
+
originalEvent: event,
|
|
939
|
+
dataItem: dataItem,
|
|
940
|
+
rowIndex: itemIndex,
|
|
941
|
+
type: event.type,
|
|
942
|
+
sender: this
|
|
943
|
+
});
|
|
944
|
+
};
|
|
945
|
+
GanttComponent.prototype.emitSelectionChange = function (dataItem, action) {
|
|
946
|
+
if (this.isSameSelection(action, dataItem)) {
|
|
947
|
+
return;
|
|
948
|
+
}
|
|
949
|
+
this.selectionChange.emit({
|
|
950
|
+
action: action,
|
|
951
|
+
items: [dataItem],
|
|
952
|
+
sender: this
|
|
953
|
+
});
|
|
954
|
+
this.updateView();
|
|
955
|
+
};
|
|
829
956
|
GanttComponent.prototype.updateTreeListGroupClass = function (columns) {
|
|
830
957
|
if (columns === void 0) { columns = this.columns; }
|
|
831
958
|
if (!utils_1.isPresent(this.treeList)) {
|
|
@@ -856,10 +983,18 @@ var GanttComponent = /** @class */ (function () {
|
|
|
856
983
|
}
|
|
857
984
|
return this.views.find(function (view) { return view.type === _this.activeView; });
|
|
858
985
|
};
|
|
986
|
+
GanttComponent.prototype.isSameSelection = function (action, dataItem) {
|
|
987
|
+
return action === 'select' && this.isSelected(dataItem);
|
|
988
|
+
};
|
|
989
|
+
GanttComponent.prototype.getSelectionAction = function (_a, dataItem) {
|
|
990
|
+
var ctrlKey = _a.ctrlKey, metaKey = _a.metaKey;
|
|
991
|
+
var shouldToggleSelection = ctrlKey || metaKey;
|
|
992
|
+
return (shouldToggleSelection && this.isSelected(dataItem)) ? 'remove' : 'select';
|
|
993
|
+
};
|
|
859
994
|
var GanttComponent_1;
|
|
860
995
|
tslib_1.__decorate([
|
|
861
|
-
core_1.ViewChild(
|
|
862
|
-
tslib_1.__metadata("design:type",
|
|
996
|
+
core_1.ViewChild(kendo_angular_treelist_1.TreeListComponent, { static: true }),
|
|
997
|
+
tslib_1.__metadata("design:type", kendo_angular_treelist_1.TreeListComponent)
|
|
863
998
|
], GanttComponent.prototype, "treeList", void 0);
|
|
864
999
|
tslib_1.__decorate([
|
|
865
1000
|
core_1.ContentChild(task_content_template_directive_1.GanttTaskContentTemplateDirective, { static: true }),
|
|
@@ -915,6 +1050,18 @@ var GanttComponent = /** @class */ (function () {
|
|
|
915
1050
|
tslib_1.__metadata("design:type", Array),
|
|
916
1051
|
tslib_1.__metadata("design:paramtypes", [Array])
|
|
917
1052
|
], GanttComponent.prototype, "data", null);
|
|
1053
|
+
tslib_1.__decorate([
|
|
1054
|
+
core_1.Input(),
|
|
1055
|
+
tslib_1.__metadata("design:type", Function)
|
|
1056
|
+
], GanttComponent.prototype, "isSelected", void 0);
|
|
1057
|
+
tslib_1.__decorate([
|
|
1058
|
+
core_1.Output(),
|
|
1059
|
+
tslib_1.__metadata("design:type", core_1.EventEmitter)
|
|
1060
|
+
], GanttComponent.prototype, "selectionChange", void 0);
|
|
1061
|
+
tslib_1.__decorate([
|
|
1062
|
+
core_1.Input(),
|
|
1063
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
1064
|
+
], GanttComponent.prototype, "selectable", void 0);
|
|
918
1065
|
tslib_1.__decorate([
|
|
919
1066
|
core_1.Input(),
|
|
920
1067
|
tslib_1.__metadata("design:type", String)
|
|
@@ -1083,6 +1230,14 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1083
1230
|
core_1.Output(),
|
|
1084
1231
|
tslib_1.__metadata("design:type", core_1.EventEmitter)
|
|
1085
1232
|
], GanttComponent.prototype, "columnLockedChange", void 0);
|
|
1233
|
+
tslib_1.__decorate([
|
|
1234
|
+
core_1.Output(),
|
|
1235
|
+
tslib_1.__metadata("design:type", core_1.EventEmitter)
|
|
1236
|
+
], GanttComponent.prototype, "cellClick", void 0);
|
|
1237
|
+
tslib_1.__decorate([
|
|
1238
|
+
core_1.Output(),
|
|
1239
|
+
tslib_1.__metadata("design:type", core_1.EventEmitter)
|
|
1240
|
+
], GanttComponent.prototype, "taskClick", void 0);
|
|
1086
1241
|
GanttComponent = GanttComponent_1 = tslib_1.__decorate([
|
|
1087
1242
|
core_1.Component({
|
|
1088
1243
|
selector: 'kendo-gantt',
|
|
@@ -1107,7 +1262,7 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1107
1262
|
option_changes_service_1.OptionChangesService,
|
|
1108
1263
|
edit_service_1.EditService
|
|
1109
1264
|
],
|
|
1110
|
-
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 "
|
|
1265
|
+
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 "
|
|
1111
1266
|
}),
|
|
1112
1267
|
tslib_1.__metadata("design:paramtypes", [timeline_view_service_1.TimelineViewService,
|
|
1113
1268
|
scroll_sync_service_1.ScrollSyncService,
|
package/dist/npm/gantt.module.js
CHANGED
|
@@ -10,6 +10,7 @@ var common_1 = require("@angular/common");
|
|
|
10
10
|
var kendo_angular_layout_1 = require("@progress/kendo-angular-layout");
|
|
11
11
|
var kendo_angular_treelist_1 = require("@progress/kendo-angular-treelist");
|
|
12
12
|
var kendo_angular_buttons_1 = require("@progress/kendo-angular-buttons");
|
|
13
|
+
var kendo_angular_common_1 = require("@progress/kendo-angular-common");
|
|
13
14
|
var kendo_angular_dialog_1 = require("@progress/kendo-angular-dialog");
|
|
14
15
|
var gantt_component_1 = require("./gantt.component");
|
|
15
16
|
var gantt_timeline_component_1 = require("./timeline/gantt-timeline.component");
|
|
@@ -24,6 +25,7 @@ var gantt_milestone_task_component_1 = require("./rendering/gantt-milestone-task
|
|
|
24
25
|
var flat_binding_directive_1 = require("./binding-directives/flat-binding.directive");
|
|
25
26
|
var hierarchy_binding_directive_1 = require("./binding-directives/hierarchy-binding.directive");
|
|
26
27
|
var expandable_directive_1 = require("./expanded-state/expandable.directive");
|
|
28
|
+
var selectable_directive_1 = require("./selection/selectable.directive");
|
|
27
29
|
var toolbar_component_1 = require("./toolbar/toolbar.component");
|
|
28
30
|
var toolbar_template_directive_1 = require("./toolbar/toolbar-template.directive");
|
|
29
31
|
var view_selector_component_1 = require("./toolbar/view-selector.component");
|
|
@@ -41,7 +43,6 @@ var custom_messages_component_1 = require("./localization/custom-messages.compon
|
|
|
41
43
|
var kendo_angular_l10n_1 = require("@progress/kendo-angular-l10n");
|
|
42
44
|
var localized_messages_directive_1 = require("./localization/localized-messages.directive");
|
|
43
45
|
var treelist_messages_directive_1 = require("./localization/treelist-messages.directive");
|
|
44
|
-
var kendo_angular_common_1 = require("@progress/kendo-angular-common");
|
|
45
46
|
var IMPORTED_MODULES = [
|
|
46
47
|
common_1.CommonModule,
|
|
47
48
|
forms_1.ReactiveFormsModule,
|
|
@@ -86,6 +87,7 @@ var DECLARATIONS = [
|
|
|
86
87
|
timeline_day_view_component_1.TimelineDayViewComponent,
|
|
87
88
|
timeline_week_view_component_1.TimelineWeekViewComponent,
|
|
88
89
|
timeline_month_view_component_1.TimelineMonthViewComponent,
|
|
90
|
+
selectable_directive_1.SelectableDirective,
|
|
89
91
|
edit_dialog_component_1.EditDialogComponent,
|
|
90
92
|
custom_messages_component_1.CustomMessagesComponent,
|
|
91
93
|
localized_messages_directive_1.LocalizedMessagesDirective,
|
package/dist/npm/main.js
CHANGED
|
@@ -23,5 +23,7 @@ var summary_task_template_directive_1 = require("./template-directives/summary-t
|
|
|
23
23
|
exports.GanttSummaryTaskTemplateDirective = summary_task_template_directive_1.GanttSummaryTaskTemplateDirective;
|
|
24
24
|
var toolbar_template_directive_1 = require("./toolbar/toolbar-template.directive");
|
|
25
25
|
exports.ToolbarTemplateDirective = toolbar_template_directive_1.ToolbarTemplateDirective;
|
|
26
|
+
var selectable_directive_1 = require("./selection/selectable.directive");
|
|
27
|
+
exports.SelectableDirective = selectable_directive_1.SelectableDirective;
|
|
26
28
|
tslib_1.__exportStar(require("./models/models"), exports);
|
|
27
29
|
tslib_1.__exportStar(require("./columns/columns"), exports);
|
|
@@ -11,7 +11,7 @@ exports.packageMetadata = {
|
|
|
11
11
|
name: '@progress/kendo-angular-gantt',
|
|
12
12
|
productName: 'Kendo UI for Angular',
|
|
13
13
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
14
|
-
publishDate:
|
|
14
|
+
publishDate: 1637747718,
|
|
15
15
|
version: '',
|
|
16
16
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
|
|
17
17
|
};
|
|
@@ -36,7 +36,7 @@ var GanttMilestoneTaskComponent = /** @class */ (function (_super) {
|
|
|
36
36
|
useExisting: core_1.forwardRef(function () { return GanttMilestoneTaskComponent_1; })
|
|
37
37
|
}
|
|
38
38
|
],
|
|
39
|
-
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 "
|
|
39
|
+
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 "
|
|
40
40
|
}),
|
|
41
41
|
tslib_1.__metadata("design:paramtypes", [mapping_service_1.MappingService,
|
|
42
42
|
timeline_view_service_1.TimelineViewService,
|
|
@@ -40,7 +40,7 @@ var GanttSummaryTaskComponent = /** @class */ (function (_super) {
|
|
|
40
40
|
useExisting: core_1.forwardRef(function () { return GanttSummaryTaskComponent_1; })
|
|
41
41
|
}
|
|
42
42
|
],
|
|
43
|
-
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 "
|
|
43
|
+
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 "
|
|
44
44
|
}),
|
|
45
45
|
tslib_1.__metadata("design:paramtypes", [mapping_service_1.MappingService,
|
|
46
46
|
timeline_view_service_1.TimelineViewService,
|
|
@@ -111,6 +111,14 @@ var GanttTaskBase = /** @class */ (function () {
|
|
|
111
111
|
core_1.Input(),
|
|
112
112
|
tslib_1.__metadata("design:type", Object)
|
|
113
113
|
], GanttTaskBase.prototype, "dataItem", void 0);
|
|
114
|
+
tslib_1.__decorate([
|
|
115
|
+
core_1.Input(),
|
|
116
|
+
tslib_1.__metadata("design:type", Number)
|
|
117
|
+
], GanttTaskBase.prototype, "index", void 0);
|
|
118
|
+
tslib_1.__decorate([
|
|
119
|
+
core_1.Input(),
|
|
120
|
+
tslib_1.__metadata("design:type", Function)
|
|
121
|
+
], GanttTaskBase.prototype, "isSelected", void 0);
|
|
114
122
|
tslib_1.__decorate([
|
|
115
123
|
core_1.Input(),
|
|
116
124
|
tslib_1.__metadata("design:type", String)
|
|
@@ -119,10 +127,6 @@ var GanttTaskBase = /** @class */ (function () {
|
|
|
119
127
|
core_1.Input(),
|
|
120
128
|
tslib_1.__metadata("design:type", Function)
|
|
121
129
|
], GanttTaskBase.prototype, "taskClass", void 0);
|
|
122
|
-
tslib_1.__decorate([
|
|
123
|
-
core_1.Input(),
|
|
124
|
-
tslib_1.__metadata("design:type", Number)
|
|
125
|
-
], GanttTaskBase.prototype, "index", void 0);
|
|
126
130
|
return GanttTaskBase;
|
|
127
131
|
}());
|
|
128
132
|
exports.GanttTaskBase = GanttTaskBase;
|
|
@@ -45,7 +45,7 @@ var GanttTaskComponent = /** @class */ (function (_super) {
|
|
|
45
45
|
useExisting: core_1.forwardRef(function () { return GanttTaskComponent_1; })
|
|
46
46
|
}
|
|
47
47
|
],
|
|
48
|
-
template: "\n <div\n #task\n class=\"k-task k-task-single\"\n [ngClass]=\"taskClass(dataItem)\"\n [style.width.px]=\"taskWidth\"\n [style.left.px]=\"taskOffset\"\n [attr.title]=\"mapper.extractFromTask(dataItem, 'title')\"\n [attr.data-task-index]=\"index\"\n >\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 "
|
|
48
|
+
template: "\n <div\n #task\n class=\"k-task k-task-single\"\n [ngClass]=\"taskClass(dataItem)\"\n [style.width.px]=\"taskWidth\"\n [style.left.px]=\"taskOffset\"\n [attr.title]=\"mapper.extractFromTask(dataItem, 'title')\"\n [attr.data-task-index]=\"index\"\n [class.k-state-selected]=\"isSelected(dataItem)\"\n >\n <ng-container *ngIf=\"!taskTemplate\">\n <div\n class=\"k-task-complete\"\n [style.width.px]=\"completionOverlayWidth\"\n >\n </div>\n <div class=\"k-task-content\">\n <div class=\"k-task-template\">\n <ng-container *ngIf=\"!taskContentTemplate; else taskContent\">\n {{ mapper.extractFromTask(dataItem, 'title') }}\n </ng-container>\n <ng-template\n #taskContent\n [ngTemplateOutlet]=\"taskContentTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"\n >\n </ng-template>\n </div>\n <span class=\"k-task-actions\">\n <span\n (click)=\"onTaskDelete()\"\n class=\"k-link k-task-delete\">\n <span class=\"k-icon k-i-close\"></span>\n </span>\n </span>\n </div>\n </ng-container>\n <ng-template\n *ngIf=\"taskTemplate\"\n [ngTemplateOutlet]=\"taskTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: dataItem,\n elementWidth: taskWidth\n }\"\n >\n </ng-template>\n </div>\n "
|
|
49
49
|
}),
|
|
50
50
|
tslib_1.__metadata("design:paramtypes", [mapping_service_1.MappingService,
|
|
51
51
|
timeline_view_service_1.TimelineViewService,
|
|
@@ -67,12 +67,12 @@ var GanttTasksTableBodyComponent = /** @class */ (function () {
|
|
|
67
67
|
], GanttTasksTableBodyComponent.prototype, "hasChildren", void 0);
|
|
68
68
|
tslib_1.__decorate([
|
|
69
69
|
core_1.Input(),
|
|
70
|
-
tslib_1.__metadata("design:type",
|
|
71
|
-
], GanttTasksTableBodyComponent.prototype, "
|
|
70
|
+
tslib_1.__metadata("design:type", Function)
|
|
71
|
+
], GanttTasksTableBodyComponent.prototype, "isTaskSelected", void 0);
|
|
72
72
|
GanttTasksTableBodyComponent = tslib_1.__decorate([
|
|
73
73
|
core_1.Component({
|
|
74
74
|
selector: '[kendoGanttTasksTableBody]',
|
|
75
|
-
template: "\n <tr #timelineRow *ngFor=\"let item of rows; let index = index\">\n <td>\n <kendo-gantt-milestone-task\n *ngIf=\"isMileStone(item); else task\"\n [dataItem]=\"item\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n [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 "
|
|
75
|
+
template: "\n <tr #timelineRow *ngFor=\"let item of rows; let index = index\">\n <td>\n <kendo-gantt-milestone-task\n *ngIf=\"isMileStone(item); else task\"\n [dataItem]=\"item\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n [isSelected]=\"isTaskSelected\"\n [index]=\"index\"\n >\n </kendo-gantt-milestone-task>\n <ng-template #task>\n <kendo-gantt-summary-task\n *ngIf=\"hasChildren(item)\"\n [dataItem]=\"item\"\n [template]=\"summaryTaskTemplate\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n [isSelected]=\"isTaskSelected\"\n [index]=\"index\"\n >\n </kendo-gantt-summary-task>\n <kendo-gantt-task\n *ngIf=\"!hasChildren(item)\"\n [dataItem]=\"item\"\n [taskContentTemplate]=\"taskContentTemplate\"\n [taskTemplate]=\"taskTemplate\"\n [activeView]=\"activeView\"\n [taskClass]=\"taskClass\"\n [isSelected]=\"isTaskSelected\"\n [index]=\"index\"\n >\n </kendo-gantt-task>\n </ng-template>\n </td>\n </tr>\n "
|
|
76
76
|
}),
|
|
77
77
|
tslib_1.__metadata("design:paramtypes", [dependency_dom_service_1.DependencyDomService,
|
|
78
78
|
mapping_service_1.MappingService])
|