@progress/kendo-angular-gantt 0.2.0-dev.202111231320 → 0.2.1-dev.202112081924
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 +2 -2
- package/dist/es/common/default-callbacks.js +4 -0
- package/dist/es/expanded-state/expandable.directive.js +6 -4
- package/dist/es/gantt.component.js +187 -32
- package/dist/es/gantt.module.js +3 -1
- package/dist/es/main.js +1 -0
- 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 -4
- package/dist/es/rendering/gantt-task.component.js +1 -1
- package/dist/es/rendering/gantt-tasks-table-body.component.js +3 -3
- 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 +1 -1
- package/dist/es/utils.js +5 -1
- package/dist/es2015/common/default-callbacks.d.ts +4 -0
- package/dist/es2015/common/default-callbacks.js +4 -0
- package/dist/es2015/expanded-state/expandable.directive.d.ts +2 -1
- package/dist/es2015/expanded-state/expandable.directive.js +7 -2
- package/dist/es2015/gantt.component.d.ts +66 -18
- package/dist/es2015/gantt.component.js +191 -34
- package/dist/es2015/gantt.module.js +3 -1
- package/dist/es2015/index.metadata.json +1 -1
- 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 +31 -8
- package/dist/es2015/models/events/task-click-event.interface.d.ts +13 -5
- 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 +1 -0
- package/dist/es2015/rendering/gantt-summary-task.component.js +1 -0
- package/dist/es2015/rendering/gantt-task-base.d.ts +2 -1
- package/dist/es2015/rendering/gantt-task-base.js +8 -4
- package/dist/es2015/rendering/gantt-task.component.js +1 -0
- package/dist/es2015/rendering/gantt-tasks-table-body.component.d.ts +1 -1
- package/dist/es2015/rendering/gantt-tasks-table-body.component.js +5 -2
- 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.js +1 -0
- package/dist/es2015/utils.d.ts +5 -0
- package/dist/es2015/utils.js +5 -1
- package/dist/fesm2015/index.js +341 -40
- package/dist/fesm5/index.js +353 -46
- package/dist/npm/common/default-callbacks.js +4 -0
- package/dist/npm/expanded-state/expandable.directive.js +5 -3
- package/dist/npm/gantt.component.js +187 -32
- package/dist/npm/gantt.module.js +3 -1
- package/dist/npm/main.js +2 -0
- 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 -4
- package/dist/npm/rendering/gantt-task.component.js +1 -1
- package/dist/npm/rendering/gantt-tasks-table-body.component.js +3 -3
- 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 +1 -1
- package/dist/npm/utils.js +4 -0
- package/dist/systemjs/kendo-angular-gantt.js +1 -1
- package/package.json +1 -1
package/dist/fesm2015/index.js
CHANGED
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
import { __decorate, __metadata, __param } from 'tslib';
|
|
6
6
|
import { Input, EventEmitter, Injectable, 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
|
+
import { cloneDate, addWeeks, firstDayInWeek, addDays, getDate, lastDayOfMonth, firstDayOfMonth, addMonths, isEqualDate, MS_PER_HOUR, MS_PER_DAY } from '@progress/kendo-date-math';
|
|
8
9
|
import { of, Subject, Subscription, fromEvent } from 'rxjs';
|
|
9
10
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
10
11
|
import { isDocumentAvailable, closestInScope, matchesClasses, anyChanged, hasObservers, EventsModule } from '@progress/kendo-angular-common';
|
|
11
12
|
import { IntlService } from '@progress/kendo-angular-intl';
|
|
12
13
|
import { orderBy } from '@progress/kendo-data-query';
|
|
13
|
-
import { cloneDate, addWeeks, firstDayInWeek, addDays, getDate, lastDayOfMonth, firstDayOfMonth, addMonths, isEqualDate, MS_PER_HOUR, MS_PER_DAY } from '@progress/kendo-date-math';
|
|
14
14
|
import { getter } from '@progress/kendo-common';
|
|
15
15
|
import { map, distinctUntilChanged, take, filter, switchMap } from 'rxjs/operators';
|
|
16
16
|
import { LocalizationService, ComponentMessages, L10N_PREFIX } from '@progress/kendo-angular-l10n';
|
|
@@ -30,7 +30,7 @@ const packageMetadata = {
|
|
|
30
30
|
name: '@progress/kendo-angular-gantt',
|
|
31
31
|
productName: 'Kendo UI for Angular',
|
|
32
32
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
33
|
-
publishDate:
|
|
33
|
+
publishDate: 1638991092,
|
|
34
34
|
version: '',
|
|
35
35
|
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
36
|
};
|
|
@@ -627,6 +627,10 @@ const rowClassCallback = () => null;
|
|
|
627
627
|
* @hidden
|
|
628
628
|
*/
|
|
629
629
|
const taskClassCallback = () => null;
|
|
630
|
+
/**
|
|
631
|
+
* @hidden
|
|
632
|
+
*/
|
|
633
|
+
const isSelected = () => false;
|
|
630
634
|
|
|
631
635
|
/**
|
|
632
636
|
* @hidden
|
|
@@ -723,6 +727,10 @@ const isColumnGroup = (column) => column.isColumnGroup;
|
|
|
723
727
|
* @hidden
|
|
724
728
|
*/
|
|
725
729
|
const isNumber = (contender) => typeof contender === 'number' && !isNaN(contender);
|
|
730
|
+
/**
|
|
731
|
+
* @hidden
|
|
732
|
+
*/
|
|
733
|
+
const isString = (contender) => typeof contender === 'string';
|
|
726
734
|
/**
|
|
727
735
|
* @hidden
|
|
728
736
|
*
|
|
@@ -1721,6 +1729,27 @@ let GanttComponent = GanttComponent_1 = class GanttComponent {
|
|
|
1721
1729
|
this.hostElement = hostElement;
|
|
1722
1730
|
this.zone = zone;
|
|
1723
1731
|
this.hostClasses = true;
|
|
1732
|
+
/**
|
|
1733
|
+
* Provides a callback that determines if the given task is selected ([see example]({% slug selection_gantt %}#toc-custom-selection))
|
|
1734
|
+
*
|
|
1735
|
+
* > The [`selectable`]({% slug gantt_api_ganttcomponent %}#toc-selectable) prop has to be set to `true` in order for this callback to be executed.
|
|
1736
|
+
*/
|
|
1737
|
+
this.isSelected = isSelected;
|
|
1738
|
+
/**
|
|
1739
|
+
* Fires when the Gantt selection is changed through user interaction.
|
|
1740
|
+
*
|
|
1741
|
+
* Holds data about the affected [`items`]({% slug api_gantt_selectionchangeevent %}#toc-items) and the attempted [`action`]({% slug api_gantt_selectionchangeevent %}#toc-action):
|
|
1742
|
+
* - `select` - Triggered on `click` or `ctrl + click` on deselected items.
|
|
1743
|
+
* - `remove` - Triggered on `ctrl + click` on selected items.
|
|
1744
|
+
*/
|
|
1745
|
+
this.selectionChange = new EventEmitter();
|
|
1746
|
+
/**
|
|
1747
|
+
* Enables or disables the Gantt selection mechanism ([see example]({% slug selection_gantt %}#toc-custom-selection)).
|
|
1748
|
+
*
|
|
1749
|
+
* > When set to `true`, the [`isSelected`]({% slug gantt_api_ganttcomponent %}#toc-isselected) callback has to be provided.
|
|
1750
|
+
* > When applied, the [`SelectableDirective`]({% slug api_gantt_selectabledirective %}) sets `selectable` to `true` internally.
|
|
1751
|
+
*/
|
|
1752
|
+
this.selectable = false;
|
|
1724
1753
|
/**
|
|
1725
1754
|
* The position of the toolbar.
|
|
1726
1755
|
*
|
|
@@ -1889,6 +1918,14 @@ let GanttComponent = GanttComponent_1 = class GanttComponent {
|
|
|
1889
1918
|
* Fires when the user changes the locked state of the columns from the column menu or by reordering the columns.
|
|
1890
1919
|
*/
|
|
1891
1920
|
this.columnLockedChange = new EventEmitter();
|
|
1921
|
+
/**
|
|
1922
|
+
* Fires when a cell is clicked.
|
|
1923
|
+
*/
|
|
1924
|
+
this.cellClick = new EventEmitter();
|
|
1925
|
+
/**
|
|
1926
|
+
* Fires when a task is clicked.
|
|
1927
|
+
*/
|
|
1928
|
+
this.taskClick = new EventEmitter();
|
|
1892
1929
|
/**
|
|
1893
1930
|
* @hidden
|
|
1894
1931
|
*
|
|
@@ -1914,9 +1951,6 @@ let GanttComponent = GanttComponent_1 = class GanttComponent {
|
|
|
1914
1951
|
this.optionChangesSubscriptions = new Subscription();
|
|
1915
1952
|
this.editServiceSubscription = new Subscription();
|
|
1916
1953
|
validatePackage(packageMetadata);
|
|
1917
|
-
this.handleTimelineDblClick = this.handleTimelineDblClick.bind(this);
|
|
1918
|
-
this.handleTimelineMouseDown = this.handleTimelineMouseDown.bind(this);
|
|
1919
|
-
this.handleDoubleClick = this.handleDoubleClick.bind(this);
|
|
1920
1954
|
this.optionChangesSubscriptions.add(this.optionChangesService.viewChanges.subscribe(() => {
|
|
1921
1955
|
this.loadTimelineData();
|
|
1922
1956
|
}));
|
|
@@ -2089,6 +2123,15 @@ let GanttComponent = GanttComponent_1 = class GanttComponent {
|
|
|
2089
2123
|
// TODO: review if this is a performance concern?
|
|
2090
2124
|
return this.timelineViewService.service(this.activeView);
|
|
2091
2125
|
}
|
|
2126
|
+
/**
|
|
2127
|
+
* @hidden
|
|
2128
|
+
*
|
|
2129
|
+
* Retrieves the `isSelected` callback if `selectable` is set to `true`
|
|
2130
|
+
* Otherwise returns the default callback, which always returns `false`.
|
|
2131
|
+
*/
|
|
2132
|
+
get isTaskSelected() {
|
|
2133
|
+
return this.selectable ? this.isSelected : isSelected;
|
|
2134
|
+
}
|
|
2092
2135
|
/**
|
|
2093
2136
|
* @hidden
|
|
2094
2137
|
*
|
|
@@ -2183,6 +2226,14 @@ let GanttComponent = GanttComponent_1 = class GanttComponent {
|
|
|
2183
2226
|
this.treeList.reorderColumn(source, destIndex, options);
|
|
2184
2227
|
}
|
|
2185
2228
|
}
|
|
2229
|
+
/**
|
|
2230
|
+
* Updates the data of the Gantt and forces row-related callbacks to be called anew.
|
|
2231
|
+
*/
|
|
2232
|
+
updateView() {
|
|
2233
|
+
if (isPresent(this.treeList)) {
|
|
2234
|
+
this.treeList.updateView();
|
|
2235
|
+
}
|
|
2236
|
+
}
|
|
2186
2237
|
/**
|
|
2187
2238
|
* Opens the task editing dialog.
|
|
2188
2239
|
*/
|
|
@@ -2243,16 +2294,6 @@ let GanttComponent = GanttComponent_1 = class GanttComponent {
|
|
|
2243
2294
|
this.dependencyDomService.notifyChanges();
|
|
2244
2295
|
}
|
|
2245
2296
|
}
|
|
2246
|
-
/**
|
|
2247
|
-
* @hidden
|
|
2248
|
-
*
|
|
2249
|
-
* Used by the GanttExpandableDirective.
|
|
2250
|
-
*/
|
|
2251
|
-
updateView() {
|
|
2252
|
-
if (isPresent(this.treeList)) {
|
|
2253
|
-
this.treeList.updateView();
|
|
2254
|
-
}
|
|
2255
|
-
}
|
|
2256
2297
|
/**
|
|
2257
2298
|
* @hidden
|
|
2258
2299
|
*/
|
|
@@ -2290,24 +2331,89 @@ let GanttComponent = GanttComponent_1 = class GanttComponent {
|
|
|
2290
2331
|
/**
|
|
2291
2332
|
* @hidden
|
|
2292
2333
|
*/
|
|
2293
|
-
|
|
2294
|
-
|
|
2334
|
+
handleTimelineRightClick(event) {
|
|
2335
|
+
const target = event.target;
|
|
2336
|
+
const gantt = this.hostElement.nativeElement;
|
|
2337
|
+
if (!isTask(target, gantt) || isClearButton(target, gantt)) {
|
|
2338
|
+
return;
|
|
2339
|
+
}
|
|
2340
|
+
if (hasObservers(this.taskClick)) {
|
|
2341
|
+
const taskIndex = getClosestTaskIndex(target, gantt);
|
|
2342
|
+
const task = this.renderedTreeListItems[taskIndex];
|
|
2343
|
+
this.zone.run(() => this.emitTaskClick(event, task, taskIndex));
|
|
2344
|
+
}
|
|
2345
|
+
}
|
|
2346
|
+
/**
|
|
2347
|
+
* @hidden
|
|
2348
|
+
*/
|
|
2349
|
+
handleTimelineClick(event) {
|
|
2350
|
+
const target = event.target;
|
|
2351
|
+
const gantt = this.hostElement.nativeElement;
|
|
2352
|
+
if (!isTask(target, gantt) || isClearButton(target, gantt)) {
|
|
2353
|
+
return;
|
|
2354
|
+
}
|
|
2355
|
+
const taskIndex = getClosestTaskIndex(target, gantt);
|
|
2356
|
+
const task = this.renderedTreeListItems[taskIndex];
|
|
2357
|
+
const selectionAction = this.getSelectionAction(event, task);
|
|
2358
|
+
if ((hasObservers(this.selectionChange) && !this.isSameSelection(selectionAction, task)) ||
|
|
2359
|
+
hasObservers(this.taskClick)) {
|
|
2360
|
+
this.zone.run(() => {
|
|
2361
|
+
this.emitSelectionChange(task, selectionAction);
|
|
2362
|
+
this.emitTaskClick(event, task, taskIndex);
|
|
2363
|
+
});
|
|
2364
|
+
}
|
|
2295
2365
|
}
|
|
2296
2366
|
/**
|
|
2297
2367
|
* @hidden
|
|
2298
2368
|
*/
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
if (event.target !== cell) {
|
|
2369
|
+
handleTreeListDoubleClick(event) {
|
|
2370
|
+
if (!isPresent(this.lastTreeListCellClick) || event.target !== this.lastTreeListCellClick.originalEvent.target) {
|
|
2302
2371
|
return;
|
|
2303
2372
|
}
|
|
2304
|
-
this.editItem = getEditItem(this.
|
|
2373
|
+
this.editItem = getEditItem(this.lastTreeListCellClick.dataItem, this.treeList.view.data, this.mapper);
|
|
2305
2374
|
if (hasObservers(this.cellDblClick)) {
|
|
2306
2375
|
this.zone.run(() => {
|
|
2307
|
-
this.cellDblClick.emit(
|
|
2376
|
+
this.cellDblClick.emit({
|
|
2377
|
+
column: this.lastTreeListCellClick.column,
|
|
2378
|
+
columnIndex: this.lastTreeListCellClick.columnIndex,
|
|
2379
|
+
dataItem: this.lastTreeListCellClick.dataItem,
|
|
2380
|
+
isEdited: this.lastTreeListCellClick.isEdited,
|
|
2381
|
+
originalEvent: this.lastTreeListCellClick.originalEvent,
|
|
2382
|
+
rowIndex: this.lastTreeListCellClick.rowIndex,
|
|
2383
|
+
type: 'dblclick',
|
|
2384
|
+
sender: this
|
|
2385
|
+
});
|
|
2308
2386
|
});
|
|
2309
2387
|
}
|
|
2310
2388
|
}
|
|
2389
|
+
/**
|
|
2390
|
+
* @hidden
|
|
2391
|
+
*/
|
|
2392
|
+
handleTreeListSelectionChange(event) {
|
|
2393
|
+
// prevent selection change from right-click
|
|
2394
|
+
if (isPresent(this.lastTreeListCellClick) && this.lastTreeListCellClick.type === 'contextmenu') {
|
|
2395
|
+
return;
|
|
2396
|
+
}
|
|
2397
|
+
const task = event.items.map(item => item.dataItem)[0]; // single selection only currently available
|
|
2398
|
+
const action = event.action;
|
|
2399
|
+
this.emitSelectionChange(task, action);
|
|
2400
|
+
}
|
|
2401
|
+
/**
|
|
2402
|
+
* @hidden
|
|
2403
|
+
*/
|
|
2404
|
+
handleTreeListCellClick(event) {
|
|
2405
|
+
this.lastTreeListCellClick = event;
|
|
2406
|
+
this.cellClick.emit({
|
|
2407
|
+
column: event.column,
|
|
2408
|
+
columnIndex: event.columnIndex,
|
|
2409
|
+
dataItem: event.dataItem,
|
|
2410
|
+
isEdited: event.isEdited,
|
|
2411
|
+
originalEvent: event.originalEvent,
|
|
2412
|
+
rowIndex: event.rowIndex,
|
|
2413
|
+
type: event.type,
|
|
2414
|
+
sender: this
|
|
2415
|
+
});
|
|
2416
|
+
}
|
|
2311
2417
|
/**
|
|
2312
2418
|
* @hidden
|
|
2313
2419
|
*/
|
|
@@ -2334,13 +2440,17 @@ let GanttComponent = GanttComponent_1 = class GanttComponent {
|
|
|
2334
2440
|
if (!isTask(target, gantt) || isClearButton(target, gantt)) {
|
|
2335
2441
|
return;
|
|
2336
2442
|
}
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2443
|
+
if (hasObservers(this.taskDblClick)) {
|
|
2444
|
+
const taskIndex = getClosestTaskIndex(target, gantt);
|
|
2445
|
+
const task = this.renderedTreeListItems[taskIndex];
|
|
2446
|
+
this.zone.run(() => this.taskDblClick.emit({
|
|
2447
|
+
dataItem: task,
|
|
2448
|
+
originalEvent: event,
|
|
2449
|
+
sender: this,
|
|
2450
|
+
rowIndex: taskIndex,
|
|
2451
|
+
type: 'dblclick'
|
|
2452
|
+
}));
|
|
2453
|
+
}
|
|
2344
2454
|
}
|
|
2345
2455
|
/**
|
|
2346
2456
|
* @hidden
|
|
@@ -2348,6 +2458,26 @@ let GanttComponent = GanttComponent_1 = class GanttComponent {
|
|
|
2348
2458
|
getText(token) {
|
|
2349
2459
|
return this.localizationService.get(token);
|
|
2350
2460
|
}
|
|
2461
|
+
emitTaskClick(event, dataItem, itemIndex) {
|
|
2462
|
+
this.taskClick.emit({
|
|
2463
|
+
originalEvent: event,
|
|
2464
|
+
dataItem: dataItem,
|
|
2465
|
+
rowIndex: itemIndex,
|
|
2466
|
+
type: event.type,
|
|
2467
|
+
sender: this
|
|
2468
|
+
});
|
|
2469
|
+
}
|
|
2470
|
+
emitSelectionChange(dataItem, action) {
|
|
2471
|
+
if (this.isSameSelection(action, dataItem)) {
|
|
2472
|
+
return;
|
|
2473
|
+
}
|
|
2474
|
+
this.selectionChange.emit({
|
|
2475
|
+
action: action,
|
|
2476
|
+
items: [dataItem],
|
|
2477
|
+
sender: this
|
|
2478
|
+
});
|
|
2479
|
+
this.updateView();
|
|
2480
|
+
}
|
|
2351
2481
|
updateTreeListGroupClass(columns = this.columns) {
|
|
2352
2482
|
if (!isPresent(this.treeList)) {
|
|
2353
2483
|
return;
|
|
@@ -2374,6 +2504,13 @@ let GanttComponent = GanttComponent_1 = class GanttComponent {
|
|
|
2374
2504
|
}
|
|
2375
2505
|
return this.views.find(view => view.type === this.activeView);
|
|
2376
2506
|
}
|
|
2507
|
+
isSameSelection(action, dataItem) {
|
|
2508
|
+
return action === 'select' && this.isSelected(dataItem);
|
|
2509
|
+
}
|
|
2510
|
+
getSelectionAction({ ctrlKey, metaKey }, dataItem) {
|
|
2511
|
+
const shouldToggleSelection = ctrlKey || metaKey;
|
|
2512
|
+
return (shouldToggleSelection && this.isSelected(dataItem)) ? 'remove' : 'select';
|
|
2513
|
+
}
|
|
2377
2514
|
};
|
|
2378
2515
|
__decorate([
|
|
2379
2516
|
ViewChild(TreeListComponent, { static: true }),
|
|
@@ -2433,6 +2570,18 @@ __decorate([
|
|
|
2433
2570
|
__metadata("design:type", Array),
|
|
2434
2571
|
__metadata("design:paramtypes", [Array])
|
|
2435
2572
|
], GanttComponent.prototype, "data", null);
|
|
2573
|
+
__decorate([
|
|
2574
|
+
Input(),
|
|
2575
|
+
__metadata("design:type", Function)
|
|
2576
|
+
], GanttComponent.prototype, "isSelected", void 0);
|
|
2577
|
+
__decorate([
|
|
2578
|
+
Output(),
|
|
2579
|
+
__metadata("design:type", EventEmitter)
|
|
2580
|
+
], GanttComponent.prototype, "selectionChange", void 0);
|
|
2581
|
+
__decorate([
|
|
2582
|
+
Input(),
|
|
2583
|
+
__metadata("design:type", Boolean)
|
|
2584
|
+
], GanttComponent.prototype, "selectable", void 0);
|
|
2436
2585
|
__decorate([
|
|
2437
2586
|
Input(),
|
|
2438
2587
|
__metadata("design:type", String)
|
|
@@ -2601,6 +2750,14 @@ __decorate([
|
|
|
2601
2750
|
Output(),
|
|
2602
2751
|
__metadata("design:type", EventEmitter)
|
|
2603
2752
|
], GanttComponent.prototype, "columnLockedChange", void 0);
|
|
2753
|
+
__decorate([
|
|
2754
|
+
Output(),
|
|
2755
|
+
__metadata("design:type", EventEmitter)
|
|
2756
|
+
], GanttComponent.prototype, "cellClick", void 0);
|
|
2757
|
+
__decorate([
|
|
2758
|
+
Output(),
|
|
2759
|
+
__metadata("design:type", EventEmitter)
|
|
2760
|
+
], GanttComponent.prototype, "taskClick", void 0);
|
|
2604
2761
|
GanttComponent = GanttComponent_1 = __decorate([
|
|
2605
2762
|
Component({
|
|
2606
2763
|
selector: 'kendo-gantt',
|
|
@@ -2821,6 +2978,8 @@ GanttComponent = GanttComponent_1 = __decorate([
|
|
|
2821
2978
|
[reorderable]="columnsReorderable"
|
|
2822
2979
|
[resizable]="columnsResizable"
|
|
2823
2980
|
[rowClass]="rowClass"
|
|
2981
|
+
[isSelected]="isSelected"
|
|
2982
|
+
[selectable]="selectable"
|
|
2824
2983
|
[sortable]="sortable"
|
|
2825
2984
|
[sort]="sort"
|
|
2826
2985
|
[filterable]="filterMenu"
|
|
@@ -2838,11 +2997,14 @@ GanttComponent = GanttComponent_1 = __decorate([
|
|
|
2838
2997
|
(columnResize)="columnResize.emit($event)"
|
|
2839
2998
|
(columnVisibilityChange)="handleColumnVisibilityChange($event)"
|
|
2840
2999
|
(columnLockedChange)="columnLockedChange.emit($event)"
|
|
2841
|
-
(
|
|
3000
|
+
(selectionChange)="handleTreeListSelectionChange($event)"
|
|
3001
|
+
(cellClick)="handleTreeListCellClick($event)"
|
|
2842
3002
|
(cellClose)="handleCellClose($event)"
|
|
2843
3003
|
[kendoEventsOutsideAngular]="{
|
|
2844
|
-
dblclick:
|
|
2845
|
-
}"
|
|
3004
|
+
dblclick: handleTreeListDoubleClick
|
|
3005
|
+
}"
|
|
3006
|
+
[scope]="this"
|
|
3007
|
+
>
|
|
2846
3008
|
<kendo-treelist-messages [kendoGanttTreeListMessages]="localizationService"></kendo-treelist-messages>
|
|
2847
3009
|
</kendo-treelist>
|
|
2848
3010
|
</kendo-splitter-pane>
|
|
@@ -2869,10 +3031,14 @@ GanttComponent = GanttComponent_1 = __decorate([
|
|
|
2869
3031
|
[taskClass]="taskClass"
|
|
2870
3032
|
[dependencies]="dependencies"
|
|
2871
3033
|
[hasChildren]="hasChildren"
|
|
3034
|
+
[isTaskSelected]="isTaskSelected"
|
|
2872
3035
|
[kendoEventsOutsideAngular]="{
|
|
3036
|
+
click: handleTimelineClick,
|
|
3037
|
+
contextmenu: handleTimelineRightClick,
|
|
2873
3038
|
dblclick: handleTimelineDblClick,
|
|
2874
3039
|
mousedown: handleTimelineMouseDown
|
|
2875
3040
|
}"
|
|
3041
|
+
[scope]="this"
|
|
2876
3042
|
></kendo-gantt-timeline>
|
|
2877
3043
|
</kendo-splitter-pane>
|
|
2878
3044
|
</kendo-splitter>
|
|
@@ -3001,6 +3167,10 @@ __decorate([
|
|
|
3001
3167
|
Input(),
|
|
3002
3168
|
__metadata("design:type", Function)
|
|
3003
3169
|
], GanttTimelineComponent.prototype, "taskClass", void 0);
|
|
3170
|
+
__decorate([
|
|
3171
|
+
Input(),
|
|
3172
|
+
__metadata("design:type", Function)
|
|
3173
|
+
], GanttTimelineComponent.prototype, "isTaskSelected", void 0);
|
|
3004
3174
|
__decorate([
|
|
3005
3175
|
Input(),
|
|
3006
3176
|
__metadata("design:type", Function)
|
|
@@ -3080,6 +3250,7 @@ GanttTimelineComponent = __decorate([
|
|
|
3080
3250
|
[summaryTaskTemplate]="summaryTaskTemplate"
|
|
3081
3251
|
[taskClass]="taskClass"
|
|
3082
3252
|
[hasChildren]="hasChildren"
|
|
3253
|
+
[isTaskSelected]="isTaskSelected"
|
|
3083
3254
|
>
|
|
3084
3255
|
</tbody>
|
|
3085
3256
|
</table>
|
|
@@ -3155,8 +3326,8 @@ __decorate([
|
|
|
3155
3326
|
], GanttTasksTableBodyComponent.prototype, "hasChildren", void 0);
|
|
3156
3327
|
__decorate([
|
|
3157
3328
|
Input(),
|
|
3158
|
-
__metadata("design:type",
|
|
3159
|
-
], GanttTasksTableBodyComponent.prototype, "
|
|
3329
|
+
__metadata("design:type", Function)
|
|
3330
|
+
], GanttTasksTableBodyComponent.prototype, "isTaskSelected", void 0);
|
|
3160
3331
|
GanttTasksTableBodyComponent = __decorate([
|
|
3161
3332
|
Component({
|
|
3162
3333
|
selector: '[kendoGanttTasksTableBody]',
|
|
@@ -3168,6 +3339,7 @@ GanttTasksTableBodyComponent = __decorate([
|
|
|
3168
3339
|
[dataItem]="item"
|
|
3169
3340
|
[activeView]="activeView"
|
|
3170
3341
|
[taskClass]="taskClass"
|
|
3342
|
+
[isSelected]="isTaskSelected"
|
|
3171
3343
|
[index]="index"
|
|
3172
3344
|
>
|
|
3173
3345
|
</kendo-gantt-milestone-task>
|
|
@@ -3178,6 +3350,7 @@ GanttTasksTableBodyComponent = __decorate([
|
|
|
3178
3350
|
[template]="summaryTaskTemplate"
|
|
3179
3351
|
[activeView]="activeView"
|
|
3180
3352
|
[taskClass]="taskClass"
|
|
3353
|
+
[isSelected]="isTaskSelected"
|
|
3181
3354
|
[index]="index"
|
|
3182
3355
|
>
|
|
3183
3356
|
</kendo-gantt-summary-task>
|
|
@@ -3188,6 +3361,7 @@ GanttTasksTableBodyComponent = __decorate([
|
|
|
3188
3361
|
[taskTemplate]="taskTemplate"
|
|
3189
3362
|
[activeView]="activeView"
|
|
3190
3363
|
[taskClass]="taskClass"
|
|
3364
|
+
[isSelected]="isTaskSelected"
|
|
3191
3365
|
[index]="index"
|
|
3192
3366
|
>
|
|
3193
3367
|
</kendo-gantt-task>
|
|
@@ -3306,6 +3480,14 @@ __decorate([
|
|
|
3306
3480
|
Input(),
|
|
3307
3481
|
__metadata("design:type", Object)
|
|
3308
3482
|
], GanttTaskBase.prototype, "dataItem", void 0);
|
|
3483
|
+
__decorate([
|
|
3484
|
+
Input(),
|
|
3485
|
+
__metadata("design:type", Number)
|
|
3486
|
+
], GanttTaskBase.prototype, "index", void 0);
|
|
3487
|
+
__decorate([
|
|
3488
|
+
Input(),
|
|
3489
|
+
__metadata("design:type", Function)
|
|
3490
|
+
], GanttTaskBase.prototype, "isSelected", void 0);
|
|
3309
3491
|
__decorate([
|
|
3310
3492
|
Input(),
|
|
3311
3493
|
__metadata("design:type", String)
|
|
@@ -3314,10 +3496,6 @@ __decorate([
|
|
|
3314
3496
|
Input(),
|
|
3315
3497
|
__metadata("design:type", Function)
|
|
3316
3498
|
], GanttTaskBase.prototype, "taskClass", void 0);
|
|
3317
|
-
__decorate([
|
|
3318
|
-
Input(),
|
|
3319
|
-
__metadata("design:type", Number)
|
|
3320
|
-
], GanttTaskBase.prototype, "index", void 0);
|
|
3321
3499
|
|
|
3322
3500
|
var GanttTaskComponent_1;
|
|
3323
3501
|
/**
|
|
@@ -3359,6 +3537,7 @@ GanttTaskComponent = GanttTaskComponent_1 = __decorate([
|
|
|
3359
3537
|
[style.left.px]="taskOffset"
|
|
3360
3538
|
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
3361
3539
|
[attr.data-task-index]="index"
|
|
3540
|
+
[class.k-state-selected]="isSelected(dataItem)"
|
|
3362
3541
|
>
|
|
3363
3542
|
<ng-container *ngIf="!taskTemplate">
|
|
3364
3543
|
<div
|
|
@@ -3443,6 +3622,7 @@ GanttSummaryTaskComponent = GanttSummaryTaskComponent_1 = __decorate([
|
|
|
3443
3622
|
[style.left.px]="taskOffset"
|
|
3444
3623
|
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
3445
3624
|
[attr.data-task-index]="index"
|
|
3625
|
+
[class.k-state-selected]="isSelected(dataItem)"
|
|
3446
3626
|
>
|
|
3447
3627
|
<div *ngIf="!template; else summaryTemplate"
|
|
3448
3628
|
class="k-task-summary-progress"
|
|
@@ -3502,6 +3682,7 @@ GanttMilestoneTaskComponent = GanttMilestoneTaskComponent_1 = __decorate([
|
|
|
3502
3682
|
[ngClass]="taskClass(dataItem)"
|
|
3503
3683
|
[style.left.px]="taskOffset"
|
|
3504
3684
|
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
3685
|
+
[class.k-state-selected]="isSelected(dataItem)"
|
|
3505
3686
|
[attr.data-task-index]="index"
|
|
3506
3687
|
>
|
|
3507
3688
|
</div>
|
|
@@ -3578,6 +3759,10 @@ GanttHierarchyBindingDirective = __decorate([
|
|
|
3578
3759
|
* A directive which controls the expanded state of the items.
|
|
3579
3760
|
*/
|
|
3580
3761
|
let GanttExpandableDirective = class GanttExpandableDirective extends ExpandableDirective {
|
|
3762
|
+
// fixes an injection error in some builds/ng-versions (e.g. StackBlitz)
|
|
3763
|
+
constructor(gantt) {
|
|
3764
|
+
super(gantt);
|
|
3765
|
+
}
|
|
3581
3766
|
};
|
|
3582
3767
|
__decorate([
|
|
3583
3768
|
Input(),
|
|
@@ -3587,9 +3772,123 @@ GanttExpandableDirective = __decorate([
|
|
|
3587
3772
|
Directive({
|
|
3588
3773
|
exportAs: 'kendoGanttExpandable',
|
|
3589
3774
|
selector: '[kendoGanttExpandable]'
|
|
3590
|
-
})
|
|
3775
|
+
}),
|
|
3776
|
+
__metadata("design:paramtypes", [ExpandableTreeComponent])
|
|
3591
3777
|
], GanttExpandableDirective);
|
|
3592
3778
|
|
|
3779
|
+
/**
|
|
3780
|
+
* A directive which handles the [`selectionChange`]({% slug api_gantt_ganttcomponent %}#toc-selectionchange) event of the Gantt
|
|
3781
|
+
* ([see example]({% slug selection_gantt %}#toc-built-in-directive))
|
|
3782
|
+
*/
|
|
3783
|
+
let SelectableDirective = class SelectableDirective {
|
|
3784
|
+
constructor(gantt) {
|
|
3785
|
+
this.gantt = gantt;
|
|
3786
|
+
/**
|
|
3787
|
+
* Fires when the selected keys are changed.
|
|
3788
|
+
*/
|
|
3789
|
+
this.selectedKeysChange = new EventEmitter();
|
|
3790
|
+
this.state = new Set();
|
|
3791
|
+
this.isSelected = this.isSelected.bind(this);
|
|
3792
|
+
this.selectionChange = this.selectionChange.bind(this);
|
|
3793
|
+
this.selectable = true;
|
|
3794
|
+
}
|
|
3795
|
+
/**
|
|
3796
|
+
* @hidden
|
|
3797
|
+
*/
|
|
3798
|
+
set selectable(value) {
|
|
3799
|
+
if (value) {
|
|
3800
|
+
this.gantt.isSelected = this.isSelected;
|
|
3801
|
+
this.subscribeSelection();
|
|
3802
|
+
}
|
|
3803
|
+
else {
|
|
3804
|
+
this.gantt.isSelected = () => false;
|
|
3805
|
+
this.unsubscribeSelection();
|
|
3806
|
+
}
|
|
3807
|
+
this.gantt.selectable = value;
|
|
3808
|
+
this.gantt.updateView();
|
|
3809
|
+
}
|
|
3810
|
+
/**
|
|
3811
|
+
* Sets the selected keys.
|
|
3812
|
+
*/
|
|
3813
|
+
set selectedKeys(value) {
|
|
3814
|
+
if (isPresent(value) && value === this.lastChange) {
|
|
3815
|
+
return;
|
|
3816
|
+
}
|
|
3817
|
+
// prevent multiple items displayed as selected as multiple selection still not supported fully
|
|
3818
|
+
const keys = (value || []).slice(0, 1);
|
|
3819
|
+
this.state = new Set(keys);
|
|
3820
|
+
this.gantt.updateView();
|
|
3821
|
+
}
|
|
3822
|
+
/**
|
|
3823
|
+
* The field name or a function that specifies the data item unique key identifier.
|
|
3824
|
+
* By default, the string field `id` is used.
|
|
3825
|
+
*/
|
|
3826
|
+
set itemKey(value) {
|
|
3827
|
+
if (isString(value)) {
|
|
3828
|
+
this._keyGetter = getter(value);
|
|
3829
|
+
}
|
|
3830
|
+
else {
|
|
3831
|
+
this._keyGetter = value;
|
|
3832
|
+
}
|
|
3833
|
+
}
|
|
3834
|
+
get keyGetter() {
|
|
3835
|
+
return this._keyGetter || this.gantt.idGetter;
|
|
3836
|
+
}
|
|
3837
|
+
ngOnDestroy() {
|
|
3838
|
+
this.unsubscribeSelection();
|
|
3839
|
+
}
|
|
3840
|
+
isSelected(dataItem) {
|
|
3841
|
+
return this.state.has(this.keyGetter(dataItem));
|
|
3842
|
+
}
|
|
3843
|
+
selectionChange({ action, items }) {
|
|
3844
|
+
this.state.clear();
|
|
3845
|
+
if (action === 'select') {
|
|
3846
|
+
items.forEach(item => this.state.add(this.keyGetter(item)));
|
|
3847
|
+
}
|
|
3848
|
+
this.emitSelectedItemsChange();
|
|
3849
|
+
}
|
|
3850
|
+
emitSelectedItemsChange() {
|
|
3851
|
+
this.lastChange = Array.from(this.state);
|
|
3852
|
+
this.selectedKeysChange.emit(this.lastChange);
|
|
3853
|
+
}
|
|
3854
|
+
subscribeSelection() {
|
|
3855
|
+
this.unsubscribeSelection();
|
|
3856
|
+
this.selectionSubscription = this.gantt.selectionChange.subscribe(this.selectionChange);
|
|
3857
|
+
}
|
|
3858
|
+
unsubscribeSelection() {
|
|
3859
|
+
if (this.selectionSubscription) {
|
|
3860
|
+
this.selectionSubscription.unsubscribe();
|
|
3861
|
+
this.selectionSubscription = null;
|
|
3862
|
+
}
|
|
3863
|
+
}
|
|
3864
|
+
};
|
|
3865
|
+
__decorate([
|
|
3866
|
+
Input(),
|
|
3867
|
+
__metadata("design:type", Boolean),
|
|
3868
|
+
__metadata("design:paramtypes", [Boolean])
|
|
3869
|
+
], SelectableDirective.prototype, "selectable", null);
|
|
3870
|
+
__decorate([
|
|
3871
|
+
Input(),
|
|
3872
|
+
__metadata("design:type", Array),
|
|
3873
|
+
__metadata("design:paramtypes", [Array])
|
|
3874
|
+
], SelectableDirective.prototype, "selectedKeys", null);
|
|
3875
|
+
__decorate([
|
|
3876
|
+
Output(),
|
|
3877
|
+
__metadata("design:type", EventEmitter)
|
|
3878
|
+
], SelectableDirective.prototype, "selectedKeysChange", void 0);
|
|
3879
|
+
__decorate([
|
|
3880
|
+
Input(),
|
|
3881
|
+
__metadata("design:type", Object),
|
|
3882
|
+
__metadata("design:paramtypes", [Object])
|
|
3883
|
+
], SelectableDirective.prototype, "itemKey", null);
|
|
3884
|
+
SelectableDirective = __decorate([
|
|
3885
|
+
Directive({
|
|
3886
|
+
exportAs: 'kendoGanttSelectable',
|
|
3887
|
+
selector: '[kendoGanttSelectable]'
|
|
3888
|
+
}),
|
|
3889
|
+
__metadata("design:paramtypes", [GanttComponent])
|
|
3890
|
+
], SelectableDirective);
|
|
3891
|
+
|
|
3593
3892
|
/**
|
|
3594
3893
|
* @hidden
|
|
3595
3894
|
*/
|
|
@@ -3708,6 +4007,7 @@ ViewSelectorComponent = __decorate([
|
|
|
3708
4007
|
<kendo-buttongroup class="k-gantt-views" selection="single">
|
|
3709
4008
|
<button *ngFor="let view of views"
|
|
3710
4009
|
kendoButton
|
|
4010
|
+
type="button"
|
|
3711
4011
|
[selected]="view === activeView"
|
|
3712
4012
|
(click)="onClick(view)">{{getViewTypeText(view)}}</button>
|
|
3713
4013
|
</kendo-buttongroup>
|
|
@@ -4446,6 +4746,7 @@ const DECLARATIONS = [
|
|
|
4446
4746
|
TimelineDayViewComponent,
|
|
4447
4747
|
TimelineWeekViewComponent,
|
|
4448
4748
|
TimelineMonthViewComponent,
|
|
4749
|
+
SelectableDirective,
|
|
4449
4750
|
EditDialogComponent,
|
|
4450
4751
|
CustomMessagesComponent,
|
|
4451
4752
|
LocalizedMessagesDirective,
|
|
@@ -4500,4 +4801,4 @@ GanttModule = __decorate([
|
|
|
4500
4801
|
* Generated bundle index. Do not edit.
|
|
4501
4802
|
*/
|
|
4502
4803
|
|
|
4503
|
-
export { MappingService, OptionChangesService, DependencyDomService, GanttDependencyDirective, EditDialogComponent, EditService, CustomMessagesComponent, LocalizedMessagesDirective, Messages, GanttTreeListMessagesDirective, 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, GanttColumnBase, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, CellTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ColumnMenuTemplateDirective, FilterCellTemplateDirective, FilterMenuTemplateDirective, EditTemplateDirective };
|
|
4804
|
+
export { MappingService, OptionChangesService, DependencyDomService, GanttDependencyDirective, EditDialogComponent, EditService, CustomMessagesComponent, LocalizedMessagesDirective, Messages, GanttTreeListMessagesDirective, 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, GanttColumnBase, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, CellTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ColumnMenuTemplateDirective, FilterCellTemplateDirective, FilterMenuTemplateDirective, EditTemplateDirective };
|