@progress/kendo-angular-gantt 0.1.5 → 0.2.0-dev.202111231320

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 (116) hide show
  1. package/dist/cdn/js/kendo-angular-gantt.js +2 -76
  2. package/dist/cdn/main.js +23 -1
  3. package/dist/es/columns/column.component.js +5 -0
  4. package/dist/es/columns/columns.js +1 -0
  5. package/dist/es/columns/edit-template.directive.js +34 -0
  6. package/dist/es/columns/span-column.component.js +6 -0
  7. package/dist/es/editing/edit-dialog.component.js +44 -0
  8. package/dist/es/editing/edit.service.js +39 -0
  9. package/dist/es/editing/util.js +17 -0
  10. package/dist/es/gantt.component.js +309 -8
  11. package/dist/es/gantt.module.js +60 -5
  12. package/dist/es/index.js +6 -0
  13. package/dist/es/localization/custom-messages.component.js +44 -0
  14. package/dist/es/localization/localized-messages.directive.js +35 -0
  15. package/dist/es/localization/messages.js +246 -0
  16. package/dist/es/localization/treelist-messages.directive.js +31 -0
  17. package/dist/es/models/events/cell-click-event.interface.js +4 -0
  18. package/dist/es/models/events/cell-close-event.interface.js +19 -0
  19. package/dist/es/models/events/preventable-event.js +32 -0
  20. package/dist/es/models/events/task-click-event.interface.js +4 -0
  21. package/dist/es/models/events/task-edit-event.interface.js +4 -0
  22. package/dist/es/models/gantt-task-model-fields.interface.js +2 -1
  23. package/dist/es/package-metadata.js +1 -1
  24. package/dist/es/rendering/gantt-milestone-task.component.js +1 -1
  25. package/dist/es/rendering/gantt-summary-task.component.js +1 -1
  26. package/dist/es/rendering/gantt-task-base.js +4 -0
  27. package/dist/es/rendering/gantt-task.component.js +12 -4
  28. package/dist/es/rendering/gantt-tasks-table-body.component.js +5 -1
  29. package/dist/es/toolbar/view-selector.component.js +7 -4
  30. package/dist/es/utils.js +44 -1
  31. package/dist/es2015/columns/column.component.d.ts +2 -0
  32. package/dist/es2015/columns/column.component.js +5 -0
  33. package/dist/es2015/columns/columns.d.ts +1 -0
  34. package/dist/es2015/columns/columns.js +1 -0
  35. package/dist/es2015/columns/edit-template.directive.d.ts +23 -0
  36. package/dist/es2015/columns/edit-template.directive.js +33 -0
  37. package/dist/es2015/columns/span-column.component.d.ts +2 -0
  38. package/dist/es2015/columns/span-column.component.js +6 -0
  39. package/dist/es2015/editing/edit-dialog.component.d.ts +21 -0
  40. package/dist/es2015/editing/edit-dialog.component.js +86 -0
  41. package/dist/es2015/editing/edit.service.d.ts +20 -0
  42. package/dist/es2015/editing/edit.service.js +41 -0
  43. package/dist/es2015/editing/util.d.ts +10 -0
  44. package/dist/es2015/editing/util.js +17 -0
  45. package/dist/es2015/gantt.component.d.ts +180 -4
  46. package/dist/es2015/gantt.component.js +492 -8
  47. package/dist/es2015/gantt.module.d.ts +29 -1
  48. package/dist/es2015/gantt.module.js +60 -5
  49. package/dist/es2015/index.d.ts +6 -0
  50. package/dist/es2015/index.js +6 -0
  51. package/dist/es2015/index.metadata.json +1 -1
  52. package/dist/es2015/localization/custom-messages.component.d.ts +15 -0
  53. package/dist/es2015/localization/custom-messages.component.js +36 -0
  54. package/dist/es2015/localization/localized-messages.directive.d.ts +13 -0
  55. package/dist/es2015/localization/localized-messages.directive.js +31 -0
  56. package/dist/es2015/localization/messages.d.ts +246 -0
  57. package/dist/es2015/localization/messages.js +240 -0
  58. package/dist/es2015/localization/treelist-messages.directive.d.ts +14 -0
  59. package/dist/es2015/localization/treelist-messages.directive.js +29 -0
  60. package/dist/es2015/models/events/cell-click-event.interface.d.ts +20 -0
  61. package/dist/es2015/models/events/cell-click-event.interface.js +4 -0
  62. package/dist/es2015/models/events/cell-close-event.interface.d.ts +48 -0
  63. package/dist/es2015/models/events/cell-close-event.interface.js +14 -0
  64. package/dist/es2015/models/events/preventable-event.d.ts +24 -0
  65. package/dist/es2015/models/events/preventable-event.js +30 -0
  66. package/dist/es2015/models/events/task-click-event.interface.d.ts +22 -0
  67. package/dist/es2015/models/events/task-click-event.interface.js +4 -0
  68. package/dist/es2015/models/events/task-edit-event.interface.d.ts +46 -0
  69. package/dist/es2015/models/events/task-edit-event.interface.js +4 -0
  70. package/dist/es2015/models/gantt-task-model-fields.interface.d.ts +1 -0
  71. package/dist/es2015/models/gantt-task-model-fields.interface.js +2 -1
  72. package/dist/es2015/package-metadata.js +1 -1
  73. package/dist/es2015/rendering/gantt-milestone-task.component.js +1 -0
  74. package/dist/es2015/rendering/gantt-summary-task.component.js +1 -0
  75. package/dist/es2015/rendering/gantt-task-base.d.ts +1 -0
  76. package/dist/es2015/rendering/gantt-task-base.js +4 -0
  77. package/dist/es2015/rendering/gantt-task.component.d.ts +4 -1
  78. package/dist/es2015/rendering/gantt-task.component.js +17 -2
  79. package/dist/es2015/rendering/gantt-tasks-table-body.component.d.ts +1 -0
  80. package/dist/es2015/rendering/gantt-tasks-table-body.component.js +8 -1
  81. package/dist/es2015/toolbar/view-selector.component.d.ts +3 -0
  82. package/dist/es2015/toolbar/view-selector.component.js +7 -7
  83. package/dist/es2015/utils.d.ts +34 -0
  84. package/dist/es2015/utils.js +44 -1
  85. package/dist/fesm2015/index.js +1080 -23
  86. package/dist/fesm5/index.js +865 -24
  87. package/dist/npm/columns/column.component.js +5 -0
  88. package/dist/npm/columns/columns.js +2 -0
  89. package/dist/npm/columns/edit-template.directive.js +36 -0
  90. package/dist/npm/columns/span-column.component.js +6 -0
  91. package/dist/npm/editing/edit-dialog.component.js +46 -0
  92. package/dist/npm/editing/edit.service.js +41 -0
  93. package/dist/npm/editing/util.js +19 -0
  94. package/dist/npm/gantt.component.js +306 -5
  95. package/dist/npm/gantt.module.js +59 -4
  96. package/dist/npm/index.js +12 -0
  97. package/dist/npm/localization/custom-messages.component.js +46 -0
  98. package/dist/npm/localization/localized-messages.directive.js +37 -0
  99. package/dist/npm/localization/messages.js +248 -0
  100. package/dist/npm/localization/treelist-messages.directive.js +33 -0
  101. package/dist/npm/models/events/cell-click-event.interface.js +6 -0
  102. package/dist/npm/models/events/cell-close-event.interface.js +21 -0
  103. package/dist/npm/models/events/preventable-event.js +34 -0
  104. package/dist/npm/models/events/task-click-event.interface.js +6 -0
  105. package/dist/npm/models/events/task-edit-event.interface.js +6 -0
  106. package/dist/npm/models/gantt-task-model-fields.interface.js +2 -1
  107. package/dist/npm/package-metadata.js +1 -1
  108. package/dist/npm/rendering/gantt-milestone-task.component.js +1 -1
  109. package/dist/npm/rendering/gantt-summary-task.component.js +1 -1
  110. package/dist/npm/rendering/gantt-task-base.js +4 -0
  111. package/dist/npm/rendering/gantt-task.component.js +12 -4
  112. package/dist/npm/rendering/gantt-tasks-table-body.component.js +5 -1
  113. package/dist/npm/toolbar/view-selector.component.js +7 -4
  114. package/dist/npm/utils.js +43 -0
  115. package/dist/systemjs/kendo-angular-gantt.js +1 -1
  116. package/package.json +5 -2
@@ -22,6 +22,8 @@ var scroll_sync_service_1 = require("./scrolling/scroll-sync.service");
22
22
  var dependency_dom_service_1 = require("./dependencies/dependency-dom.service");
23
23
  var mapping_service_1 = require("./common/mapping.service");
24
24
  var option_changes_service_1 = require("./common/option-changes.service");
25
+ var edit_service_1 = require("./editing/edit.service");
26
+ var kendo_angular_l10n_1 = require("@progress/kendo-angular-l10n");
25
27
  var utils_1 = require("./utils");
26
28
  var splitter_pane_options_interface_1 = require("./models/splitter-pane-options.interface");
27
29
  var task_template_directive_1 = require("./template-directives/task-template.directive");
@@ -30,13 +32,82 @@ var task_content_template_directive_1 = require("./template-directives/task-cont
30
32
  var toolbar_template_directive_1 = require("./toolbar/toolbar-template.directive");
31
33
  var view_base_1 = require("./timeline/view-base");
32
34
  var kendo_date_math_1 = require("@progress/kendo-date-math");
35
+ var util_1 = require("./editing/util");
33
36
  var TREELIST_GROUP_COLUMNS_CLASS = 'k-gantt-treelist-nested-columns';
34
37
  var DEFAULT_VIEW = 'week';
35
38
  /**
36
- * The GiGantt
39
+ * Represents the Kendo UI Gantt component for Angular.
40
+ *
41
+ * @example
42
+ * ```ts-preview
43
+ * _@Component({
44
+ * selector: 'my-app',
45
+ * template: `
46
+ * <kendo-gantt
47
+ * [style.height.px]="500"
48
+ * [kendoGanttHierarchyBinding]="data"
49
+ * childrenField="subtasks"
50
+ * [dependencies]="dependencies">
51
+ * <kendo-gantt-column
52
+ * field="title"
53
+ * title="Task"
54
+ * [width]="200"
55
+ * [expandable]="true"></kendo-gantt-column>
56
+ * <kendo-gantt-column
57
+ * field="start"
58
+ * title="Start"
59
+ * format="dd-MMM-yyyy"
60
+ * [width]="120"></kendo-gantt-column>
61
+ * <kendo-gantt-column
62
+ * field="end"
63
+ * title="End"
64
+ * format="dd-MMM-yyyy"
65
+ * [width]="120"></kendo-gantt-column>
66
+ * <kendo-gantt-timeline-day-view></kendo-gantt-timeline-day-view>
67
+ * <kendo-gantt-timeline-week-view></kendo-gantt-timeline-week-view>
68
+ * <kendo-gantt-timeline-month-view></kendo-gantt-timeline-month-view>
69
+ * </kendo-gantt>
70
+ * `
71
+ * })
72
+ * class AppComponent {
73
+ * public data: Task[] = [{
74
+ * id: 7, title: 'Validation and R&D', start: new Date('2014-06-02T00:00:00.000Z'),
75
+ * end: new Date('2014-06-19T00:00:00.000Z'), completionRatio: 0.45708333333333334,
76
+ * subtasks: [
77
+ * { id: 18, title: 'Project Kickoff', start: new Date('2014-06-02T00:00:00.000Z'),
78
+ * end: new Date('2014-06-02T00:00:00.000Z'), completionRatio: 0.23 },
79
+ * { id: 11, title: 'Research', start: new Date('2014-06-02T00:00:00.000Z'),
80
+ * end: new Date('2014-06-07T00:00:00.000Z'), completionRatio: 0.5766666666666667,
81
+ * subtasks: [
82
+ * { id: 19, title: 'Validation', start: new Date('2014-06-02T00:00:00.000Z'),
83
+ * end: new Date('2014-06-04T00:00:00.000Z'), completionRatio: 0.25 },
84
+ * { id: 39, title: 'Specification', start: new Date('2014-06-04T00:00:00.000Z'),
85
+ * end: new Date('2014-06-07T00:00:00.000Z'), completionRatio: 0.66 }]
86
+ * }, { id: 13, title: 'Implementation', start: new Date('2014-06-08T00:00:00.000Z'),
87
+ * end: new Date('2014-06-19T00:00:00.000Z'), completionRatio: 0.77,
88
+ * subtasks: [
89
+ * { id: 24, title: 'Prototype', start: new Date('2014-06-08T00:00:00.000Z'),
90
+ * end: new Date('2014-06-14T00:00:00.000Z'), completionRatio: 0.77 },
91
+ * { id: 29, title: 'UI and Interaction', start: new Date('2014-06-14T00:00:00.000Z'),
92
+ * end: new Date('2014-06-19T00:00:00.000Z'), completionRatio: 0.6 }]
93
+ * }, { id: 17, title: 'Release', start: new Date('2014-06-19T00:00:00.000Z'),
94
+ * end: new Date('2014-06-19T00:00:00.000Z'), completionRatio: 0 }]
95
+ * }];
96
+ *
97
+ * public dependencies: GanttDependency[] = [
98
+ * { id: 528, fromId: 18, toId: 19, type: DependencyType.FS },
99
+ * { id: 529, fromId: 19, toId: 39, type: DependencyType.FS },
100
+ * { id: 535, fromId: 24, toId: 29, type: DependencyType.FS },
101
+ * { id: 551, fromId: 13, toId: 29, type: DependencyType.FF },
102
+ * { id: 777, fromId: 7, toId: 11, type: DependencyType.SF },
103
+ * { id: 556, fromId: 39, toId: 24, type: DependencyType.FS },
104
+ * { id: 546, fromId: 29, toId: 17, type: DependencyType.FS },
105
+ * ];
106
+ * }
107
+ * ```
37
108
  */
38
109
  var GanttComponent = /** @class */ (function () {
39
- function GanttComponent(timelineViewService, scrollSyncService, renderer, mapper, optionChangesService, dependencyDomService) {
110
+ function GanttComponent(timelineViewService, scrollSyncService, renderer, mapper, optionChangesService, dependencyDomService, editService, localizationService, hostElement, zone) {
40
111
  var _this = this;
41
112
  this.timelineViewService = timelineViewService;
42
113
  this.scrollSyncService = scrollSyncService;
@@ -44,6 +115,10 @@ var GanttComponent = /** @class */ (function () {
44
115
  this.mapper = mapper;
45
116
  this.optionChangesService = optionChangesService;
46
117
  this.dependencyDomService = dependencyDomService;
118
+ this.editService = editService;
119
+ this.localizationService = localizationService;
120
+ this.hostElement = hostElement;
121
+ this.zone = zone;
47
122
  this.hostClasses = true;
48
123
  /**
49
124
  * The position of the toolbar.
@@ -131,10 +206,40 @@ var GanttComponent = /** @class */ (function () {
131
206
  * Fires when an item is expanded.
132
207
  */
133
208
  this.rowExpand = new core_1.EventEmitter();
209
+ /**
210
+ * Fires when a Gantt task in the timeline pane is double-clicked. The data item, associated with the clicked task,
211
+ * is available in the event data. Use the event handler to open a task editing dialog as necessary.
212
+ */
213
+ this.taskDblClick = new core_1.EventEmitter();
214
+ /**
215
+ * Fires when the user double clicks a cell.
216
+ */
217
+ this.cellDblClick = new core_1.EventEmitter();
218
+ /**
219
+ * Fires when the user leaves an edited cell.
220
+ */
221
+ this.cellClose = new core_1.EventEmitter();
222
+ /**
223
+ * Fires when the end user clicks the `Delete` button in the task editing dialog or the task delete icon.
224
+ * Use the event handler to open a confirmation dialog when necessary.
225
+ */
226
+ this.taskDelete = new core_1.EventEmitter();
134
227
  /**
135
228
  * Fires when an item is collapsed.
136
229
  */
137
230
  this.rowCollapse = new core_1.EventEmitter();
231
+ /**
232
+ * Fires when the user confirms deleting a task.
233
+ */
234
+ this.remove = new core_1.EventEmitter();
235
+ /**
236
+ * Fires when the user cancels editing a task.
237
+ */
238
+ this.cancel = new core_1.EventEmitter();
239
+ /**
240
+ * Fires when the user saves an edited task.
241
+ */
242
+ this.save = new core_1.EventEmitter();
138
243
  /**
139
244
  * Fires when the sorting of the Gantt is changed.
140
245
  * You have to handle the event yourself and sort the data.
@@ -189,6 +294,14 @@ var GanttComponent = /** @class */ (function () {
189
294
  * Used by the GanttExpandableDirective.
190
295
  */
191
296
  this.expandStateChange = new core_1.EventEmitter();
297
+ /**
298
+ * @hidden
299
+ */
300
+ this.showEditingDialog = false;
301
+ /**
302
+ * @hidden
303
+ */
304
+ this.showConfirmationDialog = false;
192
305
  this._columns = new core_1.QueryList();
193
306
  this._data = [];
194
307
  this._timelinePaneOptions = tslib_1.__assign({}, splitter_pane_options_interface_1.DEFAULT_TIMELINE_PANE_SETTINGS);
@@ -196,14 +309,37 @@ var GanttComponent = /** @class */ (function () {
196
309
  this._rowClass = default_callbacks_1.rowClassCallback;
197
310
  this._taskClass = default_callbacks_1.taskClassCallback;
198
311
  this._activeView = DEFAULT_VIEW;
312
+ this.rtl = false;
199
313
  this.optionChangesSubscriptions = new rxjs_1.Subscription();
314
+ this.editServiceSubscription = new rxjs_1.Subscription();
200
315
  kendo_licensing_1.validatePackage(package_metadata_1.packageMetadata);
316
+ this.handleTimelineDblClick = this.handleTimelineDblClick.bind(this);
317
+ this.handleTimelineMouseDown = this.handleTimelineMouseDown.bind(this);
318
+ this.handleDoubleClick = this.handleDoubleClick.bind(this);
201
319
  this.optionChangesSubscriptions.add(this.optionChangesService.viewChanges.subscribe(function () {
202
320
  _this.loadTimelineData();
203
321
  }));
204
322
  this.optionChangesSubscriptions.add(this.optionChangesService.columnChanges.subscribe(function () {
205
323
  _this.treeList.columns.notifyOnChanges();
206
324
  }));
325
+ this.editServiceSubscription.add(this.editService.showEditingDialog.subscribe(function (show) { return _this.showEditingDialog = show; }));
326
+ this.editServiceSubscription.add(this.editService.showConfirmationDialog.subscribe(function () { return _this.taskDelete.emit(); }));
327
+ this.editServiceSubscription.add(this.editService.editEvent.subscribe(function (args) {
328
+ _this[args.editResultType].emit({
329
+ formGroup: args.formGroup,
330
+ item: util_1.getEditItem(args.dataItem, _this.treeList.view.data, _this.mapper),
331
+ sender: _this
332
+ });
333
+ _this.showConfirmationDialog = _this.showEditingDialog = false;
334
+ _this.editService.dataItem = _this.editService.formGroup = null;
335
+ _this.updateView();
336
+ _this.dependencyDomService.notifyChanges();
337
+ }));
338
+ this.localizationSubscription = this.localizationService.changes.subscribe(function (_a) {
339
+ var rtl = _a.rtl;
340
+ _this.rtl = rtl;
341
+ _this.direction = _this.rtl ? 'rtl' : 'ltr';
342
+ });
207
343
  }
208
344
  GanttComponent_1 = GanttComponent;
209
345
  Object.defineProperty(GanttComponent.prototype, "toolbarTemplate", {
@@ -219,6 +355,13 @@ var GanttComponent = /** @class */ (function () {
219
355
  enumerable: true,
220
356
  configurable: true
221
357
  });
358
+ Object.defineProperty(GanttComponent.prototype, "dir", {
359
+ get: function () {
360
+ return this.direction;
361
+ },
362
+ enumerable: true,
363
+ configurable: true
364
+ });
222
365
  Object.defineProperty(GanttComponent.prototype, "columns", {
223
366
  get: function () {
224
367
  return this._columns;
@@ -434,6 +577,16 @@ var GanttComponent = /** @class */ (function () {
434
577
  enumerable: true,
435
578
  configurable: true
436
579
  });
580
+ Object.defineProperty(GanttComponent.prototype, "editDialogFormGroup", {
581
+ /**
582
+ * @hidden
583
+ */
584
+ get: function () {
585
+ return this.editService.formGroup;
586
+ },
587
+ enumerable: true,
588
+ configurable: true
589
+ });
437
590
  GanttComponent.prototype.ngOnChanges = function (changes) {
438
591
  if (kendo_angular_common_1.anyChanged(['data', 'activeView', 'workWeekStart', 'workWeekEnd', 'workDayStart', 'workDayEnd'], changes)) {
439
592
  this.loadTimelineData();
@@ -453,6 +606,10 @@ var GanttComponent = /** @class */ (function () {
453
606
  };
454
607
  GanttComponent.prototype.ngOnDestroy = function () {
455
608
  this.optionChangesSubscriptions.unsubscribe();
609
+ this.editServiceSubscription.unsubscribe();
610
+ if (this.localizationSubscription) {
611
+ this.localizationSubscription.unsubscribe();
612
+ }
456
613
  };
457
614
  /**
458
615
  * Applies the minimum possible width for the specified column,
@@ -502,6 +659,47 @@ var GanttComponent = /** @class */ (function () {
502
659
  this.treeList.reorderColumn(source, destIndex, options);
503
660
  }
504
661
  };
662
+ /**
663
+ * Opens the task editing dialog.
664
+ */
665
+ GanttComponent.prototype.editTask = function (dataItem, formGroup) {
666
+ if (!this.showEditingDialog) {
667
+ this.editService.createEditDialog(dataItem, formGroup);
668
+ }
669
+ };
670
+ /**
671
+ * Closes the task editing dialog.
672
+ */
673
+ GanttComponent.prototype.closeTaskDialog = function () {
674
+ if (this.showEditingDialog) {
675
+ this.editService.closeEditDialog();
676
+ }
677
+ };
678
+ /**
679
+ * Opens the delete task confirmation dialog.
680
+ */
681
+ GanttComponent.prototype.openConfirmationDialog = function () {
682
+ this.showConfirmationDialog = true;
683
+ };
684
+ /**
685
+ * Opens a cell for editing.
686
+ */
687
+ GanttComponent.prototype.editCell = function (dataItem, column, formGroup) {
688
+ this.treeList.editCell(dataItem, column, formGroup);
689
+ };
690
+ /**
691
+ * Closes an edited cell.
692
+ */
693
+ GanttComponent.prototype.closeCell = function () {
694
+ this.treeList.closeCell();
695
+ };
696
+ /**
697
+ * @hidden
698
+ */
699
+ GanttComponent.prototype.handleCellClose = function (e) {
700
+ this.cellClose.emit(Object.assign(e, { item: this.editItem, sender: this }));
701
+ this.dependencyDomService.notifyChanges();
702
+ };
505
703
  /**
506
704
  * @hidden
507
705
  */
@@ -565,6 +763,69 @@ var GanttComponent = /** @class */ (function () {
565
763
  this._timelinePaneOptions.size = e;
566
764
  this.timelinePaneSizeChange.emit(e);
567
765
  };
766
+ /**
767
+ * @hidden
768
+ */
769
+ GanttComponent.prototype.handleCellClick = function (event) {
770
+ this._cellClickEvent = event;
771
+ };
772
+ /**
773
+ * @hidden
774
+ */
775
+ GanttComponent.prototype.handleDoubleClick = function (event) {
776
+ var _this = this;
777
+ var cell = this._cellClickEvent.originalEvent.target;
778
+ if (event.target !== cell) {
779
+ return;
780
+ }
781
+ this.editItem = util_1.getEditItem(this._cellClickEvent.dataItem, this.treeList.view.data, this.mapper);
782
+ if (kendo_angular_common_1.hasObservers(this.cellDblClick)) {
783
+ this.zone.run(function () {
784
+ _this.cellDblClick.emit(tslib_1.__assign({}, _this._cellClickEvent, { sender: _this }));
785
+ });
786
+ }
787
+ };
788
+ /**
789
+ * @hidden
790
+ */
791
+ GanttComponent.prototype.handleDeleteConfirmation = function () {
792
+ this.editService.triggerEditEvent('remove');
793
+ };
794
+ /**
795
+ * @hidden
796
+ */
797
+ GanttComponent.prototype.handleTimelineMouseDown = function (event) {
798
+ var target = event.target;
799
+ var gantt = this.hostElement.nativeElement;
800
+ if (!utils_1.isTask(target, gantt) || utils_1.isClearButton(target, gantt)) {
801
+ return;
802
+ }
803
+ event.preventDefault();
804
+ };
805
+ /**
806
+ * @hidden
807
+ */
808
+ GanttComponent.prototype.handleTimelineDblClick = function (event) {
809
+ var _this = this;
810
+ var target = event.target;
811
+ var gantt = this.hostElement.nativeElement;
812
+ if (!utils_1.isTask(target, gantt) || utils_1.isClearButton(target, gantt)) {
813
+ return;
814
+ }
815
+ var taskIndex = utils_1.getClosestTaskIndex(target, gantt);
816
+ var task = this.renderedTreeListItems[taskIndex];
817
+ this.zone.run(function () { return _this.taskDblClick.emit({
818
+ dataItem: task,
819
+ originalEvent: event,
820
+ sender: _this
821
+ }); });
822
+ };
823
+ /**
824
+ * @hidden
825
+ */
826
+ GanttComponent.prototype.getText = function (token) {
827
+ return this.localizationService.get(token);
828
+ };
568
829
  GanttComponent.prototype.updateTreeListGroupClass = function (columns) {
569
830
  if (columns === void 0) { columns = this.columns; }
570
831
  if (!utils_1.isPresent(this.treeList)) {
@@ -620,6 +881,11 @@ var GanttComponent = /** @class */ (function () {
620
881
  core_1.HostBinding('class.k-gantt'),
621
882
  tslib_1.__metadata("design:type", Boolean)
622
883
  ], GanttComponent.prototype, "hostClasses", void 0);
884
+ tslib_1.__decorate([
885
+ core_1.HostBinding('attr.dir'),
886
+ tslib_1.__metadata("design:type", String),
887
+ tslib_1.__metadata("design:paramtypes", [])
888
+ ], GanttComponent.prototype, "dir", null);
623
889
  tslib_1.__decorate([
624
890
  core_1.ContentChildren(columns_1.GanttColumnBase),
625
891
  tslib_1.__metadata("design:type", core_1.QueryList),
@@ -741,10 +1007,38 @@ var GanttComponent = /** @class */ (function () {
741
1007
  core_1.Output(),
742
1008
  tslib_1.__metadata("design:type", core_1.EventEmitter)
743
1009
  ], GanttComponent.prototype, "rowExpand", void 0);
1010
+ tslib_1.__decorate([
1011
+ core_1.Output(),
1012
+ tslib_1.__metadata("design:type", core_1.EventEmitter)
1013
+ ], GanttComponent.prototype, "taskDblClick", void 0);
1014
+ tslib_1.__decorate([
1015
+ core_1.Output(),
1016
+ tslib_1.__metadata("design:type", core_1.EventEmitter)
1017
+ ], GanttComponent.prototype, "cellDblClick", void 0);
1018
+ tslib_1.__decorate([
1019
+ core_1.Output(),
1020
+ tslib_1.__metadata("design:type", core_1.EventEmitter)
1021
+ ], GanttComponent.prototype, "cellClose", void 0);
1022
+ tslib_1.__decorate([
1023
+ core_1.Output(),
1024
+ tslib_1.__metadata("design:type", core_1.EventEmitter)
1025
+ ], GanttComponent.prototype, "taskDelete", void 0);
744
1026
  tslib_1.__decorate([
745
1027
  core_1.Output(),
746
1028
  tslib_1.__metadata("design:type", core_1.EventEmitter)
747
1029
  ], GanttComponent.prototype, "rowCollapse", void 0);
1030
+ tslib_1.__decorate([
1031
+ core_1.Output(),
1032
+ tslib_1.__metadata("design:type", core_1.EventEmitter)
1033
+ ], GanttComponent.prototype, "remove", void 0);
1034
+ tslib_1.__decorate([
1035
+ core_1.Output(),
1036
+ tslib_1.__metadata("design:type", core_1.EventEmitter)
1037
+ ], GanttComponent.prototype, "cancel", void 0);
1038
+ tslib_1.__decorate([
1039
+ core_1.Output(),
1040
+ tslib_1.__metadata("design:type", core_1.EventEmitter)
1041
+ ], GanttComponent.prototype, "save", void 0);
748
1042
  tslib_1.__decorate([
749
1043
  core_1.Output(),
750
1044
  tslib_1.__metadata("design:type", core_1.EventEmitter)
@@ -792,7 +1086,9 @@ var GanttComponent = /** @class */ (function () {
792
1086
  GanttComponent = GanttComponent_1 = tslib_1.__decorate([
793
1087
  core_1.Component({
794
1088
  selector: 'kendo-gantt',
1089
+ exportAs: 'kendoGantt',
795
1090
  providers: [
1091
+ kendo_angular_l10n_1.LocalizationService,
796
1092
  {
797
1093
  provide: kendo_angular_treelist_1.DataBoundTreeComponent,
798
1094
  useExisting: core_1.forwardRef(function () { return GanttComponent_1; })
@@ -808,16 +1104,21 @@ var GanttComponent = /** @class */ (function () {
808
1104
  scroll_sync_service_1.ScrollSyncService,
809
1105
  dependency_dom_service_1.DependencyDomService,
810
1106
  mapping_service_1.MappingService,
811
- option_changes_service_1.OptionChangesService
1107
+ option_changes_service_1.OptionChangesService,
1108
+ edit_service_1.EditService
812
1109
  ],
813
- template: "\n <kendo-gantt-toolbar\n *ngIf=\"showToolbar('top')\"\n class=\"k-gantt-header k-toolbar k-gantt-toolbar\"\n position=\"top\"></kendo-gantt-toolbar>\n <div class=\"k-gantt-content\">\n <kendo-splitter [style.border]=\"0\">\n <kendo-splitter-pane\n class=\"k-gantt-treelist k-gantt-treelist-scrollable\"\n [collapsible]=\"treeListPaneOptions?.collapsible\"\n [collapsed]=\"treeListPaneOptions?.collapsed\"\n (collapsedChange)=\"onTreeListCollapsedChange($event)\"\n [scrollable]=\"false\">\n <kendo-treelist\n [idField]=\"taskIdField\"\n [columns]=\"columns\"\n [data]=\"data\"\n [hasChildren]=\"hasChildren\"\n [fetchChildren]=\"fetchChildren\"\n [isExpanded]=\"isExpanded\"\n [autoSize]=\"columnsAutoSize\"\n [columnMenu]=\"columnMenu\"\n [reorderable]=\"columnsReorderable\"\n [resizable]=\"columnsResizable\"\n [rowClass]=\"rowClass\"\n [sortable]=\"sortable\"\n [sort]=\"sort\"\n [filterable]=\"filterMenu\"\n [filter]=\"filter\"\n (filterChange)=\"filterChange.emit($event)\"\n (sortChange)=\"sortChange.emit($event)\"\n (dataStateChange)=\"dataStateChange.emit({\n filter: $event.filter,\n sort: $event.sort\n })\"\n (expandStateChange)=\"expandStateChange.emit($event)\"\n (expand)=\"rowExpand.emit({ dataItem: $event.dataItem })\"\n (collapse)=\"rowCollapse.emit({ dataItem: $event.dataItem })\"\n (columnReorder)=\"columnReorder.emit($event)\"\n (columnResize)=\"columnResize.emit($event)\"\n (columnVisibilityChange)=\"handleColumnVisibilityChange($event)\"\n (columnLockedChange)=\"columnLockedChange.emit($event)\"\n >\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 ></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 "
1110
+ template: "\n <ng-container kendoGanttLocalizedMessages\n i18n-taskDeleteLabel=\"kendo.gantt.taskDeleteLabel|The label of the task delete icon\"\n taskDeleteLabel=\"Delete\"\n\n i18n-taskEditingDialogTitle=\"kendo.gantt.taskEditingDialogTitle|The title of the task editing dialog\"\n taskEditingDialogTitle=\"Editing Task\"\n\n i18n-taskEditingDialogCloseTitle=\"kendo.gantt.taskEditingDialogCloseTitle|The title of the task editing dialog close button\"\n taskEditingDialogCloseTitle=\"Close\"\n\n i18n-confirmationDialogCloseTitle=\"kendo.gantt.confirmationDialogCloseTitle|The title of the confirmation dialog close button\"\n confirmationDialogCloseTitle=\"Close\"\n\n i18n-confirmationDialogTitle=\"kendo.gantt.confirmationDialogTitle|The title of the delete task confirmation dialog\"\n confirmationDialogTitle=\"Delete Task\"\n\n i18n-confirmationDialogContent=\"kendo.gantt.confirmationDialogContent|The content of the delete task confirmation dialog\"\n confirmationDialogContent=\"Are you sure you want to delete this task?\"\n\n i18n-deleteButtonText=\"kendo.gantt.deleteButtonText|The text of the task editing dialog 'Delete' button\"\n deleteButtonText=\"Delete\"\n\n i18n-cancelButtonText=\"kendo.gantt.cancelButtonText|The text of the task editing dialog 'Cancel' button\"\n cancelButtonText=\"Cancel\"\n\n i18n-saveButtonText=\"kendo.gantt.saveButtonText|The text of the task editing dialog 'Save' button\"\n saveButtonText=\"Save\"\n\n i18n-titleFieldInputLabel=\"kendo.gantt.titleFieldInputLabel|The label of the 'title' field input in editing mode\"\n titleFieldInputLabel=\"Title\"\n\n i18n-startFieldInputLabel=\"kendo.gantt.startFieldInputLabel|The label of the 'start' field input in editing mode\"\n startFieldInputLabel=\"Start\"\n\n i18n-endFieldInputLabel=\"kendo.gantt.endFieldInputLabel|The label of the 'end' field input in editing mode\"\n endFieldInputLabel=\"End\"\n\n i18n-completionRatioFieldInputLabel=\"kendo.gantt.completionRatioFieldInputLabel|The label of the 'completionRatio' field input in editing mode\"\n completionRatioFieldInputLabel=\"Progress\"\n\n i18n-dayViewText=\"kendo.gantt.dayViewText|The text of the day view in the ViewSelector component\"\n dayViewText=\"Day\"\n\n i18n-weekViewText=\"kendo.gantt.weekViewText|The text of the week view in the ViewSelector component\"\n weekViewText=\"Week\"\n\n i18n-monthViewText=\"kendo.gantt.monthViewText|The text of the month view in the ViewSelector component\"\n monthViewText=\"Month\"\n\n i18n-yearViewText-disabled=\"kendo.gantt.yearViewText|The text of the year view in the ViewSelector component\"\n yearViewText=\"Year\"\n\n i18n-noRecords=\"kendo.gantt.noRecords|The label visible in the TreeList when there are no records\"\n noRecords=\"No records available.\"\n\n i18n-filter=\"kendo.gantt.filter|The label of the filter cell or icon\"\n filter=\"Filter\"\n\n i18n-filterEqOperator=\"kendo.gantt.filterEqOperator|The text of the equal filter operator\"\n filterEqOperator=\"Is equal to\"\n\n i18n-filterNotEqOperator=\"kendo.gantt.filterNotEqOperator|The text of the not equal filter operator\"\n filterNotEqOperator=\"Is not equal to\"\n\n i18n-filterIsNullOperator=\"kendo.gantt.filterIsNullOperator|The text of the is null filter operator\"\n filterIsNullOperator=\"Is null\"\n\n i18n-filterIsNotNullOperator=\"kendo.gantt.filterIsNotNullOperator|The text of the is not null filter operator\"\n filterIsNotNullOperator=\"Is not null\"\n\n i18n-filterIsEmptyOperator=\"kendo.gantt.filterIsEmptyOperator|The text of the is empty filter operator\"\n filterIsEmptyOperator=\"Is empty\"\n\n i18n-filterIsNotEmptyOperator=\"kendo.gantt.filterIsNotEmptyOperator|The text of the is not empty filter operator\"\n filterIsNotEmptyOperator=\"Is not empty\"\n\n i18n-filterStartsWithOperator=\"kendo.gantt.filterStartsWithOperator|The text of the starts with filter operator\"\n filterStartsWithOperator=\"Starts with\"\n\n i18n-filterContainsOperator=\"kendo.gantt.filterContainsOperator|The text of the contains filter operator\"\n filterContainsOperator=\"Contains\"\n\n i18n-filterNotContainsOperator=\"kendo.gantt.filterNotContainsOperator|The text of the does not contain filter operator\"\n filterNotContainsOperator=\"Does not contain\"\n\n i18n-filterEndsWithOperator=\"kendo.gantt.filterEndsWithOperator|The text of the ends with filter operator\"\n filterEndsWithOperator=\"Ends with\"\n\n i18n-filterGteOperator=\"kendo.gantt.filterGteOperator|The text of the greater than or equal filter operator\"\n filterGteOperator=\"Is greater than or equal to\"\n\n i18n-filterGtOperator=\"kendo.gantt.filterGtOperator|The text of the greater than filter operator\"\n filterGtOperator=\"Is greater than\"\n\n i18n-filterLteOperator=\"kendo.gantt.filterLteOperator|The text of the less than or equal filter operator\"\n filterLteOperator=\"Is less than or equal to\"\n\n i18n-filterLtOperator=\"kendo.gantt.filterLtOperator|The text of the less than filter operator\"\n filterLtOperator=\"Is less than\"\n\n i18n-filterIsTrue=\"kendo.gantt.filterIsTrue|The text of the IsTrue boolean filter option\"\n filterIsTrue=\"Is True\"\n\n i18n-filterIsFalse=\"kendo.gantt.filterIsFalse|The text of the IsFalse boolean filter option\"\n filterIsFalse=\"Is False\"\n\n i18n-filterBooleanAll=\"kendo.gantt.filterBooleanAll|The text of the (All) boolean filter option\"\n filterBooleanAll=\"(All)\"\n\n i18n-filterAfterOrEqualOperator=\"kendo.gantt.filterAfterOrEqualOperator|The text of the after or equal date filter operator\"\n filterAfterOrEqualOperator=\"Is after or equal to\"\n\n i18n-filterAfterOperator=\"kendo.gantt.filterAfterOperator|The text of the after date filter operator\"\n filterAfterOperator=\"Is after\"\n\n i18n-filterBeforeOperator=\"kendo.gantt.filterBeforeOperator|The text of the before date filter operator\"\n filterBeforeOperator=\"Is before\"\n\n i18n-filterBeforeOrEqualOperator=\"kendo.gantt.filterBeforeOrEqualOperator|The text of the before or equal date filter operator\"\n filterBeforeOrEqualOperator=\"Is before or equal to\"\n\n i18n-filterFilterButton=\"kendo.gantt.filterFilterButton|The text of the filter button\"\n filterFilterButton=\"Filter\"\n\n i18n-filterClearButton=\"kendo.gantt.filterClearButton|The text of the clear filter button\"\n filterClearButton=\"Clear\"\n\n i18n-filterAndLogic=\"kendo.gantt.filterAndLogic|The text of the And filter logic\"\n filterAndLogic=\"And\"\n\n i18n-filterOrLogic=\"kendo.gantt.filterOrLogic|The text of the Or filter logic\"\n filterOrLogic=\"Or\"\n\n i18n-loading=\"kendo.gantt.loading|The loading text\"\n loading=\"Loading\"\n\n i18n-columnMenu=\"kendo.gantt.columnMenu|The title of the column menu icon\"\n columnMenu=\"Column Menu\"\n\n i18n-columns=\"kendo.gantt.columns|The text shown in the column menu for the columns item\"\n columns=\"Columns\"\n\n i18n-lock-disabled=\"kendo.gantt.lock|The text shown in the column menu for the lock item\"\n lock-disabled=\"Lock\"\n\n i18n-unlock-disabled=\"kendo.gantt.unlock|The text shown in the column menu for the unlock item\"\n unlock-disabled=\"Unlock\"\n\n i18n-sortable=\"kendo.gantt.sortable|The label of the sort icon\"\n sortable=\"Sortable\"\n\n i18n-sortAscending=\"kendo.gantt.sortAscending|The text shown in the column menu for the sort ascending item\"\n sortAscending=\"Sort Ascending\"\n\n i18n-sortDescending=\"kendo.gantt.sortDescending|The text shown in the column menu for the sort descending item\"\n sortDescending=\"Sort Descending\"\n\n i18n-sortedAscending=\"kendo.gantt.sortedAscending|The status announcement when a column is sorted ascending\"\n sortedAscending=\"Sorted Ascending\"\n\n i18n-sortedDescending=\"kendo.gantt.sortedDescending|The status announcement when a column is sorted descending\"\n sortedDescending=\"Sorted Descending\"\n\n i18n-sortedDefault=\"kendo.gantt.sortedDefault|The status announcement when a column is no longer sorted\"\n sortedDefault=\"Not Sorted\"\n\n i18n-columnsApply=\"kendo.gantt.columnsApply|The text shown in the column menu or column chooser for the columns apply button\"\n columnsApply=\"Apply\"\n\n i18n-columnsReset=\"kendo.gantt.columnsReset|The text shown in the column menu or column chooser for the columns reset button\"\n columnsReset=\"Reset\"></ng-container>\n <kendo-gantt-toolbar\n *ngIf=\"showToolbar('top')\"\n class=\"k-gantt-header k-toolbar k-gantt-toolbar\"\n position=\"top\"></kendo-gantt-toolbar>\n <div class=\"k-gantt-content\">\n <kendo-splitter [style.border]=\"0\">\n <kendo-splitter-pane\n class=\"k-gantt-treelist k-gantt-treelist-scrollable\"\n [collapsible]=\"treeListPaneOptions?.collapsible\"\n [collapsed]=\"treeListPaneOptions?.collapsed\"\n (collapsedChange)=\"onTreeListCollapsedChange($event)\"\n [scrollable]=\"false\">\n <kendo-treelist\n [idField]=\"taskIdField\"\n [columns]=\"columns\"\n [data]=\"data\"\n [hasChildren]=\"hasChildren\"\n [fetchChildren]=\"fetchChildren\"\n [isExpanded]=\"isExpanded\"\n [autoSize]=\"columnsAutoSize\"\n [columnMenu]=\"columnMenu\"\n [reorderable]=\"columnsReorderable\"\n [resizable]=\"columnsResizable\"\n [rowClass]=\"rowClass\"\n [sortable]=\"sortable\"\n [sort]=\"sort\"\n [filterable]=\"filterMenu\"\n [filter]=\"filter\"\n (filterChange)=\"filterChange.emit($event)\"\n (sortChange)=\"sortChange.emit($event)\"\n (dataStateChange)=\"dataStateChange.emit({\n filter: $event.filter,\n sort: $event.sort\n })\"\n (expandStateChange)=\"expandStateChange.emit($event)\"\n (expand)=\"rowExpand.emit({ dataItem: $event.dataItem })\"\n (collapse)=\"rowCollapse.emit({ dataItem: $event.dataItem })\"\n (columnReorder)=\"columnReorder.emit($event)\"\n (columnResize)=\"columnResize.emit($event)\"\n (columnVisibilityChange)=\"handleColumnVisibilityChange($event)\"\n (columnLockedChange)=\"columnLockedChange.emit($event)\"\n (cellClick)=\"handleCellClick($event)\"\n (cellClose)=\"handleCellClose($event)\"\n [kendoEventsOutsideAngular]=\"{\n dblclick: handleDoubleClick\n }\">\n <kendo-treelist-messages [kendoGanttTreeListMessages]=\"localizationService\"></kendo-treelist-messages>\n </kendo-treelist>\n </kendo-splitter-pane>\n <kendo-splitter-pane\n [collapsible]=\"timelinePaneOptions?.collapsible\"\n [resizable]=\"timelinePaneOptions?.resizable\"\n [collapsed]=\"timelinePaneOptions?.collapsed\"\n [min]=\"timelinePaneOptions?.min\"\n [max]=\"timelinePaneOptions?.max\"\n [size]=\"timelinePaneOptions?.size\"\n (collapsedChange)=\"onTimelineCollapsedChange($event)\"\n (sizeChange)=\"onTimelinePaneSizeChange($event)\"\n [scrollable]=\"false\">\n <kendo-gantt-timeline\n *ngIf=\"views && views.length\"\n [rows]=\"renderedTreeListItems\"\n [slots]=\"timelineSlots\"\n [groupSlots]=\"timelineGroupSlots\"\n [tableWidth]=\"tableWidth\"\n [activeView]=\"activeView\"\n [taskContentTemplate]=\"taskContentTemplate?.templateRef\"\n [taskTemplate]=\"taskTemplate?.templateRef\"\n [summaryTaskTemplate]=\"summaryTaskTemplate?.templateRef\"\n [taskClass]=\"taskClass\"\n [dependencies]=\"dependencies\"\n [hasChildren]=\"hasChildren\"\n [kendoEventsOutsideAngular]=\"{\n dblclick: handleTimelineDblClick,\n mousedown: handleTimelineMouseDown\n }\"\n ></kendo-gantt-timeline>\n </kendo-splitter-pane>\n </kendo-splitter>\n </div>\n <kendo-gantt-toolbar\n *ngIf=\"showToolbar('bottom')\"\n class=\"k-gantt-footer k-toolbar k-gantt-toolbar\"\n position=\"bottom\"></kendo-gantt-toolbar>\n <kendo-gantt-edit-dialog *ngIf=\"showEditingDialog\" [formGroup]=\"editDialogFormGroup\"></kendo-gantt-edit-dialog>\n <kendo-dialog\n *ngIf=\"showConfirmationDialog\"\n [width]=\"575\"\n [height]=\"170\"\n [title]=\"getText('confirmationDialogTitle')\"\n (close)=\"showConfirmationDialog = false;\">\n <span>{{getText('confirmationDialogContent')}}</span>\n <kendo-dialog-actions layout=\"normal\">\n <kendo-treelist-spacer></kendo-treelist-spacer>\n <button kendoButton [primary]=\"true\" (click)=\"handleDeleteConfirmation()\">{{ getText('deleteButtonText') }}</button>\n <button kendoButton (click)=\"showConfirmationDialog = false;\">{{ getText('cancelButtonText') }}</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n "
814
1111
  }),
815
1112
  tslib_1.__metadata("design:paramtypes", [timeline_view_service_1.TimelineViewService,
816
1113
  scroll_sync_service_1.ScrollSyncService,
817
1114
  core_1.Renderer2,
818
1115
  mapping_service_1.MappingService,
819
1116
  option_changes_service_1.OptionChangesService,
820
- dependency_dom_service_1.DependencyDomService])
1117
+ dependency_dom_service_1.DependencyDomService,
1118
+ edit_service_1.EditService,
1119
+ kendo_angular_l10n_1.LocalizationService,
1120
+ core_1.ElementRef,
1121
+ core_1.NgZone])
821
1122
  ], GanttComponent);
822
1123
  return GanttComponent;
823
1124
  }());
@@ -10,6 +10,7 @@ var common_1 = require("@angular/common");
10
10
  var kendo_angular_layout_1 = require("@progress/kendo-angular-layout");
11
11
  var kendo_angular_treelist_1 = require("@progress/kendo-angular-treelist");
12
12
  var kendo_angular_buttons_1 = require("@progress/kendo-angular-buttons");
13
+ var kendo_angular_dialog_1 = require("@progress/kendo-angular-dialog");
13
14
  var gantt_component_1 = require("./gantt.component");
14
15
  var gantt_timeline_component_1 = require("./timeline/gantt-timeline.component");
15
16
  var gantt_tasks_table_body_component_1 = require("./rendering/gantt-tasks-table-body.component");
@@ -31,11 +32,28 @@ var columns_1 = require("./columns/columns");
31
32
  var timeline_day_view_component_1 = require("./timeline/timeline-day-view.component");
32
33
  var timeline_week_view_component_1 = require("./timeline/timeline-week-view.component");
33
34
  var timeline_month_view_component_1 = require("./timeline/timeline-month-view.component");
35
+ var edit_dialog_component_1 = require("./editing/edit-dialog.component");
36
+ var forms_1 = require("@angular/forms");
37
+ var kendo_angular_label_1 = require("@progress/kendo-angular-label");
38
+ var kendo_angular_inputs_1 = require("@progress/kendo-angular-inputs");
39
+ var kendo_angular_dateinputs_1 = require("@progress/kendo-angular-dateinputs");
40
+ var custom_messages_component_1 = require("./localization/custom-messages.component");
41
+ var kendo_angular_l10n_1 = require("@progress/kendo-angular-l10n");
42
+ var localized_messages_directive_1 = require("./localization/localized-messages.directive");
43
+ var treelist_messages_directive_1 = require("./localization/treelist-messages.directive");
44
+ var kendo_angular_common_1 = require("@progress/kendo-angular-common");
34
45
  var IMPORTED_MODULES = [
35
46
  common_1.CommonModule,
47
+ forms_1.ReactiveFormsModule,
48
+ kendo_angular_label_1.LabelModule,
49
+ kendo_angular_inputs_1.InputsModule,
50
+ kendo_angular_dateinputs_1.DateInputsModule,
51
+ kendo_angular_buttons_1.ButtonsModule,
36
52
  kendo_angular_layout_1.SplitterModule,
37
53
  kendo_angular_treelist_1.TreeListModule,
38
- kendo_angular_buttons_1.ButtonsModule
54
+ kendo_angular_buttons_1.ButtonsModule,
55
+ kendo_angular_dialog_1.DialogModule,
56
+ kendo_angular_common_1.EventsModule
39
57
  ];
40
58
  var DECLARATIONS = [
41
59
  gantt_component_1.GanttComponent,
@@ -59,6 +77,7 @@ var DECLARATIONS = [
59
77
  columns_1.FilterMenuTemplateDirective,
60
78
  columns_1.FilterCellTemplateDirective,
61
79
  columns_1.CellTemplateDirective,
80
+ columns_1.EditTemplateDirective,
62
81
  columns_1.ColumnMenuTemplateDirective,
63
82
  columns_1.HeaderTemplateDirective,
64
83
  columns_1.FooterTemplateDirective,
@@ -66,10 +85,42 @@ var DECLARATIONS = [
66
85
  gantt_dependency_directive_1.GanttDependencyDirective,
67
86
  timeline_day_view_component_1.TimelineDayViewComponent,
68
87
  timeline_week_view_component_1.TimelineWeekViewComponent,
69
- timeline_month_view_component_1.TimelineMonthViewComponent
88
+ timeline_month_view_component_1.TimelineMonthViewComponent,
89
+ edit_dialog_component_1.EditDialogComponent,
90
+ custom_messages_component_1.CustomMessagesComponent,
91
+ localized_messages_directive_1.LocalizedMessagesDirective,
92
+ treelist_messages_directive_1.GanttTreeListMessagesDirective
70
93
  ];
71
94
  /**
72
- * Sample module
95
+ * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
96
+ * definition for the Gantt component.
97
+ *
98
+ * @example
99
+ *
100
+ * ```ts-no-run
101
+ * // Import the Gantt module
102
+ * import { GanttModule } from '@progress/kendo-angular-gantt';
103
+ *
104
+ * // The browser platform with a compiler
105
+ * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
106
+ *
107
+ * import { NgModule } from '@angular/core';
108
+ *
109
+ * // Import the app component
110
+ * import { AppComponent } from './app.component';
111
+ *
112
+ * // Define the app module
113
+ * _@NgModule({
114
+ * declarations: [AppComponent], // declare app component
115
+ * imports: [BrowserModule, GanttModule], // import Gantt module
116
+ * bootstrap: [AppComponent]
117
+ * })
118
+ * export class AppModule {}
119
+ *
120
+ * // Compile and launch the module
121
+ * platformBrowserDynamic().bootstrapModule(AppModule);
122
+ *
123
+ * ```
73
124
  */
74
125
  var GanttModule = /** @class */ (function () {
75
126
  function GanttModule() {
@@ -78,7 +129,11 @@ var GanttModule = /** @class */ (function () {
78
129
  core_1.NgModule({
79
130
  imports: IMPORTED_MODULES.slice(),
80
131
  declarations: DECLARATIONS.slice(),
81
- exports: DECLARATIONS.slice()
132
+ exports: DECLARATIONS.slice(),
133
+ providers: [{
134
+ provide: kendo_angular_l10n_1.L10N_PREFIX,
135
+ useValue: 'kendo.gantt'
136
+ }]
82
137
  })
83
138
  ], GanttModule);
84
139
  return GanttModule;
package/dist/npm/index.js CHANGED
@@ -17,6 +17,18 @@ 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 edit_dialog_component_1 = require("./editing/edit-dialog.component");
21
+ exports.EditDialogComponent = edit_dialog_component_1.EditDialogComponent
22
+ var edit_service_1 = require("./editing/edit.service");
23
+ exports.EditService = edit_service_1.EditService
24
+ var custom_messages_component_1 = require("./localization/custom-messages.component");
25
+ exports.CustomMessagesComponent = custom_messages_component_1.CustomMessagesComponent
26
+ var localized_messages_directive_1 = require("./localization/localized-messages.directive");
27
+ exports.LocalizedMessagesDirective = localized_messages_directive_1.LocalizedMessagesDirective
28
+ var messages_1 = require("./localization/messages");
29
+ exports.Messages = messages_1.Messages
30
+ var treelist_messages_directive_1 = require("./localization/treelist-messages.directive");
31
+ exports.GanttTreeListMessagesDirective = treelist_messages_directive_1.GanttTreeListMessagesDirective
20
32
  var gantt_header_table_body_component_1 = require("./rendering/gantt-header-table-body.component");
21
33
  exports.GanttHeaderTableBodyComponent = gantt_header_table_body_component_1.GanttHeaderTableBodyComponent
22
34
  var gantt_milestone_task_component_1 = require("./rendering/gantt-milestone-task.component");
@@ -0,0 +1,46 @@
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 messages_1 = require("./messages");
11
+ /**
12
+ * Custom component messages override default component messages
13
+ * ([see example]({% slug globalization_treelist %}#toc-localization)).
14
+ */
15
+ var CustomMessagesComponent = /** @class */ (function (_super) {
16
+ tslib_1.__extends(CustomMessagesComponent, _super);
17
+ function CustomMessagesComponent(service) {
18
+ var _this = _super.call(this) || this;
19
+ _this.service = service;
20
+ return _this;
21
+ }
22
+ CustomMessagesComponent_1 = CustomMessagesComponent;
23
+ Object.defineProperty(CustomMessagesComponent.prototype, "override", {
24
+ get: function () {
25
+ return true;
26
+ },
27
+ enumerable: true,
28
+ configurable: true
29
+ });
30
+ var CustomMessagesComponent_1;
31
+ CustomMessagesComponent = CustomMessagesComponent_1 = tslib_1.__decorate([
32
+ core_1.Component({
33
+ providers: [
34
+ {
35
+ provide: messages_1.Messages,
36
+ useExisting: core_1.forwardRef(function () { return CustomMessagesComponent_1; })
37
+ }
38
+ ],
39
+ selector: 'kendo-gantt-messages',
40
+ template: ""
41
+ }),
42
+ tslib_1.__metadata("design:paramtypes", [kendo_angular_l10n_1.LocalizationService])
43
+ ], CustomMessagesComponent);
44
+ return CustomMessagesComponent;
45
+ }(messages_1.Messages));
46
+ exports.CustomMessagesComponent = CustomMessagesComponent;