@progress/kendo-angular-gantt 21.1.1-develop.2 → 21.2.0-develop.2

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.
@@ -11,7 +11,7 @@ import { OptionChangesService } from '../common/option-changes.service';
11
11
  import { TimelineViewService } from './../timeline/timeline-view.service';
12
12
  import { GanttTaskBase } from './gantt-task-base';
13
13
  import { xIcon } from '@progress/kendo-svg-icons';
14
- import { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';
14
+ import { NgClass, NgTemplateOutlet } from '@angular/common';
15
15
  import { EventsOutsideAngularDirective, isPresent } from '@progress/kendo-angular-common';
16
16
  import { IconWrapperComponent } from '@progress/kendo-angular-icons';
17
17
  import { touchEnabled } from '@progress/kendo-common';
@@ -43,88 +43,90 @@ export class GanttTaskComponent extends GanttTaskBase {
43
43
  this.editService.taskDelete.next(this.dataItem);
44
44
  }
45
45
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GanttTaskComponent, deps: [{ token: i1.EditService }, { token: i2.MappingService }, { token: i3.TimelineViewService }, { token: i4.DependencyDomService }, { token: i5.OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: i6.NavigationService }], target: i0.ɵɵFactoryTarget.Component });
46
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: GanttTaskComponent, isStandalone: true, selector: "kendo-gantt-task", inputs: { taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate" }, providers: [
46
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GanttTaskComponent, isStandalone: true, selector: "kendo-gantt-task", inputs: { taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate" }, providers: [
47
47
  {
48
48
  provide: GanttTaskBase,
49
49
  useExisting: forwardRef(() => GanttTaskComponent)
50
50
  }
51
51
  ], usesInheritance: true, ngImport: i0, template: `
52
52
  <div
53
- #task
54
- class="k-task k-task-single"
55
- role="treeitem"
56
- [ngClass]="taskClass(dataItem)"
57
- [style.width.px]="taskWidth"
58
- [attr.title]="mapper.extractFromTask(dataItem, 'title')"
59
- [class.k-selected]="isSelected(dataItem)"
60
- [attr.aria-selected]="ariaSelected"
61
- [attr.aria-level]="level + 1"
62
- >
63
- <ng-container *ngIf="!taskTemplate">
64
- <div
65
- class="k-task-complete"
66
- [style.width.px]="draggedCompletionWidth ?? completionOverlayWidth"
67
- aria-hidden="true"
53
+ #task
54
+ class="k-task k-task-single"
55
+ role="treeitem"
56
+ [ngClass]="taskClass(dataItem)"
57
+ [style.width.px]="taskWidth"
58
+ [attr.title]="mapper.extractFromTask(dataItem, 'title')"
59
+ [class.k-selected]="isSelected(dataItem)"
60
+ [attr.aria-selected]="ariaSelected"
61
+ [attr.aria-level]="level + 1"
62
+ >
63
+ @if (!taskTemplate) {
64
+ <div
65
+ class="k-task-complete"
66
+ [style.width.px]="draggedCompletionWidth ?? completionOverlayWidth"
67
+ aria-hidden="true"
68
+ >
69
+ </div>
70
+ <div class="k-task-content">
71
+ <div class="k-task-template">
72
+ @if (!taskContentTemplate) {
73
+ {{ mapper.extractFromTask(dataItem, 'title') }}
74
+ } @else {
75
+ <ng-template
76
+ [ngTemplateOutlet]="taskContentTemplate"
77
+ [ngTemplateOutletContext]="{ $implicit: dataItem }"
78
+ ></ng-template>
79
+ }
80
+ </div>
81
+ <span
82
+ class="k-task-actions"
83
+ aria-hidden="true"
68
84
  >
69
- </div>
70
- <div class="k-task-content">
71
- <div class="k-task-template">
72
- <ng-container *ngIf="!taskContentTemplate; else taskContent">
73
- {{ mapper.extractFromTask(dataItem, 'title') }}
74
- </ng-container>
75
- <ng-template
76
- #taskContent
77
- [ngTemplateOutlet]="taskContentTemplate"
78
- [ngTemplateOutletContext]="{ $implicit: dataItem }"
79
- >
80
- </ng-template>
81
- </div>
82
- <span
83
- class="k-task-actions"
84
- aria-hidden="true"
85
- >
86
- <span
87
- class="k-link k-task-delete"
85
+ <span
86
+ class="k-link k-task-delete"
88
87
  [kendoEventsOutsideAngular]="{
89
88
  click: onTaskDelete
90
89
  }"
91
- [scope]="this"
92
- >
93
- <kendo-icon-wrapper
94
- icon="x"
95
- [svgIcon]="xIcon"></kendo-icon-wrapper>
96
- </span>
97
- </span>
98
- <ng-container *ngIf="showDragHandles">
99
- <span class="k-resize-handle k-resize-w"></span>
100
- <span class="k-resize-handle k-resize-e"></span>
101
- </ng-container>
102
- </div>
103
- </ng-container>
90
+ [scope]="this"
91
+ >
92
+ <kendo-icon-wrapper
93
+ icon="x"
94
+ [svgIcon]="xIcon"></kendo-icon-wrapper>
95
+ </span>
96
+ </span>
97
+ @if (showDragHandles) {
98
+ <span class="k-resize-handle k-resize-w"></span>
99
+ <span class="k-resize-handle k-resize-e"></span>
100
+ }
101
+ </div>
102
+ }
103
+ @if (taskTemplate) {
104
104
  <ng-template
105
- *ngIf="taskTemplate"
106
- [ngTemplateOutlet]="taskTemplate"
105
+ [ngTemplateOutlet]="taskTemplate"
107
106
  [ngTemplateOutletContext]="{
108
107
  $implicit: dataItem,
109
108
  elementWidth: taskWidth
110
109
  }"
111
110
  ></ng-template>
111
+ }
112
112
  </div>
113
- <div class="k-task-draghandle" *ngIf="showDragHandles"
114
- [style.left.px]="draggedCompletionWidth ?? completionOverlayWidth"></div>
115
- <ng-container *ngIf="renderDependencyDragClues">
116
- <div
117
- class="k-task-dot k-task-start k-touch-action-none"
118
- [class.k-display-block]="touchEnabled"
113
+ @if (showDragHandles) {
114
+ <div class="k-task-draghandle"
115
+ [style.left.px]="draggedCompletionWidth ?? completionOverlayWidth"></div>
116
+ }
117
+ @if (renderDependencyDragClues) {
118
+ <div
119
+ class="k-task-dot k-task-start k-touch-action-none"
120
+ [class.k-display-block]="touchEnabled"
119
121
  >
120
- </div>
121
- <div
122
- class="k-task-dot k-task-end k-touch-action-none"
123
- [class.k-display-block]="touchEnabled"
122
+ </div>
123
+ <div
124
+ class="k-task-dot k-task-end k-touch-action-none"
125
+ [class.k-display-block]="touchEnabled"
124
126
  >
125
- </div>
126
- </ng-container>
127
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
127
+ </div>
128
+ }
129
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
128
130
  }
129
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GanttTaskComponent, decorators: [{
130
132
  type: Component,
@@ -138,83 +140,85 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
138
140
  ],
139
141
  template: `
140
142
  <div
141
- #task
142
- class="k-task k-task-single"
143
- role="treeitem"
144
- [ngClass]="taskClass(dataItem)"
145
- [style.width.px]="taskWidth"
146
- [attr.title]="mapper.extractFromTask(dataItem, 'title')"
147
- [class.k-selected]="isSelected(dataItem)"
148
- [attr.aria-selected]="ariaSelected"
149
- [attr.aria-level]="level + 1"
150
- >
151
- <ng-container *ngIf="!taskTemplate">
152
- <div
153
- class="k-task-complete"
154
- [style.width.px]="draggedCompletionWidth ?? completionOverlayWidth"
155
- aria-hidden="true"
143
+ #task
144
+ class="k-task k-task-single"
145
+ role="treeitem"
146
+ [ngClass]="taskClass(dataItem)"
147
+ [style.width.px]="taskWidth"
148
+ [attr.title]="mapper.extractFromTask(dataItem, 'title')"
149
+ [class.k-selected]="isSelected(dataItem)"
150
+ [attr.aria-selected]="ariaSelected"
151
+ [attr.aria-level]="level + 1"
152
+ >
153
+ @if (!taskTemplate) {
154
+ <div
155
+ class="k-task-complete"
156
+ [style.width.px]="draggedCompletionWidth ?? completionOverlayWidth"
157
+ aria-hidden="true"
158
+ >
159
+ </div>
160
+ <div class="k-task-content">
161
+ <div class="k-task-template">
162
+ @if (!taskContentTemplate) {
163
+ {{ mapper.extractFromTask(dataItem, 'title') }}
164
+ } @else {
165
+ <ng-template
166
+ [ngTemplateOutlet]="taskContentTemplate"
167
+ [ngTemplateOutletContext]="{ $implicit: dataItem }"
168
+ ></ng-template>
169
+ }
170
+ </div>
171
+ <span
172
+ class="k-task-actions"
173
+ aria-hidden="true"
156
174
  >
157
- </div>
158
- <div class="k-task-content">
159
- <div class="k-task-template">
160
- <ng-container *ngIf="!taskContentTemplate; else taskContent">
161
- {{ mapper.extractFromTask(dataItem, 'title') }}
162
- </ng-container>
163
- <ng-template
164
- #taskContent
165
- [ngTemplateOutlet]="taskContentTemplate"
166
- [ngTemplateOutletContext]="{ $implicit: dataItem }"
167
- >
168
- </ng-template>
169
- </div>
170
- <span
171
- class="k-task-actions"
172
- aria-hidden="true"
173
- >
174
- <span
175
- class="k-link k-task-delete"
175
+ <span
176
+ class="k-link k-task-delete"
176
177
  [kendoEventsOutsideAngular]="{
177
178
  click: onTaskDelete
178
179
  }"
179
- [scope]="this"
180
- >
181
- <kendo-icon-wrapper
182
- icon="x"
183
- [svgIcon]="xIcon"></kendo-icon-wrapper>
184
- </span>
185
- </span>
186
- <ng-container *ngIf="showDragHandles">
187
- <span class="k-resize-handle k-resize-w"></span>
188
- <span class="k-resize-handle k-resize-e"></span>
189
- </ng-container>
190
- </div>
191
- </ng-container>
180
+ [scope]="this"
181
+ >
182
+ <kendo-icon-wrapper
183
+ icon="x"
184
+ [svgIcon]="xIcon"></kendo-icon-wrapper>
185
+ </span>
186
+ </span>
187
+ @if (showDragHandles) {
188
+ <span class="k-resize-handle k-resize-w"></span>
189
+ <span class="k-resize-handle k-resize-e"></span>
190
+ }
191
+ </div>
192
+ }
193
+ @if (taskTemplate) {
192
194
  <ng-template
193
- *ngIf="taskTemplate"
194
- [ngTemplateOutlet]="taskTemplate"
195
+ [ngTemplateOutlet]="taskTemplate"
195
196
  [ngTemplateOutletContext]="{
196
197
  $implicit: dataItem,
197
198
  elementWidth: taskWidth
198
199
  }"
199
200
  ></ng-template>
201
+ }
200
202
  </div>
201
- <div class="k-task-draghandle" *ngIf="showDragHandles"
202
- [style.left.px]="draggedCompletionWidth ?? completionOverlayWidth"></div>
203
- <ng-container *ngIf="renderDependencyDragClues">
204
- <div
205
- class="k-task-dot k-task-start k-touch-action-none"
206
- [class.k-display-block]="touchEnabled"
203
+ @if (showDragHandles) {
204
+ <div class="k-task-draghandle"
205
+ [style.left.px]="draggedCompletionWidth ?? completionOverlayWidth"></div>
206
+ }
207
+ @if (renderDependencyDragClues) {
208
+ <div
209
+ class="k-task-dot k-task-start k-touch-action-none"
210
+ [class.k-display-block]="touchEnabled"
207
211
  >
208
- </div>
209
- <div
210
- class="k-task-dot k-task-end k-touch-action-none"
211
- [class.k-display-block]="touchEnabled"
212
+ </div>
213
+ <div
214
+ class="k-task-dot k-task-end k-touch-action-none"
215
+ [class.k-display-block]="touchEnabled"
212
216
  >
213
- </div>
214
- </ng-container>
215
- `,
217
+ </div>
218
+ }
219
+ `,
216
220
  standalone: true,
217
- imports: [NgClass, NgIf, NgTemplateOutlet, EventsOutsideAngularDirective, IconWrapperComponent]
221
+ imports: [NgClass, NgTemplateOutlet, EventsOutsideAngularDirective, IconWrapperComponent]
218
222
  }]
219
223
  }], ctorParameters: () => [{ type: i1.EditService }, { type: i2.MappingService }, { type: i3.TimelineViewService }, { type: i4.DependencyDomService }, { type: i5.OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: i6.NavigationService }], propDecorators: { taskContentTemplate: [{
220
224
  type: Input
@@ -10,7 +10,6 @@ import { isPresent } from '../utils';
10
10
  import { GanttTaskComponent } from './gantt-task.component';
11
11
  import { GanttSummaryTaskComponent } from './gantt-summary-task.component';
12
12
  import { GanttMilestoneTaskComponent } from './gantt-milestone-task.component';
13
- import { NgFor, NgIf } from '@angular/common';
14
13
  import * as i0 from "@angular/core";
15
14
  import * as i1 from "../dependencies/dependency-dom.service";
16
15
  import * as i2 from "../common/mapping.service";
@@ -56,58 +55,62 @@ export class GanttTasksTableBodyComponent {
56
55
  return mappedItem;
57
56
  }
58
57
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GanttTasksTableBodyComponent, deps: [{ token: i1.DependencyDomService }, { token: i2.MappingService }], target: i0.ɵɵFactoryTarget.Component });
59
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: GanttTasksTableBodyComponent, isStandalone: true, selector: "[kendoGanttTasksTableBody]", inputs: { selectable: "selectable", rows: "rows", activeView: "activeView", taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate", summaryTaskTemplate: "summaryTaskTemplate", taskClass: "taskClass", isExpanded: "isExpanded", isTaskSelected: "isTaskSelected", renderDependencyDragClues: "renderDependencyDragClues" }, outputs: { taskPointerEnter: "taskPointerEnter", taskPointerLeave: "taskPointerLeave" }, viewQueries: [{ propertyName: "timelineRow", first: true, predicate: ["timelineRow"], descendants: true }], ngImport: i0, template: `
60
- <tr class="k-table-row" #timelineRow *ngFor="let item of rows; let index = index; trackBy: trackBy ">
58
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GanttTasksTableBodyComponent, isStandalone: true, selector: "[kendoGanttTasksTableBody]", inputs: { selectable: "selectable", rows: "rows", activeView: "activeView", taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate", summaryTaskTemplate: "summaryTaskTemplate", taskClass: "taskClass", isExpanded: "isExpanded", isTaskSelected: "isTaskSelected", renderDependencyDragClues: "renderDependencyDragClues" }, outputs: { taskPointerEnter: "taskPointerEnter", taskPointerLeave: "taskPointerLeave" }, viewQueries: [{ propertyName: "timelineRow", first: true, predicate: ["timelineRow"], descendants: true }], ngImport: i0, template: `
59
+ @for (item of rows; track trackBy($index, item); let index = $index) {
60
+ <tr class="k-table-row" #timelineRow>
61
61
  <td class="k-table-td">
62
+ @if (isMileStone(item)) {
62
63
  <kendo-gantt-milestone-task
63
- *ngIf="isMileStone(item); else task"
64
+ [dataItem]="item.data"
65
+ [level]="item.level"
66
+ [activeView]="activeView"
67
+ [taskClass]="taskClass"
68
+ [selectable]="selectable"
69
+ [isSelected]="isTaskSelected"
70
+ [index]="index"
71
+ [renderDependencyDragClues]="renderDependencyDragClues"
72
+ (pointerenter)="taskPointerEnter.emit(mapItemToTask(item))"
73
+ (pointerleave)="taskPointerLeave.emit()"
74
+ >
75
+ </kendo-gantt-milestone-task>
76
+ } @else {
77
+ @if (item.hasChildren) {
78
+ <kendo-gantt-summary-task
64
79
  [dataItem]="item.data"
65
80
  [level]="item.level"
81
+ [template]="summaryTaskTemplate"
66
82
  [activeView]="activeView"
67
83
  [taskClass]="taskClass"
68
84
  [selectable]="selectable"
69
85
  [isSelected]="isTaskSelected"
86
+ [isExpanded]="isExpanded"
70
87
  [index]="index"
71
88
  [renderDependencyDragClues]="renderDependencyDragClues"
72
89
  (pointerenter)="taskPointerEnter.emit(mapItemToTask(item))"
73
90
  (pointerleave)="taskPointerLeave.emit()"
74
- >
75
- </kendo-gantt-milestone-task>
76
- <ng-template #task>
77
- <kendo-gantt-summary-task
78
- *ngIf="item.hasChildren"
79
- [dataItem]="item.data"
80
- [level]="item.level"
81
- [template]="summaryTaskTemplate"
82
- [activeView]="activeView"
83
- [taskClass]="taskClass"
84
- [selectable]="selectable"
85
- [isSelected]="isTaskSelected"
86
- [isExpanded]="isExpanded"
87
- [index]="index"
88
- [renderDependencyDragClues]="renderDependencyDragClues"
89
- (pointerenter)="taskPointerEnter.emit(mapItemToTask(item))"
90
- (pointerleave)="taskPointerLeave.emit()"
91
- ></kendo-gantt-summary-task>
92
- <kendo-gantt-task
93
- *ngIf="!item.hasChildren"
94
- [dataItem]="item.data"
95
- [level]="item.level"
96
- [taskContentTemplate]="taskContentTemplate"
97
- [taskTemplate]="taskTemplate"
98
- [activeView]="activeView"
99
- [taskClass]="taskClass"
100
- [selectable]="selectable"
101
- [isSelected]="isTaskSelected"
102
- [index]="index"
103
- [renderDependencyDragClues]="renderDependencyDragClues"
104
- (pointerenter)="taskPointerEnter.emit(mapItemToTask(item))"
105
- (pointerleave)="taskPointerLeave.emit()"
106
- ></kendo-gantt-task>
107
- </ng-template>
91
+ ></kendo-gantt-summary-task>
92
+ }
93
+ @if (!item.hasChildren) {
94
+ <kendo-gantt-task
95
+ [dataItem]="item.data"
96
+ [level]="item.level"
97
+ [taskContentTemplate]="taskContentTemplate"
98
+ [taskTemplate]="taskTemplate"
99
+ [activeView]="activeView"
100
+ [taskClass]="taskClass"
101
+ [selectable]="selectable"
102
+ [isSelected]="isTaskSelected"
103
+ [index]="index"
104
+ [renderDependencyDragClues]="renderDependencyDragClues"
105
+ (pointerenter)="taskPointerEnter.emit(mapItemToTask(item))"
106
+ (pointerleave)="taskPointerLeave.emit()"
107
+ ></kendo-gantt-task>
108
+ }
109
+ }
108
110
  </td>
109
- </tr>
110
- `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GanttMilestoneTaskComponent, selector: "kendo-gantt-milestone-task" }, { kind: "component", type: GanttSummaryTaskComponent, selector: "kendo-gantt-summary-task", inputs: ["template", "isExpanded"] }, { kind: "component", type: GanttTaskComponent, selector: "kendo-gantt-task", inputs: ["taskContentTemplate", "taskTemplate"] }] });
111
+ </tr>
112
+ }
113
+ `, isInline: true, dependencies: [{ kind: "component", type: GanttMilestoneTaskComponent, selector: "kendo-gantt-milestone-task" }, { kind: "component", type: GanttSummaryTaskComponent, selector: "kendo-gantt-summary-task", inputs: ["template", "isExpanded"] }, { kind: "component", type: GanttTaskComponent, selector: "kendo-gantt-task", inputs: ["taskContentTemplate", "taskTemplate"] }] });
111
114
  }
112
115
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GanttTasksTableBodyComponent, decorators: [{
113
116
  type: Component,
@@ -115,59 +118,63 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
115
118
  // eslint-disable-next-line @angular-eslint/component-selector
116
119
  selector: '[kendoGanttTasksTableBody]',
117
120
  template: `
118
- <tr class="k-table-row" #timelineRow *ngFor="let item of rows; let index = index; trackBy: trackBy ">
121
+ @for (item of rows; track trackBy($index, item); let index = $index) {
122
+ <tr class="k-table-row" #timelineRow>
119
123
  <td class="k-table-td">
124
+ @if (isMileStone(item)) {
120
125
  <kendo-gantt-milestone-task
121
- *ngIf="isMileStone(item); else task"
126
+ [dataItem]="item.data"
127
+ [level]="item.level"
128
+ [activeView]="activeView"
129
+ [taskClass]="taskClass"
130
+ [selectable]="selectable"
131
+ [isSelected]="isTaskSelected"
132
+ [index]="index"
133
+ [renderDependencyDragClues]="renderDependencyDragClues"
134
+ (pointerenter)="taskPointerEnter.emit(mapItemToTask(item))"
135
+ (pointerleave)="taskPointerLeave.emit()"
136
+ >
137
+ </kendo-gantt-milestone-task>
138
+ } @else {
139
+ @if (item.hasChildren) {
140
+ <kendo-gantt-summary-task
122
141
  [dataItem]="item.data"
123
142
  [level]="item.level"
143
+ [template]="summaryTaskTemplate"
124
144
  [activeView]="activeView"
125
145
  [taskClass]="taskClass"
126
146
  [selectable]="selectable"
127
147
  [isSelected]="isTaskSelected"
148
+ [isExpanded]="isExpanded"
128
149
  [index]="index"
129
150
  [renderDependencyDragClues]="renderDependencyDragClues"
130
151
  (pointerenter)="taskPointerEnter.emit(mapItemToTask(item))"
131
152
  (pointerleave)="taskPointerLeave.emit()"
132
- >
133
- </kendo-gantt-milestone-task>
134
- <ng-template #task>
135
- <kendo-gantt-summary-task
136
- *ngIf="item.hasChildren"
137
- [dataItem]="item.data"
138
- [level]="item.level"
139
- [template]="summaryTaskTemplate"
140
- [activeView]="activeView"
141
- [taskClass]="taskClass"
142
- [selectable]="selectable"
143
- [isSelected]="isTaskSelected"
144
- [isExpanded]="isExpanded"
145
- [index]="index"
146
- [renderDependencyDragClues]="renderDependencyDragClues"
147
- (pointerenter)="taskPointerEnter.emit(mapItemToTask(item))"
148
- (pointerleave)="taskPointerLeave.emit()"
149
- ></kendo-gantt-summary-task>
150
- <kendo-gantt-task
151
- *ngIf="!item.hasChildren"
152
- [dataItem]="item.data"
153
- [level]="item.level"
154
- [taskContentTemplate]="taskContentTemplate"
155
- [taskTemplate]="taskTemplate"
156
- [activeView]="activeView"
157
- [taskClass]="taskClass"
158
- [selectable]="selectable"
159
- [isSelected]="isTaskSelected"
160
- [index]="index"
161
- [renderDependencyDragClues]="renderDependencyDragClues"
162
- (pointerenter)="taskPointerEnter.emit(mapItemToTask(item))"
163
- (pointerleave)="taskPointerLeave.emit()"
164
- ></kendo-gantt-task>
165
- </ng-template>
153
+ ></kendo-gantt-summary-task>
154
+ }
155
+ @if (!item.hasChildren) {
156
+ <kendo-gantt-task
157
+ [dataItem]="item.data"
158
+ [level]="item.level"
159
+ [taskContentTemplate]="taskContentTemplate"
160
+ [taskTemplate]="taskTemplate"
161
+ [activeView]="activeView"
162
+ [taskClass]="taskClass"
163
+ [selectable]="selectable"
164
+ [isSelected]="isTaskSelected"
165
+ [index]="index"
166
+ [renderDependencyDragClues]="renderDependencyDragClues"
167
+ (pointerenter)="taskPointerEnter.emit(mapItemToTask(item))"
168
+ (pointerleave)="taskPointerLeave.emit()"
169
+ ></kendo-gantt-task>
170
+ }
171
+ }
166
172
  </td>
167
- </tr>
168
- `,
173
+ </tr>
174
+ }
175
+ `,
169
176
  standalone: true,
170
- imports: [NgFor, NgIf, GanttMilestoneTaskComponent, GanttSummaryTaskComponent, GanttTaskComponent]
177
+ imports: [GanttMilestoneTaskComponent, GanttSummaryTaskComponent, GanttTaskComponent]
171
178
  }]
172
179
  }], ctorParameters: () => [{ type: i1.DependencyDomService }, { type: i2.MappingService }], propDecorators: { timelineRow: [{
173
180
  type: ViewChild,