@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.
- package/binding-directives/flat-binding.directive.d.ts +24 -0
- package/binding-directives/hierarchy-binding.directive.d.ts +22 -0
- package/bundles/kendo-angular-gantt.umd.js +1 -1
- package/columns/cell-template.directive.d.ts +28 -0
- package/columns/column-base.d.ts +85 -0
- package/columns/column-group.component.d.ts +103 -0
- package/columns/column-menu-template.directive.d.ts +22 -0
- package/columns/column.component.d.ts +130 -0
- package/columns/columns.d.ts +15 -0
- package/columns/edit-template.directive.d.ts +26 -0
- package/columns/filter-cell-template.directive.d.ts +21 -0
- package/columns/filter-menu-template.directive.d.ts +20 -0
- package/columns/footer-template.directive.d.ts +24 -0
- package/columns/header-template.directive.d.ts +22 -0
- package/columns/span-column.component.d.ts +112 -0
- package/common/default-callbacks.d.ts +25 -0
- package/common/mapping.service.d.ts +38 -0
- package/common/option-changes.service.d.ts +17 -0
- package/common/touch-enabled.d.ts +9 -0
- package/dependencies/dependency-dom.service.d.ts +46 -0
- package/dependencies/dom-dependency-args.d.ts +24 -0
- package/dependencies/gantt-dependency.directive.d.ts +29 -0
- package/dependencies/utils.d.ts +53 -0
- package/dragging/dependency-drag-create.directive.d.ts +75 -0
- package/dragging/drag-validation-tooltip.component.d.ts +32 -0
- package/editing/add-task.component.d.ts +47 -0
- package/editing/dependencies-table.component.d.ts +42 -0
- package/editing/edit-dialog.component.d.ts +33 -0
- package/editing/edit.service.d.ts +44 -0
- package/editing/task-fields.component.d.ts +25 -0
- package/editing/utils.d.ts +10 -0
- package/esm2015/binding-directives/flat-binding.directive.js +34 -0
- package/esm2015/binding-directives/hierarchy-binding.directive.js +32 -0
- package/esm2015/columns/cell-template.directive.js +37 -0
- package/esm2015/columns/column-base.js +52 -0
- package/esm2015/columns/column-group.component.js +94 -0
- package/esm2015/columns/column-menu-template.directive.js +31 -0
- package/esm2015/columns/column.component.js +133 -0
- package/esm2015/columns/columns.js +15 -0
- package/esm2015/columns/edit-template.directive.js +35 -0
- package/esm2015/columns/filter-cell-template.directive.js +30 -0
- package/esm2015/columns/filter-menu-template.directive.js +29 -0
- package/esm2015/columns/footer-template.directive.js +33 -0
- package/esm2015/columns/header-template.directive.js +31 -0
- package/esm2015/columns/span-column.component.js +86 -0
- package/esm2015/common/default-callbacks.js +25 -0
- package/esm2015/common/mapping.service.js +64 -0
- package/esm2015/common/option-changes.service.js +26 -0
- package/esm2015/common/touch-enabled.js +9 -0
- package/esm2015/dependencies/dependency-dom.service.js +70 -0
- package/esm2015/dependencies/dom-dependency-args.js +5 -0
- package/esm2015/dependencies/gantt-dependency.directive.js +82 -0
- package/esm2015/dependencies/utils.js +195 -0
- package/esm2015/dragging/dependency-drag-create.directive.js +318 -0
- package/esm2015/dragging/drag-validation-tooltip.component.js +90 -0
- package/esm2015/editing/add-task.component.js +109 -0
- package/esm2015/editing/dependencies-table.component.js +196 -0
- package/esm2015/editing/edit-dialog.component.js +170 -0
- package/esm2015/editing/edit.service.js +111 -0
- package/esm2015/editing/task-fields.component.js +101 -0
- package/esm2015/editing/utils.js +15 -0
- package/esm2015/expanded-state/expand-event.js +9 -0
- package/esm2015/expanded-state/expandable.directive.js +23 -0
- package/esm2015/gantt.component.js +2227 -0
- package/esm2015/gantt.module.js +264 -0
- package/esm2015/kendo-angular-gantt.js +8 -0
- package/esm2015/localization/custom-messages.component.js +41 -0
- package/esm2015/localization/gantt-localization.service.js +25 -0
- package/esm2015/localization/localized-messages.directive.js +36 -0
- package/esm2015/localization/messages.js +157 -0
- package/esm2015/main.js +37 -0
- package/esm2015/models/cell-content-type.interface.js +5 -0
- package/esm2015/models/class-callbacks.js +5 -0
- package/esm2015/models/column-menu-settings.interface.js +5 -0
- package/esm2015/models/column-reorder-config.js +5 -0
- package/esm2015/models/date-range.interface.js +5 -0
- package/esm2015/models/dependency-type.enum.js +20 -0
- package/esm2015/models/events/cell-click-event.interface.js +5 -0
- package/esm2015/models/events/cell-close-event.interface.js +14 -0
- package/esm2015/models/events/click-event.interface.js +5 -0
- package/esm2015/models/events/column-locked-change-event.interface.js +5 -0
- package/esm2015/models/events/column-reorder-event.interface.js +5 -0
- package/esm2015/models/events/column-resize-event.interface.js +5 -0
- package/esm2015/models/events/column-visibility-change-event.interface.js +5 -0
- package/esm2015/models/events/data-state-change-event.interface.js +5 -0
- package/esm2015/models/events/dependency-add-event.interface.js +5 -0
- package/esm2015/models/events/selected-view-change-event.interface.js +5 -0
- package/esm2015/models/events/task-add-event.interface.js +5 -0
- package/esm2015/models/events/task-click-event.interface.js +5 -0
- package/esm2015/models/events/task-delete-event.interface.js +5 -0
- package/esm2015/models/events/task-edit-event.interface.js +5 -0
- package/esm2015/models/events/task-move-end-event.interface.js +5 -0
- package/esm2015/models/events/task-move-event.interface.js +5 -0
- package/esm2015/models/events/task-move-start-event.interface.js +5 -0
- package/esm2015/models/events/task-resize-end-event.interface.js +5 -0
- package/esm2015/models/events/task-resize-event.interface.js +5 -0
- package/esm2015/models/events/task-resize-start-event.interface.js +5 -0
- package/esm2015/models/filterable-settings.js +5 -0
- package/esm2015/models/gantt-dependency-model-fields.interface.js +13 -0
- package/esm2015/models/gantt-dependency.interface.js +5 -0
- package/esm2015/models/gantt-task-model-fields.interface.js +15 -0
- package/esm2015/models/gantt-task.interface.js +5 -0
- package/esm2015/models/models.js +7 -0
- package/esm2015/models/slot.interface.js +5 -0
- package/esm2015/models/sort-settings.js +17 -0
- package/esm2015/models/splitter-pane-options.interface.js +20 -0
- package/esm2015/models/timeline-options.interface.js +5 -0
- package/esm2015/models/timeline-view.js +5 -0
- package/esm2015/models/toolbar-settings.js +5 -0
- package/esm2015/models/view-item.interface.js +5 -0
- package/esm2015/navigation/navigation-models.js +5 -0
- package/esm2015/navigation/navigation.service.js +265 -0
- package/esm2015/navigation/utils.js +69 -0
- package/esm2015/package-metadata.js +15 -0
- package/esm2015/rendering/gantt-header-table-body.component.js +42 -0
- package/esm2015/rendering/gantt-milestone-task.component.js +107 -0
- package/esm2015/rendering/gantt-summary-task.component.js +158 -0
- package/esm2015/rendering/gantt-task-base.js +148 -0
- package/esm2015/rendering/gantt-task.component.js +204 -0
- package/esm2015/rendering/gantt-tasks-table-body.component.js +160 -0
- package/esm2015/scrolling/drag-scroll-settings.js +20 -0
- package/esm2015/scrolling/scroll-sync.service.js +80 -0
- package/esm2015/scrolling/timeline-scroll.directive.js +75 -0
- package/esm2015/scrolling/timeline-scroll.service.js +39 -0
- package/esm2015/scrolling/utils.js +77 -0
- package/esm2015/selection/selectable.directive.js +112 -0
- package/esm2015/selection/selection-change-event.js +5 -0
- package/esm2015/template-directives/summary-task-template.directive.js +50 -0
- package/esm2015/template-directives/task-content-template.directive.js +45 -0
- package/esm2015/template-directives/task-template.directive.js +48 -0
- package/esm2015/timeline/gantt-timeline.component.js +334 -0
- package/esm2015/timeline/timeline-base-view.service.js +160 -0
- package/esm2015/timeline/timeline-day-view.component.js +38 -0
- package/esm2015/timeline/timeline-day-view.service.js +66 -0
- package/esm2015/timeline/timeline-month-view.component.js +38 -0
- package/esm2015/timeline/timeline-month-view.service.js +64 -0
- package/esm2015/timeline/timeline-view.service.js +35 -0
- package/esm2015/timeline/timeline-week-view.component.js +38 -0
- package/esm2015/timeline/timeline-week-view.service.js +60 -0
- package/esm2015/timeline/view-base.js +45 -0
- package/esm2015/toolbar/toolbar-template.directive.js +127 -0
- package/esm2015/toolbar/toolbar.component.js +94 -0
- package/esm2015/toolbar/view-selector.component.js +96 -0
- package/esm2015/utils.js +293 -0
- package/expanded-state/expand-event.d.ts +13 -0
- package/expanded-state/expandable.directive.d.ts +20 -0
- package/fesm2015/kendo-angular-gantt.js +7706 -0
- package/gantt.component.d.ts +750 -0
- package/gantt.module.d.ts +94 -0
- package/kendo-angular-gantt.d.ts +9 -0
- package/localization/custom-messages.component.d.ts +18 -0
- package/localization/gantt-localization.service.d.ts +18 -0
- package/localization/localized-messages.directive.d.ts +16 -0
- package/localization/messages.d.ts +293 -0
- package/main.d.ts +39 -0
- package/models/cell-content-type.interface.d.ts +10 -0
- package/models/class-callbacks.d.ts +43 -0
- package/models/column-menu-settings.interface.d.ts +26 -0
- package/models/column-reorder-config.d.ts +10 -0
- package/models/date-range.interface.d.ts +19 -0
- package/models/dependency-type.enum.d.ts +19 -0
- package/models/events/cell-click-event.interface.d.ts +43 -0
- package/models/events/cell-close-event.interface.d.ts +48 -0
- package/models/events/click-event.interface.d.ts +23 -0
- package/models/events/column-locked-change-event.interface.d.ts +16 -0
- package/models/events/column-reorder-event.interface.d.ts +10 -0
- package/models/events/column-resize-event.interface.d.ts +10 -0
- package/models/events/column-visibility-change-event.interface.d.ts +14 -0
- package/models/events/data-state-change-event.interface.d.ts +10 -0
- package/models/events/dependency-add-event.interface.d.ts +26 -0
- package/models/events/selected-view-change-event.interface.d.ts +19 -0
- package/models/events/task-add-event.interface.d.ts +31 -0
- package/models/events/task-click-event.interface.d.ts +30 -0
- package/models/events/task-delete-event.interface.d.ts +21 -0
- package/models/events/task-edit-event.interface.d.ts +76 -0
- package/models/events/task-move-end-event.interface.d.ts +12 -0
- package/models/events/task-move-event.interface.d.ts +23 -0
- package/models/events/task-move-start-event.interface.d.ts +15 -0
- package/models/events/task-resize-end-event.interface.d.ts +12 -0
- package/models/events/task-resize-event.interface.d.ts +23 -0
- package/models/events/task-resize-start-event.interface.d.ts +15 -0
- package/models/filterable-settings.d.ts +10 -0
- package/models/gantt-dependency-model-fields.interface.d.ts +35 -0
- package/models/gantt-dependency.interface.d.ts +26 -0
- package/models/gantt-task-model-fields.interface.d.ts +42 -0
- package/models/gantt-task.interface.d.ts +31 -0
- package/models/models.d.ts +42 -0
- package/models/slot.interface.d.ts +31 -0
- package/models/sort-settings.d.ts +42 -0
- package/models/splitter-pane-options.interface.d.ts +54 -0
- package/models/timeline-options.interface.d.ts +41 -0
- package/models/timeline-view.d.ts +8 -0
- package/models/toolbar-settings.d.ts +29 -0
- package/models/view-item.interface.d.ts +35 -0
- package/navigation/navigation-models.d.ts +38 -0
- package/navigation/navigation.service.d.ts +130 -0
- package/navigation/utils.d.ts +26 -0
- package/package-metadata.d.ts +9 -0
- package/package.json +9 -13
- package/rendering/gantt-header-table-body.component.d.ts +14 -0
- package/rendering/gantt-milestone-task.component.d.ts +22 -0
- package/rendering/gantt-summary-task.component.d.ts +25 -0
- package/rendering/gantt-task-base.d.ts +59 -0
- package/rendering/gantt-task.component.d.ts +26 -0
- package/rendering/gantt-tasks-table-body.component.d.ts +33 -0
- package/scrolling/drag-scroll-settings.d.ts +47 -0
- package/scrolling/scroll-sync.service.d.ts +33 -0
- package/scrolling/timeline-scroll.directive.d.ts +27 -0
- package/scrolling/timeline-scroll.service.d.ts +23 -0
- package/scrolling/utils.d.ts +29 -0
- package/selection/selectable.directive.d.ts +45 -0
- package/selection/selection-change-event.d.ts +25 -0
- package/template-directives/summary-task-template.directive.d.ts +41 -0
- package/template-directives/task-content-template.directive.d.ts +36 -0
- package/template-directives/task-template.directive.d.ts +39 -0
- package/timeline/gantt-timeline.component.d.ts +67 -0
- package/timeline/timeline-base-view.service.d.ts +77 -0
- package/timeline/timeline-day-view.component.d.ts +18 -0
- package/timeline/timeline-day-view.service.d.ts +38 -0
- package/timeline/timeline-month-view.component.d.ts +18 -0
- package/timeline/timeline-month-view.service.d.ts +38 -0
- package/timeline/timeline-view.service.d.ts +19 -0
- package/timeline/timeline-week-view.component.d.ts +18 -0
- package/timeline/timeline-week-view.service.d.ts +38 -0
- package/timeline/view-base.d.ts +34 -0
- package/toolbar/toolbar-template.directive.d.ts +112 -0
- package/toolbar/toolbar.component.d.ts +29 -0
- package/toolbar/view-selector.component.d.ts +43 -0
- 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
|
+
}] } });
|