@progress/kendo-angular-gantt 0.1.5 → 0.2.0
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/dist/cdn/js/kendo-angular-gantt.js +2 -76
- package/dist/cdn/main.js +23 -1
- package/dist/es/columns/column.component.js +5 -0
- package/dist/es/columns/columns.js +1 -0
- package/dist/es/columns/edit-template.directive.js +34 -0
- package/dist/es/columns/span-column.component.js +6 -0
- package/dist/es/common/default-callbacks.js +4 -0
- package/dist/es/editing/edit-dialog.component.js +44 -0
- package/dist/es/editing/edit.service.js +39 -0
- package/dist/es/editing/util.js +17 -0
- package/dist/es/gantt.component.js +478 -22
- package/dist/es/gantt.module.js +62 -5
- package/dist/es/index.js +6 -0
- package/dist/es/localization/custom-messages.component.js +44 -0
- package/dist/es/localization/localized-messages.directive.js +35 -0
- package/dist/es/localization/messages.js +246 -0
- package/dist/es/localization/treelist-messages.directive.js +31 -0
- package/dist/es/main.js +1 -0
- package/dist/es/models/events/cell-click-event.interface.js +4 -0
- package/dist/es/models/events/cell-close-event.interface.js +19 -0
- package/dist/es/models/events/preventable-event.js +32 -0
- package/dist/es/models/events/task-click-event.interface.js +4 -0
- package/dist/es/models/events/task-edit-event.interface.js +4 -0
- package/dist/es/models/gantt-task-model-fields.interface.js +2 -1
- package/dist/es/package-metadata.js +1 -1
- package/dist/es/rendering/gantt-milestone-task.component.js +1 -1
- package/dist/es/rendering/gantt-summary-task.component.js +1 -1
- package/dist/es/rendering/gantt-task-base.js +8 -0
- package/dist/es/rendering/gantt-task.component.js +12 -4
- package/dist/es/rendering/gantt-tasks-table-body.component.js +5 -1
- package/dist/es/selection/selectable.directive.js +141 -0
- package/dist/es/selection/selection-change-event.js +4 -0
- package/dist/es/timeline/gantt-timeline.component.js +5 -1
- package/dist/es/toolbar/view-selector.component.js +7 -4
- package/dist/es/utils.js +48 -1
- package/dist/es2015/columns/column.component.d.ts +2 -0
- package/dist/es2015/columns/column.component.js +5 -0
- package/dist/es2015/columns/columns.d.ts +1 -0
- package/dist/es2015/columns/columns.js +1 -0
- package/dist/es2015/columns/edit-template.directive.d.ts +23 -0
- package/dist/es2015/columns/edit-template.directive.js +33 -0
- package/dist/es2015/columns/span-column.component.d.ts +2 -0
- package/dist/es2015/columns/span-column.component.js +6 -0
- package/dist/es2015/common/default-callbacks.d.ts +4 -0
- package/dist/es2015/common/default-callbacks.js +4 -0
- package/dist/es2015/editing/edit-dialog.component.d.ts +21 -0
- package/dist/es2015/editing/edit-dialog.component.js +86 -0
- package/dist/es2015/editing/edit.service.d.ts +20 -0
- package/dist/es2015/editing/edit.service.js +41 -0
- package/dist/es2015/editing/util.d.ts +10 -0
- package/dist/es2015/editing/util.js +17 -0
- package/dist/es2015/gantt.component.d.ts +236 -12
- package/dist/es2015/gantt.component.js +662 -21
- package/dist/es2015/gantt.module.d.ts +29 -1
- package/dist/es2015/gantt.module.js +62 -5
- package/dist/es2015/index.d.ts +6 -0
- package/dist/es2015/index.js +6 -0
- package/dist/es2015/index.metadata.json +1 -1
- package/dist/es2015/localization/custom-messages.component.d.ts +15 -0
- package/dist/es2015/localization/custom-messages.component.js +36 -0
- package/dist/es2015/localization/localized-messages.directive.d.ts +13 -0
- package/dist/es2015/localization/localized-messages.directive.js +31 -0
- package/dist/es2015/localization/messages.d.ts +246 -0
- package/dist/es2015/localization/messages.js +240 -0
- package/dist/es2015/localization/treelist-messages.directive.d.ts +14 -0
- package/dist/es2015/localization/treelist-messages.directive.js +29 -0
- package/dist/es2015/main.d.ts +2 -0
- package/dist/es2015/main.js +1 -0
- package/dist/es2015/models/events/cell-click-event.interface.d.ts +43 -0
- package/dist/es2015/models/events/cell-click-event.interface.js +4 -0
- package/dist/es2015/models/events/cell-close-event.interface.d.ts +48 -0
- package/dist/es2015/models/events/cell-close-event.interface.js +14 -0
- package/dist/es2015/models/events/preventable-event.d.ts +24 -0
- package/dist/es2015/models/events/preventable-event.js +30 -0
- package/dist/es2015/models/events/task-click-event.interface.d.ts +30 -0
- package/dist/es2015/models/events/task-click-event.interface.js +4 -0
- package/dist/es2015/models/events/task-edit-event.interface.d.ts +46 -0
- package/dist/es2015/models/events/task-edit-event.interface.js +4 -0
- package/dist/es2015/models/gantt-task-model-fields.interface.d.ts +1 -0
- package/dist/es2015/models/gantt-task-model-fields.interface.js +2 -1
- package/dist/es2015/models/models.d.ts +2 -0
- package/dist/es2015/package-metadata.js +1 -1
- package/dist/es2015/rendering/gantt-milestone-task.component.js +2 -0
- package/dist/es2015/rendering/gantt-summary-task.component.js +2 -0
- package/dist/es2015/rendering/gantt-task-base.d.ts +2 -0
- package/dist/es2015/rendering/gantt-task-base.js +8 -0
- package/dist/es2015/rendering/gantt-task.component.d.ts +4 -1
- package/dist/es2015/rendering/gantt-task.component.js +18 -2
- package/dist/es2015/rendering/gantt-tasks-table-body.component.d.ts +1 -0
- package/dist/es2015/rendering/gantt-tasks-table-body.component.js +11 -1
- package/dist/es2015/selection/selectable.directive.d.ts +42 -0
- package/dist/es2015/selection/selectable.directive.js +122 -0
- package/dist/es2015/selection/selection-change-event.d.ts +25 -0
- package/dist/es2015/selection/selection-change-event.js +4 -0
- package/dist/es2015/timeline/gantt-timeline.component.d.ts +1 -0
- package/dist/es2015/timeline/gantt-timeline.component.js +5 -0
- package/dist/es2015/toolbar/view-selector.component.d.ts +3 -0
- package/dist/es2015/toolbar/view-selector.component.js +8 -7
- package/dist/es2015/utils.d.ts +39 -0
- package/dist/es2015/utils.js +48 -1
- package/dist/fesm2015/index.js +1388 -35
- package/dist/fesm5/index.js +1191 -45
- package/dist/npm/columns/column.component.js +5 -0
- package/dist/npm/columns/columns.js +2 -0
- package/dist/npm/columns/edit-template.directive.js +36 -0
- package/dist/npm/columns/span-column.component.js +6 -0
- package/dist/npm/common/default-callbacks.js +4 -0
- package/dist/npm/editing/edit-dialog.component.js +46 -0
- package/dist/npm/editing/edit.service.js +41 -0
- package/dist/npm/editing/util.js +19 -0
- package/dist/npm/gantt.component.js +475 -19
- package/dist/npm/gantt.module.js +61 -4
- package/dist/npm/index.js +12 -0
- package/dist/npm/localization/custom-messages.component.js +46 -0
- package/dist/npm/localization/localized-messages.directive.js +37 -0
- package/dist/npm/localization/messages.js +248 -0
- package/dist/npm/localization/treelist-messages.directive.js +33 -0
- package/dist/npm/main.js +2 -0
- package/dist/npm/models/events/cell-click-event.interface.js +6 -0
- package/dist/npm/models/events/cell-close-event.interface.js +21 -0
- package/dist/npm/models/events/preventable-event.js +34 -0
- package/dist/npm/models/events/task-click-event.interface.js +6 -0
- package/dist/npm/models/events/task-edit-event.interface.js +6 -0
- package/dist/npm/models/gantt-task-model-fields.interface.js +2 -1
- package/dist/npm/package-metadata.js +1 -1
- package/dist/npm/rendering/gantt-milestone-task.component.js +1 -1
- package/dist/npm/rendering/gantt-summary-task.component.js +1 -1
- package/dist/npm/rendering/gantt-task-base.js +8 -0
- package/dist/npm/rendering/gantt-task.component.js +12 -4
- package/dist/npm/rendering/gantt-tasks-table-body.component.js +5 -1
- package/dist/npm/selection/selectable.directive.js +143 -0
- package/dist/npm/selection/selection-change-event.js +6 -0
- package/dist/npm/timeline/gantt-timeline.component.js +5 -1
- package/dist/npm/toolbar/view-selector.component.js +7 -4
- package/dist/npm/utils.js +47 -0
- package/dist/systemjs/kendo-angular-gantt.js +1 -1
- package/package.json +5 -2
|
@@ -0,0 +1,4 @@
|
|
|
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
|
+
*-------------------------------------------------------------------------------------------*/
|
|
@@ -0,0 +1,48 @@
|
|
|
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 { GanttComponent } from '../../main';
|
|
6
|
+
import { PreventableEvent } from './preventable-event';
|
|
7
|
+
import { TaskEditItem } from './task-edit-event.interface';
|
|
8
|
+
/**
|
|
9
|
+
* Called every time a user leaves an edited cell.
|
|
10
|
+
*/
|
|
11
|
+
export declare class CellCloseEvent extends PreventableEvent {
|
|
12
|
+
/**
|
|
13
|
+
* The data item.
|
|
14
|
+
*/
|
|
15
|
+
dataItem: any;
|
|
16
|
+
/**
|
|
17
|
+
* Indicates if the data item is new or existing.
|
|
18
|
+
*/
|
|
19
|
+
isNew: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* The data row index for the operation.
|
|
22
|
+
*/
|
|
23
|
+
rowIndex: number;
|
|
24
|
+
/**
|
|
25
|
+
* The Gantt column that will be closed.
|
|
26
|
+
*/
|
|
27
|
+
column: any;
|
|
28
|
+
/**
|
|
29
|
+
* The [`FormGroup`]({{ site.data.urls.angular['formgroupapi'] }}) that is used to edit the cell which will be closed.
|
|
30
|
+
*/
|
|
31
|
+
formGroup: any;
|
|
32
|
+
/**
|
|
33
|
+
* The DOM event that caused the `cellClose` event.
|
|
34
|
+
* May not be present if `cellClose` was caused by an API call.
|
|
35
|
+
*/
|
|
36
|
+
originalEvent: any;
|
|
37
|
+
/**
|
|
38
|
+
* The `GanttComponent` instance.
|
|
39
|
+
*/
|
|
40
|
+
sender: GanttComponent;
|
|
41
|
+
/**
|
|
42
|
+
* The `TaskEditItem` associated with the edited task.
|
|
43
|
+
* The parent item is accessible through the `parent` property,
|
|
44
|
+
* and allows traversing all ancestors that need to be updated.
|
|
45
|
+
*/
|
|
46
|
+
item: TaskEditItem;
|
|
47
|
+
constructor(options: any);
|
|
48
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
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 { PreventableEvent } from './preventable-event';
|
|
6
|
+
/**
|
|
7
|
+
* Called every time a user leaves an edited cell.
|
|
8
|
+
*/
|
|
9
|
+
export class CellCloseEvent extends PreventableEvent {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
super();
|
|
12
|
+
Object.assign(this, options);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
+
/**
|
|
6
|
+
* @hidden
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class PreventableEvent {
|
|
9
|
+
private prevented;
|
|
10
|
+
/**
|
|
11
|
+
* Prevents the default action for a specified event.
|
|
12
|
+
* In this way, the source component suppresses
|
|
13
|
+
* the built-in behavior that follows the event.
|
|
14
|
+
*/
|
|
15
|
+
preventDefault(): void;
|
|
16
|
+
/**
|
|
17
|
+
* Returns `true` if the event was prevented
|
|
18
|
+
* by any of its subscribers.
|
|
19
|
+
*
|
|
20
|
+
* @returns `true` if the default action was prevented.
|
|
21
|
+
* Otherwise, returns `false`.
|
|
22
|
+
*/
|
|
23
|
+
isDefaultPrevented(): boolean;
|
|
24
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
/**
|
|
6
|
+
* @hidden
|
|
7
|
+
*/
|
|
8
|
+
export class PreventableEvent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.prevented = false;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Prevents the default action for a specified event.
|
|
14
|
+
* In this way, the source component suppresses
|
|
15
|
+
* the built-in behavior that follows the event.
|
|
16
|
+
*/
|
|
17
|
+
preventDefault() {
|
|
18
|
+
this.prevented = true;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Returns `true` if the event was prevented
|
|
22
|
+
* by any of its subscribers.
|
|
23
|
+
*
|
|
24
|
+
* @returns `true` if the default action was prevented.
|
|
25
|
+
* Otherwise, returns `false`.
|
|
26
|
+
*/
|
|
27
|
+
isDefaultPrevented() {
|
|
28
|
+
return this.prevented;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
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 { GanttComponent } from '../../gantt.component';
|
|
6
|
+
/**
|
|
7
|
+
* Triggered every time a task is clicked.
|
|
8
|
+
*/
|
|
9
|
+
export interface TaskClickEvent {
|
|
10
|
+
/**
|
|
11
|
+
* The DOM event that triggered the `taskClick` event.
|
|
12
|
+
*/
|
|
13
|
+
originalEvent: PointerEvent;
|
|
14
|
+
/**
|
|
15
|
+
* The data item associated with the clicked task.
|
|
16
|
+
*/
|
|
17
|
+
dataItem: any;
|
|
18
|
+
/**
|
|
19
|
+
* The Gantt component instance.
|
|
20
|
+
*/
|
|
21
|
+
sender: GanttComponent;
|
|
22
|
+
/**
|
|
23
|
+
* The row index for the clicked task.
|
|
24
|
+
*/
|
|
25
|
+
rowIndex: number;
|
|
26
|
+
/**
|
|
27
|
+
* The type of the event that triggered the `taskClick` event.
|
|
28
|
+
*/
|
|
29
|
+
type: 'click' | 'contextmenu' | 'dblclick';
|
|
30
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
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
|
+
*-------------------------------------------------------------------------------------------*/
|
|
@@ -0,0 +1,46 @@
|
|
|
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 { FormGroup } from "@angular/forms";
|
|
6
|
+
import { GanttComponent } from "../../gantt.component";
|
|
7
|
+
/**
|
|
8
|
+
* The event data for the task editing events.
|
|
9
|
+
*/
|
|
10
|
+
export interface TaskEditEvent {
|
|
11
|
+
/**
|
|
12
|
+
* The `TaskEditItem` associated with the edited task.
|
|
13
|
+
* The parent item is accessible through the `parent` property,
|
|
14
|
+
* and allows traversing all ancestors that need to be updated.
|
|
15
|
+
*/
|
|
16
|
+
item: TaskEditItem;
|
|
17
|
+
/**
|
|
18
|
+
* The FormGroup instance associated with the edited task.
|
|
19
|
+
*/
|
|
20
|
+
formGroup?: FormGroup;
|
|
21
|
+
/**
|
|
22
|
+
* The GanttComponent instance.
|
|
23
|
+
*/
|
|
24
|
+
sender: GanttComponent;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The `TaskEditItem` associated with the edited task.
|
|
28
|
+
* The parent item is accessible through the `parent` property,
|
|
29
|
+
* and allows traversing all ancestors that need to be updated.
|
|
30
|
+
*/
|
|
31
|
+
export declare type TaskEditItem = {
|
|
32
|
+
dataItem: any;
|
|
33
|
+
parent?: TaskEditItem;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* @hidden
|
|
37
|
+
*/
|
|
38
|
+
export declare type EditResultType = 'save' | 'remove' | 'cancel';
|
|
39
|
+
/**
|
|
40
|
+
* @hidden
|
|
41
|
+
*/
|
|
42
|
+
export interface EditEvent {
|
|
43
|
+
formGroup: FormGroup;
|
|
44
|
+
dataItem: any;
|
|
45
|
+
editResultType: EditResultType;
|
|
46
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
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
|
+
*-------------------------------------------------------------------------------------------*/
|
|
@@ -28,6 +28,8 @@ export { TaskResizeEndEvent } from './events/task-resize-end-event.interface';
|
|
|
28
28
|
export { TaskResizeEvent } from './events/task-resize-event.interface';
|
|
29
29
|
export { TaskResizeStartEvent } from './events/task-resize-start-event.interface';
|
|
30
30
|
export { DataStateChangeEvent } from './events/data-state-change-event.interface';
|
|
31
|
+
export { CellClickEvent } from './events/cell-click-event.interface';
|
|
32
|
+
export { TaskClickEvent } from './events/task-click-event.interface';
|
|
31
33
|
export { ColumnLockedChangeEvent } from './events/column-locked-change-event.interface';
|
|
32
34
|
export { ColumnReorderEvent } from './events/column-reorder-event.interface';
|
|
33
35
|
export { ColumnResizeEvent } from './events/column-resize-event.interface';
|
|
@@ -9,7 +9,7 @@ export const packageMetadata = {
|
|
|
9
9
|
name: '@progress/kendo-angular-gantt',
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
|
11
11
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
12
|
-
publishDate:
|
|
12
|
+
publishDate: 1638864709,
|
|
13
13
|
version: '',
|
|
14
14
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
|
|
15
15
|
};
|
|
@@ -39,6 +39,8 @@ GanttMilestoneTaskComponent = GanttMilestoneTaskComponent_1 = tslib_1.__decorate
|
|
|
39
39
|
[ngClass]="taskClass(dataItem)"
|
|
40
40
|
[style.left.px]="taskOffset"
|
|
41
41
|
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
42
|
+
[class.k-state-selected]="isSelected(dataItem)"
|
|
43
|
+
[attr.data-task-index]="index"
|
|
42
44
|
>
|
|
43
45
|
</div>
|
|
44
46
|
`
|
|
@@ -44,6 +44,8 @@ GanttSummaryTaskComponent = GanttSummaryTaskComponent_1 = tslib_1.__decorate([
|
|
|
44
44
|
[style.width.px]="taskWidth"
|
|
45
45
|
[style.left.px]="taskOffset"
|
|
46
46
|
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
47
|
+
[attr.data-task-index]="index"
|
|
48
|
+
[class.k-state-selected]="isSelected(dataItem)"
|
|
47
49
|
>
|
|
48
50
|
<div *ngIf="!template; else summaryTemplate"
|
|
49
51
|
class="k-task-summary-progress"
|
|
@@ -24,6 +24,8 @@ export declare abstract class GanttTaskBase {
|
|
|
24
24
|
*/
|
|
25
25
|
taskElement: ElementRef<HTMLElement>;
|
|
26
26
|
dataItem: any;
|
|
27
|
+
index: number;
|
|
28
|
+
isSelected: (dataItem: object) => boolean;
|
|
27
29
|
activeView: TimelineViewType;
|
|
28
30
|
taskClass: TaskClassFn;
|
|
29
31
|
private viewChangesSubscription;
|
|
@@ -85,6 +85,14 @@ tslib_1.__decorate([
|
|
|
85
85
|
Input(),
|
|
86
86
|
tslib_1.__metadata("design:type", Object)
|
|
87
87
|
], GanttTaskBase.prototype, "dataItem", void 0);
|
|
88
|
+
tslib_1.__decorate([
|
|
89
|
+
Input(),
|
|
90
|
+
tslib_1.__metadata("design:type", Number)
|
|
91
|
+
], GanttTaskBase.prototype, "index", void 0);
|
|
92
|
+
tslib_1.__decorate([
|
|
93
|
+
Input(),
|
|
94
|
+
tslib_1.__metadata("design:type", Function)
|
|
95
|
+
], GanttTaskBase.prototype, "isSelected", void 0);
|
|
88
96
|
tslib_1.__decorate([
|
|
89
97
|
Input(),
|
|
90
98
|
tslib_1.__metadata("design:type", String)
|
|
@@ -8,11 +8,14 @@ import { DependencyDomService } from '../dependencies/dependency-dom.service';
|
|
|
8
8
|
import { OptionChangesService } from '../common/option-changes.service';
|
|
9
9
|
import { TimelineViewService } from './../timeline/timeline-view.service';
|
|
10
10
|
import { GanttTaskBase } from './gantt-task-base';
|
|
11
|
+
import { EditService } from '../editing/edit.service';
|
|
11
12
|
/**
|
|
12
13
|
* @hidden
|
|
13
14
|
*/
|
|
14
15
|
export declare class GanttTaskComponent extends GanttTaskBase {
|
|
16
|
+
private editService;
|
|
15
17
|
taskContentTemplate: TemplateRef<any>;
|
|
16
18
|
taskTemplate: TemplateRef<any>;
|
|
17
|
-
constructor(mapper: MappingService, timelineViewService: TimelineViewService, dependencyDomService: DependencyDomService, optionChangesService: OptionChangesService, cdr: ChangeDetectorRef);
|
|
19
|
+
constructor(mapper: MappingService, timelineViewService: TimelineViewService, dependencyDomService: DependencyDomService, optionChangesService: OptionChangesService, cdr: ChangeDetectorRef, editService: EditService);
|
|
20
|
+
onTaskDelete(): void;
|
|
18
21
|
}
|
|
@@ -10,12 +10,18 @@ import { DependencyDomService } from '../dependencies/dependency-dom.service';
|
|
|
10
10
|
import { OptionChangesService } from '../common/option-changes.service';
|
|
11
11
|
import { TimelineViewService } from './../timeline/timeline-view.service';
|
|
12
12
|
import { GanttTaskBase } from './gantt-task-base';
|
|
13
|
+
import { EditService } from '../editing/edit.service';
|
|
13
14
|
/**
|
|
14
15
|
* @hidden
|
|
15
16
|
*/
|
|
16
17
|
let GanttTaskComponent = GanttTaskComponent_1 = class GanttTaskComponent extends GanttTaskBase {
|
|
17
|
-
constructor(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr) {
|
|
18
|
+
constructor(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, editService) {
|
|
18
19
|
super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr);
|
|
20
|
+
this.editService = editService;
|
|
21
|
+
}
|
|
22
|
+
onTaskDelete() {
|
|
23
|
+
this.editService.dataItem = this.dataItem;
|
|
24
|
+
this.editService.showConfirmationDialog.next();
|
|
19
25
|
}
|
|
20
26
|
};
|
|
21
27
|
tslib_1.__decorate([
|
|
@@ -43,6 +49,8 @@ GanttTaskComponent = GanttTaskComponent_1 = tslib_1.__decorate([
|
|
|
43
49
|
[style.width.px]="taskWidth"
|
|
44
50
|
[style.left.px]="taskOffset"
|
|
45
51
|
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
52
|
+
[attr.data-task-index]="index"
|
|
53
|
+
[class.k-state-selected]="isSelected(dataItem)"
|
|
46
54
|
>
|
|
47
55
|
<ng-container *ngIf="!taskTemplate">
|
|
48
56
|
<div
|
|
@@ -62,6 +70,13 @@ GanttTaskComponent = GanttTaskComponent_1 = tslib_1.__decorate([
|
|
|
62
70
|
>
|
|
63
71
|
</ng-template>
|
|
64
72
|
</div>
|
|
73
|
+
<span class="k-task-actions">
|
|
74
|
+
<span
|
|
75
|
+
(click)="onTaskDelete()"
|
|
76
|
+
class="k-link k-task-delete">
|
|
77
|
+
<span class="k-icon k-i-close"></span>
|
|
78
|
+
</span>
|
|
79
|
+
</span>
|
|
65
80
|
</div>
|
|
66
81
|
</ng-container>
|
|
67
82
|
<ng-template
|
|
@@ -80,6 +95,7 @@ GanttTaskComponent = GanttTaskComponent_1 = tslib_1.__decorate([
|
|
|
80
95
|
TimelineViewService,
|
|
81
96
|
DependencyDomService,
|
|
82
97
|
OptionChangesService,
|
|
83
|
-
ChangeDetectorRef
|
|
98
|
+
ChangeDetectorRef,
|
|
99
|
+
EditService])
|
|
84
100
|
], GanttTaskComponent);
|
|
85
101
|
export { GanttTaskComponent };
|
|
@@ -21,6 +21,7 @@ export declare class GanttTasksTableBodyComponent {
|
|
|
21
21
|
summaryTaskTemplate: TemplateRef<any>;
|
|
22
22
|
taskClass: TaskClassFn;
|
|
23
23
|
hasChildren: (item: object) => boolean;
|
|
24
|
+
isTaskSelected: (item: object) => boolean;
|
|
24
25
|
constructor(dependencyDomService: DependencyDomService, mapper: MappingService);
|
|
25
26
|
isMileStone(task: any): boolean;
|
|
26
27
|
}
|
|
@@ -60,17 +60,23 @@ tslib_1.__decorate([
|
|
|
60
60
|
Input(),
|
|
61
61
|
tslib_1.__metadata("design:type", Function)
|
|
62
62
|
], GanttTasksTableBodyComponent.prototype, "hasChildren", void 0);
|
|
63
|
+
tslib_1.__decorate([
|
|
64
|
+
Input(),
|
|
65
|
+
tslib_1.__metadata("design:type", Function)
|
|
66
|
+
], GanttTasksTableBodyComponent.prototype, "isTaskSelected", void 0);
|
|
63
67
|
GanttTasksTableBodyComponent = tslib_1.__decorate([
|
|
64
68
|
Component({
|
|
65
69
|
selector: '[kendoGanttTasksTableBody]',
|
|
66
70
|
template: `
|
|
67
|
-
<tr #timelineRow *ngFor="let item of rows">
|
|
71
|
+
<tr #timelineRow *ngFor="let item of rows; let index = index">
|
|
68
72
|
<td>
|
|
69
73
|
<kendo-gantt-milestone-task
|
|
70
74
|
*ngIf="isMileStone(item); else task"
|
|
71
75
|
[dataItem]="item"
|
|
72
76
|
[activeView]="activeView"
|
|
73
77
|
[taskClass]="taskClass"
|
|
78
|
+
[isSelected]="isTaskSelected"
|
|
79
|
+
[index]="index"
|
|
74
80
|
>
|
|
75
81
|
</kendo-gantt-milestone-task>
|
|
76
82
|
<ng-template #task>
|
|
@@ -80,6 +86,8 @@ GanttTasksTableBodyComponent = tslib_1.__decorate([
|
|
|
80
86
|
[template]="summaryTaskTemplate"
|
|
81
87
|
[activeView]="activeView"
|
|
82
88
|
[taskClass]="taskClass"
|
|
89
|
+
[isSelected]="isTaskSelected"
|
|
90
|
+
[index]="index"
|
|
83
91
|
>
|
|
84
92
|
</kendo-gantt-summary-task>
|
|
85
93
|
<kendo-gantt-task
|
|
@@ -89,6 +97,8 @@ GanttTasksTableBodyComponent = tslib_1.__decorate([
|
|
|
89
97
|
[taskTemplate]="taskTemplate"
|
|
90
98
|
[activeView]="activeView"
|
|
91
99
|
[taskClass]="taskClass"
|
|
100
|
+
[isSelected]="isTaskSelected"
|
|
101
|
+
[index]="index"
|
|
92
102
|
>
|
|
93
103
|
</kendo-gantt-task>
|
|
94
104
|
</ng-template>
|
|
@@ -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 { OnDestroy, EventEmitter } from '@angular/core';
|
|
6
|
+
import { GanttComponent } from '../gantt.component';
|
|
7
|
+
/**
|
|
8
|
+
* A directive which handles the [`selectionChange`]({% slug api_gantt_ganttcomponent %}#toc-selectionchange) event of the Gantt
|
|
9
|
+
* ([see example]({% slug selection_gantt %}#toc-built-in-directive))
|
|
10
|
+
*/
|
|
11
|
+
export declare class SelectableDirective implements OnDestroy {
|
|
12
|
+
private gantt;
|
|
13
|
+
/**
|
|
14
|
+
* @hidden
|
|
15
|
+
*/
|
|
16
|
+
selectable: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Sets the selected keys.
|
|
19
|
+
*/
|
|
20
|
+
selectedKeys: any[];
|
|
21
|
+
/**
|
|
22
|
+
* Fires when the selected keys are changed.
|
|
23
|
+
*/
|
|
24
|
+
selectedKeysChange: EventEmitter<any[]>;
|
|
25
|
+
/**
|
|
26
|
+
* The field name or a function that specifies the data item unique key identifier.
|
|
27
|
+
* By default, the string field `id` is used.
|
|
28
|
+
*/
|
|
29
|
+
itemKey: string | ((dataItem: any) => any);
|
|
30
|
+
private readonly keyGetter;
|
|
31
|
+
private selectionSubscription;
|
|
32
|
+
private state;
|
|
33
|
+
private lastChange;
|
|
34
|
+
private _keyGetter;
|
|
35
|
+
constructor(gantt: GanttComponent);
|
|
36
|
+
ngOnDestroy(): void;
|
|
37
|
+
private isSelected;
|
|
38
|
+
private selectionChange;
|
|
39
|
+
private emitSelectedItemsChange;
|
|
40
|
+
private subscribeSelection;
|
|
41
|
+
private unsubscribeSelection;
|
|
42
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
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 * as tslib_1 from "tslib";
|
|
6
|
+
import { Directive, Input, Output, EventEmitter } from '@angular/core';
|
|
7
|
+
import { getter } from '@progress/kendo-common';
|
|
8
|
+
import { GanttComponent } from '../gantt.component';
|
|
9
|
+
import { isPresent, isString } from '../utils';
|
|
10
|
+
/**
|
|
11
|
+
* A directive which handles the [`selectionChange`]({% slug api_gantt_ganttcomponent %}#toc-selectionchange) event of the Gantt
|
|
12
|
+
* ([see example]({% slug selection_gantt %}#toc-built-in-directive))
|
|
13
|
+
*/
|
|
14
|
+
let SelectableDirective = class SelectableDirective {
|
|
15
|
+
constructor(gantt) {
|
|
16
|
+
this.gantt = gantt;
|
|
17
|
+
/**
|
|
18
|
+
* Fires when the selected keys are changed.
|
|
19
|
+
*/
|
|
20
|
+
this.selectedKeysChange = new EventEmitter();
|
|
21
|
+
this.state = new Set();
|
|
22
|
+
this.isSelected = this.isSelected.bind(this);
|
|
23
|
+
this.selectionChange = this.selectionChange.bind(this);
|
|
24
|
+
this.selectable = true;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* @hidden
|
|
28
|
+
*/
|
|
29
|
+
set selectable(value) {
|
|
30
|
+
if (value) {
|
|
31
|
+
this.gantt.isSelected = this.isSelected;
|
|
32
|
+
this.subscribeSelection();
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.gantt.isSelected = () => false;
|
|
36
|
+
this.unsubscribeSelection();
|
|
37
|
+
}
|
|
38
|
+
this.gantt.selectable = value;
|
|
39
|
+
this.gantt.updateView();
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Sets the selected keys.
|
|
43
|
+
*/
|
|
44
|
+
set selectedKeys(value) {
|
|
45
|
+
if (isPresent(value) && value === this.lastChange) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
// prevent multiple items displayed as selected as multiple selection still not supported fully
|
|
49
|
+
const keys = (value || []).slice(0, 1);
|
|
50
|
+
this.state = new Set(keys);
|
|
51
|
+
this.gantt.updateView();
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The field name or a function that specifies the data item unique key identifier.
|
|
55
|
+
* By default, the string field `id` is used.
|
|
56
|
+
*/
|
|
57
|
+
set itemKey(value) {
|
|
58
|
+
if (isString(value)) {
|
|
59
|
+
this._keyGetter = getter(value);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this._keyGetter = value;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
get keyGetter() {
|
|
66
|
+
return this._keyGetter || this.gantt.idGetter;
|
|
67
|
+
}
|
|
68
|
+
ngOnDestroy() {
|
|
69
|
+
this.unsubscribeSelection();
|
|
70
|
+
}
|
|
71
|
+
isSelected(dataItem) {
|
|
72
|
+
return this.state.has(this.keyGetter(dataItem));
|
|
73
|
+
}
|
|
74
|
+
selectionChange({ action, items }) {
|
|
75
|
+
this.state.clear();
|
|
76
|
+
if (action === 'select') {
|
|
77
|
+
items.forEach(item => this.state.add(this.keyGetter(item)));
|
|
78
|
+
}
|
|
79
|
+
this.emitSelectedItemsChange();
|
|
80
|
+
}
|
|
81
|
+
emitSelectedItemsChange() {
|
|
82
|
+
this.lastChange = Array.from(this.state);
|
|
83
|
+
this.selectedKeysChange.emit(this.lastChange);
|
|
84
|
+
}
|
|
85
|
+
subscribeSelection() {
|
|
86
|
+
this.unsubscribeSelection();
|
|
87
|
+
this.selectionSubscription = this.gantt.selectionChange.subscribe(this.selectionChange);
|
|
88
|
+
}
|
|
89
|
+
unsubscribeSelection() {
|
|
90
|
+
if (this.selectionSubscription) {
|
|
91
|
+
this.selectionSubscription.unsubscribe();
|
|
92
|
+
this.selectionSubscription = null;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
tslib_1.__decorate([
|
|
97
|
+
Input(),
|
|
98
|
+
tslib_1.__metadata("design:type", Boolean),
|
|
99
|
+
tslib_1.__metadata("design:paramtypes", [Boolean])
|
|
100
|
+
], SelectableDirective.prototype, "selectable", null);
|
|
101
|
+
tslib_1.__decorate([
|
|
102
|
+
Input(),
|
|
103
|
+
tslib_1.__metadata("design:type", Array),
|
|
104
|
+
tslib_1.__metadata("design:paramtypes", [Array])
|
|
105
|
+
], SelectableDirective.prototype, "selectedKeys", null);
|
|
106
|
+
tslib_1.__decorate([
|
|
107
|
+
Output(),
|
|
108
|
+
tslib_1.__metadata("design:type", EventEmitter)
|
|
109
|
+
], SelectableDirective.prototype, "selectedKeysChange", void 0);
|
|
110
|
+
tslib_1.__decorate([
|
|
111
|
+
Input(),
|
|
112
|
+
tslib_1.__metadata("design:type", Object),
|
|
113
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
114
|
+
], SelectableDirective.prototype, "itemKey", null);
|
|
115
|
+
SelectableDirective = tslib_1.__decorate([
|
|
116
|
+
Directive({
|
|
117
|
+
exportAs: 'kendoGanttSelectable',
|
|
118
|
+
selector: '[kendoGanttSelectable]'
|
|
119
|
+
}),
|
|
120
|
+
tslib_1.__metadata("design:paramtypes", [GanttComponent])
|
|
121
|
+
], SelectableDirective);
|
|
122
|
+
export { SelectableDirective };
|
|
@@ -0,0 +1,25 @@
|
|
|
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 { GanttComponent } from '../gantt.component';
|
|
6
|
+
/**
|
|
7
|
+
* Arguments for the Gantt [`selectionChange`]({% slug api_gantt_ganttcomponent %}#toc-selectionchange) event.
|
|
8
|
+
*/
|
|
9
|
+
export interface SelectionChangeEvent {
|
|
10
|
+
/**
|
|
11
|
+
* Specifies how was the selection changed.
|
|
12
|
+
*
|
|
13
|
+
* - `select` - All specified `items` should be selected, all other persisted ones should be removed.
|
|
14
|
+
* - `remove` - Only the specified `items` should be removed, all others should be left untouched.
|
|
15
|
+
*/
|
|
16
|
+
action: 'select' | 'remove';
|
|
17
|
+
/**
|
|
18
|
+
* Specifies which items were changed.
|
|
19
|
+
*/
|
|
20
|
+
items: any[];
|
|
21
|
+
/**
|
|
22
|
+
* The Gantt component that triggered the event.
|
|
23
|
+
*/
|
|
24
|
+
sender: GanttComponent;
|
|
25
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
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
|
+
*-------------------------------------------------------------------------------------------*/
|
|
@@ -28,6 +28,7 @@ export declare class GanttTimelineComponent implements AfterViewInit {
|
|
|
28
28
|
taskTemplate: TemplateRef<any>;
|
|
29
29
|
summaryTaskTemplate: TemplateRef<any>;
|
|
30
30
|
taskClass: TaskClassFn;
|
|
31
|
+
isTaskSelected: (item: object) => boolean;
|
|
31
32
|
hasChildren: (item: object) => boolean;
|
|
32
33
|
dependencies: any[];
|
|
33
34
|
private subscriptions;
|
|
@@ -102,6 +102,10 @@ tslib_1.__decorate([
|
|
|
102
102
|
Input(),
|
|
103
103
|
tslib_1.__metadata("design:type", Function)
|
|
104
104
|
], GanttTimelineComponent.prototype, "taskClass", void 0);
|
|
105
|
+
tslib_1.__decorate([
|
|
106
|
+
Input(),
|
|
107
|
+
tslib_1.__metadata("design:type", Function)
|
|
108
|
+
], GanttTimelineComponent.prototype, "isTaskSelected", void 0);
|
|
105
109
|
tslib_1.__decorate([
|
|
106
110
|
Input(),
|
|
107
111
|
tslib_1.__metadata("design:type", Function)
|
|
@@ -181,6 +185,7 @@ GanttTimelineComponent = tslib_1.__decorate([
|
|
|
181
185
|
[summaryTaskTemplate]="summaryTaskTemplate"
|
|
182
186
|
[taskClass]="taskClass"
|
|
183
187
|
[hasChildren]="hasChildren"
|
|
188
|
+
[isTaskSelected]="isTaskSelected"
|
|
184
189
|
>
|
|
185
190
|
</tbody>
|
|
186
191
|
</table>
|