@progress/kendo-angular-gantt 0.2.1-dev.202112101349 → 0.3.0-dev.202112141015

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 (49) hide show
  1. package/dist/cdn/js/kendo-angular-gantt.js +1 -1
  2. package/dist/cdn/main.js +2 -2
  3. package/dist/es/editing/add-task.component.js +94 -0
  4. package/dist/es/editing/edit.service.js +1 -0
  5. package/dist/es/gantt.component.js +59 -15
  6. package/dist/es/gantt.module.js +3 -1
  7. package/dist/es/index.js +1 -0
  8. package/dist/es/localization/messages.js +45 -1
  9. package/dist/es/models/events/{add-event.interface.js → task-add-event.interface.js} +0 -0
  10. package/dist/es/models/{toolbar-position.js → toolbar-settings.js} +0 -0
  11. package/dist/es/package-metadata.js +1 -1
  12. package/dist/es/toolbar/toolbar.component.js +9 -1
  13. package/dist/es2015/editing/add-task.component.d.ts +45 -0
  14. package/dist/es2015/editing/add-task.component.js +102 -0
  15. package/dist/es2015/editing/edit.service.d.ts +3 -0
  16. package/dist/es2015/editing/edit.service.js +1 -0
  17. package/dist/es2015/gantt.component.d.ts +18 -8
  18. package/dist/es2015/gantt.component.js +91 -14
  19. package/dist/es2015/gantt.module.js +3 -1
  20. package/dist/es2015/index.d.ts +1 -0
  21. package/dist/es2015/index.js +1 -0
  22. package/dist/es2015/index.metadata.json +1 -1
  23. package/dist/es2015/localization/messages.d.ts +46 -2
  24. package/dist/es2015/localization/messages.js +45 -1
  25. package/dist/es2015/models/events/task-add-event.interface.d.ts +31 -0
  26. package/dist/es2015/models/events/{add-event.interface.js → task-add-event.interface.js} +0 -0
  27. package/dist/es2015/models/models.d.ts +2 -1
  28. package/dist/es2015/models/toolbar-settings.d.ts +29 -0
  29. package/dist/es2015/models/{toolbar-position.js → toolbar-settings.js} +0 -0
  30. package/dist/es2015/package-metadata.js +1 -1
  31. package/dist/es2015/toolbar/toolbar-template.directive.d.ts +1 -1
  32. package/dist/es2015/toolbar/toolbar.component.d.ts +2 -0
  33. package/dist/es2015/toolbar/toolbar.component.js +10 -0
  34. package/dist/fesm2015/index.js +245 -18
  35. package/dist/fesm5/index.js +204 -20
  36. package/dist/npm/editing/add-task.component.js +96 -0
  37. package/dist/npm/editing/edit.service.js +1 -0
  38. package/dist/npm/gantt.component.js +59 -15
  39. package/dist/npm/gantt.module.js +3 -1
  40. package/dist/npm/index.js +2 -0
  41. package/dist/npm/localization/messages.js +45 -1
  42. package/dist/npm/models/events/{add-event.interface.js → task-add-event.interface.js} +0 -0
  43. package/dist/npm/models/{toolbar-position.js → toolbar-settings.js} +0 -0
  44. package/dist/npm/package-metadata.js +1 -1
  45. package/dist/npm/toolbar/toolbar.component.js +9 -1
  46. package/dist/systemjs/kendo-angular-gantt.js +1 -1
  47. package/package.json +1 -1
  48. package/dist/es2015/models/events/add-event.interface.d.ts +0 -16
  49. package/dist/es2015/models/toolbar-position.d.ts +0 -9
@@ -30,7 +30,7 @@ var packageMetadata = {
30
30
  name: '@progress/kendo-angular-gantt',
31
31
  productName: 'Kendo UI for Angular',
32
32
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
33
- publishDate: 1639143747,
33
+ publishDate: 1639476447,
34
34
  version: '',
35
35
  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'
36
36
  };
@@ -1384,6 +1384,7 @@ var EditService = /** @class */ (function () {
1384
1384
  this.showEditingDialog = new Subject();
1385
1385
  this.showConfirmationDialog = new Subject();
1386
1386
  this.editEvent = new Subject();
1387
+ this.addEvent = new Subject();
1387
1388
  }
1388
1389
  EditService.prototype.createEditDialog = function (dataItem, formGroup) {
1389
1390
  this.dataItem = dataItem;
@@ -1824,17 +1825,6 @@ var GanttComponent = /** @class */ (function () {
1824
1825
  * > When applied, the [`SelectableDirective`]({% slug api_gantt_selectabledirective %}) sets `selectable` to `true` internally.
1825
1826
  */
1826
1827
  this.selectable = false;
1827
- /**
1828
- * The position of the toolbar.
1829
- *
1830
- * The possible values are:
1831
- * - `top`—Positions the toolbar above the Gantt panes.
1832
- * - `bottom`—Positions the toolbar below the Gantt panes.
1833
- * - `both`—Displays two toolbar instances. Positions the first one above,
1834
- * and the second one - below the Gantt panes.
1835
- * - `none`—No toolbar is rendered.
1836
- */
1837
- this.toolbarPosition = 'top';
1838
1828
  /**
1839
1829
  * Gets or sets the callback function that retrieves the child items for a particular item.
1840
1830
  */
@@ -1944,6 +1934,10 @@ var GanttComponent = /** @class */ (function () {
1944
1934
  * Fires when the user saves an edited task.
1945
1935
  */
1946
1936
  this.save = new EventEmitter();
1937
+ /**
1938
+ * Fires when the user adds a task.
1939
+ */
1940
+ this.taskAdd = new EventEmitter();
1947
1941
  /**
1948
1942
  * Fires when the sorting of the Gantt is changed.
1949
1943
  * You have to handle the event yourself and sort the data.
@@ -2021,6 +2015,11 @@ var GanttComponent = /** @class */ (function () {
2021
2015
  this._rowClass = rowClassCallback;
2022
2016
  this._taskClass = taskClassCallback;
2023
2017
  this._activeView = DEFAULT_VIEW;
2018
+ this._toolbarSettings = {
2019
+ position: 'top',
2020
+ addTaskTool: 'none',
2021
+ viewSelectorTool: 'top'
2022
+ };
2024
2023
  this.rtl = false;
2025
2024
  this.optionChangesSubscriptions = new Subscription();
2026
2025
  this.editServiceSubscription = new Subscription();
@@ -2031,6 +2030,7 @@ var GanttComponent = /** @class */ (function () {
2031
2030
  this.optionChangesSubscriptions.add(this.optionChangesService.columnChanges.subscribe(function () {
2032
2031
  _this.treeList.columns.notifyOnChanges();
2033
2032
  }));
2033
+ this.editService.getSelectedItem = this.getFirstSelectedItem.bind(this);
2034
2034
  this.editServiceSubscription.add(this.editService.showEditingDialog.subscribe(function (show) { return _this.showEditingDialog = show; }));
2035
2035
  this.editServiceSubscription.add(this.editService.showConfirmationDialog.subscribe(function () { return _this.taskDelete.emit(); }));
2036
2036
  this.editServiceSubscription.add(this.editService.editEvent.subscribe(function (args) {
@@ -2043,6 +2043,14 @@ var GanttComponent = /** @class */ (function () {
2043
2043
  _this.editService.dataItem = _this.editService.formGroup = null;
2044
2044
  _this.updateView();
2045
2045
  }));
2046
+ this.editServiceSubscription.add(this.editService.addEvent.subscribe(function (args) {
2047
+ var selectedItem = _this.getFirstSelectedItem();
2048
+ _this.taskAdd.emit({
2049
+ actionType: args.actionType,
2050
+ selectedItem: selectedItem ? getEditItem(selectedItem, _this.treeList.view.data, _this.mapper) : null
2051
+ });
2052
+ _this.updateView();
2053
+ }));
2046
2054
  this.localizationSubscription = this.localizationService.changes.subscribe(function (_a) {
2047
2055
  var rtl = _a.rtl;
2048
2056
  _this.rtl = rtl;
@@ -2147,6 +2155,33 @@ var GanttComponent = /** @class */ (function () {
2147
2155
  enumerable: true,
2148
2156
  configurable: true
2149
2157
  });
2158
+ Object.defineProperty(GanttComponent.prototype, "toolbarSettings", {
2159
+ get: function () {
2160
+ return this._toolbarSettings;
2161
+ },
2162
+ /**
2163
+ * The toolbar configuration. Defines the position and content of the toolbar(s).
2164
+ * The available properties are `position`, `addTaskTool`, and `viewSelectorTool`.
2165
+ * All are optional and default to `top`.
2166
+ *
2167
+ * The possible values for each option are:
2168
+ * - `top`—Positions the toolbar above the Gantt panes. Renders the respective tool in the top toolbar.
2169
+ * - `bottom`—Positions the toolbar below the Gantt panes. Renders the respective tool in the bottom toolbar.
2170
+ * - `both`—Displays two toolbar instances. Positions the first one above,
2171
+ * and the second one - below the Gantt panes. Renders the respective tool in the both toolbars.
2172
+ * - `none`—No toolbar is rendered when used for setting `position`.
2173
+ * No add task or view selector tool is rendered when used for setting `addTaskTool` or `viewSelectorTool`.
2174
+ */
2175
+ set: function (value) {
2176
+ this._toolbarSettings = {
2177
+ position: value.position || 'top',
2178
+ addTaskTool: value.addTaskTool || 'none',
2179
+ viewSelectorTool: value.viewSelectorTool || 'top'
2180
+ };
2181
+ },
2182
+ enumerable: true,
2183
+ configurable: true
2184
+ });
2150
2185
  Object.defineProperty(GanttComponent.prototype, "timelinePaneOptions", {
2151
2186
  get: function () {
2152
2187
  return __assign({}, this._timelinePaneOptions, { size: this.treeListPaneOptions.collapsed ? '100%' : this._timelinePaneOptions.size });
@@ -2471,7 +2506,7 @@ var GanttComponent = /** @class */ (function () {
2471
2506
  * @hidden
2472
2507
  */
2473
2508
  GanttComponent.prototype.showToolbar = function (position) {
2474
- return this.toolbarPosition !== 'none' && ([position, 'both'].indexOf(this.toolbarPosition) > -1);
2509
+ return this.toolbarSettings.position !== 'none' && ([position, 'both'].indexOf(this.toolbarSettings.position) > -1);
2475
2510
  };
2476
2511
  /**
2477
2512
  * @hidden
@@ -2679,6 +2714,11 @@ var GanttComponent = /** @class */ (function () {
2679
2714
  var shouldToggleSelection = ctrlKey || metaKey;
2680
2715
  return (shouldToggleSelection && this.isSelected(dataItem)) ? 'remove' : 'select';
2681
2716
  };
2717
+ GanttComponent.prototype.getFirstSelectedItem = function () {
2718
+ var isSelectedCallback = this.isSelected || isSelected;
2719
+ var loadedItems = this.renderedTreeListItems || [];
2720
+ return loadedItems.find(isSelectedCallback);
2721
+ };
2682
2722
  var GanttComponent_1;
2683
2723
  __decorate([
2684
2724
  ViewChild(TreeListComponent, { static: true }),
@@ -2752,8 +2792,9 @@ var GanttComponent = /** @class */ (function () {
2752
2792
  ], GanttComponent.prototype, "selectable", void 0);
2753
2793
  __decorate([
2754
2794
  Input(),
2755
- __metadata("design:type", String)
2756
- ], GanttComponent.prototype, "toolbarPosition", void 0);
2795
+ __metadata("design:type", Object),
2796
+ __metadata("design:paramtypes", [Object])
2797
+ ], GanttComponent.prototype, "toolbarSettings", null);
2757
2798
  __decorate([
2758
2799
  Input(),
2759
2800
  __metadata("design:type", Function)
@@ -2874,6 +2915,10 @@ var GanttComponent = /** @class */ (function () {
2874
2915
  Output(),
2875
2916
  __metadata("design:type", EventEmitter)
2876
2917
  ], GanttComponent.prototype, "save", void 0);
2918
+ __decorate([
2919
+ Output(),
2920
+ __metadata("design:type", EventEmitter)
2921
+ ], GanttComponent.prototype, "taskAdd", void 0);
2877
2922
  __decorate([
2878
2923
  Output(),
2879
2924
  __metadata("design:type", EventEmitter)
@@ -2950,7 +2995,7 @@ var GanttComponent = /** @class */ (function () {
2950
2995
  OptionChangesService,
2951
2996
  EditService
2952
2997
  ],
2953
- 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\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 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 "
2998
+ template: "\n <ng-container kendoGanttLocalizedMessages\n i18n-taskEditingGeneralTabTitle=\"kendo.gantt.taskEditingGeneralTabTitle|The title of the 'General' tab of the editing dialog TabStrip\"\n taskEditingGeneralTabTitle=\"General\"\n\n i18n-taskEditingPredecessorsTabTitle=\"kendo.gantt.taskEditingPredecessorsTabTitle|The title of the 'Predecessors' dependencies tab of the editing dialog TabStrip\"\n taskEditingPredecessorsTabTitle=\"Predecessors\"\n\n i18n-taskEditingSuccessorsTabTitle=\"kendo.gantt.taskEditingSuccessorsTabTitle|The title of the 'Successors' dependencies tab of the editing dialog TabStrip\"\n taskEditingSuccessorsTabTitle=\"Successors\"\n\n i18n-taskEditingDependenciesAddButtonText=\"kendo.gantt.taskEditingDependenciesAddButtonText|The text of the 'Add' button in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesAddButtonText=\"Add\"\n\n i18n-taskEditingDependenciesRemoveButtonText=\"kendo.gantt.taskEditingDependenciesRemoveButtonText|The text of the 'Remove' button in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesRemoveButtonText=\"Remove\"\n\n i18n-taskEditingDependenciesGridNameColumnTitle=\"kendo.gantt.taskEditingDependenciesGridNameColumnTitle|The title of the 'Task Title' Grid column in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesGridNameColumnTitle=\"Task Title\"\n\n i18n-taskEditingDependenciesGridTypeColumnTitle=\"kendo.gantt.taskEditingDependenciesGridTypeColumnTitle|The title of the 'Type' Grid column in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesGridTypeColumnTitle=\"Type\"\n\n i18n-taskDeleteLabel=\"kendo.gantt.taskDeleteLabel|The label of the task delete icon\"\n taskDeleteLabel=\"Delete\"\n\n i18n-taskEditingDialogTitle=\"kendo.gantt.taskEditingDialogTitle|The title of the task editing dialog\"\n taskEditingDialogTitle=\"Editing Task\"\n\n i18n-taskEditingDialogCloseTitle=\"kendo.gantt.taskEditingDialogCloseTitle|The title of the task editing dialog close button\"\n taskEditingDialogCloseTitle=\"Close\"\n\n i18n-confirmationDialogCloseTitle=\"kendo.gantt.confirmationDialogCloseTitle|The title of the confirmation dialog close button\"\n confirmationDialogCloseTitle=\"Close\"\n\n i18n-confirmationDialogTitle=\"kendo.gantt.confirmationDialogTitle|The title of the delete task confirmation dialog\"\n confirmationDialogTitle=\"Delete Task\"\n\n i18n-confirmationDialogContent=\"kendo.gantt.confirmationDialogContent|The content of the delete task confirmation dialog\"\n confirmationDialogContent=\"Are you sure you want to delete this task?\"\n\n i18n-deleteButtonText=\"kendo.gantt.deleteButtonText|The text of the task editing dialog 'Delete' button\"\n deleteButtonText=\"Delete\"\n\n i18n-cancelButtonText=\"kendo.gantt.cancelButtonText|The text of the task editing dialog 'Cancel' button\"\n cancelButtonText=\"Cancel\"\n\n i18n-saveButtonText=\"kendo.gantt.saveButtonText|The text of the task editing dialog 'Save' button\"\n saveButtonText=\"Save\"\n\n i18n-titleFieldInputLabel=\"kendo.gantt.titleFieldInputLabel|The label of the 'title' field input in editing mode\"\n titleFieldInputLabel=\"Title\"\n\n i18n-startFieldInputLabel=\"kendo.gantt.startFieldInputLabel|The label of the 'start' field input in editing mode\"\n startFieldInputLabel=\"Start\"\n\n i18n-endFieldInputLabel=\"kendo.gantt.endFieldInputLabel|The label of the 'end' field input in editing mode\"\n endFieldInputLabel=\"End\"\n\n i18n-completionRatioFieldInputLabel=\"kendo.gantt.completionRatioFieldInputLabel|The label of the 'completionRatio' field input in editing mode\"\n completionRatioFieldInputLabel=\"Progress\"\n\n i18n-dayViewText=\"kendo.gantt.dayViewText|The text of the day view in the ViewSelector component\"\n dayViewText=\"Day\"\n\n i18n-weekViewText=\"kendo.gantt.weekViewText|The text of the week view in the ViewSelector component\"\n weekViewText=\"Week\"\n\n i18n-monthViewText=\"kendo.gantt.monthViewText|The text of the month view in the ViewSelector component\"\n monthViewText=\"Month\"\n\n i18n-yearViewText-disabled=\"kendo.gantt.yearViewText|The text of the year view in the ViewSelector component\"\n yearViewText=\"Year\"\n\n i18n-addTaskText=\"kendo.gantt.addTaskText|The text of the DropDownButton in the AddTask component\"\n addTaskText=\"Add Task\"\n\n i18n-addChildText=\"kendo.gantt.addChildText|The text of the 'Add Child' option in the AddTask component\"\n addChildText=\"Add Child\"\n\n i18n-addAboveText=\"kendo.gantt.addAboveText|The text of the 'Add Above' option in the AddTask component\"\n addAboveText=\"Add Above\"\n\n i18n-addBelowText=\"kendo.gantt.addBelowText|The text of the 'Add Below' option in the AddTask component\"\n addBelowText=\"Add Below\"\n\n i18n-noRecords=\"kendo.gantt.noRecords|The label visible in the TreeList when there are no records\"\n noRecords=\"No records available.\"\n\n i18n-filter=\"kendo.gantt.filter|The label of the filter cell or icon\"\n filter=\"Filter\"\n\n i18n-filterEqOperator=\"kendo.gantt.filterEqOperator|The text of the equal filter operator\"\n filterEqOperator=\"Is equal to\"\n\n i18n-filterNotEqOperator=\"kendo.gantt.filterNotEqOperator|The text of the not equal filter operator\"\n filterNotEqOperator=\"Is not equal to\"\n\n i18n-filterIsNullOperator=\"kendo.gantt.filterIsNullOperator|The text of the is null filter operator\"\n filterIsNullOperator=\"Is null\"\n\n i18n-filterIsNotNullOperator=\"kendo.gantt.filterIsNotNullOperator|The text of the is not null filter operator\"\n filterIsNotNullOperator=\"Is not null\"\n\n i18n-filterIsEmptyOperator=\"kendo.gantt.filterIsEmptyOperator|The text of the is empty filter operator\"\n filterIsEmptyOperator=\"Is empty\"\n\n i18n-filterIsNotEmptyOperator=\"kendo.gantt.filterIsNotEmptyOperator|The text of the is not empty filter operator\"\n filterIsNotEmptyOperator=\"Is not empty\"\n\n i18n-filterStartsWithOperator=\"kendo.gantt.filterStartsWithOperator|The text of the starts with filter operator\"\n filterStartsWithOperator=\"Starts with\"\n\n i18n-filterContainsOperator=\"kendo.gantt.filterContainsOperator|The text of the contains filter operator\"\n filterContainsOperator=\"Contains\"\n\n i18n-filterNotContainsOperator=\"kendo.gantt.filterNotContainsOperator|The text of the does not contain filter operator\"\n filterNotContainsOperator=\"Does not contain\"\n\n i18n-filterEndsWithOperator=\"kendo.gantt.filterEndsWithOperator|The text of the ends with filter operator\"\n filterEndsWithOperator=\"Ends with\"\n\n i18n-filterGteOperator=\"kendo.gantt.filterGteOperator|The text of the greater than or equal filter operator\"\n filterGteOperator=\"Is greater than or equal to\"\n\n i18n-filterGtOperator=\"kendo.gantt.filterGtOperator|The text of the greater than filter operator\"\n filterGtOperator=\"Is greater than\"\n\n i18n-filterLteOperator=\"kendo.gantt.filterLteOperator|The text of the less than or equal filter operator\"\n filterLteOperator=\"Is less than or equal to\"\n\n i18n-filterLtOperator=\"kendo.gantt.filterLtOperator|The text of the less than filter operator\"\n filterLtOperator=\"Is less than\"\n\n i18n-filterIsTrue=\"kendo.gantt.filterIsTrue|The text of the IsTrue boolean filter option\"\n filterIsTrue=\"Is True\"\n\n i18n-filterIsFalse=\"kendo.gantt.filterIsFalse|The text of the IsFalse boolean filter option\"\n filterIsFalse=\"Is False\"\n\n i18n-filterBooleanAll=\"kendo.gantt.filterBooleanAll|The text of the (All) boolean filter option\"\n filterBooleanAll=\"(All)\"\n\n i18n-filterAfterOrEqualOperator=\"kendo.gantt.filterAfterOrEqualOperator|The text of the after or equal date filter operator\"\n filterAfterOrEqualOperator=\"Is after or equal to\"\n\n i18n-filterAfterOperator=\"kendo.gantt.filterAfterOperator|The text of the after date filter operator\"\n filterAfterOperator=\"Is after\"\n\n i18n-filterBeforeOperator=\"kendo.gantt.filterBeforeOperator|The text of the before date filter operator\"\n filterBeforeOperator=\"Is before\"\n\n i18n-filterBeforeOrEqualOperator=\"kendo.gantt.filterBeforeOrEqualOperator|The text of the before or equal date filter operator\"\n filterBeforeOrEqualOperator=\"Is before or equal to\"\n\n i18n-filterFilterButton=\"kendo.gantt.filterFilterButton|The text of the filter button\"\n filterFilterButton=\"Filter\"\n\n i18n-filterClearButton=\"kendo.gantt.filterClearButton|The text of the clear filter button\"\n filterClearButton=\"Clear\"\n\n i18n-filterAndLogic=\"kendo.gantt.filterAndLogic|The text of the And filter logic\"\n filterAndLogic=\"And\"\n\n i18n-filterOrLogic=\"kendo.gantt.filterOrLogic|The text of the Or filter logic\"\n filterOrLogic=\"Or\"\n\n i18n-loading=\"kendo.gantt.loading|The loading text\"\n loading=\"Loading\"\n\n i18n-columnMenu=\"kendo.gantt.columnMenu|The title of the column menu icon\"\n columnMenu=\"Column Menu\"\n\n i18n-columns=\"kendo.gantt.columns|The text shown in the column menu for the columns item\"\n columns=\"Columns\"\n\n i18n-lock-disabled=\"kendo.gantt.lock|The text shown in the column menu for the lock item\"\n lock-disabled=\"Lock\"\n\n i18n-unlock-disabled=\"kendo.gantt.unlock|The text shown in the column menu for the unlock item\"\n unlock-disabled=\"Unlock\"\n\n i18n-sortable=\"kendo.gantt.sortable|The label of the sort icon\"\n sortable=\"Sortable\"\n\n i18n-sortAscending=\"kendo.gantt.sortAscending|The text shown in the column menu for the sort ascending item\"\n sortAscending=\"Sort Ascending\"\n\n i18n-sortDescending=\"kendo.gantt.sortDescending|The text shown in the column menu for the sort descending item\"\n sortDescending=\"Sort Descending\"\n\n i18n-sortedAscending=\"kendo.gantt.sortedAscending|The status announcement when a column is sorted ascending\"\n sortedAscending=\"Sorted Ascending\"\n\n i18n-sortedDescending=\"kendo.gantt.sortedDescending|The status announcement when a column is sorted descending\"\n sortedDescending=\"Sorted Descending\"\n\n i18n-sortedDefault=\"kendo.gantt.sortedDefault|The status announcement when a column is no longer sorted\"\n sortedDefault=\"Not Sorted\"\n\n i18n-columnsApply=\"kendo.gantt.columnsApply|The text shown in the column menu or column chooser for the columns apply button\"\n columnsApply=\"Apply\"\n\n i18n-columnsReset=\"kendo.gantt.columnsReset|The text shown in the column menu or column chooser for the columns reset button\"\n columnsReset=\"Reset\"></ng-container>\n <kendo-gantt-toolbar\n *ngIf=\"showToolbar('top')\"\n [showAddTask]=\"toolbarSettings.addTaskTool === 'top' || toolbarSettings.addTaskTool === 'both'\"\n [showViewSelector]=\"toolbarSettings.viewSelectorTool === 'top' || toolbarSettings.viewSelectorTool === 'both'\"\n class=\"k-gantt-header k-toolbar k-gantt-toolbar\"\n position=\"top\"></kendo-gantt-toolbar>\n <div class=\"k-gantt-content\">\n <kendo-splitter [style.border]=\"0\">\n <kendo-splitter-pane\n class=\"k-gantt-treelist k-gantt-treelist-scrollable\"\n [collapsible]=\"treeListPaneOptions?.collapsible\"\n [collapsed]=\"treeListPaneOptions?.collapsed\"\n (collapsedChange)=\"onTreeListCollapsedChange($event)\"\n [scrollable]=\"false\">\n <kendo-treelist\n [idField]=\"taskIdField\"\n [columns]=\"columns\"\n [data]=\"data\"\n [hasChildren]=\"hasChildren\"\n [fetchChildren]=\"fetchChildren\"\n [isExpanded]=\"isExpanded\"\n [autoSize]=\"columnsAutoSize\"\n [columnMenu]=\"columnMenu\"\n [reorderable]=\"columnsReorderable\"\n [resizable]=\"columnsResizable\"\n [rowClass]=\"rowClass\"\n [isSelected]=\"isSelected\"\n [selectable]=\"selectable\"\n [sortable]=\"sortable\"\n [sort]=\"sort\"\n [filterable]=\"filterMenu\"\n [filter]=\"filter\"\n (filterChange)=\"filterChange.emit($event)\"\n (sortChange)=\"sortChange.emit($event)\"\n (dataStateChange)=\"dataStateChange.emit({\n filter: $event.filter,\n sort: $event.sort\n })\"\n (expandStateChange)=\"expandStateChange.emit($event)\"\n (expand)=\"rowExpand.emit({ dataItem: $event.dataItem })\"\n (collapse)=\"rowCollapse.emit({ dataItem: $event.dataItem })\"\n (columnReorder)=\"columnReorder.emit($event)\"\n (columnResize)=\"columnResize.emit($event)\"\n (columnVisibilityChange)=\"handleColumnVisibilityChange($event)\"\n (columnLockedChange)=\"columnLockedChange.emit($event)\"\n (selectionChange)=\"handleTreeListSelectionChange($event)\"\n (cellClick)=\"handleTreeListCellClick($event)\"\n (cellClose)=\"handleCellClose($event)\"\n [kendoEventsOutsideAngular]=\"{\n dblclick: handleTreeListDoubleClick\n }\"\n [scope]=\"this\"\n >\n <kendo-treelist-messages\n [noRecords]=\"getText('noRecords')\"\n [filter]=\"getText('filter')\"\n [filterEqOperator]=\"getText('filterEqOperator')\"\n [filterNotEqOperator]=\"getText('filterNotEqOperator')\"\n [filterIsNullOperator]=\"getText('filterIsNullOperator')\"\n [filterIsNotNullOperator]=\"getText('filterIsNotNullOperator')\"\n [filterIsEmptyOperator]=\"getText('filterIsEmptyOperator')\"\n [filterIsNotEmptyOperator]=\"getText('filterIsNotEmptyOperator')\"\n [filterStartsWithOperator]=\"getText('filterStartsWithOperator')\"\n [filterContainsOperator]=\"getText('filterContainsOperator')\"\n [filterNotContainsOperator]=\"getText('filterNotContainsOperator')\"\n [filterEndsWithOperator]=\"getText('filterEndsWithOperator')\"\n [filterGteOperator]=\"getText('filterGteOperator')\"\n [filterGtOperator]=\"getText('filterGtOperator')\"\n [filterLteOperator]=\"getText('filterLteOperator')\"\n [filterLtOperator]=\"getText('filterLtOperator')\"\n [filterIsTrue]=\"getText('filterIsTrue')\"\n [filterIsFalse]=\"getText('filterIsFalse')\"\n [filterBooleanAll]=\"getText('filterBooleanAll')\"\n [filterAfterOrEqualOperator]=\"getText('filterAfterOrEqualOperator')\"\n [filterAfterOperator]=\"getText('filterAfterOperator')\"\n [filterBeforeOperator]=\"getText('filterBeforeOperator')\"\n [filterBeforeOrEqualOperator]=\"getText('filterBeforeOrEqualOperator')\"\n [filterFilterButton]=\"getText('filterFilterButton')\"\n [filterClearButton]=\"getText('filterClearButton')\"\n [filterAndLogic]=\"getText('filterAndLogic')\"\n [filterOrLogic]=\"getText('filterOrLogic')\"\n [loading]=\"getText('loading')\"\n [columnMenu]=\"getText('columnMenu')\"\n [columns]=\"getText('columns')\"\n [sortable]=\"getText('sortable')\"\n [sortAscending]=\"getText('sortAscending')\"\n [sortDescending]=\"getText('sortDescending')\"\n [sortedAscending]=\"getText('sortedAscending')\"\n [sortedDescending]=\"getText('sortedDescending')\"\n [sortedDefault]=\"getText('sortedDefault')\"\n [columnsApply]=\"getText('columnsApply')\"\n [columnsReset]=\"getText('columnsReset')\"\n >\n </kendo-treelist-messages>\n </kendo-treelist>\n </kendo-splitter-pane>\n <kendo-splitter-pane\n [collapsible]=\"timelinePaneOptions?.collapsible\"\n [resizable]=\"timelinePaneOptions?.resizable\"\n [collapsed]=\"timelinePaneOptions?.collapsed\"\n [min]=\"timelinePaneOptions?.min\"\n [max]=\"timelinePaneOptions?.max\"\n [size]=\"timelinePaneOptions?.size\"\n (collapsedChange)=\"onTimelineCollapsedChange($event)\"\n (sizeChange)=\"onTimelinePaneSizeChange($event)\"\n [scrollable]=\"false\">\n <kendo-gantt-timeline\n *ngIf=\"views && views.length\"\n [rows]=\"renderedTreeListItems\"\n [slots]=\"timelineSlots\"\n [groupSlots]=\"timelineGroupSlots\"\n [tableWidth]=\"tableWidth\"\n [activeView]=\"activeView\"\n [taskContentTemplate]=\"taskContentTemplate?.templateRef\"\n [taskTemplate]=\"taskTemplate?.templateRef\"\n [summaryTaskTemplate]=\"summaryTaskTemplate?.templateRef\"\n [taskClass]=\"taskClass\"\n [dependencies]=\"dependencies\"\n [hasChildren]=\"hasChildren\"\n [isTaskSelected]=\"isTaskSelected\"\n [kendoEventsOutsideAngular]=\"{\n click: handleTimelineClick,\n contextmenu: handleTimelineRightClick,\n dblclick: handleTimelineDblClick,\n mousedown: handleTimelineMouseDown\n }\"\n [scope]=\"this\"\n ></kendo-gantt-timeline>\n </kendo-splitter-pane>\n </kendo-splitter>\n </div>\n <kendo-gantt-toolbar\n *ngIf=\"showToolbar('bottom')\"\n [showAddTask]=\"toolbarSettings.addTaskTool === 'bottom' || toolbarSettings.addTaskTool === 'both'\"\n [showViewSelector]=\"toolbarSettings.viewSelectorTool === 'bottom' || toolbarSettings.viewSelectorTool === 'both'\"\n class=\"k-gantt-footer k-toolbar k-gantt-toolbar\"\n position=\"bottom\"></kendo-gantt-toolbar>\n <kendo-gantt-edit-dialog *ngIf=\"showEditingDialog\" [formGroup]=\"editDialogFormGroup\"></kendo-gantt-edit-dialog>\n <kendo-dialog\n *ngIf=\"showConfirmationDialog\"\n [width]=\"575\"\n [height]=\"170\"\n [title]=\"getText('confirmationDialogTitle')\"\n (close)=\"showConfirmationDialog = false;\">\n <span>{{getText('confirmationDialogContent')}}</span>\n <kendo-dialog-actions layout=\"normal\">\n <kendo-treelist-spacer></kendo-treelist-spacer>\n <button kendoButton [primary]=\"true\" (click)=\"handleDeleteConfirmation()\">{{ getText('deleteButtonText') }}</button>\n <button kendoButton (click)=\"showConfirmationDialog = false;\">{{ getText('cancelButtonText') }}</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n "
2954
2999
  }),
2955
3000
  __metadata("design:paramtypes", [TimelineViewService,
2956
3001
  ScrollSyncService,
@@ -3669,6 +3714,14 @@ var ToolbarComponent = /** @class */ (function () {
3669
3714
  this.gantt.activeViewChange.emit(e);
3670
3715
  this.scrollSyncService.resetTimelineScrollLeft();
3671
3716
  };
3717
+ __decorate([
3718
+ Input(),
3719
+ __metadata("design:type", Boolean)
3720
+ ], ToolbarComponent.prototype, "showAddTask", void 0);
3721
+ __decorate([
3722
+ Input(),
3723
+ __metadata("design:type", Boolean)
3724
+ ], ToolbarComponent.prototype, "showViewSelector", void 0);
3672
3725
  __decorate([
3673
3726
  Input(),
3674
3727
  __metadata("design:type", String),
@@ -3677,7 +3730,7 @@ var ToolbarComponent = /** @class */ (function () {
3677
3730
  ToolbarComponent = __decorate([
3678
3731
  Component({
3679
3732
  selector: 'kendo-gantt-toolbar',
3680
- template: "\n <ng-container *ngIf=\"!renderTemplate\">\n <span class=\"k-spacer k-toolbar-spacer\"></span>\n <kendo-gantt-view-selector\n [views]=\"gantt.viewTypes\"\n [activeView]=\"gantt.activeView\"\n (activeViewChange)=\"onViewChange($event)\"></kendo-gantt-view-selector>\n </ng-container>\n <ng-template\n *ngIf=\"renderTemplate\"\n [ngTemplateOutlet]=\"toolbarTemplateRef\"\n [ngTemplateOutletContext]=\"context\"\n >\n </ng-template>\n "
3733
+ template: "\n <ng-container *ngIf=\"!renderTemplate\">\n <kendo-gantt-add-task *ngIf=\"showAddTask\"></kendo-gantt-add-task>\n <span class=\"k-spacer k-toolbar-spacer\"></span>\n <kendo-gantt-view-selector\n *ngIf=\"showViewSelector\"\n [views]=\"gantt.viewTypes\"\n [activeView]=\"gantt.activeView\"\n (activeViewChange)=\"onViewChange($event)\"></kendo-gantt-view-selector>\n </ng-container>\n <ng-template\n *ngIf=\"renderTemplate\"\n [ngTemplateOutlet]=\"toolbarTemplateRef\"\n [ngTemplateOutletContext]=\"context\"\n >\n </ng-template>\n "
3681
3734
  }),
3682
3735
  __metadata("design:paramtypes", [GanttComponent,
3683
3736
  ScrollSyncService])
@@ -4106,6 +4159,38 @@ var Messages = /** @class */ (function (_super) {
4106
4159
  function Messages() {
4107
4160
  return _super !== null && _super.apply(this, arguments) || this;
4108
4161
  }
4162
+ __decorate([
4163
+ Input(),
4164
+ __metadata("design:type", String)
4165
+ ], Messages.prototype, "taskEditingGeneralTabTitle", void 0);
4166
+ __decorate([
4167
+ Input(),
4168
+ __metadata("design:type", String)
4169
+ ], Messages.prototype, "taskEditingPredecessorsTabTitle", void 0);
4170
+ __decorate([
4171
+ Input(),
4172
+ __metadata("design:type", String)
4173
+ ], Messages.prototype, "taskEditingSuccessorsTabTitle", void 0);
4174
+ __decorate([
4175
+ Input(),
4176
+ __metadata("design:type", String)
4177
+ ], Messages.prototype, "taskEditingDependenciesAddButtonText", void 0);
4178
+ __decorate([
4179
+ Input(),
4180
+ __metadata("design:type", String)
4181
+ ], Messages.prototype, "taskEditingDependenciesRemoveButtonText", void 0);
4182
+ __decorate([
4183
+ Input(),
4184
+ __metadata("design:type", String)
4185
+ ], Messages.prototype, "taskEditingDependenciesGridNameColumnTitle", void 0);
4186
+ __decorate([
4187
+ Input(),
4188
+ __metadata("design:type", String)
4189
+ ], Messages.prototype, "taskEditingDependenciesGridTypeColumnTitle", void 0);
4190
+ __decorate([
4191
+ Input(),
4192
+ __metadata("design:type", String)
4193
+ ], Messages.prototype, "deleteButtonText", void 0);
4109
4194
  __decorate([
4110
4195
  Input(),
4111
4196
  __metadata("design:type", String)
@@ -4129,7 +4214,19 @@ var Messages = /** @class */ (function (_super) {
4129
4214
  __decorate([
4130
4215
  Input(),
4131
4216
  __metadata("design:type", String)
4132
- ], Messages.prototype, "deleteButtonText", void 0);
4217
+ ], Messages.prototype, "addTaskText", void 0);
4218
+ __decorate([
4219
+ Input(),
4220
+ __metadata("design:type", String)
4221
+ ], Messages.prototype, "addChildText", void 0);
4222
+ __decorate([
4223
+ Input(),
4224
+ __metadata("design:type", String)
4225
+ ], Messages.prototype, "addAboveText", void 0);
4226
+ __decorate([
4227
+ Input(),
4228
+ __metadata("design:type", String)
4229
+ ], Messages.prototype, "addBelowText", void 0);
4133
4230
  __decorate([
4134
4231
  Input(),
4135
4232
  __metadata("design:type", String)
@@ -4400,6 +4497,92 @@ var LocalizedMessagesDirective = /** @class */ (function (_super) {
4400
4497
  return LocalizedMessagesDirective;
4401
4498
  }(Messages));
4402
4499
 
4500
+ /**
4501
+ * The UI for adding new items to the Gantt.
4502
+ * Use it within a toolbar template to provide a custom icon or list of options.
4503
+ */
4504
+ var GanttAddTaskComponent = /** @class */ (function () {
4505
+ function GanttAddTaskComponent(localizationService, editService, ngZone) {
4506
+ this.localizationService = localizationService;
4507
+ this.editService = editService;
4508
+ this.ngZone = ngZone;
4509
+ /**
4510
+ * Sets the data of the DropDownButton.
4511
+ * > The data has to be provided in an array-like list.
4512
+ */
4513
+ this.data = [{
4514
+ text: this.getText('addChildText'),
4515
+ type: 'addChild'
4516
+ }, {
4517
+ text: this.getText('addAboveText'),
4518
+ type: 'addAbove'
4519
+ }, {
4520
+ text: this.getText('addBelowText'),
4521
+ type: 'addBelow'
4522
+ }];
4523
+ /**
4524
+ * Defines the name of an existing icon in a Kendo UI theme.
4525
+ * @default 'plus'
4526
+ */
4527
+ this.icon = 'plus';
4528
+ }
4529
+ /**
4530
+ * @hidden
4531
+ */
4532
+ GanttAddTaskComponent.prototype.getText = function (message) {
4533
+ return this.localizationService.get(message);
4534
+ };
4535
+ /**
4536
+ * @hidden
4537
+ */
4538
+ GanttAddTaskComponent.prototype.handleOpen = function (e) {
4539
+ if (!this.editService.getSelectedItem()) {
4540
+ e.preventDefault();
4541
+ }
4542
+ };
4543
+ /**
4544
+ * @hidden
4545
+ */
4546
+ GanttAddTaskComponent.prototype.handleMouseClick = function () {
4547
+ var _this = this;
4548
+ if (!this.editService.getSelectedItem()) {
4549
+ this.ngZone.run(function () {
4550
+ _this.editService.addEvent.next({
4551
+ selectedItem: null,
4552
+ actionType: 'addTask'
4553
+ });
4554
+ });
4555
+ }
4556
+ };
4557
+ /**
4558
+ * @hidden
4559
+ */
4560
+ GanttAddTaskComponent.prototype.handleItemClick = function (e) {
4561
+ this.editService.addEvent.next({
4562
+ actionType: e.type,
4563
+ selectedItem: null
4564
+ });
4565
+ };
4566
+ __decorate([
4567
+ Input(),
4568
+ __metadata("design:type", Array)
4569
+ ], GanttAddTaskComponent.prototype, "data", void 0);
4570
+ __decorate([
4571
+ Input(),
4572
+ __metadata("design:type", String)
4573
+ ], GanttAddTaskComponent.prototype, "icon", void 0);
4574
+ GanttAddTaskComponent = __decorate([
4575
+ Component({
4576
+ selector: 'kendo-gantt-add-task',
4577
+ template: "\n <kendo-dropdownbutton\n [data]=\"data\"\n [icon]=\"icon\"\n [kendoEventsOutsideAngular]=\"{ click: handleMouseClick }\"\n [scope]=\"this\"\n (itemClick)=\"handleItemClick($event)\"\n (open)=\"handleOpen($event)\">\n {{ getText('addTaskText') }}\n </kendo-dropdownbutton>\n "
4578
+ }),
4579
+ __metadata("design:paramtypes", [LocalizationService,
4580
+ EditService,
4581
+ NgZone])
4582
+ ], GanttAddTaskComponent);
4583
+ return GanttAddTaskComponent;
4584
+ }());
4585
+
4403
4586
  var IMPORTED_MODULES = [
4404
4587
  CommonModule,
4405
4588
  ReactiveFormsModule,
@@ -4447,7 +4630,8 @@ var DECLARATIONS = [
4447
4630
  SelectableDirective,
4448
4631
  EditDialogComponent,
4449
4632
  CustomMessagesComponent,
4450
- LocalizedMessagesDirective
4633
+ LocalizedMessagesDirective,
4634
+ GanttAddTaskComponent
4451
4635
  ];
4452
4636
  /**
4453
4637
  * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
@@ -4542,4 +4726,4 @@ var CellCloseEvent = /** @class */ (function (_super) {
4542
4726
  * Generated bundle index. Do not edit.
4543
4727
  */
4544
4728
 
4545
- export { MappingService, OptionChangesService, DependencyDomService, GanttDependencyDirective, EditDialogComponent, EditService, CustomMessagesComponent, LocalizedMessagesDirective, Messages, PreventableEvent, GanttHeaderTableBodyComponent, GanttMilestoneTaskComponent, GanttSummaryTaskComponent, GanttTaskBase, GanttTaskComponent, GanttTasksTableBodyComponent, ScrollSyncService, GanttTimelineComponent, TimelineBaseViewService, TimelineDayViewComponent, TimelineDayViewService, TimelineMonthViewComponent, TimelineMonthViewService, TimelineViewService, TimelineWeekViewComponent, TimelineWeekViewService, ViewBase, ToolbarComponent, ViewSelectorComponent, GanttComponent, GanttModule, GanttHierarchyBindingDirective, GanttFlatBindingDirective, GanttExpandableDirective, GanttTaskTemplateDirective, GanttTaskContentTemplateDirective, GanttSummaryTaskTemplateDirective, ToolbarTemplateDirective, SelectableDirective, CellCloseEvent, GanttColumnBase, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, CellTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ColumnMenuTemplateDirective, FilterCellTemplateDirective, FilterMenuTemplateDirective, EditTemplateDirective };
4729
+ export { MappingService, OptionChangesService, DependencyDomService, GanttDependencyDirective, GanttAddTaskComponent, EditDialogComponent, EditService, CustomMessagesComponent, LocalizedMessagesDirective, Messages, PreventableEvent, GanttHeaderTableBodyComponent, GanttMilestoneTaskComponent, GanttSummaryTaskComponent, GanttTaskBase, GanttTaskComponent, GanttTasksTableBodyComponent, ScrollSyncService, GanttTimelineComponent, TimelineBaseViewService, TimelineDayViewComponent, TimelineDayViewService, TimelineMonthViewComponent, TimelineMonthViewService, TimelineViewService, TimelineWeekViewComponent, TimelineWeekViewService, ViewBase, ToolbarComponent, ViewSelectorComponent, GanttComponent, GanttModule, GanttHierarchyBindingDirective, GanttFlatBindingDirective, GanttExpandableDirective, GanttTaskTemplateDirective, GanttTaskContentTemplateDirective, GanttSummaryTaskTemplateDirective, ToolbarTemplateDirective, SelectableDirective, CellCloseEvent, GanttColumnBase, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, CellTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ColumnMenuTemplateDirective, FilterCellTemplateDirective, FilterMenuTemplateDirective, EditTemplateDirective };
@@ -0,0 +1,96 @@
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
+ var edit_service_1 = require("./edit.service");
11
+ /**
12
+ * The UI for adding new items to the Gantt.
13
+ * Use it within a toolbar template to provide a custom icon or list of options.
14
+ */
15
+ var GanttAddTaskComponent = /** @class */ (function () {
16
+ function GanttAddTaskComponent(localizationService, editService, ngZone) {
17
+ this.localizationService = localizationService;
18
+ this.editService = editService;
19
+ this.ngZone = ngZone;
20
+ /**
21
+ * Sets the data of the DropDownButton.
22
+ * > The data has to be provided in an array-like list.
23
+ */
24
+ this.data = [{
25
+ text: this.getText('addChildText'),
26
+ type: 'addChild'
27
+ }, {
28
+ text: this.getText('addAboveText'),
29
+ type: 'addAbove'
30
+ }, {
31
+ text: this.getText('addBelowText'),
32
+ type: 'addBelow'
33
+ }];
34
+ /**
35
+ * Defines the name of an existing icon in a Kendo UI theme.
36
+ * @default 'plus'
37
+ */
38
+ this.icon = 'plus';
39
+ }
40
+ /**
41
+ * @hidden
42
+ */
43
+ GanttAddTaskComponent.prototype.getText = function (message) {
44
+ return this.localizationService.get(message);
45
+ };
46
+ /**
47
+ * @hidden
48
+ */
49
+ GanttAddTaskComponent.prototype.handleOpen = function (e) {
50
+ if (!this.editService.getSelectedItem()) {
51
+ e.preventDefault();
52
+ }
53
+ };
54
+ /**
55
+ * @hidden
56
+ */
57
+ GanttAddTaskComponent.prototype.handleMouseClick = function () {
58
+ var _this = this;
59
+ if (!this.editService.getSelectedItem()) {
60
+ this.ngZone.run(function () {
61
+ _this.editService.addEvent.next({
62
+ selectedItem: null,
63
+ actionType: 'addTask'
64
+ });
65
+ });
66
+ }
67
+ };
68
+ /**
69
+ * @hidden
70
+ */
71
+ GanttAddTaskComponent.prototype.handleItemClick = function (e) {
72
+ this.editService.addEvent.next({
73
+ actionType: e.type,
74
+ selectedItem: null
75
+ });
76
+ };
77
+ tslib_1.__decorate([
78
+ core_1.Input(),
79
+ tslib_1.__metadata("design:type", Array)
80
+ ], GanttAddTaskComponent.prototype, "data", void 0);
81
+ tslib_1.__decorate([
82
+ core_1.Input(),
83
+ tslib_1.__metadata("design:type", String)
84
+ ], GanttAddTaskComponent.prototype, "icon", void 0);
85
+ GanttAddTaskComponent = tslib_1.__decorate([
86
+ core_1.Component({
87
+ selector: 'kendo-gantt-add-task',
88
+ template: "\n <kendo-dropdownbutton\n [data]=\"data\"\n [icon]=\"icon\"\n [kendoEventsOutsideAngular]=\"{ click: handleMouseClick }\"\n [scope]=\"this\"\n (itemClick)=\"handleItemClick($event)\"\n (open)=\"handleOpen($event)\">\n {{ getText('addTaskText') }}\n </kendo-dropdownbutton>\n "
89
+ }),
90
+ tslib_1.__metadata("design:paramtypes", [kendo_angular_l10n_1.LocalizationService,
91
+ edit_service_1.EditService,
92
+ core_1.NgZone])
93
+ ], GanttAddTaskComponent);
94
+ return GanttAddTaskComponent;
95
+ }());
96
+ exports.GanttAddTaskComponent = GanttAddTaskComponent;
@@ -15,6 +15,7 @@ var EditService = /** @class */ (function () {
15
15
  this.showEditingDialog = new rxjs_1.Subject();
16
16
  this.showConfirmationDialog = new rxjs_1.Subject();
17
17
  this.editEvent = new rxjs_1.Subject();
18
+ this.addEvent = new rxjs_1.Subject();
18
19
  }
19
20
  EditService.prototype.createEditDialog = function (dataItem, formGroup) {
20
21
  this.dataItem = dataItem;