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

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 (38) hide show
  1. package/dist/cdn/js/kendo-angular-gantt.js +1 -1
  2. package/dist/cdn/main.js +1 -1
  3. package/dist/es/gantt.component.js +10 -6
  4. package/dist/es/gantt.module.js +1 -3
  5. package/dist/es/index.js +1 -1
  6. package/dist/es/models/models.js +1 -0
  7. package/dist/es/package-metadata.js +1 -1
  8. package/dist/es/rendering/gantt-tasks-table-body.component.js +2 -2
  9. package/dist/es/timeline/timeline-base-view.service.js +12 -3
  10. package/dist/es2015/gantt.component.d.ts +7 -4
  11. package/dist/es2015/gantt.component.js +50 -6
  12. package/dist/es2015/gantt.module.js +1 -3
  13. package/dist/es2015/index.d.ts +1 -1
  14. package/dist/es2015/index.js +1 -1
  15. package/dist/es2015/index.metadata.json +1 -1
  16. package/dist/es2015/models/events/cell-close-event.interface.d.ts +1 -1
  17. package/dist/es2015/models/events/task-edit-event.interface.d.ts +2 -2
  18. package/dist/es2015/models/models.d.ts +3 -0
  19. package/dist/es2015/models/models.js +1 -0
  20. package/dist/es2015/package-metadata.js +1 -1
  21. package/dist/es2015/rendering/gantt-tasks-table-body.component.js +2 -2
  22. package/dist/es2015/timeline/timeline-base-view.service.d.ts +12 -0
  23. package/dist/es2015/timeline/timeline-base-view.service.js +12 -3
  24. package/dist/fesm2015/index.js +101 -34
  25. package/dist/fesm5/index.js +65 -36
  26. package/dist/npm/gantt.component.js +10 -6
  27. package/dist/npm/gantt.module.js +1 -3
  28. package/dist/npm/index.js +2 -2
  29. package/dist/npm/models/models.js +2 -0
  30. package/dist/npm/package-metadata.js +1 -1
  31. package/dist/npm/rendering/gantt-tasks-table-body.component.js +1 -1
  32. package/dist/npm/timeline/timeline-base-view.service.js +17 -8
  33. package/dist/systemjs/kendo-angular-gantt.js +1 -1
  34. package/package.json +3 -3
  35. package/dist/es/localization/treelist-messages.directive.js +0 -31
  36. package/dist/es2015/localization/treelist-messages.directive.d.ts +0 -14
  37. package/dist/es2015/localization/treelist-messages.directive.js +0 -29
  38. package/dist/npm/localization/treelist-messages.directive.js +0 -33
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { GanttComponent } from '../../main';
5
+ import { GanttComponent } from '../../gantt.component';
6
6
  import { PreventableEvent } from './preventable-event';
7
7
  import { TaskEditItem } from './task-edit-event.interface';
8
8
  /**
@@ -2,8 +2,8 @@
2
2
  * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { FormGroup } from "@angular/forms";
6
- import { GanttComponent } from "../../gantt.component";
5
+ import { FormGroup } from '@angular/forms';
6
+ import { GanttComponent } from '../../gantt.component';
7
7
  /**
8
8
  * The event data for the task editing events.
9
9
  */
@@ -29,7 +29,10 @@ export { TaskResizeEvent } from './events/task-resize-event.interface';
29
29
  export { TaskResizeStartEvent } from './events/task-resize-start-event.interface';
30
30
  export { DataStateChangeEvent } from './events/data-state-change-event.interface';
31
31
  export { CellClickEvent } from './events/cell-click-event.interface';
32
+ export { CellCloseEvent } from './events/cell-close-event.interface';
32
33
  export { TaskClickEvent } from './events/task-click-event.interface';
34
+ export { TaskEditEvent } from './events/task-edit-event.interface';
35
+ export { TaskEditItem } from './events/task-edit-event.interface';
33
36
  export { ColumnLockedChangeEvent } from './events/column-locked-change-event.interface';
34
37
  export { ColumnReorderEvent } from './events/column-reorder-event.interface';
35
38
  export { ColumnResizeEvent } from './events/column-resize-event.interface';
@@ -2,3 +2,4 @@
2
2
  * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
+ export { CellCloseEvent } from './events/cell-close-event.interface';
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-gantt',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1638864709,
12
+ publishDate: 1639143747,
13
13
  version: '',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
15
15
  };
@@ -4,7 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as tslib_1 from "tslib";
6
6
  import { Component, Input, TemplateRef, ViewChild, ElementRef } from '@angular/core';
7
- import { isEqualDate } from '@progress/kendo-date-math';
7
+ import { isEqual } from '@progress/kendo-date-math';
8
8
  import { DependencyDomService } from '../dependencies/dependency-dom.service';
9
9
  import { isPresent } from '../utils';
10
10
  import { MappingService } from '../common/mapping.service';
@@ -24,7 +24,7 @@ let GanttTasksTableBodyComponent = class GanttTasksTableBodyComponent {
24
24
  }
25
25
  }
26
26
  isMileStone(task) {
27
- return !this.hasChildren(task) && isEqualDate(this.mapper.extractFromTask(task, 'start'), this.mapper.extractFromTask(task, 'end'));
27
+ return !this.hasChildren(task) && isEqual(this.mapper.extractFromTask(task, 'start'), this.mapper.extractFromTask(task, 'end'));
28
28
  }
29
29
  };
30
30
  tslib_1.__decorate([
@@ -7,6 +7,18 @@ import { MappingService } from '../common/mapping.service';
7
7
  import { TimelineOptions } from '../models/timeline-options.interface';
8
8
  import { DateRange } from '../models/date-range.interface';
9
9
  import { Slot } from '../models/slot.interface';
10
+ /**
11
+ * @hidden
12
+ */
13
+ export declare const DAY_FORMAT = "E d/MM";
14
+ /**
15
+ * @hidden
16
+ */
17
+ export declare const HOUR_FORMAT = "HH:mm aa";
18
+ /**
19
+ * @hidden
20
+ */
21
+ export declare const MONTH_FORMAT = "MMM";
10
22
  /**
11
23
  * @hidden
12
24
  */
@@ -5,9 +5,18 @@
5
5
  import { orderBy } from '@progress/kendo-data-query';
6
6
  import { isWorkDay, isWorkHour, lastDayOfWeek } from '../utils';
7
7
  import { addDays, firstDayInWeek, getDate, firstDayOfMonth, lastDayOfMonth, addMonths, addWeeks } from '@progress/kendo-date-math';
8
- const DAY_FORMAT = 'E d/MM';
9
- const HOUR_FORMAT = 'HH:mm aa';
10
- const MONTH_FORMAT = 'MMM';
8
+ /**
9
+ * @hidden
10
+ */
11
+ export const DAY_FORMAT = 'E d/MM';
12
+ /**
13
+ * @hidden
14
+ */
15
+ export const HOUR_FORMAT = 'HH:mm aa';
16
+ /**
17
+ * @hidden
18
+ */
19
+ export const MONTH_FORMAT = 'MMM';
11
20
  /**
12
21
  * @hidden
13
22
  */
@@ -5,7 +5,7 @@
5
5
  import { __decorate, __metadata, __param } from 'tslib';
6
6
  import { Input, EventEmitter, Injectable, Directive, Optional, TemplateRef, QueryList, ContentChildren, ContentChild, Component, forwardRef, SkipSelf, Host, Injector, NgZone, isDevMode, ViewChild, HostBinding, Output, Renderer2, ElementRef, ChangeDetectorRef, NgModule } from '@angular/core';
7
7
  import { ColumnBase, ColumnComponent, ColumnGroupComponent, SpanColumnComponent, TreeListComponent, DataBoundTreeComponent, ExpandableTreeComponent, FlatBindingDirective, HierarchyBindingDirective, ExpandableDirective, TreeListModule } from '@progress/kendo-angular-treelist';
8
- import { cloneDate, addWeeks, firstDayInWeek, addDays, getDate, lastDayOfMonth, firstDayOfMonth, addMonths, isEqualDate, MS_PER_HOUR, MS_PER_DAY } from '@progress/kendo-date-math';
8
+ import { cloneDate, addWeeks, firstDayInWeek, addDays, getDate, lastDayOfMonth, firstDayOfMonth, addMonths, isEqual, MS_PER_HOUR, MS_PER_DAY } from '@progress/kendo-date-math';
9
9
  import { of, Subject, Subscription, fromEvent } from 'rxjs';
10
10
  import { validatePackage } from '@progress/kendo-licensing';
11
11
  import { isDocumentAvailable, closestInScope, matchesClasses, anyChanged, hasObservers, EventsModule } from '@progress/kendo-angular-common';
@@ -30,7 +30,7 @@ const packageMetadata = {
30
30
  name: '@progress/kendo-angular-gantt',
31
31
  productName: 'Kendo UI for Angular',
32
32
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
33
- publishDate: 1638864709,
33
+ publishDate: 1639143747,
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
  };
@@ -766,8 +766,17 @@ const isClearButton = (contender, gantt) => {
766
766
  return isPresent(clearButtonContainer);
767
767
  };
768
768
 
769
+ /**
770
+ * @hidden
771
+ */
769
772
  const DAY_FORMAT = 'E d/MM';
773
+ /**
774
+ * @hidden
775
+ */
770
776
  const HOUR_FORMAT = 'HH:mm aa';
777
+ /**
778
+ * @hidden
779
+ */
771
780
  const MONTH_FORMAT = 'MMM';
772
781
  /**
773
782
  * @hidden
@@ -1732,7 +1741,7 @@ let GanttComponent = GanttComponent_1 = class GanttComponent {
1732
1741
  /**
1733
1742
  * Provides a callback that determines if the given task is selected ([see example]({% slug selection_gantt %}#toc-custom-selection))
1734
1743
  *
1735
- * > The [`selectable`]({% slug gantt_api_ganttcomponent %}#toc-selectable) prop has to be set to `true` in order for this callback to be executed.
1744
+ * > The [`selectable`]({% slug api_gantt_ganttcomponent %}#toc-selectable) prop has to be set to `true` in order for this callback to be executed.
1736
1745
  */
1737
1746
  this.isSelected = isSelected;
1738
1747
  /**
@@ -1746,7 +1755,7 @@ let GanttComponent = GanttComponent_1 = class GanttComponent {
1746
1755
  /**
1747
1756
  * Enables or disables the Gantt selection mechanism ([see example]({% slug selection_gantt %}#toc-custom-selection)).
1748
1757
  *
1749
- * > When set to `true`, the [`isSelected`]({% slug gantt_api_ganttcomponent %}#toc-isselected) callback has to be provided.
1758
+ * > When set to `true`, the [`isSelected`]({% slug api_gantt_ganttcomponent %}#toc-isselected) callback has to be provided.
1750
1759
  * > When applied, the [`SelectableDirective`]({% slug api_gantt_selectabledirective %}) sets `selectable` to `true` internally.
1751
1760
  */
1752
1761
  this.selectable = false;
@@ -1968,7 +1977,6 @@ let GanttComponent = GanttComponent_1 = class GanttComponent {
1968
1977
  this.showConfirmationDialog = this.showEditingDialog = false;
1969
1978
  this.editService.dataItem = this.editService.formGroup = null;
1970
1979
  this.updateView();
1971
- this.dependencyDomService.notifyChanges();
1972
1980
  }));
1973
1981
  this.localizationSubscription = this.localizationService.changes.subscribe(({ rtl }) => {
1974
1982
  this.rtl = rtl;
@@ -2227,12 +2235,17 @@ let GanttComponent = GanttComponent_1 = class GanttComponent {
2227
2235
  }
2228
2236
  }
2229
2237
  /**
2230
- * Updates the data of the Gantt and forces row-related callbacks to be called anew.
2238
+ * Forces the TreeList to evaluate if some data items have changed and re-renders the rows information, if needed.
2239
+ * Recalculates and re-renders the Timeline period, if needed.
2240
+ * Redraws changed dependencies, if needed.
2241
+ * Executes all row-related callbacks anew.
2231
2242
  */
2232
2243
  updateView() {
2233
2244
  if (isPresent(this.treeList)) {
2234
2245
  this.treeList.updateView();
2235
2246
  }
2247
+ this.loadTimelineData();
2248
+ this.dependencyDomService.notifyChanges();
2236
2249
  }
2237
2250
  /**
2238
2251
  * Opens the task editing dialog.
@@ -2476,7 +2489,7 @@ let GanttComponent = GanttComponent_1 = class GanttComponent {
2476
2489
  items: [dataItem],
2477
2490
  sender: this
2478
2491
  });
2479
- this.updateView();
2492
+ this.treeList.updateView();
2480
2493
  }
2481
2494
  updateTreeListGroupClass(columns = this.columns) {
2482
2495
  if (!isPresent(this.treeList)) {
@@ -3005,7 +3018,47 @@ GanttComponent = GanttComponent_1 = __decorate([
3005
3018
  }"
3006
3019
  [scope]="this"
3007
3020
  >
3008
- <kendo-treelist-messages [kendoGanttTreeListMessages]="localizationService"></kendo-treelist-messages>
3021
+ <kendo-treelist-messages
3022
+ [noRecords]="getText('noRecords')"
3023
+ [filter]="getText('filter')"
3024
+ [filterEqOperator]="getText('filterEqOperator')"
3025
+ [filterNotEqOperator]="getText('filterNotEqOperator')"
3026
+ [filterIsNullOperator]="getText('filterIsNullOperator')"
3027
+ [filterIsNotNullOperator]="getText('filterIsNotNullOperator')"
3028
+ [filterIsEmptyOperator]="getText('filterIsEmptyOperator')"
3029
+ [filterIsNotEmptyOperator]="getText('filterIsNotEmptyOperator')"
3030
+ [filterStartsWithOperator]="getText('filterStartsWithOperator')"
3031
+ [filterContainsOperator]="getText('filterContainsOperator')"
3032
+ [filterNotContainsOperator]="getText('filterNotContainsOperator')"
3033
+ [filterEndsWithOperator]="getText('filterEndsWithOperator')"
3034
+ [filterGteOperator]="getText('filterGteOperator')"
3035
+ [filterGtOperator]="getText('filterGtOperator')"
3036
+ [filterLteOperator]="getText('filterLteOperator')"
3037
+ [filterLtOperator]="getText('filterLtOperator')"
3038
+ [filterIsTrue]="getText('filterIsTrue')"
3039
+ [filterIsFalse]="getText('filterIsFalse')"
3040
+ [filterBooleanAll]="getText('filterBooleanAll')"
3041
+ [filterAfterOrEqualOperator]="getText('filterAfterOrEqualOperator')"
3042
+ [filterAfterOperator]="getText('filterAfterOperator')"
3043
+ [filterBeforeOperator]="getText('filterBeforeOperator')"
3044
+ [filterBeforeOrEqualOperator]="getText('filterBeforeOrEqualOperator')"
3045
+ [filterFilterButton]="getText('filterFilterButton')"
3046
+ [filterClearButton]="getText('filterClearButton')"
3047
+ [filterAndLogic]="getText('filterAndLogic')"
3048
+ [filterOrLogic]="getText('filterOrLogic')"
3049
+ [loading]="getText('loading')"
3050
+ [columnMenu]="getText('columnMenu')"
3051
+ [columns]="getText('columns')"
3052
+ [sortable]="getText('sortable')"
3053
+ [sortAscending]="getText('sortAscending')"
3054
+ [sortDescending]="getText('sortDescending')"
3055
+ [sortedAscending]="getText('sortedAscending')"
3056
+ [sortedDescending]="getText('sortedDescending')"
3057
+ [sortedDefault]="getText('sortedDefault')"
3058
+ [columnsApply]="getText('columnsApply')"
3059
+ [columnsReset]="getText('columnsReset')"
3060
+ >
3061
+ </kendo-treelist-messages>
3009
3062
  </kendo-treelist>
3010
3063
  </kendo-splitter-pane>
3011
3064
  <kendo-splitter-pane
@@ -3288,7 +3341,7 @@ let GanttTasksTableBodyComponent = class GanttTasksTableBodyComponent {
3288
3341
  }
3289
3342
  }
3290
3343
  isMileStone(task) {
3291
- return !this.hasChildren(task) && isEqualDate(this.mapper.extractFromTask(task, 'start'), this.mapper.extractFromTask(task, 'end'));
3344
+ return !this.hasChildren(task) && isEqual(this.mapper.extractFromTask(task, 'start'), this.mapper.extractFromTask(task, 'end'));
3292
3345
  }
3293
3346
  };
3294
3347
  __decorate([
@@ -4675,28 +4728,6 @@ LocalizedMessagesDirective = LocalizedMessagesDirective_1 = __decorate([
4675
4728
  __metadata("design:paramtypes", [LocalizationService])
4676
4729
  ], LocalizedMessagesDirective);
4677
4730
 
4678
- /**
4679
- * @hidden
4680
- */
4681
- let GanttTreeListMessagesDirective = class GanttTreeListMessagesDirective {
4682
- constructor(localizationService) {
4683
- this.localizationService = localizationService;
4684
- }
4685
- ngAfterViewInit() {
4686
- const treeListServiceDictionary = this.localizationService.dictionary;
4687
- Object.keys(treeListServiceDictionary)
4688
- .forEach(token => treeListServiceDictionary[token] = this.kendoGanttTreeListMessages.get(token.replace('kendo.treelist.', '')));
4689
- }
4690
- };
4691
- __decorate([
4692
- Input(),
4693
- __metadata("design:type", LocalizationService)
4694
- ], GanttTreeListMessagesDirective.prototype, "kendoGanttTreeListMessages", void 0);
4695
- GanttTreeListMessagesDirective = __decorate([
4696
- Directive({ selector: '[kendoGanttTreeListMessages]' }),
4697
- __metadata("design:paramtypes", [LocalizationService])
4698
- ], GanttTreeListMessagesDirective);
4699
-
4700
4731
  const IMPORTED_MODULES = [
4701
4732
  CommonModule,
4702
4733
  ReactiveFormsModule,
@@ -4744,8 +4775,7 @@ const DECLARATIONS = [
4744
4775
  SelectableDirective,
4745
4776
  EditDialogComponent,
4746
4777
  CustomMessagesComponent,
4747
- LocalizedMessagesDirective,
4748
- GanttTreeListMessagesDirective
4778
+ LocalizedMessagesDirective
4749
4779
  ];
4750
4780
  /**
4751
4781
  * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
@@ -4792,8 +4822,45 @@ GanttModule = __decorate([
4792
4822
  })
4793
4823
  ], GanttModule);
4794
4824
 
4825
+ /**
4826
+ * @hidden
4827
+ */
4828
+ class PreventableEvent {
4829
+ constructor() {
4830
+ this.prevented = false;
4831
+ }
4832
+ /**
4833
+ * Prevents the default action for a specified event.
4834
+ * In this way, the source component suppresses
4835
+ * the built-in behavior that follows the event.
4836
+ */
4837
+ preventDefault() {
4838
+ this.prevented = true;
4839
+ }
4840
+ /**
4841
+ * Returns `true` if the event was prevented
4842
+ * by any of its subscribers.
4843
+ *
4844
+ * @returns `true` if the default action was prevented.
4845
+ * Otherwise, returns `false`.
4846
+ */
4847
+ isDefaultPrevented() {
4848
+ return this.prevented;
4849
+ }
4850
+ }
4851
+
4852
+ /**
4853
+ * Called every time a user leaves an edited cell.
4854
+ */
4855
+ class CellCloseEvent extends PreventableEvent {
4856
+ constructor(options) {
4857
+ super();
4858
+ Object.assign(this, options);
4859
+ }
4860
+ }
4861
+
4795
4862
  /**
4796
4863
  * Generated bundle index. Do not edit.
4797
4864
  */
4798
4865
 
4799
- export { MappingService, OptionChangesService, DependencyDomService, GanttDependencyDirective, EditDialogComponent, EditService, CustomMessagesComponent, LocalizedMessagesDirective, Messages, GanttTreeListMessagesDirective, 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, GanttColumnBase, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, CellTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ColumnMenuTemplateDirective, FilterCellTemplateDirective, FilterMenuTemplateDirective, EditTemplateDirective };
4866
+ 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 };
@@ -5,7 +5,7 @@
5
5
  import { __extends, __decorate, __metadata, __param, __assign } from 'tslib';
6
6
  import { Input, Injectable, EventEmitter, Directive, Optional, TemplateRef, QueryList, ContentChildren, ContentChild, Component, forwardRef, SkipSelf, Host, Injector, NgZone, isDevMode, ViewChild, HostBinding, Output, Renderer2, ElementRef, ChangeDetectorRef, NgModule } from '@angular/core';
7
7
  import { ColumnBase, ColumnComponent, ColumnGroupComponent, SpanColumnComponent, TreeListComponent, DataBoundTreeComponent, ExpandableTreeComponent, FlatBindingDirective, HierarchyBindingDirective, ExpandableDirective, TreeListModule } from '@progress/kendo-angular-treelist';
8
- import { cloneDate, addWeeks, firstDayInWeek, addDays, getDate, lastDayOfMonth, firstDayOfMonth, addMonths, isEqualDate, MS_PER_HOUR, MS_PER_DAY } from '@progress/kendo-date-math';
8
+ import { cloneDate, addWeeks, firstDayInWeek, addDays, getDate, lastDayOfMonth, firstDayOfMonth, addMonths, isEqual, MS_PER_HOUR, MS_PER_DAY } from '@progress/kendo-date-math';
9
9
  import { of, fromEvent, Subject, Subscription } from 'rxjs';
10
10
  import { validatePackage } from '@progress/kendo-licensing';
11
11
  import { isDocumentAvailable, closestInScope, matchesClasses, anyChanged, hasObservers, EventsModule } from '@progress/kendo-angular-common';
@@ -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: 1638864709,
33
+ publishDate: 1639143747,
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
  };
@@ -789,8 +789,17 @@ var isClearButton = function (contender, gantt) {
789
789
  return isPresent(clearButtonContainer);
790
790
  };
791
791
 
792
+ /**
793
+ * @hidden
794
+ */
792
795
  var DAY_FORMAT = 'E d/MM';
796
+ /**
797
+ * @hidden
798
+ */
793
799
  var HOUR_FORMAT = 'HH:mm aa';
800
+ /**
801
+ * @hidden
802
+ */
794
803
  var MONTH_FORMAT = 'MMM';
795
804
  /**
796
805
  * @hidden
@@ -1797,7 +1806,7 @@ var GanttComponent = /** @class */ (function () {
1797
1806
  /**
1798
1807
  * Provides a callback that determines if the given task is selected ([see example]({% slug selection_gantt %}#toc-custom-selection))
1799
1808
  *
1800
- * > The [`selectable`]({% slug gantt_api_ganttcomponent %}#toc-selectable) prop has to be set to `true` in order for this callback to be executed.
1809
+ * > The [`selectable`]({% slug api_gantt_ganttcomponent %}#toc-selectable) prop has to be set to `true` in order for this callback to be executed.
1801
1810
  */
1802
1811
  this.isSelected = isSelected;
1803
1812
  /**
@@ -1811,7 +1820,7 @@ var GanttComponent = /** @class */ (function () {
1811
1820
  /**
1812
1821
  * Enables or disables the Gantt selection mechanism ([see example]({% slug selection_gantt %}#toc-custom-selection)).
1813
1822
  *
1814
- * > When set to `true`, the [`isSelected`]({% slug gantt_api_ganttcomponent %}#toc-isselected) callback has to be provided.
1823
+ * > When set to `true`, the [`isSelected`]({% slug api_gantt_ganttcomponent %}#toc-isselected) callback has to be provided.
1815
1824
  * > When applied, the [`SelectableDirective`]({% slug api_gantt_selectabledirective %}) sets `selectable` to `true` internally.
1816
1825
  */
1817
1826
  this.selectable = false;
@@ -2033,7 +2042,6 @@ var GanttComponent = /** @class */ (function () {
2033
2042
  _this.showConfirmationDialog = _this.showEditingDialog = false;
2034
2043
  _this.editService.dataItem = _this.editService.formGroup = null;
2035
2044
  _this.updateView();
2036
- _this.dependencyDomService.notifyChanges();
2037
2045
  }));
2038
2046
  this.localizationSubscription = this.localizationService.changes.subscribe(function (_a) {
2039
2047
  var rtl = _a.rtl;
@@ -2373,12 +2381,17 @@ var GanttComponent = /** @class */ (function () {
2373
2381
  }
2374
2382
  };
2375
2383
  /**
2376
- * Updates the data of the Gantt and forces row-related callbacks to be called anew.
2384
+ * Forces the TreeList to evaluate if some data items have changed and re-renders the rows information, if needed.
2385
+ * Recalculates and re-renders the Timeline period, if needed.
2386
+ * Redraws changed dependencies, if needed.
2387
+ * Executes all row-related callbacks anew.
2377
2388
  */
2378
2389
  GanttComponent.prototype.updateView = function () {
2379
2390
  if (isPresent(this.treeList)) {
2380
2391
  this.treeList.updateView();
2381
2392
  }
2393
+ this.loadTimelineData();
2394
+ this.dependencyDomService.notifyChanges();
2382
2395
  };
2383
2396
  /**
2384
2397
  * Opens the task editing dialog.
@@ -2626,7 +2639,7 @@ var GanttComponent = /** @class */ (function () {
2626
2639
  items: [dataItem],
2627
2640
  sender: this
2628
2641
  });
2629
- this.updateView();
2642
+ this.treeList.updateView();
2630
2643
  };
2631
2644
  GanttComponent.prototype.updateTreeListGroupClass = function (columns) {
2632
2645
  if (columns === void 0) { columns = this.columns; }
@@ -2937,7 +2950,7 @@ var GanttComponent = /** @class */ (function () {
2937
2950
  OptionChangesService,
2938
2951
  EditService
2939
2952
  ],
2940
- template: "\n <ng-container kendoGanttLocalizedMessages\n i18n-taskDeleteLabel=\"kendo.gantt.taskDeleteLabel|The label of the task delete icon\"\n taskDeleteLabel=\"Delete\"\n\n i18n-taskEditingDialogTitle=\"kendo.gantt.taskEditingDialogTitle|The title of the task editing dialog\"\n taskEditingDialogTitle=\"Editing Task\"\n\n i18n-taskEditingDialogCloseTitle=\"kendo.gantt.taskEditingDialogCloseTitle|The title of the task editing dialog close button\"\n taskEditingDialogCloseTitle=\"Close\"\n\n i18n-confirmationDialogCloseTitle=\"kendo.gantt.confirmationDialogCloseTitle|The title of the confirmation dialog close button\"\n confirmationDialogCloseTitle=\"Close\"\n\n i18n-confirmationDialogTitle=\"kendo.gantt.confirmationDialogTitle|The title of the delete task confirmation dialog\"\n confirmationDialogTitle=\"Delete Task\"\n\n i18n-confirmationDialogContent=\"kendo.gantt.confirmationDialogContent|The content of the delete task confirmation dialog\"\n confirmationDialogContent=\"Are you sure you want to delete this task?\"\n\n i18n-deleteButtonText=\"kendo.gantt.deleteButtonText|The text of the task editing dialog 'Delete' button\"\n deleteButtonText=\"Delete\"\n\n i18n-cancelButtonText=\"kendo.gantt.cancelButtonText|The text of the task editing dialog 'Cancel' button\"\n cancelButtonText=\"Cancel\"\n\n i18n-saveButtonText=\"kendo.gantt.saveButtonText|The text of the task editing dialog 'Save' button\"\n saveButtonText=\"Save\"\n\n i18n-titleFieldInputLabel=\"kendo.gantt.titleFieldInputLabel|The label of the 'title' field input in editing mode\"\n titleFieldInputLabel=\"Title\"\n\n i18n-startFieldInputLabel=\"kendo.gantt.startFieldInputLabel|The label of the 'start' field input in editing mode\"\n startFieldInputLabel=\"Start\"\n\n i18n-endFieldInputLabel=\"kendo.gantt.endFieldInputLabel|The label of the 'end' field input in editing mode\"\n endFieldInputLabel=\"End\"\n\n i18n-completionRatioFieldInputLabel=\"kendo.gantt.completionRatioFieldInputLabel|The label of the 'completionRatio' field input in editing mode\"\n completionRatioFieldInputLabel=\"Progress\"\n\n i18n-dayViewText=\"kendo.gantt.dayViewText|The text of the day view in the ViewSelector component\"\n dayViewText=\"Day\"\n\n i18n-weekViewText=\"kendo.gantt.weekViewText|The text of the week view in the ViewSelector component\"\n weekViewText=\"Week\"\n\n i18n-monthViewText=\"kendo.gantt.monthViewText|The text of the month view in the ViewSelector component\"\n monthViewText=\"Month\"\n\n i18n-yearViewText-disabled=\"kendo.gantt.yearViewText|The text of the year view in the ViewSelector component\"\n yearViewText=\"Year\"\n\n i18n-noRecords=\"kendo.gantt.noRecords|The label visible in the TreeList when there are no records\"\n noRecords=\"No records available.\"\n\n i18n-filter=\"kendo.gantt.filter|The label of the filter cell or icon\"\n filter=\"Filter\"\n\n i18n-filterEqOperator=\"kendo.gantt.filterEqOperator|The text of the equal filter operator\"\n filterEqOperator=\"Is equal to\"\n\n i18n-filterNotEqOperator=\"kendo.gantt.filterNotEqOperator|The text of the not equal filter operator\"\n filterNotEqOperator=\"Is not equal to\"\n\n i18n-filterIsNullOperator=\"kendo.gantt.filterIsNullOperator|The text of the is null filter operator\"\n filterIsNullOperator=\"Is null\"\n\n i18n-filterIsNotNullOperator=\"kendo.gantt.filterIsNotNullOperator|The text of the is not null filter operator\"\n filterIsNotNullOperator=\"Is not null\"\n\n i18n-filterIsEmptyOperator=\"kendo.gantt.filterIsEmptyOperator|The text of the is empty filter operator\"\n filterIsEmptyOperator=\"Is empty\"\n\n i18n-filterIsNotEmptyOperator=\"kendo.gantt.filterIsNotEmptyOperator|The text of the is not empty filter operator\"\n filterIsNotEmptyOperator=\"Is not empty\"\n\n i18n-filterStartsWithOperator=\"kendo.gantt.filterStartsWithOperator|The text of the starts with filter operator\"\n filterStartsWithOperator=\"Starts with\"\n\n i18n-filterContainsOperator=\"kendo.gantt.filterContainsOperator|The text of the contains filter operator\"\n filterContainsOperator=\"Contains\"\n\n i18n-filterNotContainsOperator=\"kendo.gantt.filterNotContainsOperator|The text of the does not contain filter operator\"\n filterNotContainsOperator=\"Does not contain\"\n\n i18n-filterEndsWithOperator=\"kendo.gantt.filterEndsWithOperator|The text of the ends with filter operator\"\n filterEndsWithOperator=\"Ends with\"\n\n i18n-filterGteOperator=\"kendo.gantt.filterGteOperator|The text of the greater than or equal filter operator\"\n filterGteOperator=\"Is greater than or equal to\"\n\n i18n-filterGtOperator=\"kendo.gantt.filterGtOperator|The text of the greater than filter operator\"\n filterGtOperator=\"Is greater than\"\n\n i18n-filterLteOperator=\"kendo.gantt.filterLteOperator|The text of the less than or equal filter operator\"\n filterLteOperator=\"Is less than or equal to\"\n\n i18n-filterLtOperator=\"kendo.gantt.filterLtOperator|The text of the less than filter operator\"\n filterLtOperator=\"Is less than\"\n\n i18n-filterIsTrue=\"kendo.gantt.filterIsTrue|The text of the IsTrue boolean filter option\"\n filterIsTrue=\"Is True\"\n\n i18n-filterIsFalse=\"kendo.gantt.filterIsFalse|The text of the IsFalse boolean filter option\"\n filterIsFalse=\"Is False\"\n\n i18n-filterBooleanAll=\"kendo.gantt.filterBooleanAll|The text of the (All) boolean filter option\"\n filterBooleanAll=\"(All)\"\n\n i18n-filterAfterOrEqualOperator=\"kendo.gantt.filterAfterOrEqualOperator|The text of the after or equal date filter operator\"\n filterAfterOrEqualOperator=\"Is after or equal to\"\n\n i18n-filterAfterOperator=\"kendo.gantt.filterAfterOperator|The text of the after date filter operator\"\n filterAfterOperator=\"Is after\"\n\n i18n-filterBeforeOperator=\"kendo.gantt.filterBeforeOperator|The text of the before date filter operator\"\n filterBeforeOperator=\"Is before\"\n\n i18n-filterBeforeOrEqualOperator=\"kendo.gantt.filterBeforeOrEqualOperator|The text of the before or equal date filter operator\"\n filterBeforeOrEqualOperator=\"Is before or equal to\"\n\n i18n-filterFilterButton=\"kendo.gantt.filterFilterButton|The text of the filter button\"\n filterFilterButton=\"Filter\"\n\n i18n-filterClearButton=\"kendo.gantt.filterClearButton|The text of the clear filter button\"\n filterClearButton=\"Clear\"\n\n i18n-filterAndLogic=\"kendo.gantt.filterAndLogic|The text of the And filter logic\"\n filterAndLogic=\"And\"\n\n i18n-filterOrLogic=\"kendo.gantt.filterOrLogic|The text of the Or filter logic\"\n filterOrLogic=\"Or\"\n\n i18n-loading=\"kendo.gantt.loading|The loading text\"\n loading=\"Loading\"\n\n i18n-columnMenu=\"kendo.gantt.columnMenu|The title of the column menu icon\"\n columnMenu=\"Column Menu\"\n\n i18n-columns=\"kendo.gantt.columns|The text shown in the column menu for the columns item\"\n columns=\"Columns\"\n\n i18n-lock-disabled=\"kendo.gantt.lock|The text shown in the column menu for the lock item\"\n lock-disabled=\"Lock\"\n\n i18n-unlock-disabled=\"kendo.gantt.unlock|The text shown in the column menu for the unlock item\"\n unlock-disabled=\"Unlock\"\n\n i18n-sortable=\"kendo.gantt.sortable|The label of the sort icon\"\n sortable=\"Sortable\"\n\n i18n-sortAscending=\"kendo.gantt.sortAscending|The text shown in the column menu for the sort ascending item\"\n sortAscending=\"Sort Ascending\"\n\n i18n-sortDescending=\"kendo.gantt.sortDescending|The text shown in the column menu for the sort descending item\"\n sortDescending=\"Sort Descending\"\n\n i18n-sortedAscending=\"kendo.gantt.sortedAscending|The status announcement when a column is sorted ascending\"\n sortedAscending=\"Sorted Ascending\"\n\n i18n-sortedDescending=\"kendo.gantt.sortedDescending|The status announcement when a column is sorted descending\"\n sortedDescending=\"Sorted Descending\"\n\n i18n-sortedDefault=\"kendo.gantt.sortedDefault|The status announcement when a column is no longer sorted\"\n sortedDefault=\"Not Sorted\"\n\n i18n-columnsApply=\"kendo.gantt.columnsApply|The text shown in the column menu or column chooser for the columns apply button\"\n columnsApply=\"Apply\"\n\n i18n-columnsReset=\"kendo.gantt.columnsReset|The text shown in the column menu or column chooser for the columns reset button\"\n columnsReset=\"Reset\"></ng-container>\n <kendo-gantt-toolbar\n *ngIf=\"showToolbar('top')\"\n class=\"k-gantt-header k-toolbar k-gantt-toolbar\"\n position=\"top\"></kendo-gantt-toolbar>\n <div class=\"k-gantt-content\">\n <kendo-splitter [style.border]=\"0\">\n <kendo-splitter-pane\n class=\"k-gantt-treelist k-gantt-treelist-scrollable\"\n [collapsible]=\"treeListPaneOptions?.collapsible\"\n [collapsed]=\"treeListPaneOptions?.collapsed\"\n (collapsedChange)=\"onTreeListCollapsedChange($event)\"\n [scrollable]=\"false\">\n <kendo-treelist\n [idField]=\"taskIdField\"\n [columns]=\"columns\"\n [data]=\"data\"\n [hasChildren]=\"hasChildren\"\n [fetchChildren]=\"fetchChildren\"\n [isExpanded]=\"isExpanded\"\n [autoSize]=\"columnsAutoSize\"\n [columnMenu]=\"columnMenu\"\n [reorderable]=\"columnsReorderable\"\n [resizable]=\"columnsResizable\"\n [rowClass]=\"rowClass\"\n [isSelected]=\"isSelected\"\n [selectable]=\"selectable\"\n [sortable]=\"sortable\"\n [sort]=\"sort\"\n [filterable]=\"filterMenu\"\n [filter]=\"filter\"\n (filterChange)=\"filterChange.emit($event)\"\n (sortChange)=\"sortChange.emit($event)\"\n (dataStateChange)=\"dataStateChange.emit({\n filter: $event.filter,\n sort: $event.sort\n })\"\n (expandStateChange)=\"expandStateChange.emit($event)\"\n (expand)=\"rowExpand.emit({ dataItem: $event.dataItem })\"\n (collapse)=\"rowCollapse.emit({ dataItem: $event.dataItem })\"\n (columnReorder)=\"columnReorder.emit($event)\"\n (columnResize)=\"columnResize.emit($event)\"\n (columnVisibilityChange)=\"handleColumnVisibilityChange($event)\"\n (columnLockedChange)=\"columnLockedChange.emit($event)\"\n (selectionChange)=\"handleTreeListSelectionChange($event)\"\n (cellClick)=\"handleTreeListCellClick($event)\"\n (cellClose)=\"handleCellClose($event)\"\n [kendoEventsOutsideAngular]=\"{\n dblclick: handleTreeListDoubleClick\n }\"\n [scope]=\"this\"\n >\n <kendo-treelist-messages [kendoGanttTreeListMessages]=\"localizationService\"></kendo-treelist-messages>\n </kendo-treelist>\n </kendo-splitter-pane>\n <kendo-splitter-pane\n [collapsible]=\"timelinePaneOptions?.collapsible\"\n [resizable]=\"timelinePaneOptions?.resizable\"\n [collapsed]=\"timelinePaneOptions?.collapsed\"\n [min]=\"timelinePaneOptions?.min\"\n [max]=\"timelinePaneOptions?.max\"\n [size]=\"timelinePaneOptions?.size\"\n (collapsedChange)=\"onTimelineCollapsedChange($event)\"\n (sizeChange)=\"onTimelinePaneSizeChange($event)\"\n [scrollable]=\"false\">\n <kendo-gantt-timeline\n *ngIf=\"views && views.length\"\n [rows]=\"renderedTreeListItems\"\n [slots]=\"timelineSlots\"\n [groupSlots]=\"timelineGroupSlots\"\n [tableWidth]=\"tableWidth\"\n [activeView]=\"activeView\"\n [taskContentTemplate]=\"taskContentTemplate?.templateRef\"\n [taskTemplate]=\"taskTemplate?.templateRef\"\n [summaryTaskTemplate]=\"summaryTaskTemplate?.templateRef\"\n [taskClass]=\"taskClass\"\n [dependencies]=\"dependencies\"\n [hasChildren]=\"hasChildren\"\n [isTaskSelected]=\"isTaskSelected\"\n [kendoEventsOutsideAngular]=\"{\n click: handleTimelineClick,\n contextmenu: handleTimelineRightClick,\n dblclick: handleTimelineDblClick,\n mousedown: handleTimelineMouseDown\n }\"\n [scope]=\"this\"\n ></kendo-gantt-timeline>\n </kendo-splitter-pane>\n </kendo-splitter>\n </div>\n <kendo-gantt-toolbar\n *ngIf=\"showToolbar('bottom')\"\n class=\"k-gantt-footer k-toolbar k-gantt-toolbar\"\n position=\"bottom\"></kendo-gantt-toolbar>\n <kendo-gantt-edit-dialog *ngIf=\"showEditingDialog\" [formGroup]=\"editDialogFormGroup\"></kendo-gantt-edit-dialog>\n <kendo-dialog\n *ngIf=\"showConfirmationDialog\"\n [width]=\"575\"\n [height]=\"170\"\n [title]=\"getText('confirmationDialogTitle')\"\n (close)=\"showConfirmationDialog = false;\">\n <span>{{getText('confirmationDialogContent')}}</span>\n <kendo-dialog-actions layout=\"normal\">\n <kendo-treelist-spacer></kendo-treelist-spacer>\n <button kendoButton [primary]=\"true\" (click)=\"handleDeleteConfirmation()\">{{ getText('deleteButtonText') }}</button>\n <button kendoButton (click)=\"showConfirmationDialog = false;\">{{ getText('cancelButtonText') }}</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n "
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 "
2941
2954
  }),
2942
2955
  __metadata("design:paramtypes", [TimelineViewService,
2943
2956
  ScrollSyncService,
@@ -3091,7 +3104,7 @@ var GanttTasksTableBodyComponent = /** @class */ (function () {
3091
3104
  configurable: true
3092
3105
  });
3093
3106
  GanttTasksTableBodyComponent.prototype.isMileStone = function (task) {
3094
- return !this.hasChildren(task) && isEqualDate(this.mapper.extractFromTask(task, 'start'), this.mapper.extractFromTask(task, 'end'));
3107
+ return !this.hasChildren(task) && isEqual(this.mapper.extractFromTask(task, 'start'), this.mapper.extractFromTask(task, 'end'));
3095
3108
  };
3096
3109
  __decorate([
3097
3110
  ViewChild('timelineRow', { static: false }),
@@ -4387,30 +4400,6 @@ var LocalizedMessagesDirective = /** @class */ (function (_super) {
4387
4400
  return LocalizedMessagesDirective;
4388
4401
  }(Messages));
4389
4402
 
4390
- /**
4391
- * @hidden
4392
- */
4393
- var GanttTreeListMessagesDirective = /** @class */ (function () {
4394
- function GanttTreeListMessagesDirective(localizationService) {
4395
- this.localizationService = localizationService;
4396
- }
4397
- GanttTreeListMessagesDirective.prototype.ngAfterViewInit = function () {
4398
- var _this = this;
4399
- var treeListServiceDictionary = this.localizationService.dictionary;
4400
- Object.keys(treeListServiceDictionary)
4401
- .forEach(function (token) { return treeListServiceDictionary[token] = _this.kendoGanttTreeListMessages.get(token.replace('kendo.treelist.', '')); });
4402
- };
4403
- __decorate([
4404
- Input(),
4405
- __metadata("design:type", LocalizationService)
4406
- ], GanttTreeListMessagesDirective.prototype, "kendoGanttTreeListMessages", void 0);
4407
- GanttTreeListMessagesDirective = __decorate([
4408
- Directive({ selector: '[kendoGanttTreeListMessages]' }),
4409
- __metadata("design:paramtypes", [LocalizationService])
4410
- ], GanttTreeListMessagesDirective);
4411
- return GanttTreeListMessagesDirective;
4412
- }());
4413
-
4414
4403
  var IMPORTED_MODULES = [
4415
4404
  CommonModule,
4416
4405
  ReactiveFormsModule,
@@ -4458,8 +4447,7 @@ var DECLARATIONS = [
4458
4447
  SelectableDirective,
4459
4448
  EditDialogComponent,
4460
4449
  CustomMessagesComponent,
4461
- LocalizedMessagesDirective,
4462
- GanttTreeListMessagesDirective
4450
+ LocalizedMessagesDirective
4463
4451
  ];
4464
4452
  /**
4465
4453
  * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
@@ -4509,8 +4497,49 @@ var GanttModule = /** @class */ (function () {
4509
4497
  return GanttModule;
4510
4498
  }());
4511
4499
 
4500
+ /**
4501
+ * @hidden
4502
+ */
4503
+ var PreventableEvent = /** @class */ (function () {
4504
+ function PreventableEvent() {
4505
+ this.prevented = false;
4506
+ }
4507
+ /**
4508
+ * Prevents the default action for a specified event.
4509
+ * In this way, the source component suppresses
4510
+ * the built-in behavior that follows the event.
4511
+ */
4512
+ PreventableEvent.prototype.preventDefault = function () {
4513
+ this.prevented = true;
4514
+ };
4515
+ /**
4516
+ * Returns `true` if the event was prevented
4517
+ * by any of its subscribers.
4518
+ *
4519
+ * @returns `true` if the default action was prevented.
4520
+ * Otherwise, returns `false`.
4521
+ */
4522
+ PreventableEvent.prototype.isDefaultPrevented = function () {
4523
+ return this.prevented;
4524
+ };
4525
+ return PreventableEvent;
4526
+ }());
4527
+
4528
+ /**
4529
+ * Called every time a user leaves an edited cell.
4530
+ */
4531
+ var CellCloseEvent = /** @class */ (function (_super) {
4532
+ __extends(CellCloseEvent, _super);
4533
+ function CellCloseEvent(options) {
4534
+ var _this = _super.call(this) || this;
4535
+ Object.assign(_this, options);
4536
+ return _this;
4537
+ }
4538
+ return CellCloseEvent;
4539
+ }(PreventableEvent));
4540
+
4512
4541
  /**
4513
4542
  * Generated bundle index. Do not edit.
4514
4543
  */
4515
4544
 
4516
- export { MappingService, OptionChangesService, DependencyDomService, GanttDependencyDirective, EditDialogComponent, EditService, CustomMessagesComponent, LocalizedMessagesDirective, Messages, GanttTreeListMessagesDirective, 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, GanttColumnBase, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, CellTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ColumnMenuTemplateDirective, FilterCellTemplateDirective, FilterMenuTemplateDirective, EditTemplateDirective };
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 };