@progress/kendo-angular-gantt 0.3.0-dev.202112141015 → 0.3.0-dev.202201111723
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 -2
- package/dist/cdn/main.js +10 -4
- package/dist/es/dependencies/utils.js +6 -5
- package/dist/es/editing/dependencies-table.component.js +131 -0
- package/dist/es/editing/edit-dialog.component.js +37 -6
- package/dist/es/editing/edit.service.js +88 -7
- package/dist/es/editing/task-fields.component.js +43 -0
- package/dist/es/gantt.component.js +49 -26
- package/dist/es/gantt.module.js +12 -3
- package/dist/es/index.js +3 -0
- package/dist/es/localization/gantt-localization.service.js +26 -0
- package/dist/es/models/dependency-type.enum.js +16 -0
- package/dist/es/models/models.js +1 -0
- package/dist/es/package-metadata.js +1 -1
- package/dist/es2015/dependencies/utils.js +6 -5
- package/dist/es2015/editing/dependencies-table.component.d.ts +39 -0
- package/dist/es2015/editing/dependencies-table.component.js +160 -0
- package/dist/es2015/editing/edit-dialog.component.d.ts +10 -3
- package/dist/es2015/editing/edit-dialog.component.js +55 -33
- package/dist/es2015/editing/edit.service.d.ts +21 -3
- package/dist/es2015/editing/edit.service.js +77 -10
- package/dist/es2015/editing/task-fields.component.d.ts +22 -0
- package/dist/es2015/editing/task-fields.component.js +67 -0
- package/dist/es2015/gantt.component.d.ts +4 -6
- package/dist/es2015/gantt.component.js +42 -23
- package/dist/es2015/gantt.module.js +12 -3
- package/dist/es2015/index.d.ts +3 -0
- package/dist/es2015/index.js +3 -0
- package/dist/es2015/index.metadata.json +1 -1
- package/dist/es2015/{models/events/remove-event.interface.d.ts → localization/gantt-localization.service.d.ts} +6 -7
- package/dist/es2015/localization/gantt-localization.service.js +25 -0
- package/dist/es2015/models/dependency-type.enum.d.ts +1 -1
- package/dist/es2015/models/dependency-type.enum.js +16 -0
- package/dist/es2015/models/events/task-edit-event.interface.d.ts +17 -4
- package/dist/es2015/models/models.d.ts +0 -2
- package/dist/es2015/models/models.js +1 -0
- package/dist/es2015/package-metadata.js +1 -1
- package/dist/fesm2015/index.js +429 -76
- package/dist/fesm5/index.js +377 -49
- package/dist/npm/dependencies/utils.js +6 -5
- package/dist/npm/editing/dependencies-table.component.js +133 -0
- package/dist/npm/editing/edit-dialog.component.js +36 -5
- package/dist/npm/editing/edit.service.js +87 -6
- package/dist/npm/editing/task-fields.component.js +45 -0
- package/dist/npm/gantt.component.js +49 -26
- package/dist/npm/gantt.module.js +11 -2
- package/dist/npm/index.js +6 -0
- package/dist/npm/localization/gantt-localization.service.js +28 -0
- package/dist/npm/models/dependency-type.enum.js +16 -0
- package/dist/npm/models/models.js +2 -0
- package/dist/npm/package-metadata.js +1 -1
- package/dist/systemjs/kendo-angular-gantt.js +1 -1
- package/package.json +3 -1
- package/dist/es/models/events/edit-event.interface.js +0 -4
- package/dist/es/models/events/remove-event.interface.js +0 -4
- package/dist/es2015/models/events/edit-event.interface.d.ts +0 -19
- package/dist/es2015/models/events/edit-event.interface.js +0 -4
- package/dist/es2015/models/events/remove-event.interface.js +0 -4
- package/dist/npm/models/events/edit-event.interface.js +0 -6
- package/dist/npm/models/events/remove-event.interface.js +0 -6
package/dist/fesm5/index.js
CHANGED
|
@@ -6,22 +6,24 @@ import { __extends, __decorate, __metadata, __param, __assign } from 'tslib';
|
|
|
6
6
|
import { Input, Injectable, EventEmitter, Directive, Optional, TemplateRef, QueryList, ContentChildren, ContentChild, Component, forwardRef, SkipSelf, Host, Injector, NgZone, isDevMode, ViewChild, HostBinding, Output, Renderer2, ElementRef, ChangeDetectorRef, NgModule } from '@angular/core';
|
|
7
7
|
import { ColumnBase, ColumnComponent, ColumnGroupComponent, SpanColumnComponent, TreeListComponent, DataBoundTreeComponent, ExpandableTreeComponent, FlatBindingDirective, HierarchyBindingDirective, ExpandableDirective, TreeListModule } from '@progress/kendo-angular-treelist';
|
|
8
8
|
import { cloneDate, addWeeks, firstDayInWeek, addDays, getDate, lastDayOfMonth, firstDayOfMonth, addMonths, isEqual, MS_PER_HOUR, MS_PER_DAY } from '@progress/kendo-date-math';
|
|
9
|
-
import { of, fromEvent, Subject, Subscription } from 'rxjs';
|
|
9
|
+
import { of, fromEvent, Subject, Subscription, forkJoin, EMPTY, isObservable } from 'rxjs';
|
|
10
10
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
11
11
|
import { isDocumentAvailable, closestInScope, matchesClasses, anyChanged, hasObservers, EventsModule } from '@progress/kendo-angular-common';
|
|
12
12
|
import { IntlService } from '@progress/kendo-angular-intl';
|
|
13
13
|
import { orderBy } from '@progress/kendo-data-query';
|
|
14
14
|
import { getter } from '@progress/kendo-common';
|
|
15
|
-
import { map, distinctUntilChanged, take, filter, switchMap } from 'rxjs/operators';
|
|
15
|
+
import { map, distinctUntilChanged, take, expand, reduce, filter, switchMap } from 'rxjs/operators';
|
|
16
16
|
import { LocalizationService, ComponentMessages, L10N_PREFIX } from '@progress/kendo-angular-l10n';
|
|
17
17
|
import { CommonModule } from '@angular/common';
|
|
18
|
-
import { SplitterModule } from '@progress/kendo-angular-layout';
|
|
18
|
+
import { SplitterModule, TabStripModule } from '@progress/kendo-angular-layout';
|
|
19
19
|
import { ButtonsModule } from '@progress/kendo-angular-buttons';
|
|
20
20
|
import { DialogModule } from '@progress/kendo-angular-dialog';
|
|
21
|
-
import { FormGroup, ReactiveFormsModule } from '@angular/forms';
|
|
21
|
+
import { FormGroup, FormControl, Validators, FormArray, ReactiveFormsModule } from '@angular/forms';
|
|
22
22
|
import { LabelModule } from '@progress/kendo-angular-label';
|
|
23
23
|
import { InputsModule } from '@progress/kendo-angular-inputs';
|
|
24
24
|
import { DateInputsModule } from '@progress/kendo-angular-dateinputs';
|
|
25
|
+
import { GridModule } from '@progress/kendo-angular-grid';
|
|
26
|
+
import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
|
|
25
27
|
|
|
26
28
|
/**
|
|
27
29
|
* @hidden
|
|
@@ -30,7 +32,7 @@ var packageMetadata = {
|
|
|
30
32
|
name: '@progress/kendo-angular-gantt',
|
|
31
33
|
productName: 'Kendo UI for Angular',
|
|
32
34
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
33
|
-
publishDate:
|
|
35
|
+
publishDate: 1641921322,
|
|
34
36
|
version: '',
|
|
35
37
|
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'
|
|
36
38
|
};
|
|
@@ -1380,31 +1382,109 @@ var DependencyDomService = /** @class */ (function () {
|
|
|
1380
1382
|
* @hidden
|
|
1381
1383
|
*/
|
|
1382
1384
|
var EditService = /** @class */ (function () {
|
|
1383
|
-
function EditService() {
|
|
1385
|
+
function EditService(mapper) {
|
|
1386
|
+
var _this = this;
|
|
1387
|
+
this.mapper = mapper;
|
|
1384
1388
|
this.showEditingDialog = new Subject();
|
|
1385
1389
|
this.showConfirmationDialog = new Subject();
|
|
1386
1390
|
this.editEvent = new Subject();
|
|
1387
1391
|
this.addEvent = new Subject();
|
|
1392
|
+
this.updatedItems = [];
|
|
1393
|
+
this.deletedItems = [];
|
|
1394
|
+
this.itemIndex = function (item, data) {
|
|
1395
|
+
return data.findIndex(function (dataItem) { return _this.mapper.extractFromTask(dataItem, 'id') === _this.mapper.extractFromTask(item, 'id'); });
|
|
1396
|
+
};
|
|
1388
1397
|
}
|
|
1389
|
-
EditService.prototype
|
|
1398
|
+
Object.defineProperty(EditService.prototype, "dependencies", {
|
|
1399
|
+
get: function () {
|
|
1400
|
+
return this.predecessors.concat(this.successors);
|
|
1401
|
+
},
|
|
1402
|
+
set: function (items) {
|
|
1403
|
+
var _this = this;
|
|
1404
|
+
// Can this whole thing be moved to edit-dialog? Dependencies might not be needed here
|
|
1405
|
+
var dataItemId = this.mapper.extractFromTask(this.dataItem, 'id');
|
|
1406
|
+
this.predecessors = items.filter(function (item) { return _this.mapper.extractFromDependency(item, 'toId') === dataItemId; });
|
|
1407
|
+
this.successors = items.filter(function (item) { return _this.mapper.extractFromDependency(item, 'fromId') === dataItemId; });
|
|
1408
|
+
},
|
|
1409
|
+
enumerable: true,
|
|
1410
|
+
configurable: true
|
|
1411
|
+
});
|
|
1412
|
+
EditService.prototype.createEditDialog = function (dataItem, taskFormGroup, dependencies) {
|
|
1390
1413
|
this.dataItem = dataItem;
|
|
1391
|
-
this.
|
|
1414
|
+
this.taskFormGroup = taskFormGroup;
|
|
1415
|
+
this.dependencies = dependencies;
|
|
1392
1416
|
this.showEditingDialog.next(true);
|
|
1393
1417
|
};
|
|
1394
1418
|
EditService.prototype.closeEditDialog = function () {
|
|
1395
1419
|
this.showEditingDialog.next(false);
|
|
1396
1420
|
this.dataItem = undefined;
|
|
1397
|
-
this.
|
|
1421
|
+
this.taskFormGroup = undefined;
|
|
1422
|
+
this.dependencies = [];
|
|
1423
|
+
this.updatedItems = [];
|
|
1424
|
+
this.deletedItems = [];
|
|
1398
1425
|
};
|
|
1399
1426
|
EditService.prototype.triggerEditEvent = function (editResultType) {
|
|
1400
1427
|
this.editEvent.next({
|
|
1401
|
-
|
|
1428
|
+
taskFormGroup: this.taskFormGroup,
|
|
1402
1429
|
dataItem: this.dataItem,
|
|
1430
|
+
dependencies: {
|
|
1431
|
+
createdItems: this.getCreatedDependencies(),
|
|
1432
|
+
updatedItems: this.updatedItems,
|
|
1433
|
+
deletedItems: this.deletedItems
|
|
1434
|
+
},
|
|
1403
1435
|
editResultType: editResultType
|
|
1404
1436
|
});
|
|
1405
1437
|
};
|
|
1438
|
+
EditService.prototype.updateDependencies = function (item) {
|
|
1439
|
+
if (!this.isNew(item)) {
|
|
1440
|
+
// update
|
|
1441
|
+
var index = this.itemIndex(item, this.updatedItems);
|
|
1442
|
+
if (index !== -1) {
|
|
1443
|
+
this.updatedItems.splice(index, 1, item);
|
|
1444
|
+
}
|
|
1445
|
+
else {
|
|
1446
|
+
this.updatedItems.push(item);
|
|
1447
|
+
}
|
|
1448
|
+
}
|
|
1449
|
+
};
|
|
1450
|
+
EditService.prototype.getCreatedDependencies = function () {
|
|
1451
|
+
var _this = this;
|
|
1452
|
+
return this.dependencies.filter(function (item) { return _this.mapper.extractFromDependency(item, 'id') === null; });
|
|
1453
|
+
};
|
|
1454
|
+
EditService.prototype.deleteDependency = function (item) {
|
|
1455
|
+
var updatedIndex = this.itemIndex(item, this.updatedItems);
|
|
1456
|
+
if (updatedIndex !== -1) {
|
|
1457
|
+
this.updatedItems.splice(updatedIndex, 1);
|
|
1458
|
+
}
|
|
1459
|
+
if (!this.isNew(item)) {
|
|
1460
|
+
this.deletedItems.push(item);
|
|
1461
|
+
}
|
|
1462
|
+
};
|
|
1463
|
+
EditService.prototype.loadTasks = function (initialValues, isInitializer) {
|
|
1464
|
+
var _this = this;
|
|
1465
|
+
if (isInitializer === void 0) { isInitializer = true; }
|
|
1466
|
+
return forkJoin(initialValues.map(function (v) { return _this.getElementById(v); })).pipe(map(function (value) {
|
|
1467
|
+
return value.reduce(function (acc, item) { return acc = acc.concat(normalizeGanttData(item)); }, []);
|
|
1468
|
+
}), expand(function (values) {
|
|
1469
|
+
if (values.some(function (el) { return _this.hasChildren(el); })) {
|
|
1470
|
+
return _this.loadTasks(values, false);
|
|
1471
|
+
}
|
|
1472
|
+
return EMPTY;
|
|
1473
|
+
}), reduce(function (acc, values) { return acc.concat(values); }, isInitializer ? initialValues.slice() : []));
|
|
1474
|
+
};
|
|
1475
|
+
EditService.prototype.getElementById = function (item) {
|
|
1476
|
+
var children = this.fetchChildren(item);
|
|
1477
|
+
if (isObservable(children)) {
|
|
1478
|
+
return children;
|
|
1479
|
+
}
|
|
1480
|
+
return of(children);
|
|
1481
|
+
};
|
|
1482
|
+
EditService.prototype.isNew = function (item) {
|
|
1483
|
+
return !isPresent(this.mapper.extractFromDependency(item, 'id'));
|
|
1484
|
+
};
|
|
1406
1485
|
EditService = __decorate([
|
|
1407
|
-
Injectable()
|
|
1486
|
+
Injectable(),
|
|
1487
|
+
__metadata("design:paramtypes", [MappingService])
|
|
1408
1488
|
], EditService);
|
|
1409
1489
|
return EditService;
|
|
1410
1490
|
}());
|
|
@@ -1717,6 +1797,25 @@ var mapPath = function (item) { return ({
|
|
|
1717
1797
|
parent: item.parent.data ? mapPath(item.parent) : null
|
|
1718
1798
|
}); };
|
|
1719
1799
|
|
|
1800
|
+
/**
|
|
1801
|
+
* @hidden
|
|
1802
|
+
*
|
|
1803
|
+
* Needed to keep the Gantt's LocalizationService reference and be able to use it component's inside the TabStrip
|
|
1804
|
+
*/
|
|
1805
|
+
var GanttLocalizationService = /** @class */ (function () {
|
|
1806
|
+
function GanttLocalizationService(localizationService) {
|
|
1807
|
+
this.localizationService = localizationService;
|
|
1808
|
+
}
|
|
1809
|
+
GanttLocalizationService.prototype.get = function (token) {
|
|
1810
|
+
return this.localizationService.get(token);
|
|
1811
|
+
};
|
|
1812
|
+
GanttLocalizationService = __decorate([
|
|
1813
|
+
Injectable(),
|
|
1814
|
+
__metadata("design:paramtypes", [LocalizationService])
|
|
1815
|
+
], GanttLocalizationService);
|
|
1816
|
+
return GanttLocalizationService;
|
|
1817
|
+
}());
|
|
1818
|
+
|
|
1720
1819
|
var TREELIST_GROUP_COLUMNS_CLASS = 'k-gantt-treelist-nested-columns';
|
|
1721
1820
|
var DEFAULT_VIEW = 'week';
|
|
1722
1821
|
/**
|
|
@@ -1825,14 +1924,6 @@ var GanttComponent = /** @class */ (function () {
|
|
|
1825
1924
|
* > When applied, the [`SelectableDirective`]({% slug api_gantt_selectabledirective %}) sets `selectable` to `true` internally.
|
|
1826
1925
|
*/
|
|
1827
1926
|
this.selectable = false;
|
|
1828
|
-
/**
|
|
1829
|
-
* Gets or sets the callback function that retrieves the child items for a particular item.
|
|
1830
|
-
*/
|
|
1831
|
-
this.fetchChildren = fetchChildren;
|
|
1832
|
-
/**
|
|
1833
|
-
* Gets or sets the callback function that indicates if a particular item has child items.
|
|
1834
|
-
*/
|
|
1835
|
-
this.hasChildren = hasChildren;
|
|
1836
1927
|
/**
|
|
1837
1928
|
* Defines the dependencies that will be drawn between the rendered tasks.
|
|
1838
1929
|
*
|
|
@@ -2020,6 +2111,8 @@ var GanttComponent = /** @class */ (function () {
|
|
|
2020
2111
|
addTaskTool: 'none',
|
|
2021
2112
|
viewSelectorTool: 'top'
|
|
2022
2113
|
};
|
|
2114
|
+
this._fetchChildren = fetchChildren;
|
|
2115
|
+
this._hasChildren = hasChildren;
|
|
2023
2116
|
this.rtl = false;
|
|
2024
2117
|
this.optionChangesSubscriptions = new Subscription();
|
|
2025
2118
|
this.editServiceSubscription = new Subscription();
|
|
@@ -2035,12 +2128,13 @@ var GanttComponent = /** @class */ (function () {
|
|
|
2035
2128
|
this.editServiceSubscription.add(this.editService.showConfirmationDialog.subscribe(function () { return _this.taskDelete.emit(); }));
|
|
2036
2129
|
this.editServiceSubscription.add(this.editService.editEvent.subscribe(function (args) {
|
|
2037
2130
|
_this[args.editResultType].emit({
|
|
2038
|
-
|
|
2131
|
+
taskFormGroup: args.taskFormGroup,
|
|
2039
2132
|
item: getEditItem(args.dataItem, _this.treeList.view.data, _this.mapper),
|
|
2133
|
+
dependencies: args.dependencies,
|
|
2040
2134
|
sender: _this
|
|
2041
2135
|
});
|
|
2042
2136
|
_this.showConfirmationDialog = _this.showEditingDialog = false;
|
|
2043
|
-
_this.editService.dataItem = _this.editService.
|
|
2137
|
+
_this.editService.dataItem = _this.editService.taskFormGroup = null;
|
|
2044
2138
|
_this.updateView();
|
|
2045
2139
|
}));
|
|
2046
2140
|
this.editServiceSubscription.add(this.editService.addEvent.subscribe(function (args) {
|
|
@@ -2182,6 +2276,34 @@ var GanttComponent = /** @class */ (function () {
|
|
|
2182
2276
|
enumerable: true,
|
|
2183
2277
|
configurable: true
|
|
2184
2278
|
});
|
|
2279
|
+
Object.defineProperty(GanttComponent.prototype, "fetchChildren", {
|
|
2280
|
+
get: function () {
|
|
2281
|
+
return this._fetchChildren;
|
|
2282
|
+
},
|
|
2283
|
+
/**
|
|
2284
|
+
* Gets or sets the callback function that retrieves the child items for a particular item.
|
|
2285
|
+
*/
|
|
2286
|
+
set: function (fn) {
|
|
2287
|
+
this._fetchChildren = fn;
|
|
2288
|
+
this.editService.fetchChildren = fn;
|
|
2289
|
+
},
|
|
2290
|
+
enumerable: true,
|
|
2291
|
+
configurable: true
|
|
2292
|
+
});
|
|
2293
|
+
Object.defineProperty(GanttComponent.prototype, "hasChildren", {
|
|
2294
|
+
get: function () {
|
|
2295
|
+
return this._hasChildren;
|
|
2296
|
+
},
|
|
2297
|
+
/**
|
|
2298
|
+
* Gets or sets the callback function that indicates if a particular item has child items.
|
|
2299
|
+
*/
|
|
2300
|
+
set: function (fn) {
|
|
2301
|
+
this._hasChildren = fn;
|
|
2302
|
+
this.editService.hasChildren = fn;
|
|
2303
|
+
},
|
|
2304
|
+
enumerable: true,
|
|
2305
|
+
configurable: true
|
|
2306
|
+
});
|
|
2185
2307
|
Object.defineProperty(GanttComponent.prototype, "timelinePaneOptions", {
|
|
2186
2308
|
get: function () {
|
|
2187
2309
|
return __assign({}, this._timelinePaneOptions, { size: this.treeListPaneOptions.collapsed ? '100%' : this._timelinePaneOptions.size });
|
|
@@ -2333,16 +2455,6 @@ var GanttComponent = /** @class */ (function () {
|
|
|
2333
2455
|
enumerable: true,
|
|
2334
2456
|
configurable: true
|
|
2335
2457
|
});
|
|
2336
|
-
Object.defineProperty(GanttComponent.prototype, "editDialogFormGroup", {
|
|
2337
|
-
/**
|
|
2338
|
-
* @hidden
|
|
2339
|
-
*/
|
|
2340
|
-
get: function () {
|
|
2341
|
-
return this.editService.formGroup;
|
|
2342
|
-
},
|
|
2343
|
-
enumerable: true,
|
|
2344
|
-
configurable: true
|
|
2345
|
-
});
|
|
2346
2458
|
GanttComponent.prototype.ngOnChanges = function (changes) {
|
|
2347
2459
|
if (anyChanged(['data', 'activeView', 'workWeekStart', 'workWeekEnd', 'workDayStart', 'workDayEnd'], changes)) {
|
|
2348
2460
|
this.loadTimelineData();
|
|
@@ -2432,8 +2544,14 @@ var GanttComponent = /** @class */ (function () {
|
|
|
2432
2544
|
* Opens the task editing dialog.
|
|
2433
2545
|
*/
|
|
2434
2546
|
GanttComponent.prototype.editTask = function (dataItem, formGroup) {
|
|
2547
|
+
var _this = this;
|
|
2435
2548
|
if (!this.showEditingDialog) {
|
|
2436
|
-
this.
|
|
2549
|
+
var taskId_1 = this.mapper.extractFromTask(dataItem, 'id');
|
|
2550
|
+
var dependencies = this.dependencies.filter(function (item) {
|
|
2551
|
+
return _this.mapper.extractFromDependency(item, 'toId') === taskId_1
|
|
2552
|
+
|| _this.mapper.extractFromDependency(item, 'fromId') === taskId_1;
|
|
2553
|
+
});
|
|
2554
|
+
this.editService.createEditDialog(dataItem, formGroup, dependencies);
|
|
2437
2555
|
}
|
|
2438
2556
|
};
|
|
2439
2557
|
/**
|
|
@@ -2797,12 +2915,14 @@ var GanttComponent = /** @class */ (function () {
|
|
|
2797
2915
|
], GanttComponent.prototype, "toolbarSettings", null);
|
|
2798
2916
|
__decorate([
|
|
2799
2917
|
Input(),
|
|
2800
|
-
__metadata("design:type", Function)
|
|
2801
|
-
|
|
2918
|
+
__metadata("design:type", Function),
|
|
2919
|
+
__metadata("design:paramtypes", [Function])
|
|
2920
|
+
], GanttComponent.prototype, "fetchChildren", null);
|
|
2802
2921
|
__decorate([
|
|
2803
2922
|
Input(),
|
|
2804
|
-
__metadata("design:type", Function)
|
|
2805
|
-
|
|
2923
|
+
__metadata("design:type", Function),
|
|
2924
|
+
__metadata("design:paramtypes", [Function])
|
|
2925
|
+
], GanttComponent.prototype, "hasChildren", null);
|
|
2806
2926
|
__decorate([
|
|
2807
2927
|
Input(),
|
|
2808
2928
|
__metadata("design:type", Array)
|
|
@@ -2976,6 +3096,7 @@ var GanttComponent = /** @class */ (function () {
|
|
|
2976
3096
|
selector: 'kendo-gantt',
|
|
2977
3097
|
exportAs: 'kendoGantt',
|
|
2978
3098
|
providers: [
|
|
3099
|
+
GanttLocalizationService,
|
|
2979
3100
|
LocalizationService,
|
|
2980
3101
|
{
|
|
2981
3102
|
provide: DataBoundTreeComponent,
|
|
@@ -2995,7 +3116,7 @@ var GanttComponent = /** @class */ (function () {
|
|
|
2995
3116
|
OptionChangesService,
|
|
2996
3117
|
EditService
|
|
2997
3118
|
],
|
|
2998
|
-
template: "\n <ng-container kendoGanttLocalizedMessages\n i18n-taskEditingGeneralTabTitle=\"kendo.gantt.taskEditingGeneralTabTitle|The title of the 'General' tab of the editing dialog TabStrip\"\n taskEditingGeneralTabTitle=\"General\"\n\n i18n-taskEditingPredecessorsTabTitle=\"kendo.gantt.taskEditingPredecessorsTabTitle|The title of the 'Predecessors' dependencies tab of the editing dialog TabStrip\"\n taskEditingPredecessorsTabTitle=\"Predecessors\"\n\n i18n-taskEditingSuccessorsTabTitle=\"kendo.gantt.taskEditingSuccessorsTabTitle|The title of the 'Successors' dependencies tab of the editing dialog TabStrip\"\n taskEditingSuccessorsTabTitle=\"Successors\"\n\n i18n-taskEditingDependenciesAddButtonText=\"kendo.gantt.taskEditingDependenciesAddButtonText|The text of the 'Add' button in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesAddButtonText=\"Add\"\n\n i18n-taskEditingDependenciesRemoveButtonText=\"kendo.gantt.taskEditingDependenciesRemoveButtonText|The text of the 'Remove' button in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesRemoveButtonText=\"Remove\"\n\n i18n-taskEditingDependenciesGridNameColumnTitle=\"kendo.gantt.taskEditingDependenciesGridNameColumnTitle|The title of the 'Task Title' Grid column in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesGridNameColumnTitle=\"Task Title\"\n\n i18n-taskEditingDependenciesGridTypeColumnTitle=\"kendo.gantt.taskEditingDependenciesGridTypeColumnTitle|The title of the 'Type' Grid column in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesGridTypeColumnTitle=\"Type\"\n\n i18n-taskDeleteLabel=\"kendo.gantt.taskDeleteLabel|The label of the task delete icon\"\n taskDeleteLabel=\"Delete\"\n\n i18n-taskEditingDialogTitle=\"kendo.gantt.taskEditingDialogTitle|The title of the task editing dialog\"\n taskEditingDialogTitle=\"Editing Task\"\n\n i18n-taskEditingDialogCloseTitle=\"kendo.gantt.taskEditingDialogCloseTitle|The title of the task editing dialog close button\"\n taskEditingDialogCloseTitle=\"Close\"\n\n i18n-confirmationDialogCloseTitle=\"kendo.gantt.confirmationDialogCloseTitle|The title of the confirmation dialog close button\"\n confirmationDialogCloseTitle=\"Close\"\n\n i18n-confirmationDialogTitle=\"kendo.gantt.confirmationDialogTitle|The title of the delete task confirmation dialog\"\n confirmationDialogTitle=\"Delete Task\"\n\n i18n-confirmationDialogContent=\"kendo.gantt.confirmationDialogContent|The content of the delete task confirmation dialog\"\n confirmationDialogContent=\"Are you sure you want to delete this task?\"\n\n i18n-deleteButtonText=\"kendo.gantt.deleteButtonText|The text of the task editing dialog 'Delete' button\"\n deleteButtonText=\"Delete\"\n\n i18n-cancelButtonText=\"kendo.gantt.cancelButtonText|The text of the task editing dialog 'Cancel' button\"\n cancelButtonText=\"Cancel\"\n\n i18n-saveButtonText=\"kendo.gantt.saveButtonText|The text of the task editing dialog 'Save' button\"\n saveButtonText=\"Save\"\n\n i18n-titleFieldInputLabel=\"kendo.gantt.titleFieldInputLabel|The label of the 'title' field input in editing mode\"\n titleFieldInputLabel=\"Title\"\n\n i18n-startFieldInputLabel=\"kendo.gantt.startFieldInputLabel|The label of the 'start' field input in editing mode\"\n startFieldInputLabel=\"Start\"\n\n i18n-endFieldInputLabel=\"kendo.gantt.endFieldInputLabel|The label of the 'end' field input in editing mode\"\n endFieldInputLabel=\"End\"\n\n i18n-completionRatioFieldInputLabel=\"kendo.gantt.completionRatioFieldInputLabel|The label of the 'completionRatio' field input in editing mode\"\n completionRatioFieldInputLabel=\"Progress\"\n\n i18n-dayViewText=\"kendo.gantt.dayViewText|The text of the day view in the ViewSelector component\"\n dayViewText=\"Day\"\n\n i18n-weekViewText=\"kendo.gantt.weekViewText|The text of the week view in the ViewSelector component\"\n weekViewText=\"Week\"\n\n i18n-monthViewText=\"kendo.gantt.monthViewText|The text of the month view in the ViewSelector component\"\n monthViewText=\"Month\"\n\n i18n-yearViewText-disabled=\"kendo.gantt.yearViewText|The text of the year view in the ViewSelector component\"\n yearViewText=\"Year\"\n\n i18n-addTaskText=\"kendo.gantt.addTaskText|The text of the DropDownButton in the AddTask component\"\n addTaskText=\"Add Task\"\n\n i18n-addChildText=\"kendo.gantt.addChildText|The text of the 'Add Child' option in the AddTask component\"\n addChildText=\"Add Child\"\n\n i18n-addAboveText=\"kendo.gantt.addAboveText|The text of the 'Add Above' option in the AddTask component\"\n addAboveText=\"Add Above\"\n\n i18n-addBelowText=\"kendo.gantt.addBelowText|The text of the 'Add Below' option in the AddTask component\"\n addBelowText=\"Add Below\"\n\n i18n-noRecords=\"kendo.gantt.noRecords|The label visible in the TreeList when there are no records\"\n noRecords=\"No records available.\"\n\n i18n-filter=\"kendo.gantt.filter|The label of the filter cell or icon\"\n filter=\"Filter\"\n\n i18n-filterEqOperator=\"kendo.gantt.filterEqOperator|The text of the equal filter operator\"\n filterEqOperator=\"Is equal to\"\n\n i18n-filterNotEqOperator=\"kendo.gantt.filterNotEqOperator|The text of the not equal filter operator\"\n filterNotEqOperator=\"Is not equal to\"\n\n i18n-filterIsNullOperator=\"kendo.gantt.filterIsNullOperator|The text of the is null filter operator\"\n filterIsNullOperator=\"Is null\"\n\n i18n-filterIsNotNullOperator=\"kendo.gantt.filterIsNotNullOperator|The text of the is not null filter operator\"\n filterIsNotNullOperator=\"Is not null\"\n\n i18n-filterIsEmptyOperator=\"kendo.gantt.filterIsEmptyOperator|The text of the is empty filter operator\"\n filterIsEmptyOperator=\"Is empty\"\n\n i18n-filterIsNotEmptyOperator=\"kendo.gantt.filterIsNotEmptyOperator|The text of the is not empty filter operator\"\n filterIsNotEmptyOperator=\"Is not empty\"\n\n i18n-filterStartsWithOperator=\"kendo.gantt.filterStartsWithOperator|The text of the starts with filter operator\"\n filterStartsWithOperator=\"Starts with\"\n\n i18n-filterContainsOperator=\"kendo.gantt.filterContainsOperator|The text of the contains filter operator\"\n filterContainsOperator=\"Contains\"\n\n i18n-filterNotContainsOperator=\"kendo.gantt.filterNotContainsOperator|The text of the does not contain filter operator\"\n filterNotContainsOperator=\"Does not contain\"\n\n i18n-filterEndsWithOperator=\"kendo.gantt.filterEndsWithOperator|The text of the ends with filter operator\"\n filterEndsWithOperator=\"Ends with\"\n\n i18n-filterGteOperator=\"kendo.gantt.filterGteOperator|The text of the greater than or equal filter operator\"\n filterGteOperator=\"Is greater than or equal to\"\n\n i18n-filterGtOperator=\"kendo.gantt.filterGtOperator|The text of the greater than filter operator\"\n filterGtOperator=\"Is greater than\"\n\n i18n-filterLteOperator=\"kendo.gantt.filterLteOperator|The text of the less than or equal filter operator\"\n filterLteOperator=\"Is less than or equal to\"\n\n i18n-filterLtOperator=\"kendo.gantt.filterLtOperator|The text of the less than filter operator\"\n filterLtOperator=\"Is less than\"\n\n i18n-filterIsTrue=\"kendo.gantt.filterIsTrue|The text of the IsTrue boolean filter option\"\n filterIsTrue=\"Is True\"\n\n i18n-filterIsFalse=\"kendo.gantt.filterIsFalse|The text of the IsFalse boolean filter option\"\n filterIsFalse=\"Is False\"\n\n i18n-filterBooleanAll=\"kendo.gantt.filterBooleanAll|The text of the (All) boolean filter option\"\n filterBooleanAll=\"(All)\"\n\n i18n-filterAfterOrEqualOperator=\"kendo.gantt.filterAfterOrEqualOperator|The text of the after or equal date filter operator\"\n filterAfterOrEqualOperator=\"Is after or equal to\"\n\n i18n-filterAfterOperator=\"kendo.gantt.filterAfterOperator|The text of the after date filter operator\"\n filterAfterOperator=\"Is after\"\n\n i18n-filterBeforeOperator=\"kendo.gantt.filterBeforeOperator|The text of the before date filter operator\"\n filterBeforeOperator=\"Is before\"\n\n i18n-filterBeforeOrEqualOperator=\"kendo.gantt.filterBeforeOrEqualOperator|The text of the before or equal date filter operator\"\n filterBeforeOrEqualOperator=\"Is before or equal to\"\n\n i18n-filterFilterButton=\"kendo.gantt.filterFilterButton|The text of the filter button\"\n filterFilterButton=\"Filter\"\n\n i18n-filterClearButton=\"kendo.gantt.filterClearButton|The text of the clear filter button\"\n filterClearButton=\"Clear\"\n\n i18n-filterAndLogic=\"kendo.gantt.filterAndLogic|The text of the And filter logic\"\n filterAndLogic=\"And\"\n\n i18n-filterOrLogic=\"kendo.gantt.filterOrLogic|The text of the Or filter logic\"\n filterOrLogic=\"Or\"\n\n i18n-loading=\"kendo.gantt.loading|The loading text\"\n loading=\"Loading\"\n\n i18n-columnMenu=\"kendo.gantt.columnMenu|The title of the column menu icon\"\n columnMenu=\"Column Menu\"\n\n i18n-columns=\"kendo.gantt.columns|The text shown in the column menu for the columns item\"\n columns=\"Columns\"\n\n i18n-lock-disabled=\"kendo.gantt.lock|The text shown in the column menu for the lock item\"\n lock-disabled=\"Lock\"\n\n i18n-unlock-disabled=\"kendo.gantt.unlock|The text shown in the column menu for the unlock item\"\n unlock-disabled=\"Unlock\"\n\n i18n-sortable=\"kendo.gantt.sortable|The label of the sort icon\"\n sortable=\"Sortable\"\n\n i18n-sortAscending=\"kendo.gantt.sortAscending|The text shown in the column menu for the sort ascending item\"\n sortAscending=\"Sort Ascending\"\n\n i18n-sortDescending=\"kendo.gantt.sortDescending|The text shown in the column menu for the sort descending item\"\n sortDescending=\"Sort Descending\"\n\n i18n-sortedAscending=\"kendo.gantt.sortedAscending|The status announcement when a column is sorted ascending\"\n sortedAscending=\"Sorted Ascending\"\n\n i18n-sortedDescending=\"kendo.gantt.sortedDescending|The status announcement when a column is sorted descending\"\n sortedDescending=\"Sorted Descending\"\n\n i18n-sortedDefault=\"kendo.gantt.sortedDefault|The status announcement when a column is no longer sorted\"\n sortedDefault=\"Not Sorted\"\n\n i18n-columnsApply=\"kendo.gantt.columnsApply|The text shown in the column menu or column chooser for the columns apply button\"\n columnsApply=\"Apply\"\n\n i18n-columnsReset=\"kendo.gantt.columnsReset|The text shown in the column menu or column chooser for the columns reset button\"\n columnsReset=\"Reset\"></ng-container>\n <kendo-gantt-toolbar\n *ngIf=\"showToolbar('top')\"\n [showAddTask]=\"toolbarSettings.addTaskTool === 'top' || toolbarSettings.addTaskTool === 'both'\"\n [showViewSelector]=\"toolbarSettings.viewSelectorTool === 'top' || toolbarSettings.viewSelectorTool === 'both'\"\n class=\"k-gantt-header k-toolbar k-gantt-toolbar\"\n position=\"top\"></kendo-gantt-toolbar>\n <div class=\"k-gantt-content\">\n <kendo-splitter [style.border]=\"0\">\n <kendo-splitter-pane\n class=\"k-gantt-treelist k-gantt-treelist-scrollable\"\n [collapsible]=\"treeListPaneOptions?.collapsible\"\n [collapsed]=\"treeListPaneOptions?.collapsed\"\n (collapsedChange)=\"onTreeListCollapsedChange($event)\"\n [scrollable]=\"false\">\n <kendo-treelist\n [idField]=\"taskIdField\"\n [columns]=\"columns\"\n [data]=\"data\"\n [hasChildren]=\"hasChildren\"\n [fetchChildren]=\"fetchChildren\"\n [isExpanded]=\"isExpanded\"\n [autoSize]=\"columnsAutoSize\"\n [columnMenu]=\"columnMenu\"\n [reorderable]=\"columnsReorderable\"\n [resizable]=\"columnsResizable\"\n [rowClass]=\"rowClass\"\n [isSelected]=\"isSelected\"\n [selectable]=\"selectable\"\n [sortable]=\"sortable\"\n [sort]=\"sort\"\n [filterable]=\"filterMenu\"\n [filter]=\"filter\"\n (filterChange)=\"filterChange.emit($event)\"\n (sortChange)=\"sortChange.emit($event)\"\n (dataStateChange)=\"dataStateChange.emit({\n filter: $event.filter,\n sort: $event.sort\n })\"\n (expandStateChange)=\"expandStateChange.emit($event)\"\n (expand)=\"rowExpand.emit({ dataItem: $event.dataItem })\"\n (collapse)=\"rowCollapse.emit({ dataItem: $event.dataItem })\"\n (columnReorder)=\"columnReorder.emit($event)\"\n (columnResize)=\"columnResize.emit($event)\"\n (columnVisibilityChange)=\"handleColumnVisibilityChange($event)\"\n (columnLockedChange)=\"columnLockedChange.emit($event)\"\n (selectionChange)=\"handleTreeListSelectionChange($event)\"\n (cellClick)=\"handleTreeListCellClick($event)\"\n (cellClose)=\"handleCellClose($event)\"\n [kendoEventsOutsideAngular]=\"{\n dblclick: handleTreeListDoubleClick\n }\"\n [scope]=\"this\"\n >\n <kendo-treelist-messages\n [noRecords]=\"getText('noRecords')\"\n [filter]=\"getText('filter')\"\n [filterEqOperator]=\"getText('filterEqOperator')\"\n [filterNotEqOperator]=\"getText('filterNotEqOperator')\"\n [filterIsNullOperator]=\"getText('filterIsNullOperator')\"\n [filterIsNotNullOperator]=\"getText('filterIsNotNullOperator')\"\n [filterIsEmptyOperator]=\"getText('filterIsEmptyOperator')\"\n [filterIsNotEmptyOperator]=\"getText('filterIsNotEmptyOperator')\"\n [filterStartsWithOperator]=\"getText('filterStartsWithOperator')\"\n [filterContainsOperator]=\"getText('filterContainsOperator')\"\n [filterNotContainsOperator]=\"getText('filterNotContainsOperator')\"\n [filterEndsWithOperator]=\"getText('filterEndsWithOperator')\"\n [filterGteOperator]=\"getText('filterGteOperator')\"\n [filterGtOperator]=\"getText('filterGtOperator')\"\n [filterLteOperator]=\"getText('filterLteOperator')\"\n [filterLtOperator]=\"getText('filterLtOperator')\"\n [filterIsTrue]=\"getText('filterIsTrue')\"\n [filterIsFalse]=\"getText('filterIsFalse')\"\n [filterBooleanAll]=\"getText('filterBooleanAll')\"\n [filterAfterOrEqualOperator]=\"getText('filterAfterOrEqualOperator')\"\n [filterAfterOperator]=\"getText('filterAfterOperator')\"\n [filterBeforeOperator]=\"getText('filterBeforeOperator')\"\n [filterBeforeOrEqualOperator]=\"getText('filterBeforeOrEqualOperator')\"\n [filterFilterButton]=\"getText('filterFilterButton')\"\n [filterClearButton]=\"getText('filterClearButton')\"\n [filterAndLogic]=\"getText('filterAndLogic')\"\n [filterOrLogic]=\"getText('filterOrLogic')\"\n [loading]=\"getText('loading')\"\n [columnMenu]=\"getText('columnMenu')\"\n [columns]=\"getText('columns')\"\n [sortable]=\"getText('sortable')\"\n [sortAscending]=\"getText('sortAscending')\"\n [sortDescending]=\"getText('sortDescending')\"\n [sortedAscending]=\"getText('sortedAscending')\"\n [sortedDescending]=\"getText('sortedDescending')\"\n [sortedDefault]=\"getText('sortedDefault')\"\n [columnsApply]=\"getText('columnsApply')\"\n [columnsReset]=\"getText('columnsReset')\"\n >\n </kendo-treelist-messages>\n </kendo-treelist>\n </kendo-splitter-pane>\n <kendo-splitter-pane\n [collapsible]=\"timelinePaneOptions?.collapsible\"\n [resizable]=\"timelinePaneOptions?.resizable\"\n [collapsed]=\"timelinePaneOptions?.collapsed\"\n [min]=\"timelinePaneOptions?.min\"\n [max]=\"timelinePaneOptions?.max\"\n [size]=\"timelinePaneOptions?.size\"\n (collapsedChange)=\"onTimelineCollapsedChange($event)\"\n (sizeChange)=\"onTimelinePaneSizeChange($event)\"\n [scrollable]=\"false\">\n <kendo-gantt-timeline\n *ngIf=\"views && views.length\"\n [rows]=\"renderedTreeListItems\"\n [slots]=\"timelineSlots\"\n [groupSlots]=\"timelineGroupSlots\"\n [tableWidth]=\"tableWidth\"\n [activeView]=\"activeView\"\n [taskContentTemplate]=\"taskContentTemplate?.templateRef\"\n [taskTemplate]=\"taskTemplate?.templateRef\"\n [summaryTaskTemplate]=\"summaryTaskTemplate?.templateRef\"\n [taskClass]=\"taskClass\"\n [dependencies]=\"dependencies\"\n [hasChildren]=\"hasChildren\"\n [isTaskSelected]=\"isTaskSelected\"\n [kendoEventsOutsideAngular]=\"{\n click: handleTimelineClick,\n contextmenu: handleTimelineRightClick,\n dblclick: handleTimelineDblClick,\n mousedown: handleTimelineMouseDown\n }\"\n [scope]=\"this\"\n ></kendo-gantt-timeline>\n </kendo-splitter-pane>\n </kendo-splitter>\n </div>\n <kendo-gantt-toolbar\n *ngIf=\"showToolbar('bottom')\"\n [showAddTask]=\"toolbarSettings.addTaskTool === 'bottom' || toolbarSettings.addTaskTool === 'both'\"\n [showViewSelector]=\"toolbarSettings.viewSelectorTool === 'bottom' || toolbarSettings.viewSelectorTool === 'both'\"\n class=\"k-gantt-footer k-toolbar k-gantt-toolbar\"\n position=\"bottom\"></kendo-gantt-toolbar>\n <kendo-gantt-edit-dialog *ngIf=\"showEditingDialog\" [formGroup]=\"editDialogFormGroup\"></kendo-gantt-edit-dialog>\n <kendo-dialog\n *ngIf=\"showConfirmationDialog\"\n [width]=\"575\"\n [height]=\"170\"\n [title]=\"getText('confirmationDialogTitle')\"\n (close)=\"showConfirmationDialog = false;\">\n <span>{{getText('confirmationDialogContent')}}</span>\n <kendo-dialog-actions layout=\"normal\">\n <kendo-treelist-spacer></kendo-treelist-spacer>\n <button kendoButton [primary]=\"true\" (click)=\"handleDeleteConfirmation()\">{{ getText('deleteButtonText') }}</button>\n <button kendoButton (click)=\"showConfirmationDialog = false;\">{{ getText('cancelButtonText') }}</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n "
|
|
3119
|
+
template: "\n <ng-container kendoGanttLocalizedMessages\n i18n-taskEditingGeneralTabTitle=\"kendo.gantt.taskEditingGeneralTabTitle|The title of the 'General' tab of the editing dialog TabStrip\"\n taskEditingGeneralTabTitle=\"General\"\n\n i18n-taskEditingPredecessorsTabTitle=\"kendo.gantt.taskEditingPredecessorsTabTitle|The title of the 'Predecessors' dependencies tab of the editing dialog TabStrip\"\n taskEditingPredecessorsTabTitle=\"Predecessors\"\n\n i18n-taskEditingSuccessorsTabTitle=\"kendo.gantt.taskEditingSuccessorsTabTitle|The title of the 'Successors' dependencies tab of the editing dialog TabStrip\"\n taskEditingSuccessorsTabTitle=\"Successors\"\n\n i18n-taskEditingDependenciesAddButtonText=\"kendo.gantt.taskEditingDependenciesAddButtonText|The text of the 'Add' button in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesAddButtonText=\"Add\"\n\n i18n-taskEditingDependenciesRemoveButtonText=\"kendo.gantt.taskEditingDependenciesRemoveButtonText|The text of the 'Remove' button in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesRemoveButtonText=\"Remove\"\n\n i18n-taskEditingDependenciesGridNameColumnTitle=\"kendo.gantt.taskEditingDependenciesGridNameColumnTitle|The title of the 'Task Title' Grid column in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesGridNameColumnTitle=\"Task Title\"\n\n i18n-taskEditingDependenciesGridTypeColumnTitle=\"kendo.gantt.taskEditingDependenciesGridTypeColumnTitle|The title of the 'Type' Grid column in the dependencies tabs of the editing dialog TabStrip\"\n taskEditingDependenciesGridTypeColumnTitle=\"Type\"\n\n i18n-taskDeleteLabel=\"kendo.gantt.taskDeleteLabel|The label of the task delete icon\"\n taskDeleteLabel=\"Delete\"\n\n i18n-taskEditingDialogTitle=\"kendo.gantt.taskEditingDialogTitle|The title of the task editing dialog\"\n taskEditingDialogTitle=\"Editing Task\"\n\n i18n-taskEditingDialogCloseTitle=\"kendo.gantt.taskEditingDialogCloseTitle|The title of the task editing dialog close button\"\n taskEditingDialogCloseTitle=\"Close\"\n\n i18n-confirmationDialogCloseTitle=\"kendo.gantt.confirmationDialogCloseTitle|The title of the confirmation dialog close button\"\n confirmationDialogCloseTitle=\"Close\"\n\n i18n-confirmationDialogTitle=\"kendo.gantt.confirmationDialogTitle|The title of the delete task confirmation dialog\"\n confirmationDialogTitle=\"Delete Task\"\n\n i18n-confirmationDialogContent=\"kendo.gantt.confirmationDialogContent|The content of the delete task confirmation dialog\"\n confirmationDialogContent=\"Are you sure you want to delete this task?\"\n\n i18n-deleteButtonText=\"kendo.gantt.deleteButtonText|The text of the task editing dialog 'Delete' button\"\n deleteButtonText=\"Delete\"\n\n i18n-cancelButtonText=\"kendo.gantt.cancelButtonText|The text of the task editing dialog 'Cancel' button\"\n cancelButtonText=\"Cancel\"\n\n i18n-saveButtonText=\"kendo.gantt.saveButtonText|The text of the task editing dialog 'Save' button\"\n saveButtonText=\"Save\"\n\n i18n-titleFieldInputLabel=\"kendo.gantt.titleFieldInputLabel|The label of the 'title' field input in editing mode\"\n titleFieldInputLabel=\"Title\"\n\n i18n-startFieldInputLabel=\"kendo.gantt.startFieldInputLabel|The label of the 'start' field input in editing mode\"\n startFieldInputLabel=\"Start\"\n\n i18n-endFieldInputLabel=\"kendo.gantt.endFieldInputLabel|The label of the 'end' field input in editing mode\"\n endFieldInputLabel=\"End\"\n\n i18n-completionRatioFieldInputLabel=\"kendo.gantt.completionRatioFieldInputLabel|The label of the 'completionRatio' field input in editing mode\"\n completionRatioFieldInputLabel=\"Progress\"\n\n i18n-dayViewText=\"kendo.gantt.dayViewText|The text of the day view in the ViewSelector component\"\n dayViewText=\"Day\"\n\n i18n-weekViewText=\"kendo.gantt.weekViewText|The text of the week view in the ViewSelector component\"\n weekViewText=\"Week\"\n\n i18n-monthViewText=\"kendo.gantt.monthViewText|The text of the month view in the ViewSelector component\"\n monthViewText=\"Month\"\n\n i18n-yearViewText-disabled=\"kendo.gantt.yearViewText|The text of the year view in the ViewSelector component\"\n yearViewText=\"Year\"\n\n i18n-addTaskText=\"kendo.gantt.addTaskText|The text of the DropDownButton in the AddTask component\"\n addTaskText=\"Add Task\"\n\n i18n-addChildText=\"kendo.gantt.addChildText|The text of the 'Add Child' option in the AddTask component\"\n addChildText=\"Add Child\"\n\n i18n-addAboveText=\"kendo.gantt.addAboveText|The text of the 'Add Above' option in the AddTask component\"\n addAboveText=\"Add Above\"\n\n i18n-addBelowText=\"kendo.gantt.addBelowText|The text of the 'Add Below' option in the AddTask component\"\n addBelowText=\"Add Below\"\n\n i18n-noRecords=\"kendo.gantt.noRecords|The label visible in the TreeList when there are no records\"\n noRecords=\"No records available.\"\n\n i18n-filter=\"kendo.gantt.filter|The label of the filter cell or icon\"\n filter=\"Filter\"\n\n i18n-filterEqOperator=\"kendo.gantt.filterEqOperator|The text of the equal filter operator\"\n filterEqOperator=\"Is equal to\"\n\n i18n-filterNotEqOperator=\"kendo.gantt.filterNotEqOperator|The text of the not equal filter operator\"\n filterNotEqOperator=\"Is not equal to\"\n\n i18n-filterIsNullOperator=\"kendo.gantt.filterIsNullOperator|The text of the is null filter operator\"\n filterIsNullOperator=\"Is null\"\n\n i18n-filterIsNotNullOperator=\"kendo.gantt.filterIsNotNullOperator|The text of the is not null filter operator\"\n filterIsNotNullOperator=\"Is not null\"\n\n i18n-filterIsEmptyOperator=\"kendo.gantt.filterIsEmptyOperator|The text of the is empty filter operator\"\n filterIsEmptyOperator=\"Is empty\"\n\n i18n-filterIsNotEmptyOperator=\"kendo.gantt.filterIsNotEmptyOperator|The text of the is not empty filter operator\"\n filterIsNotEmptyOperator=\"Is not empty\"\n\n i18n-filterStartsWithOperator=\"kendo.gantt.filterStartsWithOperator|The text of the starts with filter operator\"\n filterStartsWithOperator=\"Starts with\"\n\n i18n-filterContainsOperator=\"kendo.gantt.filterContainsOperator|The text of the contains filter operator\"\n filterContainsOperator=\"Contains\"\n\n i18n-filterNotContainsOperator=\"kendo.gantt.filterNotContainsOperator|The text of the does not contain filter operator\"\n filterNotContainsOperator=\"Does not contain\"\n\n i18n-filterEndsWithOperator=\"kendo.gantt.filterEndsWithOperator|The text of the ends with filter operator\"\n filterEndsWithOperator=\"Ends with\"\n\n i18n-filterGteOperator=\"kendo.gantt.filterGteOperator|The text of the greater than or equal filter operator\"\n filterGteOperator=\"Is greater than or equal to\"\n\n i18n-filterGtOperator=\"kendo.gantt.filterGtOperator|The text of the greater than filter operator\"\n filterGtOperator=\"Is greater than\"\n\n i18n-filterLteOperator=\"kendo.gantt.filterLteOperator|The text of the less than or equal filter operator\"\n filterLteOperator=\"Is less than or equal to\"\n\n i18n-filterLtOperator=\"kendo.gantt.filterLtOperator|The text of the less than filter operator\"\n filterLtOperator=\"Is less than\"\n\n i18n-filterIsTrue=\"kendo.gantt.filterIsTrue|The text of the IsTrue boolean filter option\"\n filterIsTrue=\"Is True\"\n\n i18n-filterIsFalse=\"kendo.gantt.filterIsFalse|The text of the IsFalse boolean filter option\"\n filterIsFalse=\"Is False\"\n\n i18n-filterBooleanAll=\"kendo.gantt.filterBooleanAll|The text of the (All) boolean filter option\"\n filterBooleanAll=\"(All)\"\n\n i18n-filterAfterOrEqualOperator=\"kendo.gantt.filterAfterOrEqualOperator|The text of the after or equal date filter operator\"\n filterAfterOrEqualOperator=\"Is after or equal to\"\n\n i18n-filterAfterOperator=\"kendo.gantt.filterAfterOperator|The text of the after date filter operator\"\n filterAfterOperator=\"Is after\"\n\n i18n-filterBeforeOperator=\"kendo.gantt.filterBeforeOperator|The text of the before date filter operator\"\n filterBeforeOperator=\"Is before\"\n\n i18n-filterBeforeOrEqualOperator=\"kendo.gantt.filterBeforeOrEqualOperator|The text of the before or equal date filter operator\"\n filterBeforeOrEqualOperator=\"Is before or equal to\"\n\n i18n-filterFilterButton=\"kendo.gantt.filterFilterButton|The text of the filter button\"\n filterFilterButton=\"Filter\"\n\n i18n-filterClearButton=\"kendo.gantt.filterClearButton|The text of the clear filter button\"\n filterClearButton=\"Clear\"\n\n i18n-filterAndLogic=\"kendo.gantt.filterAndLogic|The text of the And filter logic\"\n filterAndLogic=\"And\"\n\n i18n-filterOrLogic=\"kendo.gantt.filterOrLogic|The text of the Or filter logic\"\n filterOrLogic=\"Or\"\n\n i18n-loading=\"kendo.gantt.loading|The loading text\"\n loading=\"Loading\"\n\n i18n-columnMenu=\"kendo.gantt.columnMenu|The title of the column menu icon\"\n columnMenu=\"Column Menu\"\n\n i18n-columns=\"kendo.gantt.columns|The text shown in the column menu for the columns item\"\n columns=\"Columns\"\n\n i18n-lock-disabled=\"kendo.gantt.lock|The text shown in the column menu for the lock item\"\n lock-disabled=\"Lock\"\n\n i18n-unlock-disabled=\"kendo.gantt.unlock|The text shown in the column menu for the unlock item\"\n unlock-disabled=\"Unlock\"\n\n i18n-sortable=\"kendo.gantt.sortable|The label of the sort icon\"\n sortable=\"Sortable\"\n\n i18n-sortAscending=\"kendo.gantt.sortAscending|The text shown in the column menu for the sort ascending item\"\n sortAscending=\"Sort Ascending\"\n\n i18n-sortDescending=\"kendo.gantt.sortDescending|The text shown in the column menu for the sort descending item\"\n sortDescending=\"Sort Descending\"\n\n i18n-sortedAscending=\"kendo.gantt.sortedAscending|The status announcement when a column is sorted ascending\"\n sortedAscending=\"Sorted Ascending\"\n\n i18n-sortedDescending=\"kendo.gantt.sortedDescending|The status announcement when a column is sorted descending\"\n sortedDescending=\"Sorted Descending\"\n\n i18n-sortedDefault=\"kendo.gantt.sortedDefault|The status announcement when a column is no longer sorted\"\n sortedDefault=\"Not Sorted\"\n\n i18n-columnsApply=\"kendo.gantt.columnsApply|The text shown in the column menu or column chooser for the columns apply button\"\n columnsApply=\"Apply\"\n\n i18n-columnsReset=\"kendo.gantt.columnsReset|The text shown in the column menu or column chooser for the columns reset button\"\n columnsReset=\"Reset\"></ng-container>\n <kendo-gantt-toolbar\n *ngIf=\"showToolbar('top')\"\n [showAddTask]=\"toolbarSettings.addTaskTool === 'top' || toolbarSettings.addTaskTool === 'both'\"\n [showViewSelector]=\"toolbarSettings.viewSelectorTool === 'top' || toolbarSettings.viewSelectorTool === 'both'\"\n class=\"k-gantt-header k-toolbar k-gantt-toolbar\"\n position=\"top\"></kendo-gantt-toolbar>\n <div class=\"k-gantt-content\">\n <kendo-splitter [style.border]=\"0\">\n <kendo-splitter-pane\n class=\"k-gantt-treelist k-gantt-treelist-scrollable\"\n [collapsible]=\"treeListPaneOptions?.collapsible\"\n [collapsed]=\"treeListPaneOptions?.collapsed\"\n (collapsedChange)=\"onTreeListCollapsedChange($event)\"\n [scrollable]=\"false\">\n <kendo-treelist\n [idField]=\"taskIdField\"\n [columns]=\"columns\"\n [data]=\"data\"\n [hasChildren]=\"hasChildren\"\n [fetchChildren]=\"fetchChildren\"\n [isExpanded]=\"isExpanded\"\n [autoSize]=\"columnsAutoSize\"\n [columnMenu]=\"columnMenu\"\n [reorderable]=\"columnsReorderable\"\n [resizable]=\"columnsResizable\"\n [rowClass]=\"rowClass\"\n [isSelected]=\"isSelected\"\n [selectable]=\"selectable\"\n [sortable]=\"sortable\"\n [sort]=\"sort\"\n [filterable]=\"filterMenu\"\n [filter]=\"filter\"\n (filterChange)=\"filterChange.emit($event)\"\n (sortChange)=\"sortChange.emit($event)\"\n (dataStateChange)=\"dataStateChange.emit({\n filter: $event.filter,\n sort: $event.sort\n })\"\n (expandStateChange)=\"expandStateChange.emit($event)\"\n (expand)=\"rowExpand.emit({ dataItem: $event.dataItem })\"\n (collapse)=\"rowCollapse.emit({ dataItem: $event.dataItem })\"\n (columnReorder)=\"columnReorder.emit($event)\"\n (columnResize)=\"columnResize.emit($event)\"\n (columnVisibilityChange)=\"handleColumnVisibilityChange($event)\"\n (columnLockedChange)=\"columnLockedChange.emit($event)\"\n (selectionChange)=\"handleTreeListSelectionChange($event)\"\n (cellClick)=\"handleTreeListCellClick($event)\"\n (cellClose)=\"handleCellClose($event)\"\n [kendoEventsOutsideAngular]=\"{\n dblclick: handleTreeListDoubleClick\n }\"\n [scope]=\"this\"\n >\n <kendo-treelist-messages\n [noRecords]=\"getText('noRecords')\"\n [filter]=\"getText('filter')\"\n [filterEqOperator]=\"getText('filterEqOperator')\"\n [filterNotEqOperator]=\"getText('filterNotEqOperator')\"\n [filterIsNullOperator]=\"getText('filterIsNullOperator')\"\n [filterIsNotNullOperator]=\"getText('filterIsNotNullOperator')\"\n [filterIsEmptyOperator]=\"getText('filterIsEmptyOperator')\"\n [filterIsNotEmptyOperator]=\"getText('filterIsNotEmptyOperator')\"\n [filterStartsWithOperator]=\"getText('filterStartsWithOperator')\"\n [filterContainsOperator]=\"getText('filterContainsOperator')\"\n [filterNotContainsOperator]=\"getText('filterNotContainsOperator')\"\n [filterEndsWithOperator]=\"getText('filterEndsWithOperator')\"\n [filterGteOperator]=\"getText('filterGteOperator')\"\n [filterGtOperator]=\"getText('filterGtOperator')\"\n [filterLteOperator]=\"getText('filterLteOperator')\"\n [filterLtOperator]=\"getText('filterLtOperator')\"\n [filterIsTrue]=\"getText('filterIsTrue')\"\n [filterIsFalse]=\"getText('filterIsFalse')\"\n [filterBooleanAll]=\"getText('filterBooleanAll')\"\n [filterAfterOrEqualOperator]=\"getText('filterAfterOrEqualOperator')\"\n [filterAfterOperator]=\"getText('filterAfterOperator')\"\n [filterBeforeOperator]=\"getText('filterBeforeOperator')\"\n [filterBeforeOrEqualOperator]=\"getText('filterBeforeOrEqualOperator')\"\n [filterFilterButton]=\"getText('filterFilterButton')\"\n [filterClearButton]=\"getText('filterClearButton')\"\n [filterAndLogic]=\"getText('filterAndLogic')\"\n [filterOrLogic]=\"getText('filterOrLogic')\"\n [loading]=\"getText('loading')\"\n [columnMenu]=\"getText('columnMenu')\"\n [columns]=\"getText('columns')\"\n [sortable]=\"getText('sortable')\"\n [sortAscending]=\"getText('sortAscending')\"\n [sortDescending]=\"getText('sortDescending')\"\n [sortedAscending]=\"getText('sortedAscending')\"\n [sortedDescending]=\"getText('sortedDescending')\"\n [sortedDefault]=\"getText('sortedDefault')\"\n [columnsApply]=\"getText('columnsApply')\"\n [columnsReset]=\"getText('columnsReset')\"\n >\n </kendo-treelist-messages>\n </kendo-treelist>\n </kendo-splitter-pane>\n <kendo-splitter-pane\n [collapsible]=\"timelinePaneOptions?.collapsible\"\n [resizable]=\"timelinePaneOptions?.resizable\"\n [collapsed]=\"timelinePaneOptions?.collapsed\"\n [min]=\"timelinePaneOptions?.min\"\n [max]=\"timelinePaneOptions?.max\"\n [size]=\"timelinePaneOptions?.size\"\n (collapsedChange)=\"onTimelineCollapsedChange($event)\"\n (sizeChange)=\"onTimelinePaneSizeChange($event)\"\n [scrollable]=\"false\">\n <kendo-gantt-timeline\n *ngIf=\"views && views.length\"\n [rows]=\"renderedTreeListItems\"\n [slots]=\"timelineSlots\"\n [groupSlots]=\"timelineGroupSlots\"\n [tableWidth]=\"tableWidth\"\n [activeView]=\"activeView\"\n [taskContentTemplate]=\"taskContentTemplate?.templateRef\"\n [taskTemplate]=\"taskTemplate?.templateRef\"\n [summaryTaskTemplate]=\"summaryTaskTemplate?.templateRef\"\n [taskClass]=\"taskClass\"\n [dependencies]=\"dependencies\"\n [hasChildren]=\"hasChildren\"\n [isTaskSelected]=\"isTaskSelected\"\n [kendoEventsOutsideAngular]=\"{\n click: handleTimelineClick,\n contextmenu: handleTimelineRightClick,\n dblclick: handleTimelineDblClick,\n mousedown: handleTimelineMouseDown\n }\"\n [scope]=\"this\"\n ></kendo-gantt-timeline>\n </kendo-splitter-pane>\n </kendo-splitter>\n </div>\n <kendo-gantt-toolbar\n *ngIf=\"showToolbar('bottom')\"\n [showAddTask]=\"toolbarSettings.addTaskTool === 'bottom' || toolbarSettings.addTaskTool === 'both'\"\n [showViewSelector]=\"toolbarSettings.viewSelectorTool === 'bottom' || toolbarSettings.viewSelectorTool === 'both'\"\n class=\"k-gantt-footer k-toolbar k-gantt-toolbar\"\n position=\"bottom\"></kendo-gantt-toolbar>\n <kendo-gantt-edit-dialog\n *ngIf=\"showEditingDialog\"\n [data]=\"data\">\n </kendo-gantt-edit-dialog>\n <kendo-dialog\n *ngIf=\"showConfirmationDialog\"\n [width]=\"575\"\n [height]=\"170\"\n [title]=\"getText('confirmationDialogTitle')\"\n (close)=\"showConfirmationDialog = false;\">\n <span>{{ getText('confirmationDialogContent') }}</span>\n <kendo-dialog-actions layout=\"normal\">\n <kendo-treelist-spacer></kendo-treelist-spacer>\n <button kendoButton [primary]=\"true\" (click)=\"handleDeleteConfirmation()\">{{ getText('deleteButtonText') }}</button>\n <button kendoButton (click)=\"showConfirmationDialog = false;\">{{ getText('cancelButtonText') }}</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n "
|
|
2999
3120
|
}),
|
|
3000
3121
|
__metadata("design:paramtypes", [TimelineViewService,
|
|
3001
3122
|
ScrollSyncService,
|
|
@@ -3795,6 +3916,23 @@ var ViewSelectorComponent = /** @class */ (function () {
|
|
|
3795
3916
|
return ViewSelectorComponent;
|
|
3796
3917
|
}());
|
|
3797
3918
|
|
|
3919
|
+
/**
|
|
3920
|
+
* The dependency type when two tasks are connected.
|
|
3921
|
+
*
|
|
3922
|
+
* The supported values are:
|
|
3923
|
+
* * `FF`—from 'finish' to 'finish'
|
|
3924
|
+
* * `FS`—from 'finish' to 'start'
|
|
3925
|
+
* * `SS`—from 'start' to 'start'
|
|
3926
|
+
* * `SF`—from 'start' to 'finish'
|
|
3927
|
+
*/
|
|
3928
|
+
var DependencyType;
|
|
3929
|
+
(function (DependencyType) {
|
|
3930
|
+
DependencyType[DependencyType["FF"] = 0] = "FF";
|
|
3931
|
+
DependencyType[DependencyType["FS"] = 1] = "FS";
|
|
3932
|
+
DependencyType[DependencyType["SF"] = 2] = "SF";
|
|
3933
|
+
DependencyType[DependencyType["SS"] = 3] = "SS"; // task B can't start before task A starts
|
|
3934
|
+
})(DependencyType || (DependencyType = {}));
|
|
3935
|
+
|
|
3798
3936
|
/**
|
|
3799
3937
|
* @hidden
|
|
3800
3938
|
*
|
|
@@ -3838,9 +3976,9 @@ var dependencyCoordinates = function (from, to, rowHeight, type, minDistanceBefo
|
|
|
3838
3976
|
| |
|
|
3839
3977
|
[[[]]]- -[[[]]]
|
|
3840
3978
|
*/
|
|
3841
|
-
if (type ===
|
|
3979
|
+
if (type === DependencyType.FF || type === DependencyType.SS) {
|
|
3842
3980
|
// polyline start from first task
|
|
3843
|
-
var dir = type ===
|
|
3981
|
+
var dir = type === DependencyType.SS ? 'left' : 'right';
|
|
3844
3982
|
top = from.top;
|
|
3845
3983
|
left = from[dir];
|
|
3846
3984
|
points.push({ top: top, left: left });
|
|
@@ -3866,9 +4004,9 @@ var dependencyCoordinates = function (from, to, rowHeight, type, minDistanceBefo
|
|
|
3866
4004
|
|
|
|
3867
4005
|
-[[[]]]
|
|
3868
4006
|
*/
|
|
3869
|
-
var startDir = type ===
|
|
3870
|
-
var endDir = type ===
|
|
3871
|
-
var additionalTurn = type ===
|
|
4007
|
+
var startDir = type === DependencyType.SF ? 'left' : 'right';
|
|
4008
|
+
var endDir = type === DependencyType.SF ? 'right' : 'left';
|
|
4009
|
+
var additionalTurn = type === DependencyType.SF
|
|
3872
4010
|
? from[startDir] - minDistanceBeforeTurn * 2 < to[endDir]
|
|
3873
4011
|
: from[startDir] + minDistanceBeforeTurn * 2 > to[endDir];
|
|
3874
4012
|
// polyline start from first task
|
|
@@ -4121,14 +4259,44 @@ var TimelineMonthViewComponent = /** @class */ (function (_super) {
|
|
|
4121
4259
|
* @hidden
|
|
4122
4260
|
*/
|
|
4123
4261
|
var EditDialogComponent = /** @class */ (function () {
|
|
4124
|
-
function EditDialogComponent(mapper, editService, localizationService) {
|
|
4262
|
+
function EditDialogComponent(mapper, editService, cdr, localizationService) {
|
|
4125
4263
|
this.mapper = mapper;
|
|
4126
4264
|
this.editService = editService;
|
|
4265
|
+
this.cdr = cdr;
|
|
4127
4266
|
this.localizationService = localizationService;
|
|
4128
4267
|
}
|
|
4268
|
+
EditDialogComponent.prototype.ngOnInit = function () {
|
|
4269
|
+
var _this = this;
|
|
4270
|
+
this.editService.loadTasks(this.data).subscribe(function (value) {
|
|
4271
|
+
_this.loadedTasks = value;
|
|
4272
|
+
});
|
|
4273
|
+
};
|
|
4274
|
+
Object.defineProperty(EditDialogComponent.prototype, "predecessors", {
|
|
4275
|
+
get: function () {
|
|
4276
|
+
return this.editService.predecessors;
|
|
4277
|
+
},
|
|
4278
|
+
set: function (items) {
|
|
4279
|
+
this.editService.predecessors = items;
|
|
4280
|
+
},
|
|
4281
|
+
enumerable: true,
|
|
4282
|
+
configurable: true
|
|
4283
|
+
});
|
|
4284
|
+
Object.defineProperty(EditDialogComponent.prototype, "successors", {
|
|
4285
|
+
get: function () {
|
|
4286
|
+
return this.editService.successors;
|
|
4287
|
+
},
|
|
4288
|
+
set: function (items) {
|
|
4289
|
+
this.editService.successors = items;
|
|
4290
|
+
},
|
|
4291
|
+
enumerable: true,
|
|
4292
|
+
configurable: true
|
|
4293
|
+
});
|
|
4129
4294
|
EditDialogComponent.prototype.getText = function (token) {
|
|
4130
4295
|
return this.localizationService.get(token);
|
|
4131
4296
|
};
|
|
4297
|
+
EditDialogComponent.prototype.getDependencyType = function (typeId) {
|
|
4298
|
+
return DependencyType[typeId];
|
|
4299
|
+
};
|
|
4132
4300
|
EditDialogComponent.prototype.handleEditingResult = function (editResultType) {
|
|
4133
4301
|
this.editService.triggerEditEvent(editResultType);
|
|
4134
4302
|
};
|
|
@@ -4137,15 +4305,16 @@ var EditDialogComponent = /** @class */ (function () {
|
|
|
4137
4305
|
};
|
|
4138
4306
|
__decorate([
|
|
4139
4307
|
Input(),
|
|
4140
|
-
__metadata("design:type",
|
|
4141
|
-
], EditDialogComponent.prototype, "
|
|
4308
|
+
__metadata("design:type", Array)
|
|
4309
|
+
], EditDialogComponent.prototype, "data", void 0);
|
|
4142
4310
|
EditDialogComponent = __decorate([
|
|
4143
4311
|
Component({
|
|
4144
4312
|
selector: 'kendo-gantt-edit-dialog',
|
|
4145
|
-
template: "\n <kendo-dialog\n [title]=\"getText('taskEditingDialogTitle')\"\n [width]=\"575\"\n [height]=\"470\"\n (close)=\"handleEditingResult('cancel')\">\n <kendo-dialog-messages\n [closeTitle]=\"getText('taskEditingDialogCloseTitle')\"></kendo-dialog-messages>\n <
|
|
4313
|
+
template: "\n <kendo-dialog\n [title]=\"getText('taskEditingDialogTitle')\"\n [width]=\"575\"\n [height]=\"470\"\n (close)=\"handleEditingResult('cancel')\">\n <kendo-dialog-messages\n [closeTitle]=\"getText('taskEditingDialogCloseTitle')\"></kendo-dialog-messages>\n\n <kendo-tabstrip [keepTabContent]=\"true\">\n <kendo-tabstrip-tab [title]=\"getText('taskEditingGeneralTabTitle')\" [selected]=\"true\">\n <ng-template kendoTabContent>\n <kendo-gantt-task-fields></kendo-gantt-task-fields>\n </ng-template>\n </kendo-tabstrip-tab>\n <kendo-tabstrip-tab [title]=\"getText('taskEditingPredecessorsTabTitle')\">\n <ng-template kendoTabContent>\n <kendo-gantt-dependencies-table\n [tasks]=\"loadedTasks\"\n [(dependencies)]=\"predecessors\"\n dependencyType=\"predecessor\"\n >\n </kendo-gantt-dependencies-table>\n </ng-template>\n </kendo-tabstrip-tab>\n <kendo-tabstrip-tab [title]=\"getText('taskEditingSuccessorsTabTitle')\">\n <ng-template kendoTabContent>\n <kendo-gantt-dependencies-table\n [tasks]=\"loadedTasks\"\n [(dependencies)]=\"successors\"\n dependencyType=\"successor\">\n </kendo-gantt-dependencies-table>\n </ng-template>\n </kendo-tabstrip-tab>\n </kendo-tabstrip>\n\n <kendo-dialog-actions layout=\"normal\">\n <button kendoButton (click)=\"onTaskDelete()\">{{ getText('deleteButtonText') }}</button>\n <kendo-treelist-spacer></kendo-treelist-spacer>\n <button kendoButton [primary]=\"true\" (click)=\"handleEditingResult('save')\">{{ getText('saveButtonText') }}</button>\n <button kendoButton (click)=\"handleEditingResult('cancel')\">{{ getText('cancelButtonText') }}</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n "
|
|
4146
4314
|
}),
|
|
4147
4315
|
__metadata("design:paramtypes", [MappingService,
|
|
4148
4316
|
EditService,
|
|
4317
|
+
ChangeDetectorRef,
|
|
4149
4318
|
LocalizationService])
|
|
4150
4319
|
], EditDialogComponent);
|
|
4151
4320
|
return EditDialogComponent;
|
|
@@ -4583,6 +4752,160 @@ var GanttAddTaskComponent = /** @class */ (function () {
|
|
|
4583
4752
|
return GanttAddTaskComponent;
|
|
4584
4753
|
}());
|
|
4585
4754
|
|
|
4755
|
+
/**
|
|
4756
|
+
* @hidden
|
|
4757
|
+
*/
|
|
4758
|
+
var DependenciesTableComponent = /** @class */ (function () {
|
|
4759
|
+
function DependenciesTableComponent(mapper, editService, localizationService) {
|
|
4760
|
+
this.mapper = mapper;
|
|
4761
|
+
this.editService = editService;
|
|
4762
|
+
this.localizationService = localizationService;
|
|
4763
|
+
this.dependenciesChange = new EventEmitter();
|
|
4764
|
+
this.selectedKeys = [];
|
|
4765
|
+
this.formGroups = new FormArray([]);
|
|
4766
|
+
this.dependencyTypes = this.getDependencyTypes();
|
|
4767
|
+
}
|
|
4768
|
+
Object.defineProperty(DependenciesTableComponent.prototype, "taskId", {
|
|
4769
|
+
get: function () {
|
|
4770
|
+
return this.editService.dataItem.id;
|
|
4771
|
+
},
|
|
4772
|
+
enumerable: true,
|
|
4773
|
+
configurable: true
|
|
4774
|
+
});
|
|
4775
|
+
Object.defineProperty(DependenciesTableComponent.prototype, "dependencyIdField", {
|
|
4776
|
+
// The target dependency id field
|
|
4777
|
+
// e.g. if Predecessors, we have the `fromId` which is the currently edited task,
|
|
4778
|
+
// while the `toId` is missing (needs to be selected by the user)
|
|
4779
|
+
get: function () {
|
|
4780
|
+
return this.dependencyType === 'predecessor' ? 'fromId' : 'toId';
|
|
4781
|
+
},
|
|
4782
|
+
enumerable: true,
|
|
4783
|
+
configurable: true
|
|
4784
|
+
});
|
|
4785
|
+
DependenciesTableComponent.prototype.ngOnInit = function () {
|
|
4786
|
+
var _this = this;
|
|
4787
|
+
// generate the FormGroups per each Grid row
|
|
4788
|
+
if (this.formGroups.controls.length === 0) {
|
|
4789
|
+
var fields_1 = this.mapper.dependencyFields;
|
|
4790
|
+
this.dependencies.forEach(function (item) {
|
|
4791
|
+
var _a;
|
|
4792
|
+
var formGroup = new FormGroup((_a = {},
|
|
4793
|
+
_a[fields_1.id] = new FormControl(_this.mapper.extractFromDependency(item, 'id')),
|
|
4794
|
+
_a[fields_1.fromId] = new FormControl(_this.mapper.extractFromDependency(item, 'fromId'), Validators.required),
|
|
4795
|
+
_a[fields_1.toId] = new FormControl(_this.mapper.extractFromDependency(item, 'toId'), Validators.required),
|
|
4796
|
+
_a[fields_1.type] = new FormControl(_this.mapper.extractFromDependency(item, 'type'), Validators.required),
|
|
4797
|
+
_a));
|
|
4798
|
+
_this.formGroups.push(formGroup);
|
|
4799
|
+
});
|
|
4800
|
+
}
|
|
4801
|
+
this.formGroups.valueChanges.subscribe(function (val) {
|
|
4802
|
+
_this.formGroups.controls.forEach(function (control) {
|
|
4803
|
+
if (control.dirty) {
|
|
4804
|
+
_this.editService.updateDependencies(control.value);
|
|
4805
|
+
}
|
|
4806
|
+
});
|
|
4807
|
+
_this.dependenciesChange.emit(val);
|
|
4808
|
+
});
|
|
4809
|
+
};
|
|
4810
|
+
DependenciesTableComponent.prototype.getFormControl = function (dataItemIndex, field) {
|
|
4811
|
+
// return the FormControl for the respective column editor
|
|
4812
|
+
return this.formGroups.controls
|
|
4813
|
+
.find(function (_control, index) { return index === dataItemIndex; })
|
|
4814
|
+
.get(this.mapper.dependencyFields[field]);
|
|
4815
|
+
};
|
|
4816
|
+
DependenciesTableComponent.prototype.getText = function (token) {
|
|
4817
|
+
return this.localizationService.get(token);
|
|
4818
|
+
};
|
|
4819
|
+
DependenciesTableComponent.prototype.getDependencyTypes = function () {
|
|
4820
|
+
var types = Object.keys(DependencyType)
|
|
4821
|
+
.filter(function (value) { return typeof DependencyType[value] === 'number'; })
|
|
4822
|
+
.map(function (type) {
|
|
4823
|
+
return {
|
|
4824
|
+
type: type,
|
|
4825
|
+
id: DependencyType[type]
|
|
4826
|
+
};
|
|
4827
|
+
});
|
|
4828
|
+
return types;
|
|
4829
|
+
};
|
|
4830
|
+
DependenciesTableComponent.prototype.addHandler = function () {
|
|
4831
|
+
var _a;
|
|
4832
|
+
var fields = this.mapper.dependencyFields;
|
|
4833
|
+
var formGroup = new FormGroup((_a = {},
|
|
4834
|
+
_a[fields.id] = new FormControl(),
|
|
4835
|
+
_a[fields.fromId] = new FormControl(this.dependencyIdField === 'toId' ? this.taskId : null, Validators.required),
|
|
4836
|
+
_a[fields.toId] = new FormControl(this.dependencyIdField === 'fromId' ? this.taskId : null, Validators.required),
|
|
4837
|
+
_a[fields.type] = new FormControl(null, Validators.required),
|
|
4838
|
+
_a));
|
|
4839
|
+
this.formGroups.push(formGroup);
|
|
4840
|
+
};
|
|
4841
|
+
DependenciesTableComponent.prototype.removeHandler = function () {
|
|
4842
|
+
var selectedIndex = this.selectedKeys[0];
|
|
4843
|
+
var item = this.formGroups.at(selectedIndex).value;
|
|
4844
|
+
this.editService.deleteDependency(item);
|
|
4845
|
+
this.formGroups.removeAt(selectedIndex);
|
|
4846
|
+
};
|
|
4847
|
+
__decorate([
|
|
4848
|
+
Input(),
|
|
4849
|
+
__metadata("design:type", Array)
|
|
4850
|
+
], DependenciesTableComponent.prototype, "tasks", void 0);
|
|
4851
|
+
__decorate([
|
|
4852
|
+
Input(),
|
|
4853
|
+
__metadata("design:type", Array)
|
|
4854
|
+
], DependenciesTableComponent.prototype, "dependencies", void 0);
|
|
4855
|
+
__decorate([
|
|
4856
|
+
Input(),
|
|
4857
|
+
__metadata("design:type", String)
|
|
4858
|
+
], DependenciesTableComponent.prototype, "dependencyType", void 0);
|
|
4859
|
+
__decorate([
|
|
4860
|
+
Output(),
|
|
4861
|
+
__metadata("design:type", EventEmitter)
|
|
4862
|
+
], DependenciesTableComponent.prototype, "dependenciesChange", void 0);
|
|
4863
|
+
DependenciesTableComponent = __decorate([
|
|
4864
|
+
Component({
|
|
4865
|
+
selector: 'kendo-gantt-dependencies-table',
|
|
4866
|
+
template: "\n <kendo-grid\n [data]=\"dependencies\"\n [selectable]=\"{ mode: 'single' }\"\n [(selectedKeys)]=\"selectedKeys\"\n kendoGridSelectBy\n [height]=\"295\"\n >\n <ng-template kendoGridToolbarTemplate>\n <button kendoButton (click)=\"addHandler()\">\n {{ getText('taskEditingDependenciesAddButtonText') }}\n </button>\n <button kendoButton (click)=\"removeHandler()\" [disabled]=\"selectedKeys.length === 0\">\n {{ getText('taskEditingDependenciesRemoveButtonText') }}\n </button>\n </ng-template>\n <kendo-grid-column [title]=\"getText('taskEditingDependenciesGridNameColumnTitle')\" [field]=\"dependencyIdField\">\n <ng-template kendoGridCellTemplate let-dataItem=\"dataItem\" let-column=\"column\" let-rowIndex=\"rowIndex\">\n <kendo-dropdownlist\n [data]=\"tasks\"\n textField=\"title\"\n valueField=\"id\"\n [valuePrimitive]=\"true\"\n [formControl]=\"getFormControl(rowIndex, column.field)\"\n >\n </kendo-dropdownlist>\n </ng-template>\n </kendo-grid-column>\n <kendo-grid-column [title]=\"getText('taskEditingDependenciesGridTypeColumnTitle')\" field=\"type\">\n <ng-template kendoGridCellTemplate let-dataItem=\"dataItem\" let-column=\"column\" let-rowIndex=\"rowIndex\">\n <kendo-dropdownlist\n [data]=\"dependencyTypes\"\n textField=\"type\"\n valueField=\"id\"\n [valuePrimitive]=\"true\"\n [formControl]=\"getFormControl(rowIndex, column.field)\"\n >\n </kendo-dropdownlist>\n </ng-template>\n </kendo-grid-column>\n </kendo-grid>\n "
|
|
4867
|
+
}),
|
|
4868
|
+
__metadata("design:paramtypes", [MappingService,
|
|
4869
|
+
EditService,
|
|
4870
|
+
GanttLocalizationService])
|
|
4871
|
+
], DependenciesTableComponent);
|
|
4872
|
+
return DependenciesTableComponent;
|
|
4873
|
+
}());
|
|
4874
|
+
|
|
4875
|
+
/**
|
|
4876
|
+
* @hidden
|
|
4877
|
+
*/
|
|
4878
|
+
var TaskFieldsComponent = /** @class */ (function () {
|
|
4879
|
+
function TaskFieldsComponent(mapper, editService, localizationService) {
|
|
4880
|
+
this.mapper = mapper;
|
|
4881
|
+
this.editService = editService;
|
|
4882
|
+
this.localizationService = localizationService;
|
|
4883
|
+
}
|
|
4884
|
+
Object.defineProperty(TaskFieldsComponent.prototype, "formGroup", {
|
|
4885
|
+
/**
|
|
4886
|
+
* @hidden
|
|
4887
|
+
*/
|
|
4888
|
+
get: function () {
|
|
4889
|
+
return this.editService.taskFormGroup;
|
|
4890
|
+
},
|
|
4891
|
+
enumerable: true,
|
|
4892
|
+
configurable: true
|
|
4893
|
+
});
|
|
4894
|
+
TaskFieldsComponent.prototype.getText = function (token) {
|
|
4895
|
+
return this.localizationService.get(token);
|
|
4896
|
+
};
|
|
4897
|
+
TaskFieldsComponent = __decorate([
|
|
4898
|
+
Component({
|
|
4899
|
+
selector: 'kendo-gantt-task-fields',
|
|
4900
|
+
template: "\n <form class=\"k-form\" [formGroup]=\"formGroup\">\n <kendo-formfield *ngIf=\"formGroup.contains(mapper.taskFields.title)\">\n <kendo-label [for]=\"mapper.taskFields.title\" [text]=\"getText('titleFieldInputLabel')\"></kendo-label>\n <input class=\"k-textbox\" [formControlName]=\"mapper.taskFields.title\" />\n </kendo-formfield>\n <div class=\"k-hstack\">\n <kendo-formfield [style.width.%]=\"49\" *ngIf=\"formGroup.contains(mapper.taskFields.start)\">\n <kendo-label [for]=\"mapper.taskFields.start\" [text]=\"getText('startFieldInputLabel')\"></kendo-label>\n <kendo-datetimepicker [formControlName]=\"mapper.taskFields.start\"></kendo-datetimepicker>\n </kendo-formfield>\n <kendo-treelist-spacer></kendo-treelist-spacer>\n <kendo-formfield [style.width.%]=\"49\" *ngIf=\"formGroup.contains(mapper.taskFields.end)\">\n <kendo-label [for]=\"mapper.taskFields.end\" [text]=\"getText('endFieldInputLabel')\"></kendo-label>\n <kendo-datetimepicker [formControlName]=\"mapper.taskFields.end\"></kendo-datetimepicker>\n </kendo-formfield>\n </div>\n <kendo-formfield [style.width.%]=\"49\" *ngIf=\"formGroup.contains(mapper.taskFields.completionRatio)\">\n <kendo-label [for]=\"mapper.taskFields.completionRatio\" [text]=\"getText('completionRatioFieldInputLabel')\"></kendo-label>\n <kendo-numerictextbox\n [formControlName]=\"mapper.taskFields.completionRatio\"\n [min]=\"0\"\n [max]=\"1\"\n [decimals]=\"2\"\n format=\"p2\"\n [step]=\"0.01\"\n ></kendo-numerictextbox>\n </kendo-formfield>\n </form>\n "
|
|
4901
|
+
}),
|
|
4902
|
+
__metadata("design:paramtypes", [MappingService,
|
|
4903
|
+
EditService,
|
|
4904
|
+
GanttLocalizationService])
|
|
4905
|
+
], TaskFieldsComponent);
|
|
4906
|
+
return TaskFieldsComponent;
|
|
4907
|
+
}());
|
|
4908
|
+
|
|
4586
4909
|
var IMPORTED_MODULES = [
|
|
4587
4910
|
CommonModule,
|
|
4588
4911
|
ReactiveFormsModule,
|
|
@@ -4594,7 +4917,10 @@ var IMPORTED_MODULES = [
|
|
|
4594
4917
|
TreeListModule,
|
|
4595
4918
|
ButtonsModule,
|
|
4596
4919
|
DialogModule,
|
|
4597
|
-
EventsModule
|
|
4920
|
+
EventsModule,
|
|
4921
|
+
TabStripModule,
|
|
4922
|
+
GridModule,
|
|
4923
|
+
DropDownsModule
|
|
4598
4924
|
];
|
|
4599
4925
|
var DECLARATIONS = [
|
|
4600
4926
|
GanttComponent,
|
|
@@ -4631,7 +4957,9 @@ var DECLARATIONS = [
|
|
|
4631
4957
|
EditDialogComponent,
|
|
4632
4958
|
CustomMessagesComponent,
|
|
4633
4959
|
LocalizedMessagesDirective,
|
|
4634
|
-
GanttAddTaskComponent
|
|
4960
|
+
GanttAddTaskComponent,
|
|
4961
|
+
DependenciesTableComponent,
|
|
4962
|
+
TaskFieldsComponent
|
|
4635
4963
|
];
|
|
4636
4964
|
/**
|
|
4637
4965
|
* Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
|
|
@@ -4726,4 +5054,4 @@ var CellCloseEvent = /** @class */ (function (_super) {
|
|
|
4726
5054
|
* Generated bundle index. Do not edit.
|
|
4727
5055
|
*/
|
|
4728
5056
|
|
|
4729
|
-
export { MappingService, OptionChangesService, DependencyDomService, GanttDependencyDirective, GanttAddTaskComponent, EditDialogComponent, EditService, CustomMessagesComponent, LocalizedMessagesDirective, Messages, PreventableEvent, GanttHeaderTableBodyComponent, GanttMilestoneTaskComponent, GanttSummaryTaskComponent, GanttTaskBase, GanttTaskComponent, GanttTasksTableBodyComponent, ScrollSyncService, GanttTimelineComponent, TimelineBaseViewService, TimelineDayViewComponent, TimelineDayViewService, TimelineMonthViewComponent, TimelineMonthViewService, TimelineViewService, TimelineWeekViewComponent, TimelineWeekViewService, ViewBase, ToolbarComponent, ViewSelectorComponent, GanttComponent, GanttModule, GanttHierarchyBindingDirective, GanttFlatBindingDirective, GanttExpandableDirective, GanttTaskTemplateDirective, GanttTaskContentTemplateDirective, GanttSummaryTaskTemplateDirective, ToolbarTemplateDirective, SelectableDirective, CellCloseEvent, GanttColumnBase, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, CellTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ColumnMenuTemplateDirective, FilterCellTemplateDirective, FilterMenuTemplateDirective, EditTemplateDirective };
|
|
5057
|
+
export { MappingService, OptionChangesService, DependencyDomService, GanttDependencyDirective, GanttAddTaskComponent, DependenciesTableComponent, EditDialogComponent, EditService, TaskFieldsComponent, CustomMessagesComponent, GanttLocalizationService, LocalizedMessagesDirective, Messages, PreventableEvent, GanttHeaderTableBodyComponent, GanttMilestoneTaskComponent, GanttSummaryTaskComponent, GanttTaskBase, GanttTaskComponent, GanttTasksTableBodyComponent, ScrollSyncService, GanttTimelineComponent, TimelineBaseViewService, TimelineDayViewComponent, TimelineDayViewService, TimelineMonthViewComponent, TimelineMonthViewService, TimelineViewService, TimelineWeekViewComponent, TimelineWeekViewService, ViewBase, ToolbarComponent, ViewSelectorComponent, GanttComponent, GanttModule, GanttHierarchyBindingDirective, GanttFlatBindingDirective, GanttExpandableDirective, GanttTaskTemplateDirective, GanttTaskContentTemplateDirective, GanttSummaryTaskTemplateDirective, ToolbarTemplateDirective, SelectableDirective, DependencyType, CellCloseEvent, GanttColumnBase, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, CellTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ColumnMenuTemplateDirective, FilterCellTemplateDirective, FilterMenuTemplateDirective, EditTemplateDirective };
|