UNPKG

@progress/kendo-angular-gantt

Version:
226 lines (221 loc) 12.4 kB
/**----------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the project root for more information *-------------------------------------------------------------------------------------------*/ import { ChangeDetectorRef, Component, Input } from '@angular/core'; import { LocalizationService } from '@progress/kendo-angular-l10n'; import { MappingService } from '../common/mapping.service'; import { DependencyType } from '../models/dependency-type.enum'; import { EditService } from './edit.service'; import { saveIcon, cancelOutlineIcon, trashIcon } from '@progress/kendo-svg-icons'; import { DependenciesTableComponent } from './dependencies-table.component'; import { TaskFieldsComponent } from './task-fields.component'; import { CustomMessagesComponent, DialogActionsComponent, DialogComponent } from '@progress/kendo-angular-dialog'; import { TabContentDirective, TabStripComponent, TabStripTabComponent } from '@progress/kendo-angular-layout'; import { ButtonComponent } from '@progress/kendo-angular-buttons'; import { TreeListSpacerComponent } from '@progress/kendo-angular-treelist'; import { EventsOutsideAngularDirective } from '@progress/kendo-angular-common'; import * as i0 from "@angular/core"; import * as i1 from "../common/mapping.service"; import * as i2 from "./edit.service"; import * as i3 from "@progress/kendo-angular-l10n"; /** * @hidden */ export class EditDialogComponent { mapper; editService; cdr; localizationService; data; loadedTasks; saveIcon = saveIcon; cancelIcon = cancelOutlineIcon; deleteIcon = trashIcon; constructor(mapper, editService, cdr, localizationService) { this.mapper = mapper; this.editService = editService; this.cdr = cdr; this.localizationService = localizationService; } ngOnInit() { this.editService.loadTasks(this.data).subscribe(value => { this.loadedTasks = value; }); } get predecessors() { return this.editService.predecessors; } set predecessors(items) { this.editService.predecessors = items; } get successors() { return this.editService.successors; } set successors(items) { this.editService.successors = items; } getText(token) { return this.localizationService.get(token); } getDependencyType(typeId) { return DependencyType[typeId]; } handleEditingResult(editResultType) { this.editService.triggerEditEvent(editResultType); } handleTaskDelete() { this.editService.taskDelete.next(this.editService.dataItem); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EditDialogComponent, deps: [{ token: i1.MappingService }, { token: i2.EditService }, { token: i0.ChangeDetectorRef }, { token: i3.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: EditDialogComponent, isStandalone: true, selector: "kendo-gantt-edit-dialog", inputs: { data: "data" }, ngImport: i0, template: ` <kendo-dialog [title]="getText('taskEditingDialogTitle')" [width]="575" [height]="470" [autoFocusedElement]="'.k-actions .k-button-solid-primary'" (close)="handleEditingResult('cancel')"> <kendo-dialog-messages [closeTitle]="getText('taskEditingDialogCloseTitle')"></kendo-dialog-messages> <kendo-tabstrip [keepTabContent]="true" [style.height.px]="345"> <kendo-tabstrip-tab [title]="getText('taskEditingGeneralTabTitle')" [selected]="true"> <ng-template kendoTabContent> <kendo-gantt-task-fields></kendo-gantt-task-fields> </ng-template> </kendo-tabstrip-tab> <kendo-tabstrip-tab [title]="getText('taskEditingPredecessorsTabTitle')"> <ng-template kendoTabContent> <kendo-gantt-dependencies-table [tasks]="loadedTasks" [(dependencies)]="predecessors" dependencyType="predecessor" > </kendo-gantt-dependencies-table> </ng-template> </kendo-tabstrip-tab> <kendo-tabstrip-tab [title]="getText('taskEditingSuccessorsTabTitle')"> <ng-template kendoTabContent> <kendo-gantt-dependencies-table [tasks]="loadedTasks" [(dependencies)]="successors" dependencyType="successor"> </kendo-gantt-dependencies-table> </ng-template> </kendo-tabstrip-tab> </kendo-tabstrip> <kendo-dialog-actions layout="start"> <button kendoButton themeColor="primary" icon="save" [svgIcon]="saveIcon" (click)="handleEditingResult('save')" > {{ getText('saveButtonText') }} </button> <button kendoButton icon="cancel-outline" [svgIcon]="cancelIcon" (click)="handleEditingResult('cancel')" > {{ getText('cancelButtonText') }} </button> <kendo-treelist-spacer></kendo-treelist-spacer> <button kendoButton themeColor="primary" fillMode="flat" icon="delete" [svgIcon]="deleteIcon" [kendoEventsOutsideAngular]="{ click: handleTaskDelete }" [scope]="this" > {{ getText('deleteButtonText') }} </button> </kendo-dialog-actions> </kendo-dialog> `, isInline: true, dependencies: [{ kind: "component", type: DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "directive", type: CustomMessagesComponent, selector: "kendo-dialog-messages, kendo-window-messages" }, { kind: "component", type: TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "size", "closeIcon", "closeIconClass", "closeSVGIcon", "showContentArea"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { kind: "component", type: TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { kind: "directive", type: TabContentDirective, selector: "[kendoTabContent]" }, { kind: "component", type: TaskFieldsComponent, selector: "kendo-gantt-task-fields" }, { kind: "component", type: DependenciesTableComponent, selector: "kendo-gantt-dependencies-table", inputs: ["tasks", "dependencies", "dependencyType"], outputs: ["dependenciesChange"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: TreeListSpacerComponent, selector: "kendo-treelist-spacer", inputs: ["width"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EditDialogComponent, decorators: [{ type: Component, args: [{ selector: 'kendo-gantt-edit-dialog', template: ` <kendo-dialog [title]="getText('taskEditingDialogTitle')" [width]="575" [height]="470" [autoFocusedElement]="'.k-actions .k-button-solid-primary'" (close)="handleEditingResult('cancel')"> <kendo-dialog-messages [closeTitle]="getText('taskEditingDialogCloseTitle')"></kendo-dialog-messages> <kendo-tabstrip [keepTabContent]="true" [style.height.px]="345"> <kendo-tabstrip-tab [title]="getText('taskEditingGeneralTabTitle')" [selected]="true"> <ng-template kendoTabContent> <kendo-gantt-task-fields></kendo-gantt-task-fields> </ng-template> </kendo-tabstrip-tab> <kendo-tabstrip-tab [title]="getText('taskEditingPredecessorsTabTitle')"> <ng-template kendoTabContent> <kendo-gantt-dependencies-table [tasks]="loadedTasks" [(dependencies)]="predecessors" dependencyType="predecessor" > </kendo-gantt-dependencies-table> </ng-template> </kendo-tabstrip-tab> <kendo-tabstrip-tab [title]="getText('taskEditingSuccessorsTabTitle')"> <ng-template kendoTabContent> <kendo-gantt-dependencies-table [tasks]="loadedTasks" [(dependencies)]="successors" dependencyType="successor"> </kendo-gantt-dependencies-table> </ng-template> </kendo-tabstrip-tab> </kendo-tabstrip> <kendo-dialog-actions layout="start"> <button kendoButton themeColor="primary" icon="save" [svgIcon]="saveIcon" (click)="handleEditingResult('save')" > {{ getText('saveButtonText') }} </button> <button kendoButton icon="cancel-outline" [svgIcon]="cancelIcon" (click)="handleEditingResult('cancel')" > {{ getText('cancelButtonText') }} </button> <kendo-treelist-spacer></kendo-treelist-spacer> <button kendoButton themeColor="primary" fillMode="flat" icon="delete" [svgIcon]="deleteIcon" [kendoEventsOutsideAngular]="{ click: handleTaskDelete }" [scope]="this" > {{ getText('deleteButtonText') }} </button> </kendo-dialog-actions> </kendo-dialog> `, standalone: true, imports: [DialogComponent, CustomMessagesComponent, TabStripComponent, TabStripTabComponent, TabContentDirective, TaskFieldsComponent, DependenciesTableComponent, DialogActionsComponent, ButtonComponent, TreeListSpacerComponent, EventsOutsideAngularDirective] }] }], ctorParameters: () => [{ type: i1.MappingService }, { type: i2.EditService }, { type: i0.ChangeDetectorRef }, { type: i3.LocalizationService }], propDecorators: { data: [{ type: Input }] } });