@progress/kendo-angular-gantt 0.2.1-dev.202112091019 → 0.3.0-dev.202201111723

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/cdn/js/kendo-angular-gantt.js +2 -2
  2. package/dist/cdn/main.js +10 -4
  3. package/dist/es/dependencies/utils.js +6 -5
  4. package/dist/es/editing/add-task.component.js +94 -0
  5. package/dist/es/editing/dependencies-table.component.js +131 -0
  6. package/dist/es/editing/edit-dialog.component.js +37 -6
  7. package/dist/es/editing/edit.service.js +89 -7
  8. package/dist/es/editing/task-fields.component.js +43 -0
  9. package/dist/es/expanded-state/expandable.directive.js +4 -6
  10. package/dist/es/gantt.component.js +116 -45
  11. package/dist/es/gantt.module.js +13 -4
  12. package/dist/es/index.js +5 -1
  13. package/dist/es/localization/gantt-localization.service.js +26 -0
  14. package/dist/es/localization/messages.js +45 -1
  15. package/dist/es/models/dependency-type.enum.js +16 -0
  16. package/dist/es/models/events/{add-event.interface.js → task-add-event.interface.js} +0 -0
  17. package/dist/es/models/models.js +2 -0
  18. package/dist/es/models/{events/edit-event.interface.js → toolbar-settings.js} +0 -0
  19. package/dist/es/package-metadata.js +1 -1
  20. package/dist/es/timeline/timeline-base-view.service.js +12 -3
  21. package/dist/es/toolbar/toolbar.component.js +9 -1
  22. package/dist/es2015/dependencies/utils.js +6 -5
  23. package/dist/es2015/editing/add-task.component.d.ts +45 -0
  24. package/dist/es2015/editing/add-task.component.js +102 -0
  25. package/dist/es2015/editing/dependencies-table.component.d.ts +39 -0
  26. package/dist/es2015/editing/dependencies-table.component.js +160 -0
  27. package/dist/es2015/editing/edit-dialog.component.d.ts +10 -3
  28. package/dist/es2015/editing/edit-dialog.component.js +55 -33
  29. package/dist/es2015/editing/edit.service.d.ts +24 -3
  30. package/dist/es2015/editing/edit.service.js +78 -10
  31. package/dist/es2015/editing/task-fields.component.d.ts +22 -0
  32. package/dist/es2015/editing/task-fields.component.js +67 -0
  33. package/dist/es2015/expanded-state/expandable.directive.d.ts +1 -2
  34. package/dist/es2015/expanded-state/expandable.directive.js +2 -7
  35. package/dist/es2015/gantt.component.d.ts +29 -18
  36. package/dist/es2015/gantt.component.js +183 -43
  37. package/dist/es2015/gantt.module.js +13 -4
  38. package/dist/es2015/index.d.ts +5 -1
  39. package/dist/es2015/index.js +5 -1
  40. package/dist/es2015/index.metadata.json +1 -1
  41. package/dist/es2015/localization/{treelist-messages.directive.d.ts → gantt-localization.service.d.ts} +4 -3
  42. package/dist/es2015/localization/gantt-localization.service.js +25 -0
  43. package/dist/es2015/localization/messages.d.ts +46 -2
  44. package/dist/es2015/localization/messages.js +45 -1
  45. package/dist/es2015/models/dependency-type.enum.d.ts +1 -1
  46. package/dist/es2015/models/dependency-type.enum.js +16 -0
  47. package/dist/es2015/models/events/cell-close-event.interface.d.ts +1 -1
  48. package/dist/es2015/models/events/task-add-event.interface.d.ts +31 -0
  49. package/dist/{es/models/events/remove-event.interface.js → es2015/models/events/task-add-event.interface.js} +0 -0
  50. package/dist/es2015/models/events/task-edit-event.interface.d.ts +15 -2
  51. package/dist/es2015/models/models.d.ts +5 -3
  52. package/dist/es2015/models/models.js +2 -0
  53. package/dist/es2015/models/toolbar-settings.d.ts +29 -0
  54. package/dist/{es/models/toolbar-position.js → es2015/models/toolbar-settings.js} +0 -0
  55. package/dist/es2015/package-metadata.js +1 -1
  56. package/dist/es2015/timeline/timeline-base-view.service.d.ts +12 -0
  57. package/dist/es2015/timeline/timeline-base-view.service.js +12 -3
  58. package/dist/es2015/toolbar/toolbar-template.directive.d.ts +1 -1
  59. package/dist/es2015/toolbar/toolbar.component.d.ts +2 -0
  60. package/dist/es2015/toolbar/toolbar.component.js +10 -0
  61. package/dist/fesm2015/index.js +757 -115
  62. package/dist/fesm5/index.js +627 -88
  63. package/dist/npm/dependencies/utils.js +6 -5
  64. package/dist/npm/editing/add-task.component.js +96 -0
  65. package/dist/npm/editing/dependencies-table.component.js +133 -0
  66. package/dist/npm/editing/edit-dialog.component.js +36 -5
  67. package/dist/npm/editing/edit.service.js +88 -6
  68. package/dist/npm/editing/task-fields.component.js +45 -0
  69. package/dist/npm/expanded-state/expandable.directive.js +3 -5
  70. package/dist/npm/gantt.component.js +116 -45
  71. package/dist/npm/gantt.module.js +12 -3
  72. package/dist/npm/index.js +10 -2
  73. package/dist/npm/localization/gantt-localization.service.js +28 -0
  74. package/dist/npm/localization/messages.js +45 -1
  75. package/dist/npm/models/dependency-type.enum.js +16 -0
  76. package/dist/npm/models/events/{add-event.interface.js → task-add-event.interface.js} +0 -0
  77. package/dist/npm/models/models.js +4 -0
  78. package/dist/npm/models/{events/edit-event.interface.js → toolbar-settings.js} +0 -0
  79. package/dist/npm/package-metadata.js +1 -1
  80. package/dist/npm/timeline/timeline-base-view.service.js +17 -8
  81. package/dist/npm/toolbar/toolbar.component.js +9 -1
  82. package/dist/systemjs/kendo-angular-gantt.js +1 -1
  83. package/package.json +5 -3
  84. package/dist/es/localization/treelist-messages.directive.js +0 -31
  85. package/dist/es2015/localization/treelist-messages.directive.js +0 -29
  86. package/dist/es2015/models/events/add-event.interface.d.ts +0 -16
  87. package/dist/es2015/models/events/add-event.interface.js +0 -4
  88. package/dist/es2015/models/events/edit-event.interface.d.ts +0 -19
  89. package/dist/es2015/models/events/edit-event.interface.js +0 -4
  90. package/dist/es2015/models/events/remove-event.interface.d.ts +0 -16
  91. package/dist/es2015/models/events/remove-event.interface.js +0 -4
  92. package/dist/es2015/models/toolbar-position.d.ts +0 -9
  93. package/dist/es2015/models/toolbar-position.js +0 -4
  94. package/dist/npm/localization/treelist-messages.directive.js +0 -33
  95. package/dist/npm/models/events/remove-event.interface.js +0 -6
  96. package/dist/npm/models/toolbar-position.js +0 -6
@@ -32,6 +32,7 @@ var task_content_template_directive_1 = require("./template-directives/task-cont
32
32
  var toolbar_template_directive_1 = require("./toolbar/toolbar-template.directive");
33
33
  var view_base_1 = require("./timeline/view-base");
34
34
  var util_1 = require("./editing/util");
35
+ var gantt_localization_service_1 = require("./localization/gantt-localization.service");
35
36
  var TREELIST_GROUP_COLUMNS_CLASS = 'k-gantt-treelist-nested-columns';
36
37
  var DEFAULT_VIEW = 'week';
37
38
  /**
@@ -122,7 +123,7 @@ var GanttComponent = /** @class */ (function () {
122
123
  /**
123
124
  * Provides a callback that determines if the given task is selected ([see example]({% slug selection_gantt %}#toc-custom-selection))
124
125
  *
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
+ * > The [`selectable`]({% slug api_gantt_ganttcomponent %}#toc-selectable) prop has to be set to `true` in order for this callback to be executed.
126
127
  */
127
128
  this.isSelected = default_callbacks_1.isSelected;
128
129
  /**
@@ -136,29 +137,10 @@ var GanttComponent = /** @class */ (function () {
136
137
  /**
137
138
  * Enables or disables the Gantt selection mechanism ([see example]({% slug selection_gantt %}#toc-custom-selection)).
138
139
  *
139
- * > When set to `true`, the [`isSelected`]({% slug gantt_api_ganttcomponent %}#toc-isselected) callback has to be provided.
140
+ * > When set to `true`, the [`isSelected`]({% slug api_gantt_ganttcomponent %}#toc-isselected) callback has to be provided.
140
141
  * > When applied, the [`SelectableDirective`]({% slug api_gantt_selectabledirective %}) sets `selectable` to `true` internally.
141
142
  */
142
143
  this.selectable = false;
143
- /**
144
- * The position of the toolbar.
145
- *
146
- * The possible values are:
147
- * - `top`—Positions the toolbar above the Gantt panes.
148
- * - `bottom`—Positions the toolbar below the Gantt panes.
149
- * - `both`—Displays two toolbar instances. Positions the first one above,
150
- * and the second one - below the Gantt panes.
151
- * - `none`—No toolbar is rendered.
152
- */
153
- this.toolbarPosition = 'top';
154
- /**
155
- * Gets or sets the callback function that retrieves the child items for a particular item.
156
- */
157
- this.fetchChildren = default_callbacks_1.fetchChildren;
158
- /**
159
- * Gets or sets the callback function that indicates if a particular item has child items.
160
- */
161
- this.hasChildren = default_callbacks_1.hasChildren;
162
144
  /**
163
145
  * Defines the dependencies that will be drawn between the rendered tasks.
164
146
  *
@@ -260,6 +242,10 @@ var GanttComponent = /** @class */ (function () {
260
242
  * Fires when the user saves an edited task.
261
243
  */
262
244
  this.save = new core_1.EventEmitter();
245
+ /**
246
+ * Fires when the user adds a task.
247
+ */
248
+ this.taskAdd = new core_1.EventEmitter();
263
249
  /**
264
250
  * Fires when the sorting of the Gantt is changed.
265
251
  * You have to handle the event yourself and sort the data.
@@ -337,6 +323,13 @@ var GanttComponent = /** @class */ (function () {
337
323
  this._rowClass = default_callbacks_1.rowClassCallback;
338
324
  this._taskClass = default_callbacks_1.taskClassCallback;
339
325
  this._activeView = DEFAULT_VIEW;
326
+ this._toolbarSettings = {
327
+ position: 'top',
328
+ addTaskTool: 'none',
329
+ viewSelectorTool: 'top'
330
+ };
331
+ this._fetchChildren = default_callbacks_1.fetchChildren;
332
+ this._hasChildren = default_callbacks_1.hasChildren;
340
333
  this.rtl = false;
341
334
  this.optionChangesSubscriptions = new rxjs_1.Subscription();
342
335
  this.editServiceSubscription = new rxjs_1.Subscription();
@@ -347,18 +340,27 @@ var GanttComponent = /** @class */ (function () {
347
340
  this.optionChangesSubscriptions.add(this.optionChangesService.columnChanges.subscribe(function () {
348
341
  _this.treeList.columns.notifyOnChanges();
349
342
  }));
343
+ this.editService.getSelectedItem = this.getFirstSelectedItem.bind(this);
350
344
  this.editServiceSubscription.add(this.editService.showEditingDialog.subscribe(function (show) { return _this.showEditingDialog = show; }));
351
345
  this.editServiceSubscription.add(this.editService.showConfirmationDialog.subscribe(function () { return _this.taskDelete.emit(); }));
352
346
  this.editServiceSubscription.add(this.editService.editEvent.subscribe(function (args) {
353
347
  _this[args.editResultType].emit({
354
- formGroup: args.formGroup,
348
+ taskFormGroup: args.taskFormGroup,
355
349
  item: util_1.getEditItem(args.dataItem, _this.treeList.view.data, _this.mapper),
350
+ dependencies: args.dependencies,
356
351
  sender: _this
357
352
  });
358
353
  _this.showConfirmationDialog = _this.showEditingDialog = false;
359
- _this.editService.dataItem = _this.editService.formGroup = null;
354
+ _this.editService.dataItem = _this.editService.taskFormGroup = null;
355
+ _this.updateView();
356
+ }));
357
+ this.editServiceSubscription.add(this.editService.addEvent.subscribe(function (args) {
358
+ var selectedItem = _this.getFirstSelectedItem();
359
+ _this.taskAdd.emit({
360
+ actionType: args.actionType,
361
+ selectedItem: selectedItem ? util_1.getEditItem(selectedItem, _this.treeList.view.data, _this.mapper) : null
362
+ });
360
363
  _this.updateView();
361
- _this.dependencyDomService.notifyChanges();
362
364
  }));
363
365
  this.localizationSubscription = this.localizationService.changes.subscribe(function (_a) {
364
366
  var rtl = _a.rtl;
@@ -464,6 +466,61 @@ var GanttComponent = /** @class */ (function () {
464
466
  enumerable: true,
465
467
  configurable: true
466
468
  });
469
+ Object.defineProperty(GanttComponent.prototype, "toolbarSettings", {
470
+ get: function () {
471
+ return this._toolbarSettings;
472
+ },
473
+ /**
474
+ * The toolbar configuration. Defines the position and content of the toolbar(s).
475
+ * The available properties are `position`, `addTaskTool`, and `viewSelectorTool`.
476
+ * All are optional and default to `top`.
477
+ *
478
+ * The possible values for each option are:
479
+ * - `top`—Positions the toolbar above the Gantt panes. Renders the respective tool in the top toolbar.
480
+ * - `bottom`—Positions the toolbar below the Gantt panes. Renders the respective tool in the bottom toolbar.
481
+ * - `both`—Displays two toolbar instances. Positions the first one above,
482
+ * and the second one - below the Gantt panes. Renders the respective tool in the both toolbars.
483
+ * - `none`—No toolbar is rendered when used for setting `position`.
484
+ * No add task or view selector tool is rendered when used for setting `addTaskTool` or `viewSelectorTool`.
485
+ */
486
+ set: function (value) {
487
+ this._toolbarSettings = {
488
+ position: value.position || 'top',
489
+ addTaskTool: value.addTaskTool || 'none',
490
+ viewSelectorTool: value.viewSelectorTool || 'top'
491
+ };
492
+ },
493
+ enumerable: true,
494
+ configurable: true
495
+ });
496
+ Object.defineProperty(GanttComponent.prototype, "fetchChildren", {
497
+ get: function () {
498
+ return this._fetchChildren;
499
+ },
500
+ /**
501
+ * Gets or sets the callback function that retrieves the child items for a particular item.
502
+ */
503
+ set: function (fn) {
504
+ this._fetchChildren = fn;
505
+ this.editService.fetchChildren = fn;
506
+ },
507
+ enumerable: true,
508
+ configurable: true
509
+ });
510
+ Object.defineProperty(GanttComponent.prototype, "hasChildren", {
511
+ get: function () {
512
+ return this._hasChildren;
513
+ },
514
+ /**
515
+ * Gets or sets the callback function that indicates if a particular item has child items.
516
+ */
517
+ set: function (fn) {
518
+ this._hasChildren = fn;
519
+ this.editService.hasChildren = fn;
520
+ },
521
+ enumerable: true,
522
+ configurable: true
523
+ });
467
524
  Object.defineProperty(GanttComponent.prototype, "timelinePaneOptions", {
468
525
  get: function () {
469
526
  return tslib_1.__assign({}, this._timelinePaneOptions, { size: this.treeListPaneOptions.collapsed ? '100%' : this._timelinePaneOptions.size });
@@ -615,16 +672,6 @@ var GanttComponent = /** @class */ (function () {
615
672
  enumerable: true,
616
673
  configurable: true
617
674
  });
618
- Object.defineProperty(GanttComponent.prototype, "editDialogFormGroup", {
619
- /**
620
- * @hidden
621
- */
622
- get: function () {
623
- return this.editService.formGroup;
624
- },
625
- enumerable: true,
626
- configurable: true
627
- });
628
675
  GanttComponent.prototype.ngOnChanges = function (changes) {
629
676
  if (kendo_angular_common_1.anyChanged(['data', 'activeView', 'workWeekStart', 'workWeekEnd', 'workDayStart', 'workDayEnd'], changes)) {
630
677
  this.loadTimelineData();
@@ -698,19 +745,30 @@ var GanttComponent = /** @class */ (function () {
698
745
  }
699
746
  };
700
747
  /**
701
- * Updates the data of the Gantt and forces row-related callbacks to be called anew.
748
+ * Forces the TreeList to evaluate if some data items have changed and re-renders the rows information, if needed.
749
+ * Recalculates and re-renders the Timeline period, if needed.
750
+ * Redraws changed dependencies, if needed.
751
+ * Executes all row-related callbacks anew.
702
752
  */
703
753
  GanttComponent.prototype.updateView = function () {
704
754
  if (utils_1.isPresent(this.treeList)) {
705
755
  this.treeList.updateView();
706
756
  }
757
+ this.loadTimelineData();
758
+ this.dependencyDomService.notifyChanges();
707
759
  };
708
760
  /**
709
761
  * Opens the task editing dialog.
710
762
  */
711
763
  GanttComponent.prototype.editTask = function (dataItem, formGroup) {
764
+ var _this = this;
712
765
  if (!this.showEditingDialog) {
713
- this.editService.createEditDialog(dataItem, formGroup);
766
+ var taskId_1 = this.mapper.extractFromTask(dataItem, 'id');
767
+ var dependencies = this.dependencies.filter(function (item) {
768
+ return _this.mapper.extractFromDependency(item, 'toId') === taskId_1
769
+ || _this.mapper.extractFromDependency(item, 'fromId') === taskId_1;
770
+ });
771
+ this.editService.createEditDialog(dataItem, formGroup, dependencies);
714
772
  }
715
773
  };
716
774
  /**
@@ -783,7 +841,7 @@ var GanttComponent = /** @class */ (function () {
783
841
  * @hidden
784
842
  */
785
843
  GanttComponent.prototype.showToolbar = function (position) {
786
- return this.toolbarPosition !== 'none' && ([position, 'both'].indexOf(this.toolbarPosition) > -1);
844
+ return this.toolbarSettings.position !== 'none' && ([position, 'both'].indexOf(this.toolbarSettings.position) > -1);
787
845
  };
788
846
  /**
789
847
  * @hidden
@@ -951,7 +1009,7 @@ var GanttComponent = /** @class */ (function () {
951
1009
  items: [dataItem],
952
1010
  sender: this
953
1011
  });
954
- this.updateView();
1012
+ this.treeList.updateView();
955
1013
  };
956
1014
  GanttComponent.prototype.updateTreeListGroupClass = function (columns) {
957
1015
  if (columns === void 0) { columns = this.columns; }
@@ -991,6 +1049,11 @@ var GanttComponent = /** @class */ (function () {
991
1049
  var shouldToggleSelection = ctrlKey || metaKey;
992
1050
  return (shouldToggleSelection && this.isSelected(dataItem)) ? 'remove' : 'select';
993
1051
  };
1052
+ GanttComponent.prototype.getFirstSelectedItem = function () {
1053
+ var isSelectedCallback = this.isSelected || default_callbacks_1.isSelected;
1054
+ var loadedItems = this.renderedTreeListItems || [];
1055
+ return loadedItems.find(isSelectedCallback);
1056
+ };
994
1057
  var GanttComponent_1;
995
1058
  tslib_1.__decorate([
996
1059
  core_1.ViewChild(kendo_angular_treelist_1.TreeListComponent, { static: true }),
@@ -1064,16 +1127,19 @@ var GanttComponent = /** @class */ (function () {
1064
1127
  ], GanttComponent.prototype, "selectable", void 0);
1065
1128
  tslib_1.__decorate([
1066
1129
  core_1.Input(),
1067
- tslib_1.__metadata("design:type", String)
1068
- ], GanttComponent.prototype, "toolbarPosition", void 0);
1130
+ tslib_1.__metadata("design:type", Object),
1131
+ tslib_1.__metadata("design:paramtypes", [Object])
1132
+ ], GanttComponent.prototype, "toolbarSettings", null);
1069
1133
  tslib_1.__decorate([
1070
1134
  core_1.Input(),
1071
- tslib_1.__metadata("design:type", Function)
1072
- ], GanttComponent.prototype, "fetchChildren", void 0);
1135
+ tslib_1.__metadata("design:type", Function),
1136
+ tslib_1.__metadata("design:paramtypes", [Function])
1137
+ ], GanttComponent.prototype, "fetchChildren", null);
1073
1138
  tslib_1.__decorate([
1074
1139
  core_1.Input(),
1075
- tslib_1.__metadata("design:type", Function)
1076
- ], GanttComponent.prototype, "hasChildren", void 0);
1140
+ tslib_1.__metadata("design:type", Function),
1141
+ tslib_1.__metadata("design:paramtypes", [Function])
1142
+ ], GanttComponent.prototype, "hasChildren", null);
1077
1143
  tslib_1.__decorate([
1078
1144
  core_1.Input(),
1079
1145
  tslib_1.__metadata("design:type", Array)
@@ -1186,6 +1252,10 @@ var GanttComponent = /** @class */ (function () {
1186
1252
  core_1.Output(),
1187
1253
  tslib_1.__metadata("design:type", core_1.EventEmitter)
1188
1254
  ], GanttComponent.prototype, "save", void 0);
1255
+ tslib_1.__decorate([
1256
+ core_1.Output(),
1257
+ tslib_1.__metadata("design:type", core_1.EventEmitter)
1258
+ ], GanttComponent.prototype, "taskAdd", void 0);
1189
1259
  tslib_1.__decorate([
1190
1260
  core_1.Output(),
1191
1261
  tslib_1.__metadata("design:type", core_1.EventEmitter)
@@ -1243,6 +1313,7 @@ var GanttComponent = /** @class */ (function () {
1243
1313
  selector: 'kendo-gantt',
1244
1314
  exportAs: 'kendoGantt',
1245
1315
  providers: [
1316
+ gantt_localization_service_1.GanttLocalizationService,
1246
1317
  kendo_angular_l10n_1.LocalizationService,
1247
1318
  {
1248
1319
  provide: kendo_angular_treelist_1.DataBoundTreeComponent,
@@ -1262,7 +1333,7 @@ var GanttComponent = /** @class */ (function () {
1262
1333
  option_changes_service_1.OptionChangesService,
1263
1334
  edit_service_1.EditService
1264
1335
  ],
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 "
1336
+ template: "\n <ng-container kendoGanttLocalizedMessages\n i18n-taskEditingGeneralTabTitle=\"kendo.gantt.taskEditingGeneralTabTitle|The title of the 'General' tab of the editing dialog TabStrip\"\n taskEditingGeneralTabTitle=\"General\"\n\n i18n-taskEditingPredecessorsTabTitle=\"kendo.gantt.taskEditingPredecessorsTabTitle|The title of the 'Predecessors' dependencies tab of the editing dialog TabStrip\"\n taskEditingPredecessorsTabTitle=\"Predecessors\"\n\n i18n-taskEditingSuccessorsTabTitle=\"kendo.gantt.taskEditingSuccessorsTabTitle|The title of the 'Successors' dependencies tab of the editing dialog TabStrip\"\n taskEditingSuccessorsTabTitle=\"Successors\"\n\n i18n-taskEditingDependenciesAddButtonText=\"kendo.gantt.taskEditingDependenciesAddButtonText|The text of the 'Add' button in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesAddButtonText=\"Add\"\n\n i18n-taskEditingDependenciesRemoveButtonText=\"kendo.gantt.taskEditingDependenciesRemoveButtonText|The text of the 'Remove' button in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesRemoveButtonText=\"Remove\"\n\n i18n-taskEditingDependenciesGridNameColumnTitle=\"kendo.gantt.taskEditingDependenciesGridNameColumnTitle|The title of the 'Task Title' Grid column in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesGridNameColumnTitle=\"Task Title\"\n\n i18n-taskEditingDependenciesGridTypeColumnTitle=\"kendo.gantt.taskEditingDependenciesGridTypeColumnTitle|The title of the 'Type' Grid column in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesGridTypeColumnTitle=\"Type\"\n\n i18n-taskDeleteLabel=\"kendo.gantt.taskDeleteLabel|The label of the task delete icon\"\n taskDeleteLabel=\"Delete\"\n\n i18n-taskEditingDialogTitle=\"kendo.gantt.taskEditingDialogTitle|The title of the task editing dialog\"\n taskEditingDialogTitle=\"Editing Task\"\n\n i18n-taskEditingDialogCloseTitle=\"kendo.gantt.taskEditingDialogCloseTitle|The title of the task editing dialog close button\"\n taskEditingDialogCloseTitle=\"Close\"\n\n i18n-confirmationDialogCloseTitle=\"kendo.gantt.confirmationDialogCloseTitle|The title of the confirmation dialog close button\"\n confirmationDialogCloseTitle=\"Close\"\n\n i18n-confirmationDialogTitle=\"kendo.gantt.confirmationDialogTitle|The title of the delete task confirmation dialog\"\n confirmationDialogTitle=\"Delete Task\"\n\n i18n-confirmationDialogContent=\"kendo.gantt.confirmationDialogContent|The content of the delete task confirmation dialog\"\n confirmationDialogContent=\"Are you sure you want to delete this task?\"\n\n i18n-deleteButtonText=\"kendo.gantt.deleteButtonText|The text of the task editing dialog 'Delete' button\"\n deleteButtonText=\"Delete\"\n\n i18n-cancelButtonText=\"kendo.gantt.cancelButtonText|The text of the task editing dialog 'Cancel' button\"\n cancelButtonText=\"Cancel\"\n\n i18n-saveButtonText=\"kendo.gantt.saveButtonText|The text of the task editing dialog 'Save' button\"\n saveButtonText=\"Save\"\n\n i18n-titleFieldInputLabel=\"kendo.gantt.titleFieldInputLabel|The label of the 'title' field input in editing mode\"\n titleFieldInputLabel=\"Title\"\n\n i18n-startFieldInputLabel=\"kendo.gantt.startFieldInputLabel|The label of the 'start' field input in editing mode\"\n startFieldInputLabel=\"Start\"\n\n i18n-endFieldInputLabel=\"kendo.gantt.endFieldInputLabel|The label of the 'end' field input in editing mode\"\n endFieldInputLabel=\"End\"\n\n i18n-completionRatioFieldInputLabel=\"kendo.gantt.completionRatioFieldInputLabel|The label of the 'completionRatio' field input in editing mode\"\n completionRatioFieldInputLabel=\"Progress\"\n\n i18n-dayViewText=\"kendo.gantt.dayViewText|The text of the day view in the ViewSelector component\"\n dayViewText=\"Day\"\n\n i18n-weekViewText=\"kendo.gantt.weekViewText|The text of the week view in the ViewSelector component\"\n weekViewText=\"Week\"\n\n i18n-monthViewText=\"kendo.gantt.monthViewText|The text of the month view in the ViewSelector component\"\n monthViewText=\"Month\"\n\n i18n-yearViewText-disabled=\"kendo.gantt.yearViewText|The text of the year view in the ViewSelector component\"\n yearViewText=\"Year\"\n\n i18n-addTaskText=\"kendo.gantt.addTaskText|The text of the DropDownButton in the AddTask component\"\n addTaskText=\"Add Task\"\n\n i18n-addChildText=\"kendo.gantt.addChildText|The text of the 'Add Child' option in the AddTask component\"\n addChildText=\"Add Child\"\n\n i18n-addAboveText=\"kendo.gantt.addAboveText|The text of the 'Add Above' option in the AddTask component\"\n addAboveText=\"Add Above\"\n\n i18n-addBelowText=\"kendo.gantt.addBelowText|The text of the 'Add Below' option in the AddTask component\"\n addBelowText=\"Add Below\"\n\n i18n-noRecords=\"kendo.gantt.noRecords|The label visible in the TreeList when there are no records\"\n noRecords=\"No records available.\"\n\n i18n-filter=\"kendo.gantt.filter|The label of the filter cell or icon\"\n filter=\"Filter\"\n\n i18n-filterEqOperator=\"kendo.gantt.filterEqOperator|The text of the equal filter operator\"\n filterEqOperator=\"Is equal to\"\n\n i18n-filterNotEqOperator=\"kendo.gantt.filterNotEqOperator|The text of the not equal filter operator\"\n filterNotEqOperator=\"Is not equal to\"\n\n i18n-filterIsNullOperator=\"kendo.gantt.filterIsNullOperator|The text of the is null filter operator\"\n filterIsNullOperator=\"Is null\"\n\n i18n-filterIsNotNullOperator=\"kendo.gantt.filterIsNotNullOperator|The text of the is not null filter operator\"\n filterIsNotNullOperator=\"Is not null\"\n\n i18n-filterIsEmptyOperator=\"kendo.gantt.filterIsEmptyOperator|The text of the is empty filter operator\"\n filterIsEmptyOperator=\"Is empty\"\n\n i18n-filterIsNotEmptyOperator=\"kendo.gantt.filterIsNotEmptyOperator|The text of the is not empty filter operator\"\n filterIsNotEmptyOperator=\"Is not empty\"\n\n i18n-filterStartsWithOperator=\"kendo.gantt.filterStartsWithOperator|The text of the starts with filter operator\"\n filterStartsWithOperator=\"Starts with\"\n\n i18n-filterContainsOperator=\"kendo.gantt.filterContainsOperator|The text of the contains filter operator\"\n filterContainsOperator=\"Contains\"\n\n i18n-filterNotContainsOperator=\"kendo.gantt.filterNotContainsOperator|The text of the does not contain filter operator\"\n filterNotContainsOperator=\"Does not contain\"\n\n i18n-filterEndsWithOperator=\"kendo.gantt.filterEndsWithOperator|The text of the ends with filter operator\"\n filterEndsWithOperator=\"Ends with\"\n\n i18n-filterGteOperator=\"kendo.gantt.filterGteOperator|The text of the greater than or equal filter operator\"\n filterGteOperator=\"Is greater than or equal to\"\n\n i18n-filterGtOperator=\"kendo.gantt.filterGtOperator|The text of the greater than filter operator\"\n filterGtOperator=\"Is greater than\"\n\n i18n-filterLteOperator=\"kendo.gantt.filterLteOperator|The text of the less than or equal filter operator\"\n filterLteOperator=\"Is less than or equal to\"\n\n i18n-filterLtOperator=\"kendo.gantt.filterLtOperator|The text of the less than filter operator\"\n filterLtOperator=\"Is less than\"\n\n i18n-filterIsTrue=\"kendo.gantt.filterIsTrue|The text of the IsTrue boolean filter option\"\n filterIsTrue=\"Is True\"\n\n i18n-filterIsFalse=\"kendo.gantt.filterIsFalse|The text of the IsFalse boolean filter option\"\n filterIsFalse=\"Is False\"\n\n i18n-filterBooleanAll=\"kendo.gantt.filterBooleanAll|The text of the (All) boolean filter option\"\n filterBooleanAll=\"(All)\"\n\n i18n-filterAfterOrEqualOperator=\"kendo.gantt.filterAfterOrEqualOperator|The text of the after or equal date filter operator\"\n filterAfterOrEqualOperator=\"Is after or equal to\"\n\n i18n-filterAfterOperator=\"kendo.gantt.filterAfterOperator|The text of the after date filter operator\"\n filterAfterOperator=\"Is after\"\n\n i18n-filterBeforeOperator=\"kendo.gantt.filterBeforeOperator|The text of the before date filter operator\"\n filterBeforeOperator=\"Is before\"\n\n i18n-filterBeforeOrEqualOperator=\"kendo.gantt.filterBeforeOrEqualOperator|The text of the before or equal date filter operator\"\n filterBeforeOrEqualOperator=\"Is before or equal to\"\n\n i18n-filterFilterButton=\"kendo.gantt.filterFilterButton|The text of the filter button\"\n filterFilterButton=\"Filter\"\n\n i18n-filterClearButton=\"kendo.gantt.filterClearButton|The text of the clear filter button\"\n filterClearButton=\"Clear\"\n\n i18n-filterAndLogic=\"kendo.gantt.filterAndLogic|The text of the And filter logic\"\n filterAndLogic=\"And\"\n\n i18n-filterOrLogic=\"kendo.gantt.filterOrLogic|The text of the Or filter logic\"\n filterOrLogic=\"Or\"\n\n i18n-loading=\"kendo.gantt.loading|The loading text\"\n loading=\"Loading\"\n\n i18n-columnMenu=\"kendo.gantt.columnMenu|The title of the column menu icon\"\n columnMenu=\"Column Menu\"\n\n i18n-columns=\"kendo.gantt.columns|The text shown in the column menu for the columns item\"\n columns=\"Columns\"\n\n i18n-lock-disabled=\"kendo.gantt.lock|The text shown in the column menu for the lock item\"\n lock-disabled=\"Lock\"\n\n i18n-unlock-disabled=\"kendo.gantt.unlock|The text shown in the column menu for the unlock item\"\n unlock-disabled=\"Unlock\"\n\n i18n-sortable=\"kendo.gantt.sortable|The label of the sort icon\"\n sortable=\"Sortable\"\n\n i18n-sortAscending=\"kendo.gantt.sortAscending|The text shown in the column menu for the sort ascending item\"\n sortAscending=\"Sort Ascending\"\n\n i18n-sortDescending=\"kendo.gantt.sortDescending|The text shown in the column menu for the sort descending item\"\n sortDescending=\"Sort Descending\"\n\n i18n-sortedAscending=\"kendo.gantt.sortedAscending|The status announcement when a column is sorted ascending\"\n sortedAscending=\"Sorted Ascending\"\n\n i18n-sortedDescending=\"kendo.gantt.sortedDescending|The status announcement when a column is sorted descending\"\n sortedDescending=\"Sorted Descending\"\n\n i18n-sortedDefault=\"kendo.gantt.sortedDefault|The status announcement when a column is no longer sorted\"\n sortedDefault=\"Not Sorted\"\n\n i18n-columnsApply=\"kendo.gantt.columnsApply|The text shown in the column menu or column chooser for the columns apply button\"\n columnsApply=\"Apply\"\n\n i18n-columnsReset=\"kendo.gantt.columnsReset|The text shown in the column menu or column chooser for the columns reset button\"\n columnsReset=\"Reset\"></ng-container>\n <kendo-gantt-toolbar\n *ngIf=\"showToolbar('top')\"\n [showAddTask]=\"toolbarSettings.addTaskTool === 'top' || toolbarSettings.addTaskTool === 'both'\"\n [showViewSelector]=\"toolbarSettings.viewSelectorTool === 'top' || toolbarSettings.viewSelectorTool === 'both'\"\n class=\"k-gantt-header k-toolbar k-gantt-toolbar\"\n position=\"top\"></kendo-gantt-toolbar>\n <div class=\"k-gantt-content\">\n <kendo-splitter [style.border]=\"0\">\n <kendo-splitter-pane\n class=\"k-gantt-treelist k-gantt-treelist-scrollable\"\n [collapsible]=\"treeListPaneOptions?.collapsible\"\n [collapsed]=\"treeListPaneOptions?.collapsed\"\n (collapsedChange)=\"onTreeListCollapsedChange($event)\"\n [scrollable]=\"false\">\n <kendo-treelist\n [idField]=\"taskIdField\"\n [columns]=\"columns\"\n [data]=\"data\"\n [hasChildren]=\"hasChildren\"\n [fetchChildren]=\"fetchChildren\"\n [isExpanded]=\"isExpanded\"\n [autoSize]=\"columnsAutoSize\"\n [columnMenu]=\"columnMenu\"\n [reorderable]=\"columnsReorderable\"\n [resizable]=\"columnsResizable\"\n [rowClass]=\"rowClass\"\n [isSelected]=\"isSelected\"\n [selectable]=\"selectable\"\n [sortable]=\"sortable\"\n [sort]=\"sort\"\n [filterable]=\"filterMenu\"\n [filter]=\"filter\"\n (filterChange)=\"filterChange.emit($event)\"\n (sortChange)=\"sortChange.emit($event)\"\n (dataStateChange)=\"dataStateChange.emit({\n filter: $event.filter,\n sort: $event.sort\n })\"\n (expandStateChange)=\"expandStateChange.emit($event)\"\n (expand)=\"rowExpand.emit({ dataItem: $event.dataItem })\"\n (collapse)=\"rowCollapse.emit({ dataItem: $event.dataItem })\"\n (columnReorder)=\"columnReorder.emit($event)\"\n (columnResize)=\"columnResize.emit($event)\"\n (columnVisibilityChange)=\"handleColumnVisibilityChange($event)\"\n (columnLockedChange)=\"columnLockedChange.emit($event)\"\n (selectionChange)=\"handleTreeListSelectionChange($event)\"\n (cellClick)=\"handleTreeListCellClick($event)\"\n (cellClose)=\"handleCellClose($event)\"\n [kendoEventsOutsideAngular]=\"{\n dblclick: handleTreeListDoubleClick\n }\"\n [scope]=\"this\"\n >\n <kendo-treelist-messages\n [noRecords]=\"getText('noRecords')\"\n [filter]=\"getText('filter')\"\n [filterEqOperator]=\"getText('filterEqOperator')\"\n [filterNotEqOperator]=\"getText('filterNotEqOperator')\"\n [filterIsNullOperator]=\"getText('filterIsNullOperator')\"\n [filterIsNotNullOperator]=\"getText('filterIsNotNullOperator')\"\n [filterIsEmptyOperator]=\"getText('filterIsEmptyOperator')\"\n [filterIsNotEmptyOperator]=\"getText('filterIsNotEmptyOperator')\"\n [filterStartsWithOperator]=\"getText('filterStartsWithOperator')\"\n [filterContainsOperator]=\"getText('filterContainsOperator')\"\n [filterNotContainsOperator]=\"getText('filterNotContainsOperator')\"\n [filterEndsWithOperator]=\"getText('filterEndsWithOperator')\"\n [filterGteOperator]=\"getText('filterGteOperator')\"\n [filterGtOperator]=\"getText('filterGtOperator')\"\n [filterLteOperator]=\"getText('filterLteOperator')\"\n [filterLtOperator]=\"getText('filterLtOperator')\"\n [filterIsTrue]=\"getText('filterIsTrue')\"\n [filterIsFalse]=\"getText('filterIsFalse')\"\n [filterBooleanAll]=\"getText('filterBooleanAll')\"\n [filterAfterOrEqualOperator]=\"getText('filterAfterOrEqualOperator')\"\n [filterAfterOperator]=\"getText('filterAfterOperator')\"\n [filterBeforeOperator]=\"getText('filterBeforeOperator')\"\n [filterBeforeOrEqualOperator]=\"getText('filterBeforeOrEqualOperator')\"\n [filterFilterButton]=\"getText('filterFilterButton')\"\n [filterClearButton]=\"getText('filterClearButton')\"\n [filterAndLogic]=\"getText('filterAndLogic')\"\n [filterOrLogic]=\"getText('filterOrLogic')\"\n [loading]=\"getText('loading')\"\n [columnMenu]=\"getText('columnMenu')\"\n [columns]=\"getText('columns')\"\n [sortable]=\"getText('sortable')\"\n [sortAscending]=\"getText('sortAscending')\"\n [sortDescending]=\"getText('sortDescending')\"\n [sortedAscending]=\"getText('sortedAscending')\"\n [sortedDescending]=\"getText('sortedDescending')\"\n [sortedDefault]=\"getText('sortedDefault')\"\n [columnsApply]=\"getText('columnsApply')\"\n [columnsReset]=\"getText('columnsReset')\"\n >\n </kendo-treelist-messages>\n </kendo-treelist>\n </kendo-splitter-pane>\n <kendo-splitter-pane\n [collapsible]=\"timelinePaneOptions?.collapsible\"\n [resizable]=\"timelinePaneOptions?.resizable\"\n [collapsed]=\"timelinePaneOptions?.collapsed\"\n [min]=\"timelinePaneOptions?.min\"\n [max]=\"timelinePaneOptions?.max\"\n [size]=\"timelinePaneOptions?.size\"\n (collapsedChange)=\"onTimelineCollapsedChange($event)\"\n (sizeChange)=\"onTimelinePaneSizeChange($event)\"\n [scrollable]=\"false\">\n <kendo-gantt-timeline\n *ngIf=\"views && views.length\"\n [rows]=\"renderedTreeListItems\"\n [slots]=\"timelineSlots\"\n [groupSlots]=\"timelineGroupSlots\"\n [tableWidth]=\"tableWidth\"\n [activeView]=\"activeView\"\n [taskContentTemplate]=\"taskContentTemplate?.templateRef\"\n [taskTemplate]=\"taskTemplate?.templateRef\"\n [summaryTaskTemplate]=\"summaryTaskTemplate?.templateRef\"\n [taskClass]=\"taskClass\"\n [dependencies]=\"dependencies\"\n [hasChildren]=\"hasChildren\"\n [isTaskSelected]=\"isTaskSelected\"\n [kendoEventsOutsideAngular]=\"{\n click: handleTimelineClick,\n contextmenu: handleTimelineRightClick,\n dblclick: handleTimelineDblClick,\n mousedown: handleTimelineMouseDown\n }\"\n [scope]=\"this\"\n ></kendo-gantt-timeline>\n </kendo-splitter-pane>\n </kendo-splitter>\n </div>\n <kendo-gantt-toolbar\n *ngIf=\"showToolbar('bottom')\"\n [showAddTask]=\"toolbarSettings.addTaskTool === 'bottom' || toolbarSettings.addTaskTool === 'both'\"\n [showViewSelector]=\"toolbarSettings.viewSelectorTool === 'bottom' || toolbarSettings.viewSelectorTool === 'both'\"\n class=\"k-gantt-footer k-toolbar k-gantt-toolbar\"\n position=\"bottom\"></kendo-gantt-toolbar>\n <kendo-gantt-edit-dialog\n *ngIf=\"showEditingDialog\"\n [data]=\"data\">\n </kendo-gantt-edit-dialog>\n <kendo-dialog\n *ngIf=\"showConfirmationDialog\"\n [width]=\"575\"\n [height]=\"170\"\n [title]=\"getText('confirmationDialogTitle')\"\n (close)=\"showConfirmationDialog = false;\">\n <span>{{ getText('confirmationDialogContent') }}</span>\n <kendo-dialog-actions layout=\"normal\">\n <kendo-treelist-spacer></kendo-treelist-spacer>\n <button kendoButton [primary]=\"true\" (click)=\"handleDeleteConfirmation()\">{{ getText('deleteButtonText') }}</button>\n <button kendoButton (click)=\"showConfirmationDialog = false;\">{{ getText('cancelButtonText') }}</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n "
1266
1337
  }),
1267
1338
  tslib_1.__metadata("design:paramtypes", [timeline_view_service_1.TimelineViewService,
1268
1339
  scroll_sync_service_1.ScrollSyncService,
@@ -42,7 +42,11 @@ var kendo_angular_dateinputs_1 = require("@progress/kendo-angular-dateinputs");
42
42
  var custom_messages_component_1 = require("./localization/custom-messages.component");
43
43
  var kendo_angular_l10n_1 = require("@progress/kendo-angular-l10n");
44
44
  var localized_messages_directive_1 = require("./localization/localized-messages.directive");
45
- var treelist_messages_directive_1 = require("./localization/treelist-messages.directive");
45
+ var add_task_component_1 = require("./editing/add-task.component");
46
+ var kendo_angular_grid_1 = require("@progress/kendo-angular-grid");
47
+ var kendo_angular_dropdowns_1 = require("@progress/kendo-angular-dropdowns");
48
+ var dependencies_table_component_1 = require("./editing/dependencies-table.component");
49
+ var task_fields_component_1 = require("./editing/task-fields.component");
46
50
  var IMPORTED_MODULES = [
47
51
  common_1.CommonModule,
48
52
  forms_1.ReactiveFormsModule,
@@ -54,7 +58,10 @@ var IMPORTED_MODULES = [
54
58
  kendo_angular_treelist_1.TreeListModule,
55
59
  kendo_angular_buttons_1.ButtonsModule,
56
60
  kendo_angular_dialog_1.DialogModule,
57
- kendo_angular_common_1.EventsModule
61
+ kendo_angular_common_1.EventsModule,
62
+ kendo_angular_layout_1.TabStripModule,
63
+ kendo_angular_grid_1.GridModule,
64
+ kendo_angular_dropdowns_1.DropDownsModule
58
65
  ];
59
66
  var DECLARATIONS = [
60
67
  gantt_component_1.GanttComponent,
@@ -91,7 +98,9 @@ var DECLARATIONS = [
91
98
  edit_dialog_component_1.EditDialogComponent,
92
99
  custom_messages_component_1.CustomMessagesComponent,
93
100
  localized_messages_directive_1.LocalizedMessagesDirective,
94
- treelist_messages_directive_1.GanttTreeListMessagesDirective
101
+ add_task_component_1.GanttAddTaskComponent,
102
+ dependencies_table_component_1.DependenciesTableComponent,
103
+ task_fields_component_1.TaskFieldsComponent
95
104
  ];
96
105
  /**
97
106
  * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
package/dist/npm/index.js CHANGED
@@ -17,18 +17,26 @@ var dependency_dom_service_1 = require("./dependencies/dependency-dom.service");
17
17
  exports.DependencyDomService = dependency_dom_service_1.DependencyDomService
18
18
  var gantt_dependency_directive_1 = require("./dependencies/gantt-dependency.directive");
19
19
  exports.GanttDependencyDirective = gantt_dependency_directive_1.GanttDependencyDirective
20
+ var add_task_component_1 = require("./editing/add-task.component");
21
+ exports.GanttAddTaskComponent = add_task_component_1.GanttAddTaskComponent
22
+ var dependencies_table_component_1 = require("./editing/dependencies-table.component");
23
+ exports.DependenciesTableComponent = dependencies_table_component_1.DependenciesTableComponent
20
24
  var edit_dialog_component_1 = require("./editing/edit-dialog.component");
21
25
  exports.EditDialogComponent = edit_dialog_component_1.EditDialogComponent
22
26
  var edit_service_1 = require("./editing/edit.service");
23
27
  exports.EditService = edit_service_1.EditService
28
+ var task_fields_component_1 = require("./editing/task-fields.component");
29
+ exports.TaskFieldsComponent = task_fields_component_1.TaskFieldsComponent
24
30
  var custom_messages_component_1 = require("./localization/custom-messages.component");
25
31
  exports.CustomMessagesComponent = custom_messages_component_1.CustomMessagesComponent
32
+ var gantt_localization_service_1 = require("./localization/gantt-localization.service");
33
+ exports.GanttLocalizationService = gantt_localization_service_1.GanttLocalizationService
26
34
  var localized_messages_directive_1 = require("./localization/localized-messages.directive");
27
35
  exports.LocalizedMessagesDirective = localized_messages_directive_1.LocalizedMessagesDirective
28
36
  var messages_1 = require("./localization/messages");
29
37
  exports.Messages = messages_1.Messages
30
- var treelist_messages_directive_1 = require("./localization/treelist-messages.directive");
31
- exports.GanttTreeListMessagesDirective = treelist_messages_directive_1.GanttTreeListMessagesDirective
38
+ var preventable_event_1 = require("./models/events/preventable-event");
39
+ exports.PreventableEvent = preventable_event_1.PreventableEvent
32
40
  var gantt_header_table_body_component_1 = require("./rendering/gantt-header-table-body.component");
33
41
  exports.GanttHeaderTableBodyComponent = gantt_header_table_body_component_1.GanttHeaderTableBodyComponent
34
42
  var gantt_milestone_task_component_1 = require("./rendering/gantt-milestone-task.component");
@@ -0,0 +1,28 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ "use strict";
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ var tslib_1 = require("tslib");
8
+ var core_1 = require("@angular/core");
9
+ var kendo_angular_l10n_1 = require("@progress/kendo-angular-l10n");
10
+ /**
11
+ * @hidden
12
+ *
13
+ * Needed to keep the Gantt's LocalizationService reference and be able to use it component's inside the TabStrip
14
+ */
15
+ var GanttLocalizationService = /** @class */ (function () {
16
+ function GanttLocalizationService(localizationService) {
17
+ this.localizationService = localizationService;
18
+ }
19
+ GanttLocalizationService.prototype.get = function (token) {
20
+ return this.localizationService.get(token);
21
+ };
22
+ GanttLocalizationService = tslib_1.__decorate([
23
+ core_1.Injectable(),
24
+ tslib_1.__metadata("design:paramtypes", [kendo_angular_l10n_1.LocalizationService])
25
+ ], GanttLocalizationService);
26
+ return GanttLocalizationService;
27
+ }());
28
+ exports.GanttLocalizationService = GanttLocalizationService;
@@ -15,6 +15,38 @@ var Messages = /** @class */ (function (_super) {
15
15
  function Messages() {
16
16
  return _super !== null && _super.apply(this, arguments) || this;
17
17
  }
18
+ tslib_1.__decorate([
19
+ core_1.Input(),
20
+ tslib_1.__metadata("design:type", String)
21
+ ], Messages.prototype, "taskEditingGeneralTabTitle", void 0);
22
+ tslib_1.__decorate([
23
+ core_1.Input(),
24
+ tslib_1.__metadata("design:type", String)
25
+ ], Messages.prototype, "taskEditingPredecessorsTabTitle", void 0);
26
+ tslib_1.__decorate([
27
+ core_1.Input(),
28
+ tslib_1.__metadata("design:type", String)
29
+ ], Messages.prototype, "taskEditingSuccessorsTabTitle", void 0);
30
+ tslib_1.__decorate([
31
+ core_1.Input(),
32
+ tslib_1.__metadata("design:type", String)
33
+ ], Messages.prototype, "taskEditingDependenciesAddButtonText", void 0);
34
+ tslib_1.__decorate([
35
+ core_1.Input(),
36
+ tslib_1.__metadata("design:type", String)
37
+ ], Messages.prototype, "taskEditingDependenciesRemoveButtonText", void 0);
38
+ tslib_1.__decorate([
39
+ core_1.Input(),
40
+ tslib_1.__metadata("design:type", String)
41
+ ], Messages.prototype, "taskEditingDependenciesGridNameColumnTitle", void 0);
42
+ tslib_1.__decorate([
43
+ core_1.Input(),
44
+ tslib_1.__metadata("design:type", String)
45
+ ], Messages.prototype, "taskEditingDependenciesGridTypeColumnTitle", void 0);
46
+ tslib_1.__decorate([
47
+ core_1.Input(),
48
+ tslib_1.__metadata("design:type", String)
49
+ ], Messages.prototype, "deleteButtonText", void 0);
18
50
  tslib_1.__decorate([
19
51
  core_1.Input(),
20
52
  tslib_1.__metadata("design:type", String)
@@ -38,7 +70,19 @@ var Messages = /** @class */ (function (_super) {
38
70
  tslib_1.__decorate([
39
71
  core_1.Input(),
40
72
  tslib_1.__metadata("design:type", String)
41
- ], Messages.prototype, "deleteButtonText", void 0);
73
+ ], Messages.prototype, "addTaskText", void 0);
74
+ tslib_1.__decorate([
75
+ core_1.Input(),
76
+ tslib_1.__metadata("design:type", String)
77
+ ], Messages.prototype, "addChildText", void 0);
78
+ tslib_1.__decorate([
79
+ core_1.Input(),
80
+ tslib_1.__metadata("design:type", String)
81
+ ], Messages.prototype, "addAboveText", void 0);
82
+ tslib_1.__decorate([
83
+ core_1.Input(),
84
+ tslib_1.__metadata("design:type", String)
85
+ ], Messages.prototype, "addBelowText", void 0);
42
86
  tslib_1.__decorate([
43
87
  core_1.Input(),
44
88
  tslib_1.__metadata("design:type", String)
@@ -4,3 +4,19 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  "use strict";
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
+ /**
8
+ * The dependency type when two tasks are connected.
9
+ *
10
+ * The supported values are:
11
+ * * `FF`&mdash;from 'finish' to 'finish'
12
+ * * `FS`&mdash;from 'finish' to 'start'
13
+ * * `SS`&mdash;from 'start' to 'start'
14
+ * * `SF`&mdash;from 'start' to 'finish'
15
+ */
16
+ var DependencyType;
17
+ (function (DependencyType) {
18
+ DependencyType[DependencyType["FF"] = 0] = "FF";
19
+ DependencyType[DependencyType["FS"] = 1] = "FS";
20
+ DependencyType[DependencyType["SF"] = 2] = "SF";
21
+ DependencyType[DependencyType["SS"] = 3] = "SS"; // task B can't start before task A starts
22
+ })(DependencyType = exports.DependencyType || (exports.DependencyType = {}));
@@ -4,3 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  "use strict";
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
+ var dependency_type_enum_1 = require("./dependency-type.enum");
8
+ exports.DependencyType = dependency_type_enum_1.DependencyType;
9
+ var cell_close_event_interface_1 = require("./events/cell-close-event.interface");
10
+ exports.CellCloseEvent = cell_close_event_interface_1.CellCloseEvent;
@@ -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: 1639044748,
14
+ publishDate: 1641921322,
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
  };