@progress/kendo-angular-gantt 2.0.0-next.202204011501 → 2.0.0-next.202204121507

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 (229) hide show
  1. package/binding-directives/flat-binding.directive.d.ts +24 -0
  2. package/binding-directives/hierarchy-binding.directive.d.ts +22 -0
  3. package/bundles/kendo-angular-gantt.umd.js +1 -1
  4. package/columns/cell-template.directive.d.ts +28 -0
  5. package/columns/column-base.d.ts +85 -0
  6. package/columns/column-group.component.d.ts +103 -0
  7. package/columns/column-menu-template.directive.d.ts +22 -0
  8. package/columns/column.component.d.ts +130 -0
  9. package/columns/columns.d.ts +15 -0
  10. package/columns/edit-template.directive.d.ts +26 -0
  11. package/columns/filter-cell-template.directive.d.ts +21 -0
  12. package/columns/filter-menu-template.directive.d.ts +20 -0
  13. package/columns/footer-template.directive.d.ts +24 -0
  14. package/columns/header-template.directive.d.ts +22 -0
  15. package/columns/span-column.component.d.ts +112 -0
  16. package/common/default-callbacks.d.ts +25 -0
  17. package/common/mapping.service.d.ts +38 -0
  18. package/common/option-changes.service.d.ts +17 -0
  19. package/common/touch-enabled.d.ts +9 -0
  20. package/dependencies/dependency-dom.service.d.ts +46 -0
  21. package/dependencies/dom-dependency-args.d.ts +24 -0
  22. package/dependencies/gantt-dependency.directive.d.ts +29 -0
  23. package/dependencies/utils.d.ts +53 -0
  24. package/dragging/dependency-drag-create.directive.d.ts +75 -0
  25. package/dragging/drag-validation-tooltip.component.d.ts +32 -0
  26. package/editing/add-task.component.d.ts +47 -0
  27. package/editing/dependencies-table.component.d.ts +42 -0
  28. package/editing/edit-dialog.component.d.ts +33 -0
  29. package/editing/edit.service.d.ts +44 -0
  30. package/editing/task-fields.component.d.ts +25 -0
  31. package/editing/utils.d.ts +10 -0
  32. package/esm2015/binding-directives/flat-binding.directive.js +34 -0
  33. package/esm2015/binding-directives/hierarchy-binding.directive.js +32 -0
  34. package/esm2015/columns/cell-template.directive.js +37 -0
  35. package/esm2015/columns/column-base.js +52 -0
  36. package/esm2015/columns/column-group.component.js +94 -0
  37. package/esm2015/columns/column-menu-template.directive.js +31 -0
  38. package/esm2015/columns/column.component.js +133 -0
  39. package/esm2015/columns/columns.js +15 -0
  40. package/esm2015/columns/edit-template.directive.js +35 -0
  41. package/esm2015/columns/filter-cell-template.directive.js +30 -0
  42. package/esm2015/columns/filter-menu-template.directive.js +29 -0
  43. package/esm2015/columns/footer-template.directive.js +33 -0
  44. package/esm2015/columns/header-template.directive.js +31 -0
  45. package/esm2015/columns/span-column.component.js +86 -0
  46. package/esm2015/common/default-callbacks.js +25 -0
  47. package/esm2015/common/mapping.service.js +64 -0
  48. package/esm2015/common/option-changes.service.js +26 -0
  49. package/esm2015/common/touch-enabled.js +9 -0
  50. package/esm2015/dependencies/dependency-dom.service.js +70 -0
  51. package/esm2015/dependencies/dom-dependency-args.js +5 -0
  52. package/esm2015/dependencies/gantt-dependency.directive.js +82 -0
  53. package/esm2015/dependencies/utils.js +195 -0
  54. package/esm2015/dragging/dependency-drag-create.directive.js +318 -0
  55. package/esm2015/dragging/drag-validation-tooltip.component.js +90 -0
  56. package/esm2015/editing/add-task.component.js +109 -0
  57. package/esm2015/editing/dependencies-table.component.js +196 -0
  58. package/esm2015/editing/edit-dialog.component.js +170 -0
  59. package/esm2015/editing/edit.service.js +111 -0
  60. package/esm2015/editing/task-fields.component.js +101 -0
  61. package/esm2015/editing/utils.js +15 -0
  62. package/esm2015/expanded-state/expand-event.js +9 -0
  63. package/esm2015/expanded-state/expandable.directive.js +23 -0
  64. package/esm2015/gantt.component.js +2227 -0
  65. package/esm2015/gantt.module.js +264 -0
  66. package/esm2015/kendo-angular-gantt.js +8 -0
  67. package/esm2015/localization/custom-messages.component.js +41 -0
  68. package/esm2015/localization/gantt-localization.service.js +25 -0
  69. package/esm2015/localization/localized-messages.directive.js +36 -0
  70. package/esm2015/localization/messages.js +157 -0
  71. package/esm2015/main.js +37 -0
  72. package/esm2015/models/cell-content-type.interface.js +5 -0
  73. package/esm2015/models/class-callbacks.js +5 -0
  74. package/esm2015/models/column-menu-settings.interface.js +5 -0
  75. package/esm2015/models/column-reorder-config.js +5 -0
  76. package/esm2015/models/date-range.interface.js +5 -0
  77. package/esm2015/models/dependency-type.enum.js +20 -0
  78. package/esm2015/models/events/cell-click-event.interface.js +5 -0
  79. package/esm2015/models/events/cell-close-event.interface.js +14 -0
  80. package/esm2015/models/events/click-event.interface.js +5 -0
  81. package/esm2015/models/events/column-locked-change-event.interface.js +5 -0
  82. package/esm2015/models/events/column-reorder-event.interface.js +5 -0
  83. package/esm2015/models/events/column-resize-event.interface.js +5 -0
  84. package/esm2015/models/events/column-visibility-change-event.interface.js +5 -0
  85. package/esm2015/models/events/data-state-change-event.interface.js +5 -0
  86. package/esm2015/models/events/dependency-add-event.interface.js +5 -0
  87. package/esm2015/models/events/selected-view-change-event.interface.js +5 -0
  88. package/esm2015/models/events/task-add-event.interface.js +5 -0
  89. package/esm2015/models/events/task-click-event.interface.js +5 -0
  90. package/esm2015/models/events/task-delete-event.interface.js +5 -0
  91. package/esm2015/models/events/task-edit-event.interface.js +5 -0
  92. package/esm2015/models/events/task-move-end-event.interface.js +5 -0
  93. package/esm2015/models/events/task-move-event.interface.js +5 -0
  94. package/esm2015/models/events/task-move-start-event.interface.js +5 -0
  95. package/esm2015/models/events/task-resize-end-event.interface.js +5 -0
  96. package/esm2015/models/events/task-resize-event.interface.js +5 -0
  97. package/esm2015/models/events/task-resize-start-event.interface.js +5 -0
  98. package/esm2015/models/filterable-settings.js +5 -0
  99. package/esm2015/models/gantt-dependency-model-fields.interface.js +13 -0
  100. package/esm2015/models/gantt-dependency.interface.js +5 -0
  101. package/esm2015/models/gantt-task-model-fields.interface.js +15 -0
  102. package/esm2015/models/gantt-task.interface.js +5 -0
  103. package/esm2015/models/models.js +7 -0
  104. package/esm2015/models/slot.interface.js +5 -0
  105. package/esm2015/models/sort-settings.js +17 -0
  106. package/esm2015/models/splitter-pane-options.interface.js +20 -0
  107. package/esm2015/models/timeline-options.interface.js +5 -0
  108. package/esm2015/models/timeline-view.js +5 -0
  109. package/esm2015/models/toolbar-settings.js +5 -0
  110. package/esm2015/models/view-item.interface.js +5 -0
  111. package/esm2015/navigation/navigation-models.js +5 -0
  112. package/esm2015/navigation/navigation.service.js +265 -0
  113. package/esm2015/navigation/utils.js +69 -0
  114. package/esm2015/package-metadata.js +15 -0
  115. package/esm2015/rendering/gantt-header-table-body.component.js +42 -0
  116. package/esm2015/rendering/gantt-milestone-task.component.js +107 -0
  117. package/esm2015/rendering/gantt-summary-task.component.js +158 -0
  118. package/esm2015/rendering/gantt-task-base.js +148 -0
  119. package/esm2015/rendering/gantt-task.component.js +204 -0
  120. package/esm2015/rendering/gantt-tasks-table-body.component.js +160 -0
  121. package/esm2015/scrolling/drag-scroll-settings.js +20 -0
  122. package/esm2015/scrolling/scroll-sync.service.js +80 -0
  123. package/esm2015/scrolling/timeline-scroll.directive.js +75 -0
  124. package/esm2015/scrolling/timeline-scroll.service.js +39 -0
  125. package/esm2015/scrolling/utils.js +77 -0
  126. package/esm2015/selection/selectable.directive.js +112 -0
  127. package/esm2015/selection/selection-change-event.js +5 -0
  128. package/esm2015/template-directives/summary-task-template.directive.js +50 -0
  129. package/esm2015/template-directives/task-content-template.directive.js +45 -0
  130. package/esm2015/template-directives/task-template.directive.js +48 -0
  131. package/esm2015/timeline/gantt-timeline.component.js +334 -0
  132. package/esm2015/timeline/timeline-base-view.service.js +160 -0
  133. package/esm2015/timeline/timeline-day-view.component.js +38 -0
  134. package/esm2015/timeline/timeline-day-view.service.js +66 -0
  135. package/esm2015/timeline/timeline-month-view.component.js +38 -0
  136. package/esm2015/timeline/timeline-month-view.service.js +64 -0
  137. package/esm2015/timeline/timeline-view.service.js +35 -0
  138. package/esm2015/timeline/timeline-week-view.component.js +38 -0
  139. package/esm2015/timeline/timeline-week-view.service.js +60 -0
  140. package/esm2015/timeline/view-base.js +45 -0
  141. package/esm2015/toolbar/toolbar-template.directive.js +127 -0
  142. package/esm2015/toolbar/toolbar.component.js +94 -0
  143. package/esm2015/toolbar/view-selector.component.js +96 -0
  144. package/esm2015/utils.js +293 -0
  145. package/expanded-state/expand-event.d.ts +13 -0
  146. package/expanded-state/expandable.directive.d.ts +20 -0
  147. package/fesm2015/kendo-angular-gantt.js +7706 -0
  148. package/gantt.component.d.ts +750 -0
  149. package/gantt.module.d.ts +94 -0
  150. package/kendo-angular-gantt.d.ts +9 -0
  151. package/localization/custom-messages.component.d.ts +18 -0
  152. package/localization/gantt-localization.service.d.ts +18 -0
  153. package/localization/localized-messages.directive.d.ts +16 -0
  154. package/localization/messages.d.ts +293 -0
  155. package/main.d.ts +39 -0
  156. package/models/cell-content-type.interface.d.ts +10 -0
  157. package/models/class-callbacks.d.ts +43 -0
  158. package/models/column-menu-settings.interface.d.ts +26 -0
  159. package/models/column-reorder-config.d.ts +10 -0
  160. package/models/date-range.interface.d.ts +19 -0
  161. package/models/dependency-type.enum.d.ts +19 -0
  162. package/models/events/cell-click-event.interface.d.ts +43 -0
  163. package/models/events/cell-close-event.interface.d.ts +48 -0
  164. package/models/events/click-event.interface.d.ts +23 -0
  165. package/models/events/column-locked-change-event.interface.d.ts +16 -0
  166. package/models/events/column-reorder-event.interface.d.ts +10 -0
  167. package/models/events/column-resize-event.interface.d.ts +10 -0
  168. package/models/events/column-visibility-change-event.interface.d.ts +14 -0
  169. package/models/events/data-state-change-event.interface.d.ts +10 -0
  170. package/models/events/dependency-add-event.interface.d.ts +26 -0
  171. package/models/events/selected-view-change-event.interface.d.ts +19 -0
  172. package/models/events/task-add-event.interface.d.ts +31 -0
  173. package/models/events/task-click-event.interface.d.ts +30 -0
  174. package/models/events/task-delete-event.interface.d.ts +21 -0
  175. package/models/events/task-edit-event.interface.d.ts +76 -0
  176. package/models/events/task-move-end-event.interface.d.ts +12 -0
  177. package/models/events/task-move-event.interface.d.ts +23 -0
  178. package/models/events/task-move-start-event.interface.d.ts +15 -0
  179. package/models/events/task-resize-end-event.interface.d.ts +12 -0
  180. package/models/events/task-resize-event.interface.d.ts +23 -0
  181. package/models/events/task-resize-start-event.interface.d.ts +15 -0
  182. package/models/filterable-settings.d.ts +10 -0
  183. package/models/gantt-dependency-model-fields.interface.d.ts +35 -0
  184. package/models/gantt-dependency.interface.d.ts +26 -0
  185. package/models/gantt-task-model-fields.interface.d.ts +42 -0
  186. package/models/gantt-task.interface.d.ts +31 -0
  187. package/models/models.d.ts +42 -0
  188. package/models/slot.interface.d.ts +31 -0
  189. package/models/sort-settings.d.ts +42 -0
  190. package/models/splitter-pane-options.interface.d.ts +54 -0
  191. package/models/timeline-options.interface.d.ts +41 -0
  192. package/models/timeline-view.d.ts +8 -0
  193. package/models/toolbar-settings.d.ts +29 -0
  194. package/models/view-item.interface.d.ts +35 -0
  195. package/navigation/navigation-models.d.ts +38 -0
  196. package/navigation/navigation.service.d.ts +130 -0
  197. package/navigation/utils.d.ts +26 -0
  198. package/package-metadata.d.ts +9 -0
  199. package/package.json +9 -13
  200. package/rendering/gantt-header-table-body.component.d.ts +14 -0
  201. package/rendering/gantt-milestone-task.component.d.ts +22 -0
  202. package/rendering/gantt-summary-task.component.d.ts +25 -0
  203. package/rendering/gantt-task-base.d.ts +59 -0
  204. package/rendering/gantt-task.component.d.ts +26 -0
  205. package/rendering/gantt-tasks-table-body.component.d.ts +33 -0
  206. package/scrolling/drag-scroll-settings.d.ts +47 -0
  207. package/scrolling/scroll-sync.service.d.ts +33 -0
  208. package/scrolling/timeline-scroll.directive.d.ts +27 -0
  209. package/scrolling/timeline-scroll.service.d.ts +23 -0
  210. package/scrolling/utils.d.ts +29 -0
  211. package/selection/selectable.directive.d.ts +45 -0
  212. package/selection/selection-change-event.d.ts +25 -0
  213. package/template-directives/summary-task-template.directive.d.ts +41 -0
  214. package/template-directives/task-content-template.directive.d.ts +36 -0
  215. package/template-directives/task-template.directive.d.ts +39 -0
  216. package/timeline/gantt-timeline.component.d.ts +67 -0
  217. package/timeline/timeline-base-view.service.d.ts +77 -0
  218. package/timeline/timeline-day-view.component.d.ts +18 -0
  219. package/timeline/timeline-day-view.service.d.ts +38 -0
  220. package/timeline/timeline-month-view.component.d.ts +18 -0
  221. package/timeline/timeline-month-view.service.d.ts +38 -0
  222. package/timeline/timeline-view.service.d.ts +19 -0
  223. package/timeline/timeline-week-view.component.d.ts +18 -0
  224. package/timeline/timeline-week-view.service.d.ts +38 -0
  225. package/timeline/view-base.d.ts +34 -0
  226. package/toolbar/toolbar-template.directive.d.ts +112 -0
  227. package/toolbar/toolbar.component.d.ts +29 -0
  228. package/toolbar/view-selector.component.d.ts +43 -0
  229. package/utils.d.ts +166 -0
@@ -0,0 +1,42 @@
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
+ import { Component, Input } from "@angular/core";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ /**
9
+ * @hidden
10
+ */
11
+ export class GanttHeaderTableBodyComponent {
12
+ }
13
+ GanttHeaderTableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: GanttHeaderTableBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
+ GanttHeaderTableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: GanttHeaderTableBodyComponent, selector: "[kendoGanttHeaderTableBody]", inputs: { groupSlots: "groupSlots", slots: "slots" }, ngImport: i0, template: `
15
+ <tr>
16
+ <td *ngFor="let item of groupSlots" [attr.colspan]="item.span" class="k-header">{{ item.text }}</td>
17
+ </tr>
18
+
19
+ <tr>
20
+ <td *ngFor="let item of slots" [attr.colspan]="item.span" class="k-header" [attr.title]="item.text">{{ item.text }}</td>
21
+ </tr>
22
+ `, isInline: true, directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: GanttHeaderTableBodyComponent, decorators: [{
24
+ type: Component,
25
+ args: [{
26
+ // eslint-disable-next-line @angular-eslint/component-selector
27
+ selector: '[kendoGanttHeaderTableBody]',
28
+ template: `
29
+ <tr>
30
+ <td *ngFor="let item of groupSlots" [attr.colspan]="item.span" class="k-header">{{ item.text }}</td>
31
+ </tr>
32
+
33
+ <tr>
34
+ <td *ngFor="let item of slots" [attr.colspan]="item.span" class="k-header" [attr.title]="item.text">{{ item.text }}</td>
35
+ </tr>
36
+ `
37
+ }]
38
+ }], propDecorators: { groupSlots: [{
39
+ type: Input
40
+ }], slots: [{
41
+ type: Input
42
+ }] } });
@@ -0,0 +1,107 @@
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
+ import { Component, forwardRef, HostBinding, Inject } from '@angular/core';
6
+ import { TOUCH_ENABLED } from '../common/touch-enabled';
7
+ import { GanttTaskBase } from './gantt-task-base';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../common/mapping.service";
10
+ import * as i2 from "./../timeline/timeline-view.service";
11
+ import * as i3 from "../dependencies/dependency-dom.service";
12
+ import * as i4 from "../common/option-changes.service";
13
+ import * as i5 from "../navigation/navigation.service";
14
+ import * as i6 from "@angular/common";
15
+ /**
16
+ * @hidden
17
+ */
18
+ export class GanttMilestoneTaskComponent extends GanttTaskBase {
19
+ constructor(touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
20
+ super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
21
+ this.touchEnabled = touchEnabled;
22
+ this.milestoneWrapperClass = true;
23
+ }
24
+ }
25
+ GanttMilestoneTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: GanttMilestoneTaskComponent, deps: [{ token: TOUCH_ENABLED }, { token: i1.MappingService }, { token: i2.TimelineViewService }, { token: i3.DependencyDomService }, { token: i4.OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: i5.NavigationService }], target: i0.ɵɵFactoryTarget.Component });
26
+ GanttMilestoneTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: GanttMilestoneTaskComponent, selector: "kendo-gantt-milestone-task", host: { properties: { "class.k-milestone-wrap": "this.milestoneWrapperClass" } }, providers: [
27
+ {
28
+ provide: GanttTaskBase,
29
+ useExisting: forwardRef(() => GanttMilestoneTaskComponent)
30
+ }
31
+ ], usesInheritance: true, ngImport: i0, template: `
32
+ <div
33
+ #task
34
+ role="treeitem"
35
+ class="k-task k-task-milestone"
36
+ [ngClass]="taskClass(dataItem)"
37
+ [attr.title]="mapper.extractFromTask(dataItem, 'title')"
38
+ [class.k-state-selected]="isSelected(dataItem)"
39
+ [attr.aria-selected]="ariaSelected"
40
+ [attr.aria-level]="level + 1"
41
+ >
42
+ </div>
43
+ <ng-container *ngIf="renderDependencyDragClues">
44
+ <div
45
+ class="k-task-dot k-task-start k-touch-action-none"
46
+ [class.k-display-block]="touchEnabled"
47
+ >
48
+ </div>
49
+ <div
50
+ class="k-task-dot k-task-end k-touch-action-none"
51
+ [class.k-display-block]="touchEnabled"
52
+ >
53
+ </div>
54
+ </ng-container>
55
+ `, isInline: true, styles: ["\n .k-task.k-focus {\n box-shadow: 0 0 4px 3px grey;\n outline: none;\n }\n .k-task.k-focus.k-state-selected {\n box-shadow: 0 0 4px 3px #ffaea8;\n }\n "], directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: GanttMilestoneTaskComponent, decorators: [{
57
+ type: Component,
58
+ args: [{
59
+ selector: 'kendo-gantt-milestone-task',
60
+ providers: [
61
+ {
62
+ provide: GanttTaskBase,
63
+ useExisting: forwardRef(() => GanttMilestoneTaskComponent)
64
+ }
65
+ ],
66
+ template: `
67
+ <div
68
+ #task
69
+ role="treeitem"
70
+ class="k-task k-task-milestone"
71
+ [ngClass]="taskClass(dataItem)"
72
+ [attr.title]="mapper.extractFromTask(dataItem, 'title')"
73
+ [class.k-state-selected]="isSelected(dataItem)"
74
+ [attr.aria-selected]="ariaSelected"
75
+ [attr.aria-level]="level + 1"
76
+ >
77
+ </div>
78
+ <ng-container *ngIf="renderDependencyDragClues">
79
+ <div
80
+ class="k-task-dot k-task-start k-touch-action-none"
81
+ [class.k-display-block]="touchEnabled"
82
+ >
83
+ </div>
84
+ <div
85
+ class="k-task-dot k-task-end k-touch-action-none"
86
+ [class.k-display-block]="touchEnabled"
87
+ >
88
+ </div>
89
+ </ng-container>
90
+ `,
91
+ styles: [`
92
+ .k-task.k-focus {
93
+ box-shadow: 0 0 4px 3px grey;
94
+ outline: none;
95
+ }
96
+ .k-task.k-focus.k-state-selected {
97
+ box-shadow: 0 0 4px 3px #ffaea8;
98
+ }
99
+ `]
100
+ }]
101
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
102
+ type: Inject,
103
+ args: [TOUCH_ENABLED]
104
+ }] }, { type: i1.MappingService }, { type: i2.TimelineViewService }, { type: i3.DependencyDomService }, { type: i4.OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: i5.NavigationService }]; }, propDecorators: { milestoneWrapperClass: [{
105
+ type: HostBinding,
106
+ args: ['class.k-milestone-wrap']
107
+ }] } });
@@ -0,0 +1,158 @@
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
+ import { Component, forwardRef, HostBinding, Inject, Input } from '@angular/core';
6
+ import { TOUCH_ENABLED } from '../common/touch-enabled';
7
+ import { GanttTaskBase } from './gantt-task-base';
8
+ import { isPresent } from '../utils';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../common/mapping.service";
11
+ import * as i2 from "./../timeline/timeline-view.service";
12
+ import * as i3 from "../dependencies/dependency-dom.service";
13
+ import * as i4 from "../common/option-changes.service";
14
+ import * as i5 from "../navigation/navigation.service";
15
+ import * as i6 from "@angular/common";
16
+ /**
17
+ * @hidden
18
+ */
19
+ export class GanttSummaryTaskComponent extends GanttTaskBase {
20
+ constructor(touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
21
+ super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
22
+ this.touchEnabled = touchEnabled;
23
+ this.summaryWrapperClass = true;
24
+ }
25
+ get ariaExpanded() {
26
+ // if no callback is provided, all child items are displayed and the item is regarded as expanded
27
+ // replicates the TreeList aria-expanded behavior
28
+ const isExpanded = !isPresent(this.isExpanded) || this.isExpanded(this.dataItem);
29
+ return String(isExpanded);
30
+ }
31
+ }
32
+ GanttSummaryTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: GanttSummaryTaskComponent, deps: [{ token: TOUCH_ENABLED }, { token: i1.MappingService }, { token: i2.TimelineViewService }, { token: i3.DependencyDomService }, { token: i4.OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: i5.NavigationService }], target: i0.ɵɵFactoryTarget.Component });
33
+ GanttSummaryTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: GanttSummaryTaskComponent, selector: "kendo-gantt-summary-task", inputs: { template: "template", isExpanded: "isExpanded" }, host: { properties: { "class.k-summary-wrap": "this.summaryWrapperClass" } }, providers: [
34
+ {
35
+ provide: GanttTaskBase,
36
+ useExisting: forwardRef(() => GanttSummaryTaskComponent)
37
+ }
38
+ ], usesInheritance: true, ngImport: i0, template: `
39
+ <div
40
+ #task
41
+ role="treeitem"
42
+ class="k-task k-task-summary"
43
+ [ngClass]="taskClass(dataItem)"
44
+ [style.width.px]="taskWidth"
45
+ [attr.title]="mapper.extractFromTask(dataItem, 'title')"
46
+ [class.k-state-selected]="isSelected(dataItem)"
47
+ [attr.aria-selected]="ariaSelected"
48
+ [attr.aria-expanded]="ariaExpanded"
49
+ [attr.aria-level]="level + 1"
50
+ >
51
+ <div *ngIf="!template; else summaryTemplate"
52
+ class="k-task-summary-progress"
53
+ [style.width.px]="taskWidth">
54
+ <div
55
+ class="k-task-summary-complete"
56
+ [style.width.px]="completionOverlayWidth"
57
+ >
58
+ </div>
59
+ </div>
60
+ <ng-template
61
+ #summaryTemplate
62
+ [ngTemplateOutlet]="template"
63
+ [ngTemplateOutletContext]="{
64
+ $implicit: dataItem,
65
+ elementWidth: taskWidth
66
+ }"
67
+ >
68
+ </ng-template>
69
+ </div>
70
+ <ng-container *ngIf="renderDependencyDragClues">
71
+ <div
72
+ class="k-task-dot k-task-start k-touch-action-none"
73
+ [class.k-display-block]="touchEnabled"
74
+ >
75
+ </div>
76
+ <div
77
+ class="k-task-dot k-task-end k-touch-action-none"
78
+ [class.k-display-block]="touchEnabled"
79
+ >
80
+ </div>
81
+ </ng-container>
82
+ `, isInline: true, styles: ["\n .k-task.k-focus {\n box-shadow: 0 0 4px 3px grey;\n outline: none;\n }\n .k-task.k-focus.k-state-selected {\n box-shadow: 0 0 4px 3px #ffaea8;\n }\n "], directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: GanttSummaryTaskComponent, decorators: [{
84
+ type: Component,
85
+ args: [{
86
+ selector: 'kendo-gantt-summary-task',
87
+ providers: [
88
+ {
89
+ provide: GanttTaskBase,
90
+ useExisting: forwardRef(() => GanttSummaryTaskComponent)
91
+ }
92
+ ],
93
+ template: `
94
+ <div
95
+ #task
96
+ role="treeitem"
97
+ class="k-task k-task-summary"
98
+ [ngClass]="taskClass(dataItem)"
99
+ [style.width.px]="taskWidth"
100
+ [attr.title]="mapper.extractFromTask(dataItem, 'title')"
101
+ [class.k-state-selected]="isSelected(dataItem)"
102
+ [attr.aria-selected]="ariaSelected"
103
+ [attr.aria-expanded]="ariaExpanded"
104
+ [attr.aria-level]="level + 1"
105
+ >
106
+ <div *ngIf="!template; else summaryTemplate"
107
+ class="k-task-summary-progress"
108
+ [style.width.px]="taskWidth">
109
+ <div
110
+ class="k-task-summary-complete"
111
+ [style.width.px]="completionOverlayWidth"
112
+ >
113
+ </div>
114
+ </div>
115
+ <ng-template
116
+ #summaryTemplate
117
+ [ngTemplateOutlet]="template"
118
+ [ngTemplateOutletContext]="{
119
+ $implicit: dataItem,
120
+ elementWidth: taskWidth
121
+ }"
122
+ >
123
+ </ng-template>
124
+ </div>
125
+ <ng-container *ngIf="renderDependencyDragClues">
126
+ <div
127
+ class="k-task-dot k-task-start k-touch-action-none"
128
+ [class.k-display-block]="touchEnabled"
129
+ >
130
+ </div>
131
+ <div
132
+ class="k-task-dot k-task-end k-touch-action-none"
133
+ [class.k-display-block]="touchEnabled"
134
+ >
135
+ </div>
136
+ </ng-container>
137
+ `,
138
+ styles: [`
139
+ .k-task.k-focus {
140
+ box-shadow: 0 0 4px 3px grey;
141
+ outline: none;
142
+ }
143
+ .k-task.k-focus.k-state-selected {
144
+ box-shadow: 0 0 4px 3px #ffaea8;
145
+ }
146
+ `]
147
+ }]
148
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
149
+ type: Inject,
150
+ args: [TOUCH_ENABLED]
151
+ }] }, { type: i1.MappingService }, { type: i2.TimelineViewService }, { type: i3.DependencyDomService }, { type: i4.OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: i5.NavigationService }]; }, propDecorators: { summaryWrapperClass: [{
152
+ type: HostBinding,
153
+ args: ['class.k-summary-wrap']
154
+ }], template: [{
155
+ type: Input
156
+ }], isExpanded: [{
157
+ type: Input
158
+ }] } });
@@ -0,0 +1,148 @@
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
+ import { Directive, HostBinding, Input, ViewChild } from '@angular/core';
6
+ import { MS_PER_HOUR, MS_PER_DAY } from '@progress/kendo-date-math';
7
+ import { Subscription } from 'rxjs';
8
+ import { isNumber, isPresent } from '../utils';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../common/mapping.service";
11
+ import * as i2 from "../timeline/timeline-view.service";
12
+ import * as i3 from "../dependencies/dependency-dom.service";
13
+ import * as i4 from "../common/option-changes.service";
14
+ import * as i5 from "../navigation/navigation.service";
15
+ const slotUnitDuration = {
16
+ day: MS_PER_HOUR,
17
+ week: MS_PER_DAY,
18
+ month: MS_PER_DAY * 7
19
+ };
20
+ const FOCUSED_CLASS = 'k-focus';
21
+ /**
22
+ * @hidden
23
+ */
24
+ export class GanttTaskBase {
25
+ constructor(mapper, // left public to be available for usage in the templates
26
+ timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
27
+ this.mapper = mapper;
28
+ this.timelineViewService = timelineViewService;
29
+ this.dependencyDomService = dependencyDomService;
30
+ this.optionChangesService = optionChangesService;
31
+ this.cdr = cdr;
32
+ this.navigationService = navigationService;
33
+ this.wrapperClass = true;
34
+ this.subscriptions = new Subscription();
35
+ this.subscriptions.add(this.optionChangesService.viewChanges
36
+ .subscribe(() => this.cdr.markForCheck()));
37
+ this.subscriptions.add(this.navigationService.taskStatusChanges
38
+ .subscribe(this.updateActiveState.bind(this)));
39
+ }
40
+ get taskIndexAttribute() {
41
+ return this.index;
42
+ }
43
+ get ariaSelected() {
44
+ // assinging null will not render the attribute at all (desired in selectable="false" mode)
45
+ return this.selectable ? String(this.isSelected(this.dataItem)) : null;
46
+ }
47
+ get slotUnitDuration() {
48
+ return slotUnitDuration[this.activeView];
49
+ }
50
+ get viewService() {
51
+ return this.timelineViewService.service(this.activeView);
52
+ }
53
+ get slotWidth() {
54
+ return this.viewService.options.slotWidth;
55
+ }
56
+ get taskWidth() {
57
+ const itemDuration = this.mapper.extractFromTask(this.dataItem, 'end') - this.mapper.extractFromTask(this.dataItem, 'start');
58
+ const durationInSlotUnits = itemDuration / this.slotUnitDuration;
59
+ const width = durationInSlotUnits * this.slotWidth;
60
+ return width;
61
+ }
62
+ /**
63
+ * The `left` style prop has to be applied to the host element (.k-task-wrap), as the drag clue elements are displayed on .k-task-wrap hover.
64
+ * Applying the `left` offset to the inner .k-task element leaves the .k-task-wrap element rendered with an offset of 0 somewhere on the left
65
+ * and hovering just the .k-task element doesn't expose the drag clues.
66
+ * Additionally, positioning the entire container takes care of positioning the hints as well.
67
+ */
68
+ get taskOffset() {
69
+ const timeAfterViewStart = this.mapper.extractFromTask(this.dataItem, 'start') - this.viewService.viewStart;
70
+ const offsetInSlotUnits = timeAfterViewStart / this.slotUnitDuration;
71
+ const offset = offsetInSlotUnits * this.slotWidth;
72
+ return offset;
73
+ }
74
+ get completionOverlayWidth() {
75
+ const overlayWidth = this.taskWidth * this.mapper.extractFromTask(this.dataItem, 'completionRatio');
76
+ // fall-back to 0 in case no completionRatio is provided
77
+ return isNumber(overlayWidth) ? overlayWidth : 0;
78
+ }
79
+ ngOnChanges(changes) {
80
+ if (isPresent(changes.dataItem)) {
81
+ if (isPresent(changes.dataItem.previousValue)) {
82
+ this.dependencyDomService.unregisterTask(changes.dataItem.previousValue);
83
+ }
84
+ this.dependencyDomService.registerTask(this.dataItem, this.taskElement.nativeElement);
85
+ }
86
+ else if (isPresent(changes.activeView)) {
87
+ this.dependencyDomService.notifyChanges();
88
+ }
89
+ if (this.navigationService.enabled && isPresent(changes.index)) {
90
+ this.updateActiveState(this.navigationService.activeTask);
91
+ }
92
+ }
93
+ ngOnDestroy() {
94
+ if (isPresent(this.dataItem)) {
95
+ this.dependencyDomService.unregisterTask(this.dataItem);
96
+ }
97
+ this.subscriptions.unsubscribe();
98
+ }
99
+ updateActiveState({ activeIndex, isFocused }) {
100
+ const isActive = activeIndex === this.index;
101
+ const tabindex = isActive ? '0' : '-1';
102
+ this.taskElement.nativeElement.setAttribute('tabindex', tabindex);
103
+ if (isActive && isFocused) {
104
+ this.taskElement.nativeElement.focus();
105
+ this.taskElement.nativeElement.classList.add(FOCUSED_CLASS);
106
+ }
107
+ else {
108
+ this.taskElement.nativeElement.classList.remove(FOCUSED_CLASS);
109
+ }
110
+ }
111
+ }
112
+ GanttTaskBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: GanttTaskBase, deps: [{ token: i1.MappingService }, { token: i2.TimelineViewService }, { token: i3.DependencyDomService }, { token: i4.OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: i5.NavigationService }], target: i0.ɵɵFactoryTarget.Directive });
113
+ GanttTaskBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: GanttTaskBase, selector: "kendo-gantt-task-base", inputs: { dataItem: "dataItem", index: "index", level: "level", renderDependencyDragClues: "renderDependencyDragClues", selectable: "selectable", isSelected: "isSelected", activeView: "activeView", taskClass: "taskClass" }, host: { properties: { "class.k-task-wrap": "this.wrapperClass", "attr.data-task-index": "this.taskIndexAttribute", "style.left.px": "this.taskOffset" } }, viewQueries: [{ propertyName: "taskElement", first: true, predicate: ["task"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0 });
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: GanttTaskBase, decorators: [{
115
+ type: Directive,
116
+ args: [{
117
+ // eslint-disable-next-line @angular-eslint/directive-selector
118
+ selector: 'kendo-gantt-task-base'
119
+ }]
120
+ }], ctorParameters: function () { return [{ type: i1.MappingService }, { type: i2.TimelineViewService }, { type: i3.DependencyDomService }, { type: i4.OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: i5.NavigationService }]; }, propDecorators: { wrapperClass: [{
121
+ type: HostBinding,
122
+ args: ['class.k-task-wrap']
123
+ }], taskIndexAttribute: [{
124
+ type: HostBinding,
125
+ args: ['attr.data-task-index']
126
+ }], taskElement: [{
127
+ type: ViewChild,
128
+ args: ['task', { static: true }]
129
+ }], dataItem: [{
130
+ type: Input
131
+ }], index: [{
132
+ type: Input
133
+ }], level: [{
134
+ type: Input
135
+ }], renderDependencyDragClues: [{
136
+ type: Input
137
+ }], selectable: [{
138
+ type: Input
139
+ }], isSelected: [{
140
+ type: Input
141
+ }], activeView: [{
142
+ type: Input
143
+ }], taskClass: [{
144
+ type: Input
145
+ }], taskOffset: [{
146
+ type: HostBinding,
147
+ args: ['style.left.px']
148
+ }] } });
@@ -0,0 +1,204 @@
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
+ import { Component, forwardRef, Inject, Input } from '@angular/core';
6
+ import { TOUCH_ENABLED } from '../common/touch-enabled';
7
+ import { GanttTaskBase } from './gantt-task-base';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../editing/edit.service";
10
+ import * as i2 from "../common/mapping.service";
11
+ import * as i3 from "./../timeline/timeline-view.service";
12
+ import * as i4 from "../dependencies/dependency-dom.service";
13
+ import * as i5 from "../common/option-changes.service";
14
+ import * as i6 from "../navigation/navigation.service";
15
+ import * as i7 from "@angular/common";
16
+ import * as i8 from "@progress/kendo-angular-common";
17
+ /**
18
+ * @hidden
19
+ */
20
+ export class GanttTaskComponent extends GanttTaskBase {
21
+ constructor(editService, touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
22
+ super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
23
+ this.editService = editService;
24
+ this.touchEnabled = touchEnabled;
25
+ }
26
+ onTaskDelete() {
27
+ this.editService.dataItem = this.dataItem;
28
+ this.editService.taskDelete.next(this.dataItem);
29
+ }
30
+ }
31
+ GanttTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: GanttTaskComponent, deps: [{ token: i1.EditService }, { token: TOUCH_ENABLED }, { token: i2.MappingService }, { token: i3.TimelineViewService }, { token: i4.DependencyDomService }, { token: i5.OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: i6.NavigationService }], target: i0.ɵɵFactoryTarget.Component });
32
+ GanttTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: GanttTaskComponent, selector: "kendo-gantt-task", inputs: { taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate" }, providers: [
33
+ {
34
+ provide: GanttTaskBase,
35
+ useExisting: forwardRef(() => GanttTaskComponent)
36
+ }
37
+ ], usesInheritance: true, ngImport: i0, template: `
38
+ <div
39
+ #task
40
+ class="k-task k-task-single"
41
+ role="treeitem"
42
+ [ngClass]="taskClass(dataItem)"
43
+ [style.width.px]="taskWidth"
44
+ [attr.title]="mapper.extractFromTask(dataItem, 'title')"
45
+ [class.k-state-selected]="isSelected(dataItem)"
46
+ [attr.aria-selected]="ariaSelected"
47
+ [attr.aria-level]="level + 1"
48
+ >
49
+ <ng-container *ngIf="!taskTemplate">
50
+ <div
51
+ class="k-task-complete"
52
+ [style.width.px]="completionOverlayWidth"
53
+ aria-hidden="true"
54
+ >
55
+ </div>
56
+ <div class="k-task-content">
57
+ <div class="k-task-template">
58
+ <ng-container *ngIf="!taskContentTemplate; else taskContent">
59
+ {{ mapper.extractFromTask(dataItem, 'title') }}
60
+ </ng-container>
61
+ <ng-template
62
+ #taskContent
63
+ [ngTemplateOutlet]="taskContentTemplate"
64
+ [ngTemplateOutletContext]="{ $implicit: dataItem }"
65
+ >
66
+ </ng-template>
67
+ </div>
68
+ <span
69
+ class="k-task-actions"
70
+ aria-hidden="true"
71
+ >
72
+ <span
73
+ class="k-link k-task-delete"
74
+ [kendoEventsOutsideAngular]="{
75
+ click: onTaskDelete
76
+ }"
77
+ [scope]="this"
78
+ >
79
+ <span class="k-icon k-i-close"></span>
80
+ </span>
81
+ </span>
82
+ </div>
83
+ </ng-container>
84
+ <ng-template
85
+ *ngIf="taskTemplate"
86
+ [ngTemplateOutlet]="taskTemplate"
87
+ [ngTemplateOutletContext]="{
88
+ $implicit: dataItem,
89
+ elementWidth: taskWidth
90
+ }"
91
+ >
92
+ </ng-template>
93
+ </div>
94
+ <ng-container *ngIf="renderDependencyDragClues">
95
+ <div
96
+ class="k-task-dot k-task-start k-touch-action-none"
97
+ [class.k-display-block]="touchEnabled"
98
+ >
99
+ </div>
100
+ <div
101
+ class="k-task-dot k-task-end k-touch-action-none"
102
+ [class.k-display-block]="touchEnabled"
103
+ >
104
+ </div>
105
+ </ng-container>
106
+ `, isInline: true, styles: ["\n .k-task.k-focus {\n box-shadow: 0 0 4px 3px grey;\n outline: none;\n }\n .k-task.k-focus.k-state-selected {\n box-shadow: 0 0 4px 3px #ffaea8;\n }\n "], directives: [{ type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i8.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: GanttTaskComponent, decorators: [{
108
+ type: Component,
109
+ args: [{
110
+ selector: 'kendo-gantt-task',
111
+ providers: [
112
+ {
113
+ provide: GanttTaskBase,
114
+ useExisting: forwardRef(() => GanttTaskComponent)
115
+ }
116
+ ],
117
+ template: `
118
+ <div
119
+ #task
120
+ class="k-task k-task-single"
121
+ role="treeitem"
122
+ [ngClass]="taskClass(dataItem)"
123
+ [style.width.px]="taskWidth"
124
+ [attr.title]="mapper.extractFromTask(dataItem, 'title')"
125
+ [class.k-state-selected]="isSelected(dataItem)"
126
+ [attr.aria-selected]="ariaSelected"
127
+ [attr.aria-level]="level + 1"
128
+ >
129
+ <ng-container *ngIf="!taskTemplate">
130
+ <div
131
+ class="k-task-complete"
132
+ [style.width.px]="completionOverlayWidth"
133
+ aria-hidden="true"
134
+ >
135
+ </div>
136
+ <div class="k-task-content">
137
+ <div class="k-task-template">
138
+ <ng-container *ngIf="!taskContentTemplate; else taskContent">
139
+ {{ mapper.extractFromTask(dataItem, 'title') }}
140
+ </ng-container>
141
+ <ng-template
142
+ #taskContent
143
+ [ngTemplateOutlet]="taskContentTemplate"
144
+ [ngTemplateOutletContext]="{ $implicit: dataItem }"
145
+ >
146
+ </ng-template>
147
+ </div>
148
+ <span
149
+ class="k-task-actions"
150
+ aria-hidden="true"
151
+ >
152
+ <span
153
+ class="k-link k-task-delete"
154
+ [kendoEventsOutsideAngular]="{
155
+ click: onTaskDelete
156
+ }"
157
+ [scope]="this"
158
+ >
159
+ <span class="k-icon k-i-close"></span>
160
+ </span>
161
+ </span>
162
+ </div>
163
+ </ng-container>
164
+ <ng-template
165
+ *ngIf="taskTemplate"
166
+ [ngTemplateOutlet]="taskTemplate"
167
+ [ngTemplateOutletContext]="{
168
+ $implicit: dataItem,
169
+ elementWidth: taskWidth
170
+ }"
171
+ >
172
+ </ng-template>
173
+ </div>
174
+ <ng-container *ngIf="renderDependencyDragClues">
175
+ <div
176
+ class="k-task-dot k-task-start k-touch-action-none"
177
+ [class.k-display-block]="touchEnabled"
178
+ >
179
+ </div>
180
+ <div
181
+ class="k-task-dot k-task-end k-touch-action-none"
182
+ [class.k-display-block]="touchEnabled"
183
+ >
184
+ </div>
185
+ </ng-container>
186
+ `,
187
+ styles: [`
188
+ .k-task.k-focus {
189
+ box-shadow: 0 0 4px 3px grey;
190
+ outline: none;
191
+ }
192
+ .k-task.k-focus.k-state-selected {
193
+ box-shadow: 0 0 4px 3px #ffaea8;
194
+ }
195
+ `]
196
+ }]
197
+ }], ctorParameters: function () { return [{ type: i1.EditService }, { type: undefined, decorators: [{
198
+ type: Inject,
199
+ args: [TOUCH_ENABLED]
200
+ }] }, { type: i2.MappingService }, { type: i3.TimelineViewService }, { type: i4.DependencyDomService }, { type: i5.OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: i6.NavigationService }]; }, propDecorators: { taskContentTemplate: [{
201
+ type: Input
202
+ }], taskTemplate: [{
203
+ type: Input
204
+ }] } });