@progress/kendo-angular-gantt 21.4.1-develop.1 → 22.0.0-develop.1
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/columns/column-base.component.d.ts +1 -1
- package/fesm2022/progress-kendo-angular-gantt.mjs +201 -201
- package/localization/messages.d.ts +1 -1
- package/package.json +22 -30
- package/rendering/gantt-task-base.d.ts +1 -1
- package/schematics/ngAdd/index.js +7 -7
- package/timeline/view-base.d.ts +1 -1
- package/esm2022/binding-directives/flat-binding.directive.mjs +0 -50
- package/esm2022/binding-directives/hierarchy-binding.directive.mjs +0 -49
- package/esm2022/columns/cell-template.directive.mjs +0 -47
- package/esm2022/columns/column-base.component.mjs +0 -22
- package/esm2022/columns/column-group.component.mjs +0 -80
- package/esm2022/columns/column-menu-template.directive.mjs +0 -40
- package/esm2022/columns/column.component.mjs +0 -122
- package/esm2022/columns/columns.mjs +0 -15
- package/esm2022/columns/edit-template.directive.mjs +0 -46
- package/esm2022/columns/filter-cell-template.directive.mjs +0 -32
- package/esm2022/columns/filter-menu-template.directive.mjs +0 -41
- package/esm2022/columns/footer-template.directive.mjs +0 -44
- package/esm2022/columns/header-template.directive.mjs +0 -43
- package/esm2022/columns/span-column.component.mjs +0 -82
- package/esm2022/common/default-callbacks.mjs +0 -25
- package/esm2022/common/mapping.service.mjs +0 -62
- package/esm2022/common/option-changes.service.mjs +0 -28
- package/esm2022/dependencies/dependency-dom.service.mjs +0 -80
- package/esm2022/dependencies/dom-dependency-args.mjs +0 -5
- package/esm2022/dependencies/gantt-dependency.directive.mjs +0 -91
- package/esm2022/dependencies/utils.mjs +0 -195
- package/esm2022/directives.mjs +0 -63
- package/esm2022/dragging/dependency-drag-create.directive.mjs +0 -337
- package/esm2022/dragging/drag-validation-tooltip.component.mjs +0 -70
- package/esm2022/dragging/task-drag.directive.mjs +0 -94
- package/esm2022/dragging/task-drag.service.mjs +0 -239
- package/esm2022/editing/add-task.component.mjs +0 -127
- package/esm2022/editing/dependencies-table.component.mjs +0 -233
- package/esm2022/editing/edit-dialog.component.mjs +0 -225
- package/esm2022/editing/edit.service.mjs +0 -118
- package/esm2022/editing/task-fields.component.mjs +0 -127
- package/esm2022/editing/utils.mjs +0 -15
- package/esm2022/expanded-state/expand-event.mjs +0 -18
- package/esm2022/expanded-state/expandable.directive.mjs +0 -39
- package/esm2022/gantt.component.mjs +0 -2415
- package/esm2022/gantt.module.mjs +0 -132
- package/esm2022/index.mjs +0 -42
- package/esm2022/localization/custom-messages.component.mjs +0 -52
- package/esm2022/localization/gantt-localization.service.mjs +0 -27
- package/esm2022/localization/localized-messages.directive.mjs +0 -39
- package/esm2022/localization/messages.mjs +0 -453
- package/esm2022/models/cell-content-type.interface.mjs +0 -5
- package/esm2022/models/class-callbacks.mjs +0 -5
- package/esm2022/models/column-menu-settings.interface.mjs +0 -5
- package/esm2022/models/column-reorder-config.mjs +0 -5
- package/esm2022/models/current-time-settings.interface.mjs +0 -5
- package/esm2022/models/date-range.interface.mjs +0 -5
- package/esm2022/models/dependency-type.enum.mjs +0 -32
- package/esm2022/models/events/cell-click-event.interface.mjs +0 -5
- package/esm2022/models/events/cell-close-event.interface.mjs +0 -44
- package/esm2022/models/events/click-event.interface.mjs +0 -5
- package/esm2022/models/events/column-locked-change-event.interface.mjs +0 -5
- package/esm2022/models/events/column-reorder-event.interface.mjs +0 -5
- package/esm2022/models/events/column-resize-event.interface.mjs +0 -5
- package/esm2022/models/events/column-visibility-change-event.interface.mjs +0 -5
- package/esm2022/models/events/data-state-change-event.interface.mjs +0 -5
- package/esm2022/models/events/dependency-add-event.interface.mjs +0 -5
- package/esm2022/models/events/index.mjs +0 -5
- package/esm2022/models/events/selected-view-change-event.interface.mjs +0 -5
- package/esm2022/models/events/task-add-event.interface.mjs +0 -5
- package/esm2022/models/events/task-click-event.interface.mjs +0 -5
- package/esm2022/models/events/task-delete-event.interface.mjs +0 -5
- package/esm2022/models/events/task-drag-event.interface.mjs +0 -5
- package/esm2022/models/events/task-edit-event.interface.mjs +0 -5
- package/esm2022/models/filterable-settings.mjs +0 -5
- package/esm2022/models/gantt-dependency-model-fields.interface.mjs +0 -13
- package/esm2022/models/gantt-dependency.interface.mjs +0 -5
- package/esm2022/models/gantt-task-model-fields.interface.mjs +0 -15
- package/esm2022/models/gantt-task.interface.mjs +0 -5
- package/esm2022/models/models.mjs +0 -8
- package/esm2022/models/slot.interface.mjs +0 -5
- package/esm2022/models/sort-settings.mjs +0 -17
- package/esm2022/models/splitter-pane-options.interface.mjs +0 -20
- package/esm2022/models/timeline-header-date-format.mjs +0 -5
- package/esm2022/models/timeline-options.interface.mjs +0 -5
- package/esm2022/models/timeline-view.mjs +0 -5
- package/esm2022/models/toolbar-settings.mjs +0 -5
- package/esm2022/models/tooltip-options.interface.mjs +0 -5
- package/esm2022/models/view-item.interface.mjs +0 -5
- package/esm2022/navigation/navigation-models.mjs +0 -5
- package/esm2022/navigation/navigation.service.mjs +0 -271
- package/esm2022/navigation/utils.mjs +0 -61
- package/esm2022/package-metadata.mjs +0 -16
- package/esm2022/progress-kendo-angular-gantt.mjs +0 -8
- package/esm2022/rendering/gantt-header-table-body.component.mjs +0 -61
- package/esm2022/rendering/gantt-milestone-task.component.mjs +0 -102
- package/esm2022/rendering/gantt-summary-task.component.mjs +0 -157
- package/esm2022/rendering/gantt-task-base.mjs +0 -230
- package/esm2022/rendering/gantt-task.component.mjs +0 -227
- package/esm2022/rendering/gantt-tasks-table-body.component.mjs +0 -206
- package/esm2022/scrolling/drag-scroll-settings.mjs +0 -20
- package/esm2022/scrolling/scroll-sync.service.mjs +0 -83
- package/esm2022/scrolling/timeline-scroll.directive.mjs +0 -83
- package/esm2022/scrolling/timeline-scroll.service.mjs +0 -37
- package/esm2022/scrolling/utils.mjs +0 -77
- package/esm2022/selection/selectable.directive.mjs +0 -126
- package/esm2022/selection/selection-change-event.mjs +0 -5
- package/esm2022/template-directives/summary-task-template.directive.mjs +0 -43
- package/esm2022/template-directives/task-content-template.directive.mjs +0 -46
- package/esm2022/template-directives/task-drag-tooltip-template.directive.mjs +0 -47
- package/esm2022/template-directives/task-template.directive.mjs +0 -41
- package/esm2022/template-directives/task-tooltip-template.directive.mjs +0 -48
- package/esm2022/timeline/current-time-marker.service.mjs +0 -90
- package/esm2022/timeline/gantt-timeline.component.mjs +0 -624
- package/esm2022/timeline/timeline-base-view.service.mjs +0 -201
- package/esm2022/timeline/timeline-day-view.component.mjs +0 -49
- package/esm2022/timeline/timeline-day-view.service.mjs +0 -68
- package/esm2022/timeline/timeline-month-view.component.mjs +0 -49
- package/esm2022/timeline/timeline-month-view.service.mjs +0 -66
- package/esm2022/timeline/timeline-view.service.mjs +0 -38
- package/esm2022/timeline/timeline-week-view.component.mjs +0 -49
- package/esm2022/timeline/timeline-week-view.service.mjs +0 -62
- package/esm2022/timeline/timeline-year-view.component.mjs +0 -49
- package/esm2022/timeline/timeline-year-view.service.mjs +0 -57
- package/esm2022/timeline/view-base.mjs +0 -73
- package/esm2022/toolbar/toolbar-navigation.service.mjs +0 -29
- package/esm2022/toolbar/toolbar-template.directive.mjs +0 -56
- package/esm2022/toolbar/toolbar.component.mjs +0 -181
- package/esm2022/toolbar/view-selector.component.mjs +0 -112
- package/esm2022/utils.mjs +0 -311
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 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, TemplateRef, Optional } from '@angular/core';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* Represents the column template for edited cells in the Gantt.
|
|
9
|
-
*
|
|
10
|
-
* Use this directive to customize the content of edited cells. To define the cell template, nest an `<ng-template>`
|
|
11
|
-
* tag with the `kendoGanttEditTemplate` directive inside a `<kendo-gantt-column>` tag.
|
|
12
|
-
*
|
|
13
|
-
* The template context provides the following fields:
|
|
14
|
-
* - `column`—The current column instance.
|
|
15
|
-
* - `dataItem`—The current data item.
|
|
16
|
-
* - `cellContext`—An object for passing context information to built-in directives.
|
|
17
|
-
* - `formGroup`—The current [`FormGroup`](link:site.data.urls.angular['formgroupapi']). If you use the Gantt inside [Template-Driven Forms](link:site.data.urls.angular['forms']), it is `undefined`.
|
|
18
|
-
* - `isNew`—The state of the current item.
|
|
19
|
-
* - `rowIndex`—The current row index. If inside a new item row, `rowIndex` is `-1`.
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```html
|
|
23
|
-
* <kendo-gantt-column>
|
|
24
|
-
* <ng-template kendoGanttEditTemplate let-dataItem="dataItem" let-formGroup="formGroup">
|
|
25
|
-
* <input [formControl]="formGroup.get('field')" />
|
|
26
|
-
* </ng-template>
|
|
27
|
-
* </kendo-gantt-column>
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
export class EditTemplateDirective {
|
|
31
|
-
templateRef;
|
|
32
|
-
constructor(templateRef) {
|
|
33
|
-
this.templateRef = templateRef;
|
|
34
|
-
}
|
|
35
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EditTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
36
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: EditTemplateDirective, isStandalone: true, selector: "[kendoGanttEditTemplate]", ngImport: i0 });
|
|
37
|
-
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EditTemplateDirective, decorators: [{
|
|
39
|
-
type: Directive,
|
|
40
|
-
args: [{
|
|
41
|
-
selector: '[kendoGanttEditTemplate]',
|
|
42
|
-
standalone: true
|
|
43
|
-
}]
|
|
44
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef, decorators: [{
|
|
45
|
-
type: Optional
|
|
46
|
-
}] }] });
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 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, TemplateRef, Optional } from '@angular/core';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* @hidden
|
|
9
|
-
* Represents the filter-cell template.
|
|
10
|
-
*
|
|
11
|
-
* The template context is set to the filter descriptor and the following additional fields are passed:
|
|
12
|
-
* - `column`—The current column instance. Use it as an alias for a template variable by utilizing the `let-column="column"` syntax.
|
|
13
|
-
* - `filter`—The filter descriptor.
|
|
14
|
-
* - `cellContext`—An object used to pass context information to built-in directives.
|
|
15
|
-
*/
|
|
16
|
-
export class FilterCellTemplateDirective {
|
|
17
|
-
templateRef;
|
|
18
|
-
constructor(templateRef) {
|
|
19
|
-
this.templateRef = templateRef;
|
|
20
|
-
}
|
|
21
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterCellTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
22
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: FilterCellTemplateDirective, isStandalone: true, selector: "[kendoGanttFilterCellTemplate]", ngImport: i0 });
|
|
23
|
-
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterCellTemplateDirective, decorators: [{
|
|
25
|
-
type: Directive,
|
|
26
|
-
args: [{
|
|
27
|
-
selector: '[kendoGanttFilterCellTemplate]',
|
|
28
|
-
standalone: true
|
|
29
|
-
}]
|
|
30
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef, decorators: [{
|
|
31
|
-
type: Optional
|
|
32
|
-
}] }] });
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 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, TemplateRef, Optional } from '@angular/core';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* Represents the filter-menu template for the Gantt column.
|
|
9
|
-
*
|
|
10
|
-
* Use this directive to customize the filter menu for a column.
|
|
11
|
-
* The template context provides:
|
|
12
|
-
* - `column`—The current column instance. Use as an alias for a template variable with the `let-column="column"` syntax.
|
|
13
|
-
* - `filter`—The filter descriptor.
|
|
14
|
-
* - `cellContext`—An object for passing context information to built-in directives.
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```html
|
|
18
|
-
* <kendo-gantt-column>
|
|
19
|
-
* <ng-template kendoGanttFilterMenuTemplate let-column let-filter="filter">
|
|
20
|
-
* Custom filter for {{ column.field }}
|
|
21
|
-
* </ng-template>
|
|
22
|
-
* </kendo-gantt-column>
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
export class FilterMenuTemplateDirective {
|
|
26
|
-
templateRef;
|
|
27
|
-
constructor(templateRef) {
|
|
28
|
-
this.templateRef = templateRef;
|
|
29
|
-
}
|
|
30
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterMenuTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
31
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: FilterMenuTemplateDirective, isStandalone: true, selector: "[kendoGanttFilterMenuTemplate]", ngImport: i0 });
|
|
32
|
-
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterMenuTemplateDirective, decorators: [{
|
|
34
|
-
type: Directive,
|
|
35
|
-
args: [{
|
|
36
|
-
selector: '[kendoGanttFilterMenuTemplate]',
|
|
37
|
-
standalone: true
|
|
38
|
-
}]
|
|
39
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef, decorators: [{
|
|
40
|
-
type: Optional
|
|
41
|
-
}] }] });
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 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, TemplateRef, Optional } from '@angular/core';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* Represents the footer cell template of the Gantt columns.
|
|
9
|
-
*
|
|
10
|
-
* Use this directive to customize the table footer cell for a column.
|
|
11
|
-
* To define a footer template, nest an `<ng-template>` tag with the
|
|
12
|
-
* [`kendoGanttFooterTemplate`]({% slug api_gantt_footertemplatedirective %}) directive inside the `<kendo-gantt-column>` tag.
|
|
13
|
-
*
|
|
14
|
-
* The template context provides:
|
|
15
|
-
* * `column`—The current [`ColumnComponent`]({% slug api_gantt_ganttcolumncomponent %}).
|
|
16
|
-
* * `columnIndex`—The current column index.
|
|
17
|
-
* * `field`—The name of the column field, if set.
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```html
|
|
21
|
-
* <kendo-gantt-column>
|
|
22
|
-
* <ng-template kendoGanttFooterTemplate let-column let-columnIndex="columnIndex" let-field="field">
|
|
23
|
-
* Footer for {{ field }}
|
|
24
|
-
* </ng-template>
|
|
25
|
-
* </kendo-gantt-column>
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
export class FooterTemplateDirective {
|
|
29
|
-
templateRef;
|
|
30
|
-
constructor(templateRef) {
|
|
31
|
-
this.templateRef = templateRef;
|
|
32
|
-
}
|
|
33
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FooterTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
34
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: FooterTemplateDirective, isStandalone: true, selector: "[kendoGanttFooterTemplate]", ngImport: i0 });
|
|
35
|
-
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FooterTemplateDirective, decorators: [{
|
|
37
|
-
type: Directive,
|
|
38
|
-
args: [{
|
|
39
|
-
selector: '[kendoGanttFooterTemplate]',
|
|
40
|
-
standalone: true
|
|
41
|
-
}]
|
|
42
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef, decorators: [{
|
|
43
|
-
type: Optional
|
|
44
|
-
}] }] });
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 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, TemplateRef, Optional } from '@angular/core';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* Represents the header cell template of the Gantt columns.
|
|
9
|
-
*
|
|
10
|
-
* Use this directive to customize the table header cell for a column.
|
|
11
|
-
* To define a header template, nest an `<ng-template>` tag with the
|
|
12
|
-
* [`kendoGanttHeaderTemplate`]({% slug api_gantt_headertemplatedirective %}) directive inside the `<kendo-gantt-column>` tag.
|
|
13
|
-
*
|
|
14
|
-
* The template context provides:
|
|
15
|
-
* * `column`—The current [`ColumnComponent`]({% slug api_gantt_ganttcolumncomponent %}).
|
|
16
|
-
* * `columnIndex`—The current column index.
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```html
|
|
20
|
-
* <kendo-gantt-column>
|
|
21
|
-
* <ng-template kendoGanttHeaderTemplate let-column let-columnIndex="columnIndex">
|
|
22
|
-
* Custom Header for {{ column.field }} ({{ columnIndex }})
|
|
23
|
-
* </ng-template>
|
|
24
|
-
* </kendo-gantt-column>
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
export class HeaderTemplateDirective {
|
|
28
|
-
templateRef;
|
|
29
|
-
constructor(templateRef) {
|
|
30
|
-
this.templateRef = templateRef;
|
|
31
|
-
}
|
|
32
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
33
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: HeaderTemplateDirective, isStandalone: true, selector: "[kendoGanttHeaderTemplate]", ngImport: i0 });
|
|
34
|
-
}
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderTemplateDirective, decorators: [{
|
|
36
|
-
type: Directive,
|
|
37
|
-
args: [{
|
|
38
|
-
selector: '[kendoGanttHeaderTemplate]',
|
|
39
|
-
standalone: true
|
|
40
|
-
}]
|
|
41
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef, decorators: [{
|
|
42
|
-
type: Optional
|
|
43
|
-
}] }] });
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 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, ContentChildren, forwardRef, Host, Optional, QueryList, SkipSelf } from '@angular/core';
|
|
6
|
-
import { SpanColumnComponent } from '@progress/kendo-angular-treelist';
|
|
7
|
-
import { OptionChangesService } from '../common/option-changes.service';
|
|
8
|
-
import { CellTemplateDirective } from './cell-template.directive';
|
|
9
|
-
import { GanttColumnBase } from './column-base.component';
|
|
10
|
-
import { GanttColumnComponent } from './column.component';
|
|
11
|
-
import { EditTemplateDirective } from './edit-template.directive';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "../common/option-changes.service";
|
|
14
|
-
import * as i2 from "./column-base.component";
|
|
15
|
-
/**
|
|
16
|
-
* Represents the Gantt span column.
|
|
17
|
-
*
|
|
18
|
-
* Use this component to span row content over multiple column cells.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```html
|
|
22
|
-
* <kendo-gantt-span-column>
|
|
23
|
-
* <kendo-gantt-column field="id"></kendo-gantt-column>
|
|
24
|
-
* <kendo-gantt-column field="name"></kendo-gantt-column>
|
|
25
|
-
* </kendo-gantt-span-column>
|
|
26
|
-
* ```
|
|
27
|
-
*
|
|
28
|
-
* @remarks
|
|
29
|
-
* Supported children components are: {@link GanttColumnComponent}.
|
|
30
|
-
*/
|
|
31
|
-
export class GanttSpanColumnComponent extends SpanColumnComponent {
|
|
32
|
-
options;
|
|
33
|
-
/**
|
|
34
|
-
* @hidden
|
|
35
|
-
*/
|
|
36
|
-
childColumns = new QueryList();
|
|
37
|
-
template = new QueryList();
|
|
38
|
-
editTemplate = new QueryList();
|
|
39
|
-
constructor(options, parent) {
|
|
40
|
-
super(parent);
|
|
41
|
-
this.options = options;
|
|
42
|
-
}
|
|
43
|
-
ngOnChanges() {
|
|
44
|
-
this.options.notifyColumnChanges();
|
|
45
|
-
}
|
|
46
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GanttSpanColumnComponent, deps: [{ token: i1.OptionChangesService }, { token: i2.GanttColumnBase, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: GanttSpanColumnComponent, isStandalone: true, selector: "kendo-gantt-span-column", providers: [
|
|
48
|
-
{
|
|
49
|
-
provide: GanttColumnBase,
|
|
50
|
-
useExisting: forwardRef(() => GanttSpanColumnComponent)
|
|
51
|
-
}
|
|
52
|
-
], queries: [{ propertyName: "childColumns", predicate: GanttColumnComponent }, { propertyName: "template", predicate: CellTemplateDirective }, { propertyName: "editTemplate", predicate: EditTemplateDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
|
|
53
|
-
}
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GanttSpanColumnComponent, decorators: [{
|
|
55
|
-
type: Component,
|
|
56
|
-
args: [{
|
|
57
|
-
selector: 'kendo-gantt-span-column',
|
|
58
|
-
template: '',
|
|
59
|
-
providers: [
|
|
60
|
-
{
|
|
61
|
-
provide: GanttColumnBase,
|
|
62
|
-
useExisting: forwardRef(() => GanttSpanColumnComponent)
|
|
63
|
-
}
|
|
64
|
-
],
|
|
65
|
-
standalone: true
|
|
66
|
-
}]
|
|
67
|
-
}], ctorParameters: () => [{ type: i1.OptionChangesService }, { type: i2.GanttColumnBase, decorators: [{
|
|
68
|
-
type: SkipSelf
|
|
69
|
-
}, {
|
|
70
|
-
type: Host
|
|
71
|
-
}, {
|
|
72
|
-
type: Optional
|
|
73
|
-
}] }], propDecorators: { childColumns: [{
|
|
74
|
-
type: ContentChildren,
|
|
75
|
-
args: [GanttColumnComponent]
|
|
76
|
-
}], template: [{
|
|
77
|
-
type: ContentChildren,
|
|
78
|
-
args: [CellTemplateDirective, { descendants: false }]
|
|
79
|
-
}], editTemplate: [{
|
|
80
|
-
type: ContentChildren,
|
|
81
|
-
args: [EditTemplateDirective, { descendants: false }]
|
|
82
|
-
}] } });
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { of } from 'rxjs';
|
|
6
|
-
/**
|
|
7
|
-
* @hidden
|
|
8
|
-
*/
|
|
9
|
-
export const hasChildren = () => false;
|
|
10
|
-
/**
|
|
11
|
-
* @hidden
|
|
12
|
-
*/
|
|
13
|
-
export const fetchChildren = () => of([]);
|
|
14
|
-
/**
|
|
15
|
-
* @hidden
|
|
16
|
-
*/
|
|
17
|
-
export const rowClassCallback = () => null;
|
|
18
|
-
/**
|
|
19
|
-
* @hidden
|
|
20
|
-
*/
|
|
21
|
-
export const taskClassCallback = () => null;
|
|
22
|
-
/**
|
|
23
|
-
* @hidden
|
|
24
|
-
*/
|
|
25
|
-
export const isSelected = () => false;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Injectable } from '@angular/core';
|
|
6
|
-
import { getter } from '@progress/kendo-common';
|
|
7
|
-
import { DEFAULT_DEPENDENCY_MODEL_FIELDS } from '../models/gantt-dependency-model-fields.interface';
|
|
8
|
-
import { DEFAULT_TASK_MODEL_FIELDS } from '../models/gantt-task-model-fields.interface';
|
|
9
|
-
import { isPresent } from '../utils';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
/**
|
|
12
|
-
* @hidden
|
|
13
|
-
*/
|
|
14
|
-
export class MappingService {
|
|
15
|
-
/**
|
|
16
|
-
* Gets or sets the model fields for the task data items.
|
|
17
|
-
* Uses the default values for fields which are not specified.
|
|
18
|
-
*/
|
|
19
|
-
set taskFields(fields) {
|
|
20
|
-
this._taskFields = { ...DEFAULT_TASK_MODEL_FIELDS, ...fields };
|
|
21
|
-
}
|
|
22
|
-
get taskFields() {
|
|
23
|
-
return this._taskFields;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Gets or sets the model fields for the depenency data items.
|
|
27
|
-
* Uses the default values for fields which are not specified.
|
|
28
|
-
*/
|
|
29
|
-
set dependencyFields(fields) {
|
|
30
|
-
this._dependencyFields = { ...DEFAULT_DEPENDENCY_MODEL_FIELDS, ...fields };
|
|
31
|
-
}
|
|
32
|
-
get dependencyFields() {
|
|
33
|
-
return this._dependencyFields;
|
|
34
|
-
}
|
|
35
|
-
_taskFields = { ...DEFAULT_TASK_MODEL_FIELDS };
|
|
36
|
-
_dependencyFields = { ...DEFAULT_DEPENDENCY_MODEL_FIELDS };
|
|
37
|
-
/**
|
|
38
|
-
* Retrieves the value for the specified task field.
|
|
39
|
-
* Supports nested fields as well (e.g. 'manager.id').
|
|
40
|
-
*/
|
|
41
|
-
extractFromTask(dataItem, field) {
|
|
42
|
-
if (!isPresent(this.taskFields)) {
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
return getter(this.taskFields[field])(dataItem);
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Retrieves the value for the specified dependency field.
|
|
49
|
-
* Supports nested fields as well (e.g. 'manager.id').
|
|
50
|
-
*/
|
|
51
|
-
extractFromDependency(dataItem, field) {
|
|
52
|
-
if (!isPresent(this.dependencyFields)) {
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
return getter(this.dependencyFields[field])(dataItem);
|
|
56
|
-
}
|
|
57
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MappingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
58
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MappingService });
|
|
59
|
-
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MappingService, decorators: [{
|
|
61
|
-
type: Injectable
|
|
62
|
-
}] });
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Injectable, EventEmitter } from '@angular/core';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* @hidden
|
|
9
|
-
*/
|
|
10
|
-
export class OptionChangesService {
|
|
11
|
-
viewChanges = new EventEmitter();
|
|
12
|
-
columnChanges = new EventEmitter();
|
|
13
|
-
dateFormatChanges = new EventEmitter();
|
|
14
|
-
notifyColumnChanges() {
|
|
15
|
-
this.columnChanges.emit();
|
|
16
|
-
}
|
|
17
|
-
notifyViewChanges() {
|
|
18
|
-
this.viewChanges.emit();
|
|
19
|
-
}
|
|
20
|
-
notifyDateFormatChanges() {
|
|
21
|
-
this.dateFormatChanges.emit();
|
|
22
|
-
}
|
|
23
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OptionChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
24
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OptionChangesService });
|
|
25
|
-
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OptionChangesService, decorators: [{
|
|
27
|
-
type: Injectable
|
|
28
|
-
}] });
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Injectable } from '@angular/core';
|
|
6
|
-
import { Subject } from 'rxjs';
|
|
7
|
-
import { MappingService } from '../common/mapping.service';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "../common/mapping.service";
|
|
10
|
-
/**
|
|
11
|
-
* @hidden
|
|
12
|
-
*/
|
|
13
|
-
export class DependencyDomService {
|
|
14
|
-
mapper;
|
|
15
|
-
/**
|
|
16
|
-
* Emits each time some of the tasks or the view have changed.
|
|
17
|
-
* Fires also on the first change of the table rows and the parent container.
|
|
18
|
-
*/
|
|
19
|
-
get taskChanges() {
|
|
20
|
-
return this.notifier.asObservable();
|
|
21
|
-
}
|
|
22
|
-
get dependencyDomArgs() {
|
|
23
|
-
return {
|
|
24
|
-
tasks: this.tasks,
|
|
25
|
-
contentContainer: this.contentContainer,
|
|
26
|
-
timelineRow: this.timelineRow
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
notifier = new Subject();
|
|
30
|
-
/**
|
|
31
|
-
* The row element in the Timeline part of the Gantt.
|
|
32
|
-
*/
|
|
33
|
-
timelineRow;
|
|
34
|
-
/**
|
|
35
|
-
* Used to get retrieve the offset of the task elements relative to the parent container.
|
|
36
|
-
*/
|
|
37
|
-
contentContainer;
|
|
38
|
-
/**
|
|
39
|
-
* Maps each rendered task to its HTML element.
|
|
40
|
-
* Uses the task ID field value as key.
|
|
41
|
-
*/
|
|
42
|
-
tasks = new Map();
|
|
43
|
-
constructor(mapper) {
|
|
44
|
-
this.mapper = mapper;
|
|
45
|
-
}
|
|
46
|
-
ngOnDestroy() {
|
|
47
|
-
this.tasks.clear();
|
|
48
|
-
this.tasks = null;
|
|
49
|
-
this.contentContainer = null;
|
|
50
|
-
}
|
|
51
|
-
registerTimelineRow(timelineRow) {
|
|
52
|
-
this.timelineRow = timelineRow;
|
|
53
|
-
this.notifyChanges();
|
|
54
|
-
}
|
|
55
|
-
registerContentContainer(contentContainer) {
|
|
56
|
-
this.contentContainer = contentContainer;
|
|
57
|
-
this.notifyChanges();
|
|
58
|
-
}
|
|
59
|
-
registerTask(task, element) {
|
|
60
|
-
const id = this.mapper.extractFromTask(task, 'id');
|
|
61
|
-
this.tasks.set(id, element);
|
|
62
|
-
this.notifyChanges();
|
|
63
|
-
}
|
|
64
|
-
unregisterTask(task) {
|
|
65
|
-
const id = this.mapper.extractFromTask(task, 'id');
|
|
66
|
-
this.tasks.delete(id);
|
|
67
|
-
this.notifyChanges();
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Notifies all dependency directives that a change in one of the elements has occured.
|
|
71
|
-
*/
|
|
72
|
-
notifyChanges() {
|
|
73
|
-
this.notifier.next(this.dependencyDomArgs);
|
|
74
|
-
}
|
|
75
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DependencyDomService, deps: [{ token: i1.MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
76
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DependencyDomService });
|
|
77
|
-
}
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DependencyDomService, decorators: [{
|
|
79
|
-
type: Injectable
|
|
80
|
-
}], ctorParameters: () => [{ type: i1.MappingService }] });
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
export {};
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 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, ElementRef, Input, NgZone, Renderer2 } from '@angular/core';
|
|
6
|
-
import { Subscription } from 'rxjs';
|
|
7
|
-
import { map, switchMap, take } from 'rxjs/operators';
|
|
8
|
-
import { MappingService } from '../common/mapping.service';
|
|
9
|
-
import { DependencyDomService } from './dependency-dom.service';
|
|
10
|
-
import { isPresent } from '../utils';
|
|
11
|
-
import { dependencyCoordinates, getElementRect } from './utils';
|
|
12
|
-
import { isDocumentAvailable } from '@progress/kendo-angular-common';
|
|
13
|
-
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "../common/mapping.service";
|
|
15
|
-
import * as i2 from "./dependency-dom.service";
|
|
16
|
-
/**
|
|
17
|
-
* Defines the size of the arrow that will be drawn at the end of each Gantt dependency.
|
|
18
|
-
*/
|
|
19
|
-
const ARROW_SIZE = 4;
|
|
20
|
-
/**
|
|
21
|
-
* Defines the distance the polyline will cover from the task element before making a turn.
|
|
22
|
-
*/
|
|
23
|
-
const MIN_DISTANCE_BEFORE_TURN = 10;
|
|
24
|
-
/**
|
|
25
|
-
* @hidden
|
|
26
|
-
*/
|
|
27
|
-
export class GanttDependencyDirective {
|
|
28
|
-
polyline;
|
|
29
|
-
zone;
|
|
30
|
-
renderer;
|
|
31
|
-
mapper;
|
|
32
|
-
dependencyDomService;
|
|
33
|
-
dependency;
|
|
34
|
-
subscriptions = new Subscription();
|
|
35
|
-
constructor(polyline, zone, renderer, mapper, dependencyDomService) {
|
|
36
|
-
this.polyline = polyline;
|
|
37
|
-
this.zone = zone;
|
|
38
|
-
this.renderer = renderer;
|
|
39
|
-
this.mapper = mapper;
|
|
40
|
-
this.dependencyDomService = dependencyDomService;
|
|
41
|
-
this.subscriptions.add(dependencyDomService.taskChanges
|
|
42
|
-
.pipe(switchMap(changes =>
|
|
43
|
-
// reacts only on the very last event emission,
|
|
44
|
-
// ensures that the tasks are drawn in the DOM
|
|
45
|
-
this.zone.onStable.pipe(take(1), map(() => changes))))
|
|
46
|
-
.subscribe(changes => this.updatePoints(changes)));
|
|
47
|
-
}
|
|
48
|
-
ngOnDestroy() {
|
|
49
|
-
this.subscriptions.unsubscribe();
|
|
50
|
-
}
|
|
51
|
-
ngOnChanges(changes) {
|
|
52
|
-
if (isPresent(changes['dependency'])) {
|
|
53
|
-
this.updatePoints(this.dependencyDomService.dependencyDomArgs);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
updatePoints({ timelineRow, contentContainer, tasks }) {
|
|
57
|
-
if (!isPresent(timelineRow) || !isPresent(contentContainer) ||
|
|
58
|
-
!isPresent(tasks) || tasks.size === 0 ||
|
|
59
|
-
!tasks.has(this.mapper.extractFromDependency(this.dependency, 'fromId')) || !tasks.has(this.mapper.extractFromDependency(this.dependency, 'toId'))) {
|
|
60
|
-
this.clearPoints();
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
const fromCoordinates = getElementRect(tasks.get(this.mapper.extractFromDependency(this.dependency, 'fromId')), contentContainer);
|
|
64
|
-
const toCoordinates = getElementRect(tasks.get(this.mapper.extractFromDependency(this.dependency, 'toId')), contentContainer);
|
|
65
|
-
const timelineRowHeight = isDocumentAvailable() ? timelineRow.getBoundingClientRect().height : 0;
|
|
66
|
-
const points = dependencyCoordinates(fromCoordinates, toCoordinates, timelineRowHeight, this.dependency.type, MIN_DISTANCE_BEFORE_TURN, ARROW_SIZE);
|
|
67
|
-
this.drawPoints(points);
|
|
68
|
-
}
|
|
69
|
-
clearPoints() {
|
|
70
|
-
this.renderer.setAttribute(this.polyline.nativeElement, 'points', '');
|
|
71
|
-
}
|
|
72
|
-
drawPoints(points) {
|
|
73
|
-
if (!isPresent(points) || points.length === 0) {
|
|
74
|
-
this.clearPoints();
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
const parsedCoords = points.map(({ left, top }) => `${left},${top}`).join(' ');
|
|
78
|
-
this.renderer.setAttribute(this.polyline.nativeElement, 'points', parsedCoords);
|
|
79
|
-
}
|
|
80
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GanttDependencyDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.MappingService }, { token: i2.DependencyDomService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
81
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: GanttDependencyDirective, isStandalone: true, selector: "[kendoGanttDependency]", inputs: { dependency: "dependency" }, usesOnChanges: true, ngImport: i0 });
|
|
82
|
-
}
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GanttDependencyDirective, decorators: [{
|
|
84
|
-
type: Directive,
|
|
85
|
-
args: [{
|
|
86
|
-
selector: '[kendoGanttDependency]',
|
|
87
|
-
standalone: true
|
|
88
|
-
}]
|
|
89
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.MappingService }, { type: i2.DependencyDomService }], propDecorators: { dependency: [{
|
|
90
|
-
type: Input
|
|
91
|
-
}] } });
|