@progress/kendo-angular-gantt 16.5.0-develop.6 → 16.6.0-develop.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding-directives/flat-binding.directive.d.ts +1 -1
- package/binding-directives/hierarchy-binding.directive.d.ts +1 -1
- package/columns/cell-template.directive.d.ts +1 -1
- package/columns/column-group.component.d.ts +1 -1
- package/columns/column-menu-template.directive.d.ts +1 -1
- package/columns/column.component.d.ts +1 -1
- package/columns/edit-template.directive.d.ts +1 -1
- package/columns/filter-cell-template.directive.d.ts +1 -1
- package/columns/filter-menu-template.directive.d.ts +1 -1
- package/columns/footer-template.directive.d.ts +1 -1
- package/columns/header-template.directive.d.ts +1 -1
- package/columns/span-column.component.d.ts +1 -1
- package/dependencies/gantt-dependency.directive.d.ts +1 -1
- package/directives.d.ts +29 -0
- package/dragging/dependency-drag-create.directive.d.ts +1 -1
- package/dragging/drag-validation-tooltip.component.d.ts +1 -1
- package/editing/add-task.component.d.ts +1 -1
- package/editing/dependencies-table.component.d.ts +1 -1
- package/editing/edit-dialog.component.d.ts +1 -1
- package/editing/task-fields.component.d.ts +1 -1
- package/esm2020/binding-directives/flat-binding.directive.mjs +3 -2
- package/esm2020/binding-directives/hierarchy-binding.directive.mjs +3 -2
- package/esm2020/columns/cell-template.directive.mjs +3 -2
- package/esm2020/columns/column-group.component.mjs +3 -2
- package/esm2020/columns/column-menu-template.directive.mjs +3 -2
- package/esm2020/columns/column.component.mjs +3 -2
- package/esm2020/columns/edit-template.directive.mjs +3 -2
- package/esm2020/columns/filter-cell-template.directive.mjs +3 -2
- package/esm2020/columns/filter-menu-template.directive.mjs +3 -2
- package/esm2020/columns/footer-template.directive.mjs +3 -2
- package/esm2020/columns/header-template.directive.mjs +3 -2
- package/esm2020/columns/span-column.component.mjs +3 -2
- package/esm2020/dependencies/gantt-dependency.directive.mjs +3 -2
- package/esm2020/directives.mjs +57 -0
- package/esm2020/dragging/dependency-drag-create.directive.mjs +3 -2
- package/esm2020/dragging/drag-validation-tooltip.component.mjs +3 -2
- package/esm2020/editing/add-task.component.mjs +7 -5
- package/esm2020/editing/dependencies-table.component.mjs +9 -7
- package/esm2020/editing/edit-dialog.component.mjs +12 -10
- package/esm2020/editing/task-fields.component.mjs +12 -9
- package/esm2020/expanded-state/expandable.directive.mjs +3 -2
- package/esm2020/gantt.component.mjs +14 -15
- package/esm2020/gantt.module.mjs +90 -214
- package/esm2020/index.mjs +1 -0
- package/esm2020/localization/custom-messages.component.mjs +3 -2
- package/esm2020/localization/localized-messages.directive.mjs +3 -2
- package/esm2020/package-metadata.mjs +2 -2
- package/esm2020/rendering/gantt-header-table-body.component.mjs +6 -4
- package/esm2020/rendering/gantt-milestone-task.component.mjs +6 -4
- package/esm2020/rendering/gantt-summary-task.component.mjs +6 -4
- package/esm2020/rendering/gantt-task.component.mjs +8 -6
- package/esm2020/rendering/gantt-tasks-table-body.component.mjs +9 -7
- package/esm2020/scrolling/timeline-scroll.directive.mjs +3 -2
- package/esm2020/selection/selectable.directive.mjs +3 -2
- package/esm2020/template-directives/summary-task-template.directive.mjs +3 -2
- package/esm2020/template-directives/task-content-template.directive.mjs +3 -2
- package/esm2020/template-directives/task-template.directive.mjs +3 -2
- package/esm2020/timeline/gantt-timeline.component.mjs +12 -10
- package/esm2020/timeline/timeline-day-view.component.mjs +3 -2
- package/esm2020/timeline/timeline-month-view.component.mjs +3 -2
- package/esm2020/timeline/timeline-week-view.component.mjs +3 -2
- package/esm2020/timeline/timeline-year-view.component.mjs +3 -2
- package/esm2020/toolbar/toolbar-template.directive.mjs +3 -2
- package/esm2020/toolbar/toolbar.component.mjs +8 -6
- package/esm2020/toolbar/view-selector.component.mjs +9 -6
- package/expanded-state/expandable.directive.d.ts +1 -1
- package/fesm2015/progress-kendo-angular-gantt.mjs +1803 -1840
- package/fesm2020/progress-kendo-angular-gantt.mjs +1950 -1987
- package/gantt.component.d.ts +1 -1
- package/gantt.module.d.ts +25 -54
- package/index.d.ts +1 -0
- package/localization/custom-messages.component.d.ts +1 -1
- package/localization/localized-messages.directive.d.ts +1 -1
- package/package.json +15 -15
- package/rendering/gantt-header-table-body.component.d.ts +1 -1
- package/rendering/gantt-milestone-task.component.d.ts +1 -1
- package/rendering/gantt-summary-task.component.d.ts +1 -1
- package/rendering/gantt-task.component.d.ts +1 -1
- package/rendering/gantt-tasks-table-body.component.d.ts +1 -1
- package/schematics/ngAdd/index.js +7 -7
- package/scrolling/timeline-scroll.directive.d.ts +1 -1
- package/selection/selectable.directive.d.ts +1 -1
- package/template-directives/summary-task-template.directive.d.ts +1 -1
- package/template-directives/task-content-template.directive.d.ts +1 -1
- package/template-directives/task-template.directive.d.ts +1 -1
- package/timeline/gantt-timeline.component.d.ts +1 -1
- package/timeline/timeline-day-view.component.d.ts +1 -1
- package/timeline/timeline-month-view.component.d.ts +1 -1
- package/timeline/timeline-week-view.component.d.ts +1 -1
- package/timeline/timeline-year-view.component.d.ts +1 -1
- package/toolbar/toolbar-template.directive.d.ts +1 -1
- package/toolbar/toolbar.component.d.ts +1 -1
- package/toolbar/view-selector.component.d.ts +1 -1
|
@@ -3,47 +3,35 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { Injectable, InjectionToken, EventEmitter, Inject, LOCALE_ID,
|
|
7
|
-
import
|
|
8
|
-
import { ColumnBase, ColumnComponent, ColumnGroupComponent, SpanColumnComponent, DataBoundTreeComponent, ExpandableTreeComponent, TreeListComponent, FlatBindingDirective, HierarchyBindingDirective, ExpandableDirective, TreeListModule } from '@progress/kendo-angular-treelist';
|
|
6
|
+
import { Injectable, Directive, Input, InjectionToken, EventEmitter, Inject, LOCALE_ID, HostBinding, ViewChild, forwardRef, Component, ViewContainerRef, Output, Optional, QueryList, SkipSelf, Host, ContentChildren, ContentChild, HostListener, isDevMode, NgModule } from '@angular/core';
|
|
7
|
+
import { TableDirective, ColumnBase, ColumnComponent, ColumnGroupComponent, SpanColumnComponent, TreeListSpacerComponent, DataBoundTreeComponent, ExpandableTreeComponent, TreeListComponent, CustomMessagesComponent as CustomMessagesComponent$2, FlatBindingDirective, HierarchyBindingDirective, ExpandableDirective, ColumnResizingService } from '@progress/kendo-angular-treelist';
|
|
9
8
|
import { cloneDate, addWeeks, firstDayInWeek, addDays, lastDayOfMonth, getDate, firstDayOfMonth, addMonths, lastMonthOfYear, MS_PER_HOUR, MS_PER_DAY, isEqual } from '@progress/kendo-date-math';
|
|
10
9
|
import { Subject, Subscription, fromEvent, forkJoin, EMPTY, isObservable, of } from 'rxjs';
|
|
11
10
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
12
|
-
import
|
|
13
|
-
import {
|
|
14
|
-
import { map, distinctUntilChanged, take, expand, reduce, switchMap, filter } from 'rxjs/operators';
|
|
11
|
+
import { Keys, isDocumentAvailable, closestInScope, matchesClasses, EventsOutsideAngularDirective, DraggableDirective, PreventableEvent, anyChanged, closest, isFocusable, focusableSelector, isVisible, shouldShowValidationUI, hasObservers, WatermarkOverlayComponent, ResizeBatchService } from '@progress/kendo-angular-common';
|
|
12
|
+
import { map, distinctUntilChanged, take, switchMap, expand, reduce, filter } from 'rxjs/operators';
|
|
15
13
|
import { getter, touchEnabled } from '@progress/kendo-common';
|
|
16
|
-
import * as i6 from '@angular/common';
|
|
17
|
-
import { CommonModule } from '@angular/common';
|
|
18
14
|
import * as i1 from '@progress/kendo-angular-intl';
|
|
19
|
-
import { IntlService
|
|
15
|
+
import { IntlService } from '@progress/kendo-angular-intl';
|
|
20
16
|
import { __decorate, __param, __metadata } from 'tslib';
|
|
21
17
|
import { orderBy } from '@progress/kendo-data-query';
|
|
22
18
|
import { xIcon, plusIcon, minusIcon, saveIcon, cancelOutlineIcon, trashIcon } from '@progress/kendo-svg-icons';
|
|
23
|
-
import
|
|
24
|
-
import {
|
|
19
|
+
import { NgClass, NgIf, NgTemplateOutlet, NgFor } from '@angular/common';
|
|
20
|
+
import { IconWrapperComponent, IconsService } from '@progress/kendo-angular-icons';
|
|
25
21
|
import * as i1$1 from '@progress/kendo-angular-l10n';
|
|
26
22
|
import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
|
|
27
|
-
import * as i4 from '@
|
|
28
|
-
import { ButtonsModule } from '@progress/kendo-angular-buttons';
|
|
29
|
-
import * as i8$1 from '@progress/kendo-angular-layout';
|
|
30
|
-
import { SplitterModule, TabStripModule } from '@progress/kendo-angular-layout';
|
|
31
|
-
import * as i7$2 from '@progress/kendo-angular-dialog';
|
|
32
|
-
import { DialogModule } from '@progress/kendo-angular-dialog';
|
|
33
|
-
import * as i5 from '@angular/forms';
|
|
23
|
+
import * as i4 from '@angular/forms';
|
|
34
24
|
import { FormArray, FormGroup, FormControl, Validators, ReactiveFormsModule } from '@angular/forms';
|
|
35
|
-
import
|
|
36
|
-
import {
|
|
37
|
-
import
|
|
38
|
-
import {
|
|
39
|
-
import
|
|
40
|
-
import {
|
|
41
|
-
import
|
|
42
|
-
import {
|
|
43
|
-
import * as i8 from '@progress/kendo-angular-dateinputs';
|
|
44
|
-
import { DateInputsModule } from '@progress/kendo-angular-dateinputs';
|
|
25
|
+
import { GridComponent, SelectionDirective, ToolbarTemplateDirective as ToolbarTemplateDirective$1, ColumnComponent as ColumnComponent$1, CellTemplateDirective as CellTemplateDirective$1 } from '@progress/kendo-angular-grid';
|
|
26
|
+
import { ButtonComponent, ButtonGroupComponent, DropDownButtonComponent } from '@progress/kendo-angular-buttons';
|
|
27
|
+
import { DropDownListComponent } from '@progress/kendo-angular-dropdowns';
|
|
28
|
+
import { FormFieldComponent, TextBoxDirective, NumericTextBoxComponent } from '@progress/kendo-angular-inputs';
|
|
29
|
+
import { LabelComponent } from '@progress/kendo-angular-label';
|
|
30
|
+
import { DateTimePickerComponent, CalendarDOMService, CenturyViewService, DecadeViewService, MonthViewService, YearViewService, WeekNamesService, NavigationService as NavigationService$1, TimePickerDOMService, HoursService, MinutesService, SecondsService, MillisecondsService, DayPeriodService } from '@progress/kendo-angular-dateinputs';
|
|
31
|
+
import { DialogComponent, CustomMessagesComponent as CustomMessagesComponent$1, DialogActionsComponent, DialogContainerService, DialogService, WindowService, WindowContainerService } from '@progress/kendo-angular-dialog';
|
|
32
|
+
import { TabStripComponent, TabStripTabComponent, TabContentDirective, SplitterComponent, SplitterPaneComponent } from '@progress/kendo-angular-layout';
|
|
45
33
|
import * as i3 from '@progress/kendo-angular-popup';
|
|
46
|
-
import {
|
|
34
|
+
import { PopupService } from '@progress/kendo-angular-popup';
|
|
47
35
|
|
|
48
36
|
/**
|
|
49
37
|
* @hidden
|
|
@@ -52,8 +40,8 @@ const packageMetadata = {
|
|
|
52
40
|
name: '@progress/kendo-angular-gantt',
|
|
53
41
|
productName: 'Kendo UI for Angular',
|
|
54
42
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
55
|
-
publishDate:
|
|
56
|
-
version: '16.
|
|
43
|
+
publishDate: 1721828061,
|
|
44
|
+
version: '16.6.0-develop.1',
|
|
57
45
|
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'
|
|
58
46
|
};
|
|
59
47
|
|
|
@@ -732,6 +720,268 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
732
720
|
type: Injectable
|
|
733
721
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; } });
|
|
734
722
|
|
|
723
|
+
/**
|
|
724
|
+
* @hidden
|
|
725
|
+
*
|
|
726
|
+
* Gets the offset (top and left values) relative to a target element.
|
|
727
|
+
*/
|
|
728
|
+
const getOffsetRelativeToParent = (element, targetParent) => {
|
|
729
|
+
const offset = {
|
|
730
|
+
top: 0,
|
|
731
|
+
left: 0
|
|
732
|
+
};
|
|
733
|
+
if (!targetParent.contains(element)) {
|
|
734
|
+
return offset;
|
|
735
|
+
}
|
|
736
|
+
let offsetParent = element;
|
|
737
|
+
while (offsetParent && offsetParent !== targetParent) {
|
|
738
|
+
offset.top += offsetParent.offsetTop;
|
|
739
|
+
offset.left += offsetParent.offsetLeft;
|
|
740
|
+
offsetParent = offsetParent.offsetParent;
|
|
741
|
+
}
|
|
742
|
+
return offset;
|
|
743
|
+
};
|
|
744
|
+
/**
|
|
745
|
+
* @hidden
|
|
746
|
+
*/
|
|
747
|
+
const getElementRect = (element, relativeContainer) => {
|
|
748
|
+
const { top, left } = getOffsetRelativeToParent(element, relativeContainer);
|
|
749
|
+
return {
|
|
750
|
+
top: top + element.offsetHeight / 2,
|
|
751
|
+
left: left,
|
|
752
|
+
right: left + element.offsetWidth
|
|
753
|
+
};
|
|
754
|
+
};
|
|
755
|
+
/**
|
|
756
|
+
* @hidden
|
|
757
|
+
*/
|
|
758
|
+
const dependencyCoordinates = (from, to, rowHeight, type, minDistanceBeforeTurn, arrowSize) => {
|
|
759
|
+
const points = [];
|
|
760
|
+
const minTurnHeight = Math.floor(rowHeight / 2);
|
|
761
|
+
const drawingDown = from.top < to.top;
|
|
762
|
+
let top, left;
|
|
763
|
+
// FF and SS are composed of 4 connected polyline points (not counting the arrow)
|
|
764
|
+
/*
|
|
765
|
+
[[[]]]- -[[[]]]
|
|
766
|
+
| |
|
|
767
|
+
[[[]]]- -[[[]]]
|
|
768
|
+
*/
|
|
769
|
+
if (type === DependencyType.FF || type === DependencyType.SS) {
|
|
770
|
+
// polyline start from first task
|
|
771
|
+
const dir = type === DependencyType.SS ? 'left' : 'right';
|
|
772
|
+
top = from.top;
|
|
773
|
+
left = from[dir];
|
|
774
|
+
points.push({ top, left });
|
|
775
|
+
// first turn point
|
|
776
|
+
left = Math[dir === 'left' ? 'min' : 'max'](from[dir], to[dir]);
|
|
777
|
+
left = dir === 'left' ? left - minDistanceBeforeTurn : left + minDistanceBeforeTurn;
|
|
778
|
+
points.push({ top, left });
|
|
779
|
+
// second turn point
|
|
780
|
+
top = to.top;
|
|
781
|
+
points.push({ top, left });
|
|
782
|
+
// second task reached
|
|
783
|
+
left = dir === 'left' ? to[dir] - arrowSize : to[dir] + arrowSize;
|
|
784
|
+
points.push({ top, left });
|
|
785
|
+
// arrow pointing to the second task
|
|
786
|
+
points.push(...getArrow(top, left, dir !== 'left', arrowSize));
|
|
787
|
+
}
|
|
788
|
+
else {
|
|
789
|
+
// FS and SF are composed of 4 or 6 connected polyline points (not counting the arrow), depending on the position of the tasks
|
|
790
|
+
/*
|
|
791
|
+
[[[]]]- [[[]]]-
|
|
792
|
+
| |
|
|
793
|
+
-[[[]]] -----
|
|
794
|
+
|
|
|
795
|
+
-[[[]]]
|
|
796
|
+
*/
|
|
797
|
+
const startDir = type === DependencyType.SF ? 'left' : 'right';
|
|
798
|
+
const endDir = type === DependencyType.SF ? 'right' : 'left';
|
|
799
|
+
const additionalTurn = type === DependencyType.SF
|
|
800
|
+
? from[startDir] - minDistanceBeforeTurn * 2 < to[endDir]
|
|
801
|
+
: from[startDir] + minDistanceBeforeTurn * 2 > to[endDir];
|
|
802
|
+
// polyline start from first task
|
|
803
|
+
top = from.top;
|
|
804
|
+
left = from[startDir];
|
|
805
|
+
points.push({ top, left });
|
|
806
|
+
// first turn point
|
|
807
|
+
left = startDir === 'left'
|
|
808
|
+
? left - minDistanceBeforeTurn
|
|
809
|
+
: left + minDistanceBeforeTurn;
|
|
810
|
+
points.push({ top, left });
|
|
811
|
+
// if second task start is before the first task end in FS
|
|
812
|
+
// if second task end is after the first task start in SF
|
|
813
|
+
if (additionalTurn) {
|
|
814
|
+
// additional turn start
|
|
815
|
+
top = drawingDown
|
|
816
|
+
? top + minTurnHeight
|
|
817
|
+
: top - minTurnHeight;
|
|
818
|
+
points.push({ top, left });
|
|
819
|
+
// additional turn end
|
|
820
|
+
left = startDir === 'left'
|
|
821
|
+
? to[endDir] + minDistanceBeforeTurn
|
|
822
|
+
: to[endDir] - minDistanceBeforeTurn;
|
|
823
|
+
points.push({ top, left });
|
|
824
|
+
}
|
|
825
|
+
// second task level reached
|
|
826
|
+
top = to.top;
|
|
827
|
+
points.push({ top, left });
|
|
828
|
+
// second task element reached
|
|
829
|
+
left = endDir === 'left' ? to[endDir] - arrowSize : to[endDir] + arrowSize;
|
|
830
|
+
points.push({ top, left });
|
|
831
|
+
// arrow pointing to the second task
|
|
832
|
+
points.push(...getArrow(top, left, endDir !== 'left', arrowSize));
|
|
833
|
+
}
|
|
834
|
+
return points;
|
|
835
|
+
};
|
|
836
|
+
const getArrow = (top, left, isArrowWest, arrowSize) => {
|
|
837
|
+
const points = isArrowWest
|
|
838
|
+
? getArrowWest(top, left, arrowSize)
|
|
839
|
+
: getArrowEast(top, left, arrowSize);
|
|
840
|
+
return points;
|
|
841
|
+
};
|
|
842
|
+
const getArrowWest = (top, left, arrowSize) => {
|
|
843
|
+
const points = [];
|
|
844
|
+
points.push({
|
|
845
|
+
top: top - arrowSize / 2,
|
|
846
|
+
left
|
|
847
|
+
});
|
|
848
|
+
points.push({
|
|
849
|
+
top,
|
|
850
|
+
left: left - arrowSize + 1
|
|
851
|
+
});
|
|
852
|
+
points.push({
|
|
853
|
+
top: top + arrowSize / 2,
|
|
854
|
+
left
|
|
855
|
+
});
|
|
856
|
+
points.push({
|
|
857
|
+
top,
|
|
858
|
+
left
|
|
859
|
+
});
|
|
860
|
+
return points;
|
|
861
|
+
};
|
|
862
|
+
const getArrowEast = (top, left, arrowSize) => {
|
|
863
|
+
const points = [];
|
|
864
|
+
points.push({
|
|
865
|
+
top: top + arrowSize / 2,
|
|
866
|
+
left
|
|
867
|
+
});
|
|
868
|
+
points.push({
|
|
869
|
+
top,
|
|
870
|
+
left: left + arrowSize - 1
|
|
871
|
+
});
|
|
872
|
+
points.push({
|
|
873
|
+
top: top - arrowSize / 2,
|
|
874
|
+
left
|
|
875
|
+
});
|
|
876
|
+
points.push({
|
|
877
|
+
top,
|
|
878
|
+
left
|
|
879
|
+
});
|
|
880
|
+
return points;
|
|
881
|
+
};
|
|
882
|
+
/**
|
|
883
|
+
* @hidden
|
|
884
|
+
*
|
|
885
|
+
* Translates the provided client `left` and `top` coords to coords relative to the provided container.
|
|
886
|
+
* https://developer.mozilla.org/en-US/docs/Web/CSS/CSSOM_View/Coordinate_systems#standard_cssom_coordinate_systems
|
|
887
|
+
*/
|
|
888
|
+
const clientToOffsetCoords = (clientLeft, clientTop, offsetContainer) => {
|
|
889
|
+
// client (viewport) coordinates of the target container
|
|
890
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect#value
|
|
891
|
+
const offsetContainerClientRect = offsetContainer.getBoundingClientRect();
|
|
892
|
+
return {
|
|
893
|
+
left: clientLeft - offsetContainerClientRect.left + offsetContainer.scrollLeft,
|
|
894
|
+
top: clientTop - offsetContainerClientRect.top + offsetContainer.scrollTop
|
|
895
|
+
};
|
|
896
|
+
};
|
|
897
|
+
/**
|
|
898
|
+
* @hidden
|
|
899
|
+
*
|
|
900
|
+
* Retrieves the `left` and `top` values of the center of the provided element.
|
|
901
|
+
* The retrieved values are relative to the current viewport (client values).
|
|
902
|
+
* https://developer.mozilla.org/en-US/docs/Web/CSS/CSSOM_View/Coordinate_systems#standard_cssom_coordinate_systems
|
|
903
|
+
*/
|
|
904
|
+
const getElementClientCenterCoords = (element) => {
|
|
905
|
+
// client (viewport) coordinates of the targeted element
|
|
906
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect#value
|
|
907
|
+
const { left, top, width, height } = element.getBoundingClientRect();
|
|
908
|
+
return {
|
|
909
|
+
left: left + (width / 2),
|
|
910
|
+
top: top + (height / 2)
|
|
911
|
+
};
|
|
912
|
+
};
|
|
913
|
+
|
|
914
|
+
/**
|
|
915
|
+
* Defines the size of the arrow that will be drawn at the end of each Gantt dependency.
|
|
916
|
+
*/
|
|
917
|
+
const ARROW_SIZE = 4;
|
|
918
|
+
/**
|
|
919
|
+
* Defines the distance the polyline will cover from the task element before making a turn.
|
|
920
|
+
*/
|
|
921
|
+
const MIN_DISTANCE_BEFORE_TURN = 10;
|
|
922
|
+
/**
|
|
923
|
+
* @hidden
|
|
924
|
+
*/
|
|
925
|
+
class GanttDependencyDirective {
|
|
926
|
+
constructor(polyline, zone, renderer, mapper, dependencyDomService) {
|
|
927
|
+
this.polyline = polyline;
|
|
928
|
+
this.zone = zone;
|
|
929
|
+
this.renderer = renderer;
|
|
930
|
+
this.mapper = mapper;
|
|
931
|
+
this.dependencyDomService = dependencyDomService;
|
|
932
|
+
this.subscriptions = new Subscription();
|
|
933
|
+
this.subscriptions.add(dependencyDomService.taskChanges
|
|
934
|
+
.pipe(switchMap(changes =>
|
|
935
|
+
// reacts only on the very last event emission,
|
|
936
|
+
// ensures that the tasks are drawn in the DOM
|
|
937
|
+
this.zone.onStable.pipe(take(1), map(() => changes))))
|
|
938
|
+
.subscribe(changes => this.updatePoints(changes)));
|
|
939
|
+
}
|
|
940
|
+
ngOnDestroy() {
|
|
941
|
+
this.subscriptions.unsubscribe();
|
|
942
|
+
}
|
|
943
|
+
ngOnChanges(changes) {
|
|
944
|
+
if (isPresent(changes['dependency'])) {
|
|
945
|
+
this.updatePoints(this.dependencyDomService.dependencyDomArgs);
|
|
946
|
+
}
|
|
947
|
+
}
|
|
948
|
+
updatePoints({ timelineRow, contentContainer, tasks }) {
|
|
949
|
+
if (!isPresent(timelineRow) || !isPresent(contentContainer) ||
|
|
950
|
+
!isPresent(tasks) || tasks.size === 0 ||
|
|
951
|
+
!tasks.has(this.mapper.extractFromDependency(this.dependency, 'fromId')) || !tasks.has(this.mapper.extractFromDependency(this.dependency, 'toId'))) {
|
|
952
|
+
this.clearPoints();
|
|
953
|
+
return;
|
|
954
|
+
}
|
|
955
|
+
const fromCoordinates = getElementRect(tasks.get(this.mapper.extractFromDependency(this.dependency, 'fromId')), contentContainer);
|
|
956
|
+
const toCoordinates = getElementRect(tasks.get(this.mapper.extractFromDependency(this.dependency, 'toId')), contentContainer);
|
|
957
|
+
const timelineRowHeight = isDocumentAvailable() ? timelineRow.getBoundingClientRect().height : 0;
|
|
958
|
+
const points = dependencyCoordinates(fromCoordinates, toCoordinates, timelineRowHeight, this.dependency.type, MIN_DISTANCE_BEFORE_TURN, ARROW_SIZE);
|
|
959
|
+
this.drawPoints(points);
|
|
960
|
+
}
|
|
961
|
+
clearPoints() {
|
|
962
|
+
this.renderer.setAttribute(this.polyline.nativeElement, 'points', '');
|
|
963
|
+
}
|
|
964
|
+
drawPoints(points) {
|
|
965
|
+
if (!isPresent(points) || points.length === 0) {
|
|
966
|
+
this.clearPoints();
|
|
967
|
+
return;
|
|
968
|
+
}
|
|
969
|
+
const parsedCoords = points.map(({ left, top }) => `${left},${top}`).join(' ');
|
|
970
|
+
this.renderer.setAttribute(this.polyline.nativeElement, 'points', parsedCoords);
|
|
971
|
+
}
|
|
972
|
+
}
|
|
973
|
+
GanttDependencyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttDependencyDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: MappingService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
974
|
+
GanttDependencyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttDependencyDirective, isStandalone: true, selector: "[kendoGanttDependency]", inputs: { dependency: "dependency" }, usesOnChanges: true, ngImport: i0 });
|
|
975
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttDependencyDirective, decorators: [{
|
|
976
|
+
type: Directive,
|
|
977
|
+
args: [{
|
|
978
|
+
selector: '[kendoGanttDependency]',
|
|
979
|
+
standalone: true
|
|
980
|
+
}]
|
|
981
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: MappingService }, { type: DependencyDomService }]; }, propDecorators: { dependency: [{
|
|
982
|
+
type: Input
|
|
983
|
+
}] } });
|
|
984
|
+
|
|
735
985
|
/**
|
|
736
986
|
* @hidden
|
|
737
987
|
*/
|
|
@@ -1697,143 +1947,61 @@ GanttTaskBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version:
|
|
|
1697
1947
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskBase, decorators: [{
|
|
1698
1948
|
type: Directive,
|
|
1699
1949
|
args: [{
|
|
1700
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
1701
|
-
selector: 'kendo-gantt-task-base'
|
|
1702
|
-
}]
|
|
1703
|
-
}], ctorParameters: function () { return [{ type: MappingService }, { type: TimelineViewService }, { type: DependencyDomService }, { type: OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; }, propDecorators: { wrapperClass: [{
|
|
1704
|
-
type: HostBinding,
|
|
1705
|
-
args: ['class.k-task-wrap']
|
|
1706
|
-
}], taskIndexAttribute: [{
|
|
1707
|
-
type: HostBinding,
|
|
1708
|
-
args: ['attr.data-task-index']
|
|
1709
|
-
}], taskElement: [{
|
|
1710
|
-
type: ViewChild,
|
|
1711
|
-
args: ['task', { static: true }]
|
|
1712
|
-
}], dataItem: [{
|
|
1713
|
-
type: Input
|
|
1714
|
-
}], index: [{
|
|
1715
|
-
type: Input
|
|
1716
|
-
}], level: [{
|
|
1717
|
-
type: Input
|
|
1718
|
-
}], renderDependencyDragClues: [{
|
|
1719
|
-
type: Input
|
|
1720
|
-
}], selectable: [{
|
|
1721
|
-
type: Input
|
|
1722
|
-
}], isSelected: [{
|
|
1723
|
-
type: Input
|
|
1724
|
-
}], activeView: [{
|
|
1725
|
-
type: Input
|
|
1726
|
-
}], taskClass: [{
|
|
1727
|
-
type: Input
|
|
1728
|
-
}], taskOffset: [{
|
|
1729
|
-
type: HostBinding,
|
|
1730
|
-
args: ['style.left.px']
|
|
1731
|
-
}] } });
|
|
1732
|
-
|
|
1733
|
-
/**
|
|
1734
|
-
* @hidden
|
|
1735
|
-
*/
|
|
1736
|
-
class GanttTaskComponent extends GanttTaskBase {
|
|
1737
|
-
constructor(editService, touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
|
|
1738
|
-
super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
|
|
1739
|
-
this.editService = editService;
|
|
1740
|
-
this.touchEnabled = touchEnabled;
|
|
1741
|
-
this.xIcon = xIcon;
|
|
1742
|
-
}
|
|
1743
|
-
onTaskDelete() {
|
|
1744
|
-
this.editService.dataItem = this.dataItem;
|
|
1745
|
-
this.editService.taskDelete.next(this.dataItem);
|
|
1746
|
-
}
|
|
1747
|
-
}
|
|
1748
|
-
GanttTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskComponent, deps: [{ token: EditService }, { token: TOUCH_ENABLED }, { token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1749
|
-
GanttTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttTaskComponent, selector: "kendo-gantt-task", inputs: { taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate" }, providers: [
|
|
1750
|
-
{
|
|
1751
|
-
provide: GanttTaskBase,
|
|
1752
|
-
useExisting: forwardRef(() => GanttTaskComponent)
|
|
1753
|
-
}
|
|
1754
|
-
], usesInheritance: true, ngImport: i0, template: `
|
|
1755
|
-
<div
|
|
1756
|
-
#task
|
|
1757
|
-
class="k-task k-task-single"
|
|
1758
|
-
role="treeitem"
|
|
1759
|
-
[ngClass]="taskClass(dataItem)"
|
|
1760
|
-
[style.width.px]="taskWidth"
|
|
1761
|
-
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
1762
|
-
[class.k-selected]="isSelected(dataItem)"
|
|
1763
|
-
[attr.aria-selected]="ariaSelected"
|
|
1764
|
-
[attr.aria-level]="level + 1"
|
|
1765
|
-
>
|
|
1766
|
-
<ng-container *ngIf="!taskTemplate">
|
|
1767
|
-
<div
|
|
1768
|
-
class="k-task-complete"
|
|
1769
|
-
[style.width.px]="completionOverlayWidth"
|
|
1770
|
-
aria-hidden="true"
|
|
1771
|
-
>
|
|
1772
|
-
</div>
|
|
1773
|
-
<div class="k-task-content">
|
|
1774
|
-
<div class="k-task-template">
|
|
1775
|
-
<ng-container *ngIf="!taskContentTemplate; else taskContent">
|
|
1776
|
-
{{ mapper.extractFromTask(dataItem, 'title') }}
|
|
1777
|
-
</ng-container>
|
|
1778
|
-
<ng-template
|
|
1779
|
-
#taskContent
|
|
1780
|
-
[ngTemplateOutlet]="taskContentTemplate"
|
|
1781
|
-
[ngTemplateOutletContext]="{ $implicit: dataItem }"
|
|
1782
|
-
>
|
|
1783
|
-
</ng-template>
|
|
1784
|
-
</div>
|
|
1785
|
-
<span
|
|
1786
|
-
class="k-task-actions"
|
|
1787
|
-
aria-hidden="true"
|
|
1788
|
-
>
|
|
1789
|
-
<span
|
|
1790
|
-
class="k-link k-task-delete"
|
|
1791
|
-
[kendoEventsOutsideAngular]="{
|
|
1792
|
-
click: onTaskDelete
|
|
1793
|
-
}"
|
|
1794
|
-
[scope]="this"
|
|
1795
|
-
>
|
|
1796
|
-
<kendo-icon-wrapper
|
|
1797
|
-
icon="x"
|
|
1798
|
-
[svgIcon]="xIcon"></kendo-icon-wrapper>
|
|
1799
|
-
</span>
|
|
1800
|
-
</span>
|
|
1801
|
-
</div>
|
|
1802
|
-
</ng-container>
|
|
1803
|
-
<ng-template
|
|
1804
|
-
*ngIf="taskTemplate"
|
|
1805
|
-
[ngTemplateOutlet]="taskTemplate"
|
|
1806
|
-
[ngTemplateOutletContext]="{
|
|
1807
|
-
$implicit: dataItem,
|
|
1808
|
-
elementWidth: taskWidth
|
|
1809
|
-
}"
|
|
1810
|
-
>
|
|
1811
|
-
</ng-template>
|
|
1812
|
-
</div>
|
|
1813
|
-
<ng-container *ngIf="renderDependencyDragClues">
|
|
1814
|
-
<div
|
|
1815
|
-
class="k-task-dot k-task-start k-touch-action-none"
|
|
1816
|
-
[class.k-display-block]="touchEnabled"
|
|
1817
|
-
>
|
|
1818
|
-
</div>
|
|
1819
|
-
<div
|
|
1820
|
-
class="k-task-dot k-task-end k-touch-action-none"
|
|
1821
|
-
[class.k-display-block]="touchEnabled"
|
|
1822
|
-
>
|
|
1823
|
-
</div>
|
|
1824
|
-
</ng-container>
|
|
1825
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i11.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: i9.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
|
|
1826
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskComponent, decorators: [{
|
|
1827
|
-
type: Component,
|
|
1828
|
-
args: [{
|
|
1829
|
-
selector: 'kendo-gantt-task',
|
|
1830
|
-
providers: [
|
|
1831
|
-
{
|
|
1832
|
-
provide: GanttTaskBase,
|
|
1833
|
-
useExisting: forwardRef(() => GanttTaskComponent)
|
|
1834
|
-
}
|
|
1835
|
-
],
|
|
1836
|
-
template: `
|
|
1950
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
1951
|
+
selector: 'kendo-gantt-task-base'
|
|
1952
|
+
}]
|
|
1953
|
+
}], ctorParameters: function () { return [{ type: MappingService }, { type: TimelineViewService }, { type: DependencyDomService }, { type: OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; }, propDecorators: { wrapperClass: [{
|
|
1954
|
+
type: HostBinding,
|
|
1955
|
+
args: ['class.k-task-wrap']
|
|
1956
|
+
}], taskIndexAttribute: [{
|
|
1957
|
+
type: HostBinding,
|
|
1958
|
+
args: ['attr.data-task-index']
|
|
1959
|
+
}], taskElement: [{
|
|
1960
|
+
type: ViewChild,
|
|
1961
|
+
args: ['task', { static: true }]
|
|
1962
|
+
}], dataItem: [{
|
|
1963
|
+
type: Input
|
|
1964
|
+
}], index: [{
|
|
1965
|
+
type: Input
|
|
1966
|
+
}], level: [{
|
|
1967
|
+
type: Input
|
|
1968
|
+
}], renderDependencyDragClues: [{
|
|
1969
|
+
type: Input
|
|
1970
|
+
}], selectable: [{
|
|
1971
|
+
type: Input
|
|
1972
|
+
}], isSelected: [{
|
|
1973
|
+
type: Input
|
|
1974
|
+
}], activeView: [{
|
|
1975
|
+
type: Input
|
|
1976
|
+
}], taskClass: [{
|
|
1977
|
+
type: Input
|
|
1978
|
+
}], taskOffset: [{
|
|
1979
|
+
type: HostBinding,
|
|
1980
|
+
args: ['style.left.px']
|
|
1981
|
+
}] } });
|
|
1982
|
+
|
|
1983
|
+
/**
|
|
1984
|
+
* @hidden
|
|
1985
|
+
*/
|
|
1986
|
+
class GanttTaskComponent extends GanttTaskBase {
|
|
1987
|
+
constructor(editService, touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
|
|
1988
|
+
super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
|
|
1989
|
+
this.editService = editService;
|
|
1990
|
+
this.touchEnabled = touchEnabled;
|
|
1991
|
+
this.xIcon = xIcon;
|
|
1992
|
+
}
|
|
1993
|
+
onTaskDelete() {
|
|
1994
|
+
this.editService.dataItem = this.dataItem;
|
|
1995
|
+
this.editService.taskDelete.next(this.dataItem);
|
|
1996
|
+
}
|
|
1997
|
+
}
|
|
1998
|
+
GanttTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskComponent, deps: [{ token: EditService }, { token: TOUCH_ENABLED }, { token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1999
|
+
GanttTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttTaskComponent, isStandalone: true, selector: "kendo-gantt-task", inputs: { taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate" }, providers: [
|
|
2000
|
+
{
|
|
2001
|
+
provide: GanttTaskBase,
|
|
2002
|
+
useExisting: forwardRef(() => GanttTaskComponent)
|
|
2003
|
+
}
|
|
2004
|
+
], usesInheritance: true, ngImport: i0, template: `
|
|
1837
2005
|
<div
|
|
1838
2006
|
#task
|
|
1839
2007
|
class="k-task k-task-single"
|
|
@@ -1878,205 +2046,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1878
2046
|
<kendo-icon-wrapper
|
|
1879
2047
|
icon="x"
|
|
1880
2048
|
[svgIcon]="xIcon"></kendo-icon-wrapper>
|
|
1881
|
-
</span>
|
|
1882
|
-
</span>
|
|
1883
|
-
</div>
|
|
1884
|
-
</ng-container>
|
|
1885
|
-
<ng-template
|
|
1886
|
-
*ngIf="taskTemplate"
|
|
1887
|
-
[ngTemplateOutlet]="taskTemplate"
|
|
1888
|
-
[ngTemplateOutletContext]="{
|
|
1889
|
-
$implicit: dataItem,
|
|
1890
|
-
elementWidth: taskWidth
|
|
1891
|
-
}"
|
|
1892
|
-
>
|
|
1893
|
-
</ng-template>
|
|
1894
|
-
</div>
|
|
1895
|
-
<ng-container *ngIf="renderDependencyDragClues">
|
|
1896
|
-
<div
|
|
1897
|
-
class="k-task-dot k-task-start k-touch-action-none"
|
|
1898
|
-
[class.k-display-block]="touchEnabled"
|
|
1899
|
-
>
|
|
1900
|
-
</div>
|
|
1901
|
-
<div
|
|
1902
|
-
class="k-task-dot k-task-end k-touch-action-none"
|
|
1903
|
-
[class.k-display-block]="touchEnabled"
|
|
1904
|
-
>
|
|
1905
|
-
</div>
|
|
1906
|
-
</ng-container>
|
|
1907
|
-
`
|
|
1908
|
-
}]
|
|
1909
|
-
}], ctorParameters: function () { return [{ type: EditService }, { type: undefined, decorators: [{
|
|
1910
|
-
type: Inject,
|
|
1911
|
-
args: [TOUCH_ENABLED]
|
|
1912
|
-
}] }, { type: MappingService }, { type: TimelineViewService }, { type: DependencyDomService }, { type: OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; }, propDecorators: { taskContentTemplate: [{
|
|
1913
|
-
type: Input
|
|
1914
|
-
}], taskTemplate: [{
|
|
1915
|
-
type: Input
|
|
1916
|
-
}] } });
|
|
1917
|
-
|
|
1918
|
-
/**
|
|
1919
|
-
* @hidden
|
|
1920
|
-
*/
|
|
1921
|
-
class GanttSummaryTaskComponent extends GanttTaskBase {
|
|
1922
|
-
constructor(touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
|
|
1923
|
-
super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
|
|
1924
|
-
this.touchEnabled = touchEnabled;
|
|
1925
|
-
this.summaryWrapperClass = true;
|
|
1926
|
-
}
|
|
1927
|
-
get ariaExpanded() {
|
|
1928
|
-
// if no callback is provided, all child items are displayed and the item is regarded as expanded
|
|
1929
|
-
// replicates the TreeList aria-expanded behavior
|
|
1930
|
-
const isExpanded = !isPresent(this.isExpanded) || this.isExpanded(this.dataItem);
|
|
1931
|
-
return String(isExpanded);
|
|
1932
|
-
}
|
|
1933
|
-
}
|
|
1934
|
-
GanttSummaryTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttSummaryTaskComponent, deps: [{ token: TOUCH_ENABLED }, { token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1935
|
-
GanttSummaryTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttSummaryTaskComponent, selector: "kendo-gantt-summary-task", inputs: { template: "template", isExpanded: "isExpanded" }, host: { properties: { "class.k-summary-wrap": "this.summaryWrapperClass" } }, providers: [
|
|
1936
|
-
{
|
|
1937
|
-
provide: GanttTaskBase,
|
|
1938
|
-
useExisting: forwardRef(() => GanttSummaryTaskComponent)
|
|
1939
|
-
}
|
|
1940
|
-
], usesInheritance: true, ngImport: i0, template: `
|
|
1941
|
-
<div
|
|
1942
|
-
#task
|
|
1943
|
-
role="treeitem"
|
|
1944
|
-
class="k-task k-task-summary"
|
|
1945
|
-
[ngClass]="taskClass(dataItem)"
|
|
1946
|
-
[style.width.px]="taskWidth"
|
|
1947
|
-
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
1948
|
-
[class.k-selected]="isSelected(dataItem)"
|
|
1949
|
-
[attr.aria-selected]="ariaSelected"
|
|
1950
|
-
[attr.aria-expanded]="ariaExpanded"
|
|
1951
|
-
[attr.aria-level]="level + 1"
|
|
1952
|
-
>
|
|
1953
|
-
<div *ngIf="!template; else summaryTemplate"
|
|
1954
|
-
class="k-task-summary-progress"
|
|
1955
|
-
[style.width.px]="taskWidth">
|
|
1956
|
-
<div
|
|
1957
|
-
class="k-task-summary-complete"
|
|
1958
|
-
[style.width.px]="completionOverlayWidth"
|
|
1959
|
-
>
|
|
1960
|
-
</div>
|
|
1961
|
-
</div>
|
|
1962
|
-
<ng-template
|
|
1963
|
-
#summaryTemplate
|
|
1964
|
-
[ngTemplateOutlet]="template"
|
|
1965
|
-
[ngTemplateOutletContext]="{
|
|
1966
|
-
$implicit: dataItem,
|
|
1967
|
-
elementWidth: taskWidth
|
|
1968
|
-
}"
|
|
1969
|
-
>
|
|
1970
|
-
</ng-template>
|
|
1971
|
-
</div>
|
|
1972
|
-
<ng-container *ngIf="renderDependencyDragClues">
|
|
1973
|
-
<div
|
|
1974
|
-
class="k-task-dot k-task-start k-touch-action-none"
|
|
1975
|
-
[class.k-display-block]="touchEnabled"
|
|
1976
|
-
>
|
|
1977
|
-
</div>
|
|
1978
|
-
<div
|
|
1979
|
-
class="k-task-dot k-task-end k-touch-action-none"
|
|
1980
|
-
[class.k-display-block]="touchEnabled"
|
|
1981
|
-
>
|
|
1982
|
-
</div>
|
|
1983
|
-
</ng-container>
|
|
1984
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
1985
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttSummaryTaskComponent, decorators: [{
|
|
1986
|
-
type: Component,
|
|
1987
|
-
args: [{
|
|
1988
|
-
selector: 'kendo-gantt-summary-task',
|
|
1989
|
-
providers: [
|
|
1990
|
-
{
|
|
1991
|
-
provide: GanttTaskBase,
|
|
1992
|
-
useExisting: forwardRef(() => GanttSummaryTaskComponent)
|
|
1993
|
-
}
|
|
1994
|
-
],
|
|
1995
|
-
template: `
|
|
1996
|
-
<div
|
|
1997
|
-
#task
|
|
1998
|
-
role="treeitem"
|
|
1999
|
-
class="k-task k-task-summary"
|
|
2000
|
-
[ngClass]="taskClass(dataItem)"
|
|
2001
|
-
[style.width.px]="taskWidth"
|
|
2002
|
-
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
2003
|
-
[class.k-selected]="isSelected(dataItem)"
|
|
2004
|
-
[attr.aria-selected]="ariaSelected"
|
|
2005
|
-
[attr.aria-expanded]="ariaExpanded"
|
|
2006
|
-
[attr.aria-level]="level + 1"
|
|
2007
|
-
>
|
|
2008
|
-
<div *ngIf="!template; else summaryTemplate"
|
|
2009
|
-
class="k-task-summary-progress"
|
|
2010
|
-
[style.width.px]="taskWidth">
|
|
2011
|
-
<div
|
|
2012
|
-
class="k-task-summary-complete"
|
|
2013
|
-
[style.width.px]="completionOverlayWidth"
|
|
2014
|
-
>
|
|
2015
|
-
</div>
|
|
2016
|
-
</div>
|
|
2017
|
-
<ng-template
|
|
2018
|
-
#summaryTemplate
|
|
2019
|
-
[ngTemplateOutlet]="template"
|
|
2020
|
-
[ngTemplateOutletContext]="{
|
|
2021
|
-
$implicit: dataItem,
|
|
2022
|
-
elementWidth: taskWidth
|
|
2023
|
-
}"
|
|
2024
|
-
>
|
|
2025
|
-
</ng-template>
|
|
2026
|
-
</div>
|
|
2027
|
-
<ng-container *ngIf="renderDependencyDragClues">
|
|
2028
|
-
<div
|
|
2029
|
-
class="k-task-dot k-task-start k-touch-action-none"
|
|
2030
|
-
[class.k-display-block]="touchEnabled"
|
|
2031
|
-
>
|
|
2032
|
-
</div>
|
|
2033
|
-
<div
|
|
2034
|
-
class="k-task-dot k-task-end k-touch-action-none"
|
|
2035
|
-
[class.k-display-block]="touchEnabled"
|
|
2036
|
-
>
|
|
2037
|
-
</div>
|
|
2038
|
-
</ng-container>
|
|
2039
|
-
`
|
|
2040
|
-
}]
|
|
2041
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
2042
|
-
type: Inject,
|
|
2043
|
-
args: [TOUCH_ENABLED]
|
|
2044
|
-
}] }, { type: MappingService }, { type: TimelineViewService }, { type: DependencyDomService }, { type: OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; }, propDecorators: { summaryWrapperClass: [{
|
|
2045
|
-
type: HostBinding,
|
|
2046
|
-
args: ['class.k-summary-wrap']
|
|
2047
|
-
}], template: [{
|
|
2048
|
-
type: Input
|
|
2049
|
-
}], isExpanded: [{
|
|
2050
|
-
type: Input
|
|
2051
|
-
}] } });
|
|
2052
|
-
|
|
2053
|
-
/**
|
|
2054
|
-
* @hidden
|
|
2055
|
-
*/
|
|
2056
|
-
class GanttMilestoneTaskComponent extends GanttTaskBase {
|
|
2057
|
-
constructor(touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
|
|
2058
|
-
super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
|
|
2059
|
-
this.touchEnabled = touchEnabled;
|
|
2060
|
-
this.milestoneWrapperClass = true;
|
|
2061
|
-
}
|
|
2062
|
-
}
|
|
2063
|
-
GanttMilestoneTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttMilestoneTaskComponent, deps: [{ token: TOUCH_ENABLED }, { token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2064
|
-
GanttMilestoneTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttMilestoneTaskComponent, selector: "kendo-gantt-milestone-task", host: { properties: { "class.k-milestone-wrap": "this.milestoneWrapperClass" } }, providers: [
|
|
2065
|
-
{
|
|
2066
|
-
provide: GanttTaskBase,
|
|
2067
|
-
useExisting: forwardRef(() => GanttMilestoneTaskComponent)
|
|
2068
|
-
}
|
|
2069
|
-
], usesInheritance: true, ngImport: i0, template: `
|
|
2070
|
-
<div
|
|
2071
|
-
#task
|
|
2072
|
-
role="treeitem"
|
|
2073
|
-
class="k-task k-task-milestone"
|
|
2074
|
-
[ngClass]="taskClass(dataItem)"
|
|
2075
|
-
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
2076
|
-
[class.k-selected]="isSelected(dataItem)"
|
|
2077
|
-
[attr.aria-selected]="ariaSelected"
|
|
2078
|
-
[attr.aria-level]="level + 1"
|
|
2079
|
-
>
|
|
2049
|
+
</span>
|
|
2050
|
+
</span>
|
|
2051
|
+
</div>
|
|
2052
|
+
</ng-container>
|
|
2053
|
+
<ng-template
|
|
2054
|
+
*ngIf="taskTemplate"
|
|
2055
|
+
[ngTemplateOutlet]="taskTemplate"
|
|
2056
|
+
[ngTemplateOutletContext]="{
|
|
2057
|
+
$implicit: dataItem,
|
|
2058
|
+
elementWidth: taskWidth
|
|
2059
|
+
}"
|
|
2060
|
+
>
|
|
2061
|
+
</ng-template>
|
|
2080
2062
|
</div>
|
|
2081
2063
|
<ng-container *ngIf="renderDependencyDragClues">
|
|
2082
2064
|
<div
|
|
@@ -2090,28 +2072,75 @@ GanttMilestoneTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.
|
|
|
2090
2072
|
>
|
|
2091
2073
|
</div>
|
|
2092
2074
|
</ng-container>
|
|
2093
|
-
`, isInline: true, dependencies: [{ kind: "directive", type:
|
|
2094
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type:
|
|
2075
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
|
|
2076
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskComponent, decorators: [{
|
|
2095
2077
|
type: Component,
|
|
2096
2078
|
args: [{
|
|
2097
|
-
selector: 'kendo-gantt-
|
|
2079
|
+
selector: 'kendo-gantt-task',
|
|
2098
2080
|
providers: [
|
|
2099
2081
|
{
|
|
2100
2082
|
provide: GanttTaskBase,
|
|
2101
|
-
useExisting: forwardRef(() =>
|
|
2083
|
+
useExisting: forwardRef(() => GanttTaskComponent)
|
|
2102
2084
|
}
|
|
2103
2085
|
],
|
|
2104
2086
|
template: `
|
|
2105
2087
|
<div
|
|
2106
2088
|
#task
|
|
2089
|
+
class="k-task k-task-single"
|
|
2107
2090
|
role="treeitem"
|
|
2108
|
-
class="k-task k-task-milestone"
|
|
2109
2091
|
[ngClass]="taskClass(dataItem)"
|
|
2092
|
+
[style.width.px]="taskWidth"
|
|
2110
2093
|
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
2111
2094
|
[class.k-selected]="isSelected(dataItem)"
|
|
2112
2095
|
[attr.aria-selected]="ariaSelected"
|
|
2113
2096
|
[attr.aria-level]="level + 1"
|
|
2114
2097
|
>
|
|
2098
|
+
<ng-container *ngIf="!taskTemplate">
|
|
2099
|
+
<div
|
|
2100
|
+
class="k-task-complete"
|
|
2101
|
+
[style.width.px]="completionOverlayWidth"
|
|
2102
|
+
aria-hidden="true"
|
|
2103
|
+
>
|
|
2104
|
+
</div>
|
|
2105
|
+
<div class="k-task-content">
|
|
2106
|
+
<div class="k-task-template">
|
|
2107
|
+
<ng-container *ngIf="!taskContentTemplate; else taskContent">
|
|
2108
|
+
{{ mapper.extractFromTask(dataItem, 'title') }}
|
|
2109
|
+
</ng-container>
|
|
2110
|
+
<ng-template
|
|
2111
|
+
#taskContent
|
|
2112
|
+
[ngTemplateOutlet]="taskContentTemplate"
|
|
2113
|
+
[ngTemplateOutletContext]="{ $implicit: dataItem }"
|
|
2114
|
+
>
|
|
2115
|
+
</ng-template>
|
|
2116
|
+
</div>
|
|
2117
|
+
<span
|
|
2118
|
+
class="k-task-actions"
|
|
2119
|
+
aria-hidden="true"
|
|
2120
|
+
>
|
|
2121
|
+
<span
|
|
2122
|
+
class="k-link k-task-delete"
|
|
2123
|
+
[kendoEventsOutsideAngular]="{
|
|
2124
|
+
click: onTaskDelete
|
|
2125
|
+
}"
|
|
2126
|
+
[scope]="this"
|
|
2127
|
+
>
|
|
2128
|
+
<kendo-icon-wrapper
|
|
2129
|
+
icon="x"
|
|
2130
|
+
[svgIcon]="xIcon"></kendo-icon-wrapper>
|
|
2131
|
+
</span>
|
|
2132
|
+
</span>
|
|
2133
|
+
</div>
|
|
2134
|
+
</ng-container>
|
|
2135
|
+
<ng-template
|
|
2136
|
+
*ngIf="taskTemplate"
|
|
2137
|
+
[ngTemplateOutlet]="taskTemplate"
|
|
2138
|
+
[ngTemplateOutletContext]="{
|
|
2139
|
+
$implicit: dataItem,
|
|
2140
|
+
elementWidth: taskWidth
|
|
2141
|
+
}"
|
|
2142
|
+
>
|
|
2143
|
+
</ng-template>
|
|
2115
2144
|
</div>
|
|
2116
2145
|
<ng-container *ngIf="renderDependencyDragClues">
|
|
2117
2146
|
<div
|
|
@@ -2119,469 +2148,395 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
2119
2148
|
[class.k-display-block]="touchEnabled"
|
|
2120
2149
|
>
|
|
2121
2150
|
</div>
|
|
2122
|
-
<div
|
|
2123
|
-
class="k-task-dot k-task-end k-touch-action-none"
|
|
2124
|
-
[class.k-display-block]="touchEnabled"
|
|
2125
|
-
>
|
|
2126
|
-
</div>
|
|
2127
|
-
</ng-container>
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
type: Inject,
|
|
2132
|
-
args: [TOUCH_ENABLED]
|
|
2133
|
-
}] }, { type: MappingService }, { type: TimelineViewService }, { type: DependencyDomService }, { type: OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; }, propDecorators: { milestoneWrapperClass: [{
|
|
2134
|
-
type: HostBinding,
|
|
2135
|
-
args: ['class.k-milestone-wrap']
|
|
2136
|
-
}] } });
|
|
2137
|
-
|
|
2138
|
-
/**
|
|
2139
|
-
* @hidden
|
|
2140
|
-
*/
|
|
2141
|
-
class GanttTasksTableBodyComponent {
|
|
2142
|
-
constructor(dependencyDomService, mapper) {
|
|
2143
|
-
this.dependencyDomService = dependencyDomService;
|
|
2144
|
-
this.mapper = mapper;
|
|
2145
|
-
}
|
|
2146
|
-
set timelineRow(timelineRow) {
|
|
2147
|
-
// register the row value only when the first row is rendered
|
|
2148
|
-
// with server-side data-binding, the rows rendering could be delayed
|
|
2149
|
-
if (isPresent(timelineRow)) {
|
|
2150
|
-
this.dependencyDomService.registerTimelineRow(timelineRow.nativeElement);
|
|
2151
|
-
}
|
|
2152
|
-
}
|
|
2153
|
-
isMileStone(item) {
|
|
2154
|
-
return !item.hasChildren && isEqual(this.mapper.extractFromTask(item.data, 'start'), this.mapper.extractFromTask(item.data, 'end'));
|
|
2155
|
-
}
|
|
2156
|
-
}
|
|
2157
|
-
GanttTasksTableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTasksTableBodyComponent, deps: [{ token: DependencyDomService }, { token: MappingService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2158
|
-
GanttTasksTableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttTasksTableBodyComponent, selector: "[kendoGanttTasksTableBody]", inputs: { selectable: "selectable", rows: "rows", activeView: "activeView", taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate", summaryTaskTemplate: "summaryTaskTemplate", taskClass: "taskClass", isExpanded: "isExpanded", isTaskSelected: "isTaskSelected", renderDependencyDragClues: "renderDependencyDragClues" }, viewQueries: [{ propertyName: "timelineRow", first: true, predicate: ["timelineRow"], descendants: true }], ngImport: i0, template: `
|
|
2159
|
-
<tr class="k-table-row" #timelineRow *ngFor="let item of rows; let index = index">
|
|
2160
|
-
<td class="k-table-td">
|
|
2161
|
-
<kendo-gantt-milestone-task
|
|
2162
|
-
*ngIf="isMileStone(item); else task"
|
|
2163
|
-
[dataItem]="item.data"
|
|
2164
|
-
[level]="item.level"
|
|
2165
|
-
[activeView]="activeView"
|
|
2166
|
-
[taskClass]="taskClass"
|
|
2167
|
-
[selectable]="selectable"
|
|
2168
|
-
[isSelected]="isTaskSelected"
|
|
2169
|
-
[index]="index"
|
|
2170
|
-
[renderDependencyDragClues]="renderDependencyDragClues"
|
|
2171
|
-
>
|
|
2172
|
-
</kendo-gantt-milestone-task>
|
|
2173
|
-
<ng-template #task>
|
|
2174
|
-
<kendo-gantt-summary-task
|
|
2175
|
-
*ngIf="item.hasChildren"
|
|
2176
|
-
[dataItem]="item.data"
|
|
2177
|
-
[level]="item.level"
|
|
2178
|
-
[template]="summaryTaskTemplate"
|
|
2179
|
-
[activeView]="activeView"
|
|
2180
|
-
[taskClass]="taskClass"
|
|
2181
|
-
[selectable]="selectable"
|
|
2182
|
-
[isSelected]="isTaskSelected"
|
|
2183
|
-
[isExpanded]="isExpanded"
|
|
2184
|
-
[index]="index"
|
|
2185
|
-
[renderDependencyDragClues]="renderDependencyDragClues"
|
|
2186
|
-
>
|
|
2187
|
-
</kendo-gantt-summary-task>
|
|
2188
|
-
<kendo-gantt-task
|
|
2189
|
-
*ngIf="!item.hasChildren"
|
|
2190
|
-
[dataItem]="item.data"
|
|
2191
|
-
[level]="item.level"
|
|
2192
|
-
[taskContentTemplate]="taskContentTemplate"
|
|
2193
|
-
[taskTemplate]="taskTemplate"
|
|
2194
|
-
[activeView]="activeView"
|
|
2195
|
-
[taskClass]="taskClass"
|
|
2196
|
-
[selectable]="selectable"
|
|
2197
|
-
[isSelected]="isTaskSelected"
|
|
2198
|
-
[index]="index"
|
|
2199
|
-
[renderDependencyDragClues]="renderDependencyDragClues"
|
|
2200
|
-
>
|
|
2201
|
-
</kendo-gantt-task>
|
|
2202
|
-
</ng-template>
|
|
2203
|
-
</td>
|
|
2204
|
-
</tr>
|
|
2205
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GanttTaskComponent, selector: "kendo-gantt-task", inputs: ["taskContentTemplate", "taskTemplate"] }, { kind: "component", type: GanttSummaryTaskComponent, selector: "kendo-gantt-summary-task", inputs: ["template", "isExpanded"] }, { kind: "component", type: GanttMilestoneTaskComponent, selector: "kendo-gantt-milestone-task" }] });
|
|
2206
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTasksTableBodyComponent, decorators: [{
|
|
2207
|
-
type: Component,
|
|
2208
|
-
args: [{
|
|
2209
|
-
// eslint-disable-next-line @angular-eslint/component-selector
|
|
2210
|
-
selector: '[kendoGanttTasksTableBody]',
|
|
2211
|
-
template: `
|
|
2212
|
-
<tr class="k-table-row" #timelineRow *ngFor="let item of rows; let index = index">
|
|
2213
|
-
<td class="k-table-td">
|
|
2214
|
-
<kendo-gantt-milestone-task
|
|
2215
|
-
*ngIf="isMileStone(item); else task"
|
|
2216
|
-
[dataItem]="item.data"
|
|
2217
|
-
[level]="item.level"
|
|
2218
|
-
[activeView]="activeView"
|
|
2219
|
-
[taskClass]="taskClass"
|
|
2220
|
-
[selectable]="selectable"
|
|
2221
|
-
[isSelected]="isTaskSelected"
|
|
2222
|
-
[index]="index"
|
|
2223
|
-
[renderDependencyDragClues]="renderDependencyDragClues"
|
|
2224
|
-
>
|
|
2225
|
-
</kendo-gantt-milestone-task>
|
|
2226
|
-
<ng-template #task>
|
|
2227
|
-
<kendo-gantt-summary-task
|
|
2228
|
-
*ngIf="item.hasChildren"
|
|
2229
|
-
[dataItem]="item.data"
|
|
2230
|
-
[level]="item.level"
|
|
2231
|
-
[template]="summaryTaskTemplate"
|
|
2232
|
-
[activeView]="activeView"
|
|
2233
|
-
[taskClass]="taskClass"
|
|
2234
|
-
[selectable]="selectable"
|
|
2235
|
-
[isSelected]="isTaskSelected"
|
|
2236
|
-
[isExpanded]="isExpanded"
|
|
2237
|
-
[index]="index"
|
|
2238
|
-
[renderDependencyDragClues]="renderDependencyDragClues"
|
|
2239
|
-
>
|
|
2240
|
-
</kendo-gantt-summary-task>
|
|
2241
|
-
<kendo-gantt-task
|
|
2242
|
-
*ngIf="!item.hasChildren"
|
|
2243
|
-
[dataItem]="item.data"
|
|
2244
|
-
[level]="item.level"
|
|
2245
|
-
[taskContentTemplate]="taskContentTemplate"
|
|
2246
|
-
[taskTemplate]="taskTemplate"
|
|
2247
|
-
[activeView]="activeView"
|
|
2248
|
-
[taskClass]="taskClass"
|
|
2249
|
-
[selectable]="selectable"
|
|
2250
|
-
[isSelected]="isTaskSelected"
|
|
2251
|
-
[index]="index"
|
|
2252
|
-
[renderDependencyDragClues]="renderDependencyDragClues"
|
|
2253
|
-
>
|
|
2254
|
-
</kendo-gantt-task>
|
|
2255
|
-
</ng-template>
|
|
2256
|
-
</td>
|
|
2257
|
-
</tr>
|
|
2258
|
-
`
|
|
2259
|
-
}]
|
|
2260
|
-
}], ctorParameters: function () { return [{ type: DependencyDomService }, { type: MappingService }]; }, propDecorators: { timelineRow: [{
|
|
2261
|
-
type: ViewChild,
|
|
2262
|
-
args: ['timelineRow', { static: false }]
|
|
2263
|
-
}], selectable: [{
|
|
2264
|
-
type: Input
|
|
2265
|
-
}], rows: [{
|
|
2266
|
-
type: Input
|
|
2267
|
-
}], activeView: [{
|
|
2268
|
-
type: Input
|
|
2269
|
-
}], taskContentTemplate: [{
|
|
2270
|
-
type: Input
|
|
2271
|
-
}], taskTemplate: [{
|
|
2272
|
-
type: Input
|
|
2273
|
-
}], summaryTaskTemplate: [{
|
|
2274
|
-
type: Input
|
|
2275
|
-
}], taskClass: [{
|
|
2276
|
-
type: Input
|
|
2277
|
-
}], isExpanded: [{
|
|
2278
|
-
type: Input
|
|
2279
|
-
}], isTaskSelected: [{
|
|
2280
|
-
type: Input
|
|
2281
|
-
}], renderDependencyDragClues: [{
|
|
2282
|
-
type: Input
|
|
2283
|
-
}] } });
|
|
2284
|
-
|
|
2285
|
-
/**
|
|
2286
|
-
* @hidden
|
|
2287
|
-
*/
|
|
2288
|
-
class GanttHeaderTableBodyComponent {
|
|
2289
|
-
constructor() {
|
|
2290
|
-
this.tbodyClass = true;
|
|
2291
|
-
}
|
|
2292
|
-
}
|
|
2293
|
-
GanttHeaderTableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttHeaderTableBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2294
|
-
GanttHeaderTableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttHeaderTableBodyComponent, selector: "[kendoGanttHeaderTableBody]", inputs: { groupSlots: "groupSlots", slots: "slots" }, host: { properties: { "class.k-table-tbody": "this.tbodyClass" } }, ngImport: i0, template: `
|
|
2295
|
-
<tr class="k-table-row">
|
|
2296
|
-
<td *ngFor="let item of groupSlots" [attr.colspan]="item.span" class="k-header k-table-td">{{ item.text }}</td>
|
|
2297
|
-
</tr>
|
|
2298
|
-
|
|
2299
|
-
<tr class="k-table-row">
|
|
2300
|
-
<td *ngFor="let item of slots" class="k-header k-table-td" [attr.colspan]="item.span === 7 ? item.span : 1" [attr.title]="item.text">{{ item.text }}</td>
|
|
2301
|
-
</tr>
|
|
2302
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
2303
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttHeaderTableBodyComponent, decorators: [{
|
|
2304
|
-
type: Component,
|
|
2305
|
-
args: [{
|
|
2306
|
-
// eslint-disable-next-line @angular-eslint/component-selector
|
|
2307
|
-
selector: '[kendoGanttHeaderTableBody]',
|
|
2308
|
-
template: `
|
|
2309
|
-
<tr class="k-table-row">
|
|
2310
|
-
<td *ngFor="let item of groupSlots" [attr.colspan]="item.span" class="k-header k-table-td">{{ item.text }}</td>
|
|
2311
|
-
</tr>
|
|
2312
|
-
|
|
2313
|
-
<tr class="k-table-row">
|
|
2314
|
-
<td *ngFor="let item of slots" class="k-header k-table-td" [attr.colspan]="item.span === 7 ? item.span : 1" [attr.title]="item.text">{{ item.text }}</td>
|
|
2315
|
-
</tr>
|
|
2316
|
-
`
|
|
2151
|
+
<div
|
|
2152
|
+
class="k-task-dot k-task-end k-touch-action-none"
|
|
2153
|
+
[class.k-display-block]="touchEnabled"
|
|
2154
|
+
>
|
|
2155
|
+
</div>
|
|
2156
|
+
</ng-container>
|
|
2157
|
+
`,
|
|
2158
|
+
standalone: true,
|
|
2159
|
+
imports: [NgClass, NgIf, NgTemplateOutlet, EventsOutsideAngularDirective, IconWrapperComponent]
|
|
2317
2160
|
}]
|
|
2318
|
-
}],
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2161
|
+
}], ctorParameters: function () { return [{ type: EditService }, { type: undefined, decorators: [{
|
|
2162
|
+
type: Inject,
|
|
2163
|
+
args: [TOUCH_ENABLED]
|
|
2164
|
+
}] }, { type: MappingService }, { type: TimelineViewService }, { type: DependencyDomService }, { type: OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; }, propDecorators: { taskContentTemplate: [{
|
|
2322
2165
|
type: Input
|
|
2323
|
-
}],
|
|
2166
|
+
}], taskTemplate: [{
|
|
2324
2167
|
type: Input
|
|
2325
2168
|
}] } });
|
|
2326
2169
|
|
|
2327
2170
|
/**
|
|
2328
2171
|
* @hidden
|
|
2329
|
-
*
|
|
2330
|
-
* Gets the offset (top and left values) relative to a target element.
|
|
2331
2172
|
*/
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
if (!targetParent.contains(element)) {
|
|
2338
|
-
return offset;
|
|
2339
|
-
}
|
|
2340
|
-
let offsetParent = element;
|
|
2341
|
-
while (offsetParent && offsetParent !== targetParent) {
|
|
2342
|
-
offset.top += offsetParent.offsetTop;
|
|
2343
|
-
offset.left += offsetParent.offsetLeft;
|
|
2344
|
-
offsetParent = offsetParent.offsetParent;
|
|
2173
|
+
class GanttSummaryTaskComponent extends GanttTaskBase {
|
|
2174
|
+
constructor(touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
|
|
2175
|
+
super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
|
|
2176
|
+
this.touchEnabled = touchEnabled;
|
|
2177
|
+
this.summaryWrapperClass = true;
|
|
2345
2178
|
}
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
const getElementRect = (element, relativeContainer) => {
|
|
2352
|
-
const { top, left } = getOffsetRelativeToParent(element, relativeContainer);
|
|
2353
|
-
return {
|
|
2354
|
-
top: top + element.offsetHeight / 2,
|
|
2355
|
-
left: left,
|
|
2356
|
-
right: left + element.offsetWidth
|
|
2357
|
-
};
|
|
2358
|
-
};
|
|
2359
|
-
/**
|
|
2360
|
-
* @hidden
|
|
2361
|
-
*/
|
|
2362
|
-
const dependencyCoordinates = (from, to, rowHeight, type, minDistanceBeforeTurn, arrowSize) => {
|
|
2363
|
-
const points = [];
|
|
2364
|
-
const minTurnHeight = Math.floor(rowHeight / 2);
|
|
2365
|
-
const drawingDown = from.top < to.top;
|
|
2366
|
-
let top, left;
|
|
2367
|
-
// FF and SS are composed of 4 connected polyline points (not counting the arrow)
|
|
2368
|
-
/*
|
|
2369
|
-
[[[]]]- -[[[]]]
|
|
2370
|
-
| |
|
|
2371
|
-
[[[]]]- -[[[]]]
|
|
2372
|
-
*/
|
|
2373
|
-
if (type === DependencyType.FF || type === DependencyType.SS) {
|
|
2374
|
-
// polyline start from first task
|
|
2375
|
-
const dir = type === DependencyType.SS ? 'left' : 'right';
|
|
2376
|
-
top = from.top;
|
|
2377
|
-
left = from[dir];
|
|
2378
|
-
points.push({ top, left });
|
|
2379
|
-
// first turn point
|
|
2380
|
-
left = Math[dir === 'left' ? 'min' : 'max'](from[dir], to[dir]);
|
|
2381
|
-
left = dir === 'left' ? left - minDistanceBeforeTurn : left + minDistanceBeforeTurn;
|
|
2382
|
-
points.push({ top, left });
|
|
2383
|
-
// second turn point
|
|
2384
|
-
top = to.top;
|
|
2385
|
-
points.push({ top, left });
|
|
2386
|
-
// second task reached
|
|
2387
|
-
left = dir === 'left' ? to[dir] - arrowSize : to[dir] + arrowSize;
|
|
2388
|
-
points.push({ top, left });
|
|
2389
|
-
// arrow pointing to the second task
|
|
2390
|
-
points.push(...getArrow(top, left, dir !== 'left', arrowSize));
|
|
2179
|
+
get ariaExpanded() {
|
|
2180
|
+
// if no callback is provided, all child items are displayed and the item is regarded as expanded
|
|
2181
|
+
// replicates the TreeList aria-expanded behavior
|
|
2182
|
+
const isExpanded = !isPresent(this.isExpanded) || this.isExpanded(this.dataItem);
|
|
2183
|
+
return String(isExpanded);
|
|
2391
2184
|
}
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
|
2399
|
-
-[[[]]]
|
|
2400
|
-
*/
|
|
2401
|
-
const startDir = type === DependencyType.SF ? 'left' : 'right';
|
|
2402
|
-
const endDir = type === DependencyType.SF ? 'right' : 'left';
|
|
2403
|
-
const additionalTurn = type === DependencyType.SF
|
|
2404
|
-
? from[startDir] - minDistanceBeforeTurn * 2 < to[endDir]
|
|
2405
|
-
: from[startDir] + minDistanceBeforeTurn * 2 > to[endDir];
|
|
2406
|
-
// polyline start from first task
|
|
2407
|
-
top = from.top;
|
|
2408
|
-
left = from[startDir];
|
|
2409
|
-
points.push({ top, left });
|
|
2410
|
-
// first turn point
|
|
2411
|
-
left = startDir === 'left'
|
|
2412
|
-
? left - minDistanceBeforeTurn
|
|
2413
|
-
: left + minDistanceBeforeTurn;
|
|
2414
|
-
points.push({ top, left });
|
|
2415
|
-
// if second task start is before the first task end in FS
|
|
2416
|
-
// if second task end is after the first task start in SF
|
|
2417
|
-
if (additionalTurn) {
|
|
2418
|
-
// additional turn start
|
|
2419
|
-
top = drawingDown
|
|
2420
|
-
? top + minTurnHeight
|
|
2421
|
-
: top - minTurnHeight;
|
|
2422
|
-
points.push({ top, left });
|
|
2423
|
-
// additional turn end
|
|
2424
|
-
left = startDir === 'left'
|
|
2425
|
-
? to[endDir] + minDistanceBeforeTurn
|
|
2426
|
-
: to[endDir] - minDistanceBeforeTurn;
|
|
2427
|
-
points.push({ top, left });
|
|
2185
|
+
}
|
|
2186
|
+
GanttSummaryTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttSummaryTaskComponent, deps: [{ token: TOUCH_ENABLED }, { token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2187
|
+
GanttSummaryTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttSummaryTaskComponent, isStandalone: true, selector: "kendo-gantt-summary-task", inputs: { template: "template", isExpanded: "isExpanded" }, host: { properties: { "class.k-summary-wrap": "this.summaryWrapperClass" } }, providers: [
|
|
2188
|
+
{
|
|
2189
|
+
provide: GanttTaskBase,
|
|
2190
|
+
useExisting: forwardRef(() => GanttSummaryTaskComponent)
|
|
2428
2191
|
}
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
|
|
2479
|
-
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2192
|
+
], usesInheritance: true, ngImport: i0, template: `
|
|
2193
|
+
<div
|
|
2194
|
+
#task
|
|
2195
|
+
role="treeitem"
|
|
2196
|
+
class="k-task k-task-summary"
|
|
2197
|
+
[ngClass]="taskClass(dataItem)"
|
|
2198
|
+
[style.width.px]="taskWidth"
|
|
2199
|
+
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
2200
|
+
[class.k-selected]="isSelected(dataItem)"
|
|
2201
|
+
[attr.aria-selected]="ariaSelected"
|
|
2202
|
+
[attr.aria-expanded]="ariaExpanded"
|
|
2203
|
+
[attr.aria-level]="level + 1"
|
|
2204
|
+
>
|
|
2205
|
+
<div *ngIf="!template; else summaryTemplate"
|
|
2206
|
+
class="k-task-summary-progress"
|
|
2207
|
+
[style.width.px]="taskWidth">
|
|
2208
|
+
<div
|
|
2209
|
+
class="k-task-summary-complete"
|
|
2210
|
+
[style.width.px]="completionOverlayWidth"
|
|
2211
|
+
>
|
|
2212
|
+
</div>
|
|
2213
|
+
</div>
|
|
2214
|
+
<ng-template
|
|
2215
|
+
#summaryTemplate
|
|
2216
|
+
[ngTemplateOutlet]="template"
|
|
2217
|
+
[ngTemplateOutletContext]="{
|
|
2218
|
+
$implicit: dataItem,
|
|
2219
|
+
elementWidth: taskWidth
|
|
2220
|
+
}"
|
|
2221
|
+
>
|
|
2222
|
+
</ng-template>
|
|
2223
|
+
</div>
|
|
2224
|
+
<ng-container *ngIf="renderDependencyDragClues">
|
|
2225
|
+
<div
|
|
2226
|
+
class="k-task-dot k-task-start k-touch-action-none"
|
|
2227
|
+
[class.k-display-block]="touchEnabled"
|
|
2228
|
+
>
|
|
2229
|
+
</div>
|
|
2230
|
+
<div
|
|
2231
|
+
class="k-task-dot k-task-end k-touch-action-none"
|
|
2232
|
+
[class.k-display-block]="touchEnabled"
|
|
2233
|
+
>
|
|
2234
|
+
</div>
|
|
2235
|
+
</ng-container>
|
|
2236
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
2237
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttSummaryTaskComponent, decorators: [{
|
|
2238
|
+
type: Component,
|
|
2239
|
+
args: [{
|
|
2240
|
+
selector: 'kendo-gantt-summary-task',
|
|
2241
|
+
providers: [
|
|
2242
|
+
{
|
|
2243
|
+
provide: GanttTaskBase,
|
|
2244
|
+
useExisting: forwardRef(() => GanttSummaryTaskComponent)
|
|
2245
|
+
}
|
|
2246
|
+
],
|
|
2247
|
+
template: `
|
|
2248
|
+
<div
|
|
2249
|
+
#task
|
|
2250
|
+
role="treeitem"
|
|
2251
|
+
class="k-task k-task-summary"
|
|
2252
|
+
[ngClass]="taskClass(dataItem)"
|
|
2253
|
+
[style.width.px]="taskWidth"
|
|
2254
|
+
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
2255
|
+
[class.k-selected]="isSelected(dataItem)"
|
|
2256
|
+
[attr.aria-selected]="ariaSelected"
|
|
2257
|
+
[attr.aria-expanded]="ariaExpanded"
|
|
2258
|
+
[attr.aria-level]="level + 1"
|
|
2259
|
+
>
|
|
2260
|
+
<div *ngIf="!template; else summaryTemplate"
|
|
2261
|
+
class="k-task-summary-progress"
|
|
2262
|
+
[style.width.px]="taskWidth">
|
|
2263
|
+
<div
|
|
2264
|
+
class="k-task-summary-complete"
|
|
2265
|
+
[style.width.px]="completionOverlayWidth"
|
|
2266
|
+
>
|
|
2267
|
+
</div>
|
|
2268
|
+
</div>
|
|
2269
|
+
<ng-template
|
|
2270
|
+
#summaryTemplate
|
|
2271
|
+
[ngTemplateOutlet]="template"
|
|
2272
|
+
[ngTemplateOutletContext]="{
|
|
2273
|
+
$implicit: dataItem,
|
|
2274
|
+
elementWidth: taskWidth
|
|
2275
|
+
}"
|
|
2276
|
+
>
|
|
2277
|
+
</ng-template>
|
|
2278
|
+
</div>
|
|
2279
|
+
<ng-container *ngIf="renderDependencyDragClues">
|
|
2280
|
+
<div
|
|
2281
|
+
class="k-task-dot k-task-start k-touch-action-none"
|
|
2282
|
+
[class.k-display-block]="touchEnabled"
|
|
2283
|
+
>
|
|
2284
|
+
</div>
|
|
2285
|
+
<div
|
|
2286
|
+
class="k-task-dot k-task-end k-touch-action-none"
|
|
2287
|
+
[class.k-display-block]="touchEnabled"
|
|
2288
|
+
>
|
|
2289
|
+
</div>
|
|
2290
|
+
</ng-container>
|
|
2291
|
+
`,
|
|
2292
|
+
standalone: true,
|
|
2293
|
+
imports: [NgClass, NgIf, NgTemplateOutlet]
|
|
2294
|
+
}]
|
|
2295
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
2296
|
+
type: Inject,
|
|
2297
|
+
args: [TOUCH_ENABLED]
|
|
2298
|
+
}] }, { type: MappingService }, { type: TimelineViewService }, { type: DependencyDomService }, { type: OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; }, propDecorators: { summaryWrapperClass: [{
|
|
2299
|
+
type: HostBinding,
|
|
2300
|
+
args: ['class.k-summary-wrap']
|
|
2301
|
+
}], template: [{
|
|
2302
|
+
type: Input
|
|
2303
|
+
}], isExpanded: [{
|
|
2304
|
+
type: Input
|
|
2305
|
+
}] } });
|
|
2306
|
+
|
|
2501
2307
|
/**
|
|
2502
2308
|
* @hidden
|
|
2503
|
-
*
|
|
2504
|
-
* Retrieves the `left` and `top` values of the center of the provided element.
|
|
2505
|
-
* The retrieved values are relative to the current viewport (client values).
|
|
2506
|
-
* https://developer.mozilla.org/en-US/docs/Web/CSS/CSSOM_View/Coordinate_systems#standard_cssom_coordinate_systems
|
|
2507
2309
|
*/
|
|
2508
|
-
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
}
|
|
2310
|
+
class GanttMilestoneTaskComponent extends GanttTaskBase {
|
|
2311
|
+
constructor(touchEnabled, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
|
|
2312
|
+
super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
|
|
2313
|
+
this.touchEnabled = touchEnabled;
|
|
2314
|
+
this.milestoneWrapperClass = true;
|
|
2315
|
+
}
|
|
2316
|
+
}
|
|
2317
|
+
GanttMilestoneTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttMilestoneTaskComponent, deps: [{ token: TOUCH_ENABLED }, { token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2318
|
+
GanttMilestoneTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttMilestoneTaskComponent, isStandalone: true, selector: "kendo-gantt-milestone-task", host: { properties: { "class.k-milestone-wrap": "this.milestoneWrapperClass" } }, providers: [
|
|
2319
|
+
{
|
|
2320
|
+
provide: GanttTaskBase,
|
|
2321
|
+
useExisting: forwardRef(() => GanttMilestoneTaskComponent)
|
|
2322
|
+
}
|
|
2323
|
+
], usesInheritance: true, ngImport: i0, template: `
|
|
2324
|
+
<div
|
|
2325
|
+
#task
|
|
2326
|
+
role="treeitem"
|
|
2327
|
+
class="k-task k-task-milestone"
|
|
2328
|
+
[ngClass]="taskClass(dataItem)"
|
|
2329
|
+
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
2330
|
+
[class.k-selected]="isSelected(dataItem)"
|
|
2331
|
+
[attr.aria-selected]="ariaSelected"
|
|
2332
|
+
[attr.aria-level]="level + 1"
|
|
2333
|
+
>
|
|
2334
|
+
</div>
|
|
2335
|
+
<ng-container *ngIf="renderDependencyDragClues">
|
|
2336
|
+
<div
|
|
2337
|
+
class="k-task-dot k-task-start k-touch-action-none"
|
|
2338
|
+
[class.k-display-block]="touchEnabled"
|
|
2339
|
+
>
|
|
2340
|
+
</div>
|
|
2341
|
+
<div
|
|
2342
|
+
class="k-task-dot k-task-end k-touch-action-none"
|
|
2343
|
+
[class.k-display-block]="touchEnabled"
|
|
2344
|
+
>
|
|
2345
|
+
</div>
|
|
2346
|
+
</ng-container>
|
|
2347
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
2348
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttMilestoneTaskComponent, decorators: [{
|
|
2349
|
+
type: Component,
|
|
2350
|
+
args: [{
|
|
2351
|
+
selector: 'kendo-gantt-milestone-task',
|
|
2352
|
+
providers: [
|
|
2353
|
+
{
|
|
2354
|
+
provide: GanttTaskBase,
|
|
2355
|
+
useExisting: forwardRef(() => GanttMilestoneTaskComponent)
|
|
2356
|
+
}
|
|
2357
|
+
],
|
|
2358
|
+
template: `
|
|
2359
|
+
<div
|
|
2360
|
+
#task
|
|
2361
|
+
role="treeitem"
|
|
2362
|
+
class="k-task k-task-milestone"
|
|
2363
|
+
[ngClass]="taskClass(dataItem)"
|
|
2364
|
+
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
2365
|
+
[class.k-selected]="isSelected(dataItem)"
|
|
2366
|
+
[attr.aria-selected]="ariaSelected"
|
|
2367
|
+
[attr.aria-level]="level + 1"
|
|
2368
|
+
>
|
|
2369
|
+
</div>
|
|
2370
|
+
<ng-container *ngIf="renderDependencyDragClues">
|
|
2371
|
+
<div
|
|
2372
|
+
class="k-task-dot k-task-start k-touch-action-none"
|
|
2373
|
+
[class.k-display-block]="touchEnabled"
|
|
2374
|
+
>
|
|
2375
|
+
</div>
|
|
2376
|
+
<div
|
|
2377
|
+
class="k-task-dot k-task-end k-touch-action-none"
|
|
2378
|
+
[class.k-display-block]="touchEnabled"
|
|
2379
|
+
>
|
|
2380
|
+
</div>
|
|
2381
|
+
</ng-container>
|
|
2382
|
+
`,
|
|
2383
|
+
standalone: true,
|
|
2384
|
+
imports: [NgClass, NgIf]
|
|
2385
|
+
}]
|
|
2386
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
2387
|
+
type: Inject,
|
|
2388
|
+
args: [TOUCH_ENABLED]
|
|
2389
|
+
}] }, { type: MappingService }, { type: TimelineViewService }, { type: DependencyDomService }, { type: OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; }, propDecorators: { milestoneWrapperClass: [{
|
|
2390
|
+
type: HostBinding,
|
|
2391
|
+
args: ['class.k-milestone-wrap']
|
|
2392
|
+
}] } });
|
|
2517
2393
|
|
|
2518
|
-
/**
|
|
2519
|
-
* Defines the size of the arrow that will be drawn at the end of each Gantt dependency.
|
|
2520
|
-
*/
|
|
2521
|
-
const ARROW_SIZE = 4;
|
|
2522
|
-
/**
|
|
2523
|
-
* Defines the distance the polyline will cover from the task element before making a turn.
|
|
2524
|
-
*/
|
|
2525
|
-
const MIN_DISTANCE_BEFORE_TURN = 10;
|
|
2526
2394
|
/**
|
|
2527
2395
|
* @hidden
|
|
2528
2396
|
*/
|
|
2529
|
-
class
|
|
2530
|
-
constructor(
|
|
2531
|
-
this.polyline = polyline;
|
|
2532
|
-
this.zone = zone;
|
|
2533
|
-
this.renderer = renderer;
|
|
2534
|
-
this.mapper = mapper;
|
|
2397
|
+
class GanttTasksTableBodyComponent {
|
|
2398
|
+
constructor(dependencyDomService, mapper) {
|
|
2535
2399
|
this.dependencyDomService = dependencyDomService;
|
|
2536
|
-
this.
|
|
2537
|
-
this.subscriptions.add(dependencyDomService.taskChanges
|
|
2538
|
-
.pipe(switchMap(changes =>
|
|
2539
|
-
// reacts only on the very last event emission,
|
|
2540
|
-
// ensures that the tasks are drawn in the DOM
|
|
2541
|
-
this.zone.onStable.pipe(take(1), map(() => changes))))
|
|
2542
|
-
.subscribe(changes => this.updatePoints(changes)));
|
|
2543
|
-
}
|
|
2544
|
-
ngOnDestroy() {
|
|
2545
|
-
this.subscriptions.unsubscribe();
|
|
2546
|
-
}
|
|
2547
|
-
ngOnChanges(changes) {
|
|
2548
|
-
if (isPresent(changes['dependency'])) {
|
|
2549
|
-
this.updatePoints(this.dependencyDomService.dependencyDomArgs);
|
|
2550
|
-
}
|
|
2400
|
+
this.mapper = mapper;
|
|
2551
2401
|
}
|
|
2552
|
-
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
this.
|
|
2557
|
-
return;
|
|
2402
|
+
set timelineRow(timelineRow) {
|
|
2403
|
+
// register the row value only when the first row is rendered
|
|
2404
|
+
// with server-side data-binding, the rows rendering could be delayed
|
|
2405
|
+
if (isPresent(timelineRow)) {
|
|
2406
|
+
this.dependencyDomService.registerTimelineRow(timelineRow.nativeElement);
|
|
2558
2407
|
}
|
|
2559
|
-
const fromCoordinates = getElementRect(tasks.get(this.mapper.extractFromDependency(this.dependency, 'fromId')), contentContainer);
|
|
2560
|
-
const toCoordinates = getElementRect(tasks.get(this.mapper.extractFromDependency(this.dependency, 'toId')), contentContainer);
|
|
2561
|
-
const timelineRowHeight = isDocumentAvailable() ? timelineRow.getBoundingClientRect().height : 0;
|
|
2562
|
-
const points = dependencyCoordinates(fromCoordinates, toCoordinates, timelineRowHeight, this.dependency.type, MIN_DISTANCE_BEFORE_TURN, ARROW_SIZE);
|
|
2563
|
-
this.drawPoints(points);
|
|
2564
|
-
}
|
|
2565
|
-
clearPoints() {
|
|
2566
|
-
this.renderer.setAttribute(this.polyline.nativeElement, 'points', '');
|
|
2567
2408
|
}
|
|
2568
|
-
|
|
2569
|
-
|
|
2570
|
-
this.clearPoints();
|
|
2571
|
-
return;
|
|
2572
|
-
}
|
|
2573
|
-
const parsedCoords = points.map(({ left, top }) => `${left},${top}`).join(' ');
|
|
2574
|
-
this.renderer.setAttribute(this.polyline.nativeElement, 'points', parsedCoords);
|
|
2409
|
+
isMileStone(item) {
|
|
2410
|
+
return !item.hasChildren && isEqual(this.mapper.extractFromTask(item.data, 'start'), this.mapper.extractFromTask(item.data, 'end'));
|
|
2575
2411
|
}
|
|
2576
2412
|
}
|
|
2577
|
-
|
|
2578
|
-
|
|
2579
|
-
|
|
2580
|
-
|
|
2413
|
+
GanttTasksTableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTasksTableBodyComponent, deps: [{ token: DependencyDomService }, { token: MappingService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2414
|
+
GanttTasksTableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttTasksTableBodyComponent, isStandalone: true, selector: "[kendoGanttTasksTableBody]", inputs: { selectable: "selectable", rows: "rows", activeView: "activeView", taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate", summaryTaskTemplate: "summaryTaskTemplate", taskClass: "taskClass", isExpanded: "isExpanded", isTaskSelected: "isTaskSelected", renderDependencyDragClues: "renderDependencyDragClues" }, viewQueries: [{ propertyName: "timelineRow", first: true, predicate: ["timelineRow"], descendants: true }], ngImport: i0, template: `
|
|
2415
|
+
<tr class="k-table-row" #timelineRow *ngFor="let item of rows; let index = index">
|
|
2416
|
+
<td class="k-table-td">
|
|
2417
|
+
<kendo-gantt-milestone-task
|
|
2418
|
+
*ngIf="isMileStone(item); else task"
|
|
2419
|
+
[dataItem]="item.data"
|
|
2420
|
+
[level]="item.level"
|
|
2421
|
+
[activeView]="activeView"
|
|
2422
|
+
[taskClass]="taskClass"
|
|
2423
|
+
[selectable]="selectable"
|
|
2424
|
+
[isSelected]="isTaskSelected"
|
|
2425
|
+
[index]="index"
|
|
2426
|
+
[renderDependencyDragClues]="renderDependencyDragClues"
|
|
2427
|
+
>
|
|
2428
|
+
</kendo-gantt-milestone-task>
|
|
2429
|
+
<ng-template #task>
|
|
2430
|
+
<kendo-gantt-summary-task
|
|
2431
|
+
*ngIf="item.hasChildren"
|
|
2432
|
+
[dataItem]="item.data"
|
|
2433
|
+
[level]="item.level"
|
|
2434
|
+
[template]="summaryTaskTemplate"
|
|
2435
|
+
[activeView]="activeView"
|
|
2436
|
+
[taskClass]="taskClass"
|
|
2437
|
+
[selectable]="selectable"
|
|
2438
|
+
[isSelected]="isTaskSelected"
|
|
2439
|
+
[isExpanded]="isExpanded"
|
|
2440
|
+
[index]="index"
|
|
2441
|
+
[renderDependencyDragClues]="renderDependencyDragClues"
|
|
2442
|
+
>
|
|
2443
|
+
</kendo-gantt-summary-task>
|
|
2444
|
+
<kendo-gantt-task
|
|
2445
|
+
*ngIf="!item.hasChildren"
|
|
2446
|
+
[dataItem]="item.data"
|
|
2447
|
+
[level]="item.level"
|
|
2448
|
+
[taskContentTemplate]="taskContentTemplate"
|
|
2449
|
+
[taskTemplate]="taskTemplate"
|
|
2450
|
+
[activeView]="activeView"
|
|
2451
|
+
[taskClass]="taskClass"
|
|
2452
|
+
[selectable]="selectable"
|
|
2453
|
+
[isSelected]="isTaskSelected"
|
|
2454
|
+
[index]="index"
|
|
2455
|
+
[renderDependencyDragClues]="renderDependencyDragClues"
|
|
2456
|
+
>
|
|
2457
|
+
</kendo-gantt-task>
|
|
2458
|
+
</ng-template>
|
|
2459
|
+
</td>
|
|
2460
|
+
</tr>
|
|
2461
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GanttMilestoneTaskComponent, selector: "kendo-gantt-milestone-task" }, { kind: "component", type: GanttSummaryTaskComponent, selector: "kendo-gantt-summary-task", inputs: ["template", "isExpanded"] }, { kind: "component", type: GanttTaskComponent, selector: "kendo-gantt-task", inputs: ["taskContentTemplate", "taskTemplate"] }] });
|
|
2462
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTasksTableBodyComponent, decorators: [{
|
|
2463
|
+
type: Component,
|
|
2581
2464
|
args: [{
|
|
2582
|
-
selector
|
|
2465
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
2466
|
+
selector: '[kendoGanttTasksTableBody]',
|
|
2467
|
+
template: `
|
|
2468
|
+
<tr class="k-table-row" #timelineRow *ngFor="let item of rows; let index = index">
|
|
2469
|
+
<td class="k-table-td">
|
|
2470
|
+
<kendo-gantt-milestone-task
|
|
2471
|
+
*ngIf="isMileStone(item); else task"
|
|
2472
|
+
[dataItem]="item.data"
|
|
2473
|
+
[level]="item.level"
|
|
2474
|
+
[activeView]="activeView"
|
|
2475
|
+
[taskClass]="taskClass"
|
|
2476
|
+
[selectable]="selectable"
|
|
2477
|
+
[isSelected]="isTaskSelected"
|
|
2478
|
+
[index]="index"
|
|
2479
|
+
[renderDependencyDragClues]="renderDependencyDragClues"
|
|
2480
|
+
>
|
|
2481
|
+
</kendo-gantt-milestone-task>
|
|
2482
|
+
<ng-template #task>
|
|
2483
|
+
<kendo-gantt-summary-task
|
|
2484
|
+
*ngIf="item.hasChildren"
|
|
2485
|
+
[dataItem]="item.data"
|
|
2486
|
+
[level]="item.level"
|
|
2487
|
+
[template]="summaryTaskTemplate"
|
|
2488
|
+
[activeView]="activeView"
|
|
2489
|
+
[taskClass]="taskClass"
|
|
2490
|
+
[selectable]="selectable"
|
|
2491
|
+
[isSelected]="isTaskSelected"
|
|
2492
|
+
[isExpanded]="isExpanded"
|
|
2493
|
+
[index]="index"
|
|
2494
|
+
[renderDependencyDragClues]="renderDependencyDragClues"
|
|
2495
|
+
>
|
|
2496
|
+
</kendo-gantt-summary-task>
|
|
2497
|
+
<kendo-gantt-task
|
|
2498
|
+
*ngIf="!item.hasChildren"
|
|
2499
|
+
[dataItem]="item.data"
|
|
2500
|
+
[level]="item.level"
|
|
2501
|
+
[taskContentTemplate]="taskContentTemplate"
|
|
2502
|
+
[taskTemplate]="taskTemplate"
|
|
2503
|
+
[activeView]="activeView"
|
|
2504
|
+
[taskClass]="taskClass"
|
|
2505
|
+
[selectable]="selectable"
|
|
2506
|
+
[isSelected]="isTaskSelected"
|
|
2507
|
+
[index]="index"
|
|
2508
|
+
[renderDependencyDragClues]="renderDependencyDragClues"
|
|
2509
|
+
>
|
|
2510
|
+
</kendo-gantt-task>
|
|
2511
|
+
</ng-template>
|
|
2512
|
+
</td>
|
|
2513
|
+
</tr>
|
|
2514
|
+
`,
|
|
2515
|
+
standalone: true,
|
|
2516
|
+
imports: [NgFor, NgIf, GanttMilestoneTaskComponent, GanttSummaryTaskComponent, GanttTaskComponent]
|
|
2583
2517
|
}]
|
|
2584
|
-
}], ctorParameters: function () { return [{ type:
|
|
2518
|
+
}], ctorParameters: function () { return [{ type: DependencyDomService }, { type: MappingService }]; }, propDecorators: { timelineRow: [{
|
|
2519
|
+
type: ViewChild,
|
|
2520
|
+
args: ['timelineRow', { static: false }]
|
|
2521
|
+
}], selectable: [{
|
|
2522
|
+
type: Input
|
|
2523
|
+
}], rows: [{
|
|
2524
|
+
type: Input
|
|
2525
|
+
}], activeView: [{
|
|
2526
|
+
type: Input
|
|
2527
|
+
}], taskContentTemplate: [{
|
|
2528
|
+
type: Input
|
|
2529
|
+
}], taskTemplate: [{
|
|
2530
|
+
type: Input
|
|
2531
|
+
}], summaryTaskTemplate: [{
|
|
2532
|
+
type: Input
|
|
2533
|
+
}], taskClass: [{
|
|
2534
|
+
type: Input
|
|
2535
|
+
}], isExpanded: [{
|
|
2536
|
+
type: Input
|
|
2537
|
+
}], isTaskSelected: [{
|
|
2538
|
+
type: Input
|
|
2539
|
+
}], renderDependencyDragClues: [{
|
|
2585
2540
|
type: Input
|
|
2586
2541
|
}] } });
|
|
2587
2542
|
|
|
@@ -2761,16 +2716,61 @@ class TimelineScrollableDirective {
|
|
|
2761
2716
|
}
|
|
2762
2717
|
}
|
|
2763
2718
|
TimelineScrollableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineScrollableDirective, deps: [{ token: i0.ElementRef }, { token: TimelineScrollService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2764
|
-
TimelineScrollableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: TimelineScrollableDirective, selector: "[kendoGanttTimelineScrollable]", inputs: { scrollSettings: "scrollSettings" }, ngImport: i0 });
|
|
2719
|
+
TimelineScrollableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: TimelineScrollableDirective, isStandalone: true, selector: "[kendoGanttTimelineScrollable]", inputs: { scrollSettings: "scrollSettings" }, ngImport: i0 });
|
|
2765
2720
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineScrollableDirective, decorators: [{
|
|
2766
2721
|
type: Directive,
|
|
2767
2722
|
args: [{
|
|
2768
|
-
selector: '[kendoGanttTimelineScrollable]'
|
|
2723
|
+
selector: '[kendoGanttTimelineScrollable]',
|
|
2724
|
+
standalone: true
|
|
2769
2725
|
}]
|
|
2770
2726
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: TimelineScrollService }, { type: i0.NgZone }]; }, propDecorators: { scrollSettings: [{
|
|
2771
2727
|
type: Input
|
|
2772
2728
|
}] } });
|
|
2773
2729
|
|
|
2730
|
+
/**
|
|
2731
|
+
* @hidden
|
|
2732
|
+
*/
|
|
2733
|
+
class GanttHeaderTableBodyComponent {
|
|
2734
|
+
constructor() {
|
|
2735
|
+
this.tbodyClass = true;
|
|
2736
|
+
}
|
|
2737
|
+
}
|
|
2738
|
+
GanttHeaderTableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttHeaderTableBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2739
|
+
GanttHeaderTableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttHeaderTableBodyComponent, isStandalone: true, selector: "[kendoGanttHeaderTableBody]", inputs: { groupSlots: "groupSlots", slots: "slots" }, host: { properties: { "class.k-table-tbody": "this.tbodyClass" } }, ngImport: i0, template: `
|
|
2740
|
+
<tr class="k-table-row">
|
|
2741
|
+
<td *ngFor="let item of groupSlots" [attr.colspan]="item.span" class="k-header k-table-td">{{ item.text }}</td>
|
|
2742
|
+
</tr>
|
|
2743
|
+
|
|
2744
|
+
<tr class="k-table-row">
|
|
2745
|
+
<td *ngFor="let item of slots" class="k-header k-table-td" [attr.colspan]="item.span === 7 ? item.span : 1" [attr.title]="item.text">{{ item.text }}</td>
|
|
2746
|
+
</tr>
|
|
2747
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
2748
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttHeaderTableBodyComponent, decorators: [{
|
|
2749
|
+
type: Component,
|
|
2750
|
+
args: [{
|
|
2751
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
2752
|
+
selector: '[kendoGanttHeaderTableBody]',
|
|
2753
|
+
template: `
|
|
2754
|
+
<tr class="k-table-row">
|
|
2755
|
+
<td *ngFor="let item of groupSlots" [attr.colspan]="item.span" class="k-header k-table-td">{{ item.text }}</td>
|
|
2756
|
+
</tr>
|
|
2757
|
+
|
|
2758
|
+
<tr class="k-table-row">
|
|
2759
|
+
<td *ngFor="let item of slots" class="k-header k-table-td" [attr.colspan]="item.span === 7 ? item.span : 1" [attr.title]="item.text">{{ item.text }}</td>
|
|
2760
|
+
</tr>
|
|
2761
|
+
`,
|
|
2762
|
+
standalone: true,
|
|
2763
|
+
imports: [NgFor]
|
|
2764
|
+
}]
|
|
2765
|
+
}], propDecorators: { tbodyClass: [{
|
|
2766
|
+
type: HostBinding,
|
|
2767
|
+
args: ['class.k-table-tbody']
|
|
2768
|
+
}], groupSlots: [{
|
|
2769
|
+
type: Input
|
|
2770
|
+
}], slots: [{
|
|
2771
|
+
type: Input
|
|
2772
|
+
}] } });
|
|
2773
|
+
|
|
2774
2774
|
/**
|
|
2775
2775
|
* @hidden
|
|
2776
2776
|
*/
|
|
@@ -2840,7 +2840,7 @@ class GanttTimelineComponent {
|
|
|
2840
2840
|
}
|
|
2841
2841
|
}
|
|
2842
2842
|
GanttTimelineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTimelineComponent, deps: [{ token: ScrollSyncService }, { token: DependencyDomService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: CurrentTimeMarkerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2843
|
-
GanttTimelineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttTimelineComponent, selector: "kendo-gantt-timeline", inputs: { rows: "rows", slots: "slots", groupSlots: "groupSlots", tableWidth: "tableWidth", activeView: "activeView", taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate", summaryTaskTemplate: "summaryTaskTemplate", taskClass: "taskClass", renderDependencyDragClues: "renderDependencyDragClues", dragScrollSettings: "dragScrollSettings", currentTimeMarker: "currentTimeMarker", selectable: "selectable", isTaskSelected: "isTaskSelected", isExpanded: "isExpanded", dependencies: "dependencies" }, outputs: { timelineContainerPress: "timelineContainerPress", timelineContainerDrag: "timelineContainerDrag", timelineContainerRelease: "timelineContainerRelease" }, viewQueries: [{ propertyName: "timelineContent", first: true, predicate: ["timelineContent"], descendants: true, static: true }, { propertyName: "timelineColumns", first: true, predicate: ["timelineColumns"], descendants: true, static: true }, { propertyName: "timelineHeaderWrap", first: true, predicate: ["timelineHeaderWrap"], descendants: true, static: true }, { propertyName: "tasksContainer", first: true, predicate: ["tasksContainer"], descendants: true, static: true }, { propertyName: "dragPopupContainer", first: true, predicate: ["dragPopupContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "dependencyDragCreatePolyline", first: true, predicate: ["dependencyDragCreatePolyline"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
2843
|
+
GanttTimelineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttTimelineComponent, isStandalone: true, selector: "kendo-gantt-timeline", inputs: { rows: "rows", slots: "slots", groupSlots: "groupSlots", tableWidth: "tableWidth", activeView: "activeView", taskContentTemplate: "taskContentTemplate", taskTemplate: "taskTemplate", summaryTaskTemplate: "summaryTaskTemplate", taskClass: "taskClass", renderDependencyDragClues: "renderDependencyDragClues", dragScrollSettings: "dragScrollSettings", currentTimeMarker: "currentTimeMarker", selectable: "selectable", isTaskSelected: "isTaskSelected", isExpanded: "isExpanded", dependencies: "dependencies" }, outputs: { timelineContainerPress: "timelineContainerPress", timelineContainerDrag: "timelineContainerDrag", timelineContainerRelease: "timelineContainerRelease" }, viewQueries: [{ propertyName: "timelineContent", first: true, predicate: ["timelineContent"], descendants: true, static: true }, { propertyName: "timelineColumns", first: true, predicate: ["timelineColumns"], descendants: true, static: true }, { propertyName: "timelineHeaderWrap", first: true, predicate: ["timelineHeaderWrap"], descendants: true, static: true }, { propertyName: "tasksContainer", first: true, predicate: ["tasksContainer"], descendants: true, static: true }, { propertyName: "dragPopupContainer", first: true, predicate: ["dragPopupContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "dependencyDragCreatePolyline", first: true, predicate: ["dependencyDragCreatePolyline"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
2844
2844
|
<div class="k-gantt-timeline k-grid k-grid-md">
|
|
2845
2845
|
<div class="k-grid-header">
|
|
2846
2846
|
<div #timelineHeaderWrap class="k-grid-header-wrap">
|
|
@@ -2943,7 +2943,7 @@ GanttTimelineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
2943
2943
|
<ng-container #dragPopupContainer></ng-container>
|
|
2944
2944
|
</div>
|
|
2945
2945
|
</div>
|
|
2946
|
-
`, isInline: true, dependencies: [{ kind: "directive", type:
|
|
2946
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: TableDirective, selector: "table", inputs: ["locked", "virtualColumns"] }, { kind: "component", type: GanttHeaderTableBodyComponent, selector: "[kendoGanttHeaderTableBody]", inputs: ["groupSlots", "slots"] }, { kind: "directive", type: TimelineScrollableDirective, selector: "[kendoGanttTimelineScrollable]", inputs: ["scrollSettings"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: GanttTasksTableBodyComponent, selector: "[kendoGanttTasksTableBody]", inputs: ["selectable", "rows", "activeView", "taskContentTemplate", "taskTemplate", "summaryTaskTemplate", "taskClass", "isExpanded", "isTaskSelected", "renderDependencyDragClues"] }, { kind: "directive", type: GanttDependencyDirective, selector: "[kendoGanttDependency]", inputs: ["dependency"] }] });
|
|
2947
2947
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTimelineComponent, decorators: [{
|
|
2948
2948
|
type: Component,
|
|
2949
2949
|
args: [{
|
|
@@ -3051,7 +3051,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3051
3051
|
<ng-container #dragPopupContainer></ng-container>
|
|
3052
3052
|
</div>
|
|
3053
3053
|
</div>
|
|
3054
|
-
|
|
3054
|
+
`,
|
|
3055
|
+
standalone: true,
|
|
3056
|
+
imports: [TableDirective, GanttHeaderTableBodyComponent, TimelineScrollableDirective, DraggableDirective, NgFor, GanttTasksTableBodyComponent, GanttDependencyDirective]
|
|
3055
3057
|
}]
|
|
3056
3058
|
}], ctorParameters: function () { return [{ type: ScrollSyncService }, { type: DependencyDomService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: CurrentTimeMarkerService }]; }, propDecorators: { timelineContent: [{
|
|
3057
3059
|
type: ViewChild,
|
|
@@ -3182,11 +3184,12 @@ class CellTemplateDirective {
|
|
|
3182
3184
|
}
|
|
3183
3185
|
}
|
|
3184
3186
|
CellTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CellTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3185
|
-
CellTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CellTemplateDirective, selector: "[kendoGanttCellTemplate]", ngImport: i0 });
|
|
3187
|
+
CellTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CellTemplateDirective, isStandalone: true, selector: "[kendoGanttCellTemplate]", ngImport: i0 });
|
|
3186
3188
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CellTemplateDirective, decorators: [{
|
|
3187
3189
|
type: Directive,
|
|
3188
3190
|
args: [{
|
|
3189
|
-
selector: '[kendoGanttCellTemplate]'
|
|
3191
|
+
selector: '[kendoGanttCellTemplate]',
|
|
3192
|
+
standalone: true
|
|
3190
3193
|
}]
|
|
3191
3194
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3192
3195
|
type: Optional
|
|
@@ -3208,11 +3211,12 @@ class ColumnMenuTemplateDirective {
|
|
|
3208
3211
|
}
|
|
3209
3212
|
}
|
|
3210
3213
|
ColumnMenuTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnMenuTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3211
|
-
ColumnMenuTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ColumnMenuTemplateDirective, selector: "[kendoGanttColumnMenuTemplate]", ngImport: i0 });
|
|
3214
|
+
ColumnMenuTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ColumnMenuTemplateDirective, isStandalone: true, selector: "[kendoGanttColumnMenuTemplate]", ngImport: i0 });
|
|
3212
3215
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnMenuTemplateDirective, decorators: [{
|
|
3213
3216
|
type: Directive,
|
|
3214
3217
|
args: [{
|
|
3215
|
-
selector: '[kendoGanttColumnMenuTemplate]'
|
|
3218
|
+
selector: '[kendoGanttColumnMenuTemplate]',
|
|
3219
|
+
standalone: true
|
|
3216
3220
|
}]
|
|
3217
3221
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3218
3222
|
type: Optional
|
|
@@ -3233,11 +3237,12 @@ class FilterCellTemplateDirective {
|
|
|
3233
3237
|
}
|
|
3234
3238
|
}
|
|
3235
3239
|
FilterCellTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterCellTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3236
|
-
FilterCellTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FilterCellTemplateDirective, selector: "[kendoGanttFilterCellTemplate]", ngImport: i0 });
|
|
3240
|
+
FilterCellTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FilterCellTemplateDirective, isStandalone: true, selector: "[kendoGanttFilterCellTemplate]", ngImport: i0 });
|
|
3237
3241
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterCellTemplateDirective, decorators: [{
|
|
3238
3242
|
type: Directive,
|
|
3239
3243
|
args: [{
|
|
3240
|
-
selector: '[kendoGanttFilterCellTemplate]'
|
|
3244
|
+
selector: '[kendoGanttFilterCellTemplate]',
|
|
3245
|
+
standalone: true
|
|
3241
3246
|
}]
|
|
3242
3247
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3243
3248
|
type: Optional
|
|
@@ -3257,11 +3262,12 @@ class FilterMenuTemplateDirective {
|
|
|
3257
3262
|
}
|
|
3258
3263
|
}
|
|
3259
3264
|
FilterMenuTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterMenuTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3260
|
-
FilterMenuTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FilterMenuTemplateDirective, selector: "[kendoGanttFilterMenuTemplate]", ngImport: i0 });
|
|
3265
|
+
FilterMenuTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FilterMenuTemplateDirective, isStandalone: true, selector: "[kendoGanttFilterMenuTemplate]", ngImport: i0 });
|
|
3261
3266
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterMenuTemplateDirective, decorators: [{
|
|
3262
3267
|
type: Directive,
|
|
3263
3268
|
args: [{
|
|
3264
|
-
selector: '[kendoGanttFilterMenuTemplate]'
|
|
3269
|
+
selector: '[kendoGanttFilterMenuTemplate]',
|
|
3270
|
+
standalone: true
|
|
3265
3271
|
}]
|
|
3266
3272
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3267
3273
|
type: Optional
|
|
@@ -3285,11 +3291,12 @@ class FooterTemplateDirective {
|
|
|
3285
3291
|
}
|
|
3286
3292
|
}
|
|
3287
3293
|
FooterTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FooterTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3288
|
-
FooterTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FooterTemplateDirective, selector: "[kendoGanttFooterTemplate]", ngImport: i0 });
|
|
3294
|
+
FooterTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FooterTemplateDirective, isStandalone: true, selector: "[kendoGanttFooterTemplate]", ngImport: i0 });
|
|
3289
3295
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FooterTemplateDirective, decorators: [{
|
|
3290
3296
|
type: Directive,
|
|
3291
3297
|
args: [{
|
|
3292
|
-
selector: '[kendoGanttFooterTemplate]'
|
|
3298
|
+
selector: '[kendoGanttFooterTemplate]',
|
|
3299
|
+
standalone: true
|
|
3293
3300
|
}]
|
|
3294
3301
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3295
3302
|
type: Optional
|
|
@@ -3311,11 +3318,12 @@ class HeaderTemplateDirective {
|
|
|
3311
3318
|
}
|
|
3312
3319
|
}
|
|
3313
3320
|
HeaderTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: HeaderTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3314
|
-
HeaderTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: HeaderTemplateDirective, selector: "[kendoGanttHeaderTemplate]", ngImport: i0 });
|
|
3321
|
+
HeaderTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: HeaderTemplateDirective, isStandalone: true, selector: "[kendoGanttHeaderTemplate]", ngImport: i0 });
|
|
3315
3322
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: HeaderTemplateDirective, decorators: [{
|
|
3316
3323
|
type: Directive,
|
|
3317
3324
|
args: [{
|
|
3318
|
-
selector: '[kendoGanttHeaderTemplate]'
|
|
3325
|
+
selector: '[kendoGanttHeaderTemplate]',
|
|
3326
|
+
standalone: true
|
|
3319
3327
|
}]
|
|
3320
3328
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3321
3329
|
type: Optional
|
|
@@ -3341,11 +3349,12 @@ class EditTemplateDirective {
|
|
|
3341
3349
|
}
|
|
3342
3350
|
}
|
|
3343
3351
|
EditTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3344
|
-
EditTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: EditTemplateDirective, selector: "[kendoGanttEditTemplate]", ngImport: i0 });
|
|
3352
|
+
EditTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: EditTemplateDirective, isStandalone: true, selector: "[kendoGanttEditTemplate]", ngImport: i0 });
|
|
3345
3353
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditTemplateDirective, decorators: [{
|
|
3346
3354
|
type: Directive,
|
|
3347
3355
|
args: [{
|
|
3348
|
-
selector: '[kendoGanttEditTemplate]'
|
|
3356
|
+
selector: '[kendoGanttEditTemplate]',
|
|
3357
|
+
standalone: true
|
|
3349
3358
|
}]
|
|
3350
3359
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3351
3360
|
type: Optional
|
|
@@ -3395,7 +3404,7 @@ class GanttColumnComponent extends ColumnComponent {
|
|
|
3395
3404
|
}
|
|
3396
3405
|
}
|
|
3397
3406
|
GanttColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttColumnComponent, deps: [{ token: OptionChangesService }, { token: GanttColumnBase, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
3398
|
-
GanttColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttColumnComponent, selector: "kendo-gantt-column", inputs: { format: "format", filter: "filter", filterable: "filterable", editor: "editor", editable: "editable", locked: "locked", lockable: "lockable", hidden: "hidden", media: "media", style: "style", headerStyle: "headerStyle", footerStyle: "footerStyle", cssClass: ["class", "cssClass"], headerClass: "headerClass", footerClass: "footerClass" }, providers: [
|
|
3407
|
+
GanttColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttColumnComponent, isStandalone: true, selector: "kendo-gantt-column", inputs: { format: "format", filter: "filter", filterable: "filterable", editor: "editor", editable: "editable", locked: "locked", lockable: "lockable", hidden: "hidden", media: "media", style: "style", headerStyle: "headerStyle", footerStyle: "footerStyle", cssClass: ["class", "cssClass"], headerClass: "headerClass", footerClass: "footerClass" }, providers: [
|
|
3399
3408
|
{
|
|
3400
3409
|
provide: GanttColumnBase,
|
|
3401
3410
|
useExisting: forwardRef(() => GanttColumnComponent)
|
|
@@ -3411,7 +3420,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3411
3420
|
provide: GanttColumnBase,
|
|
3412
3421
|
useExisting: forwardRef(() => GanttColumnComponent)
|
|
3413
3422
|
}
|
|
3414
|
-
]
|
|
3423
|
+
],
|
|
3424
|
+
standalone: true
|
|
3415
3425
|
}]
|
|
3416
3426
|
}], ctorParameters: function () { return [{ type: OptionChangesService }, { type: GanttColumnBase, decorators: [{
|
|
3417
3427
|
type: SkipSelf
|
|
@@ -3507,7 +3517,7 @@ class GanttColumnGroupComponent extends ColumnGroupComponent {
|
|
|
3507
3517
|
}
|
|
3508
3518
|
}
|
|
3509
3519
|
GanttColumnGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttColumnGroupComponent, deps: [{ token: OptionChangesService }, { token: GanttColumnBase, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
3510
|
-
GanttColumnGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttColumnGroupComponent, selector: "kendo-gantt-column-group", inputs: { locked: "locked", lockable: "lockable", hidden: "hidden", sortable: "sortable", media: "media", style: "style", headerStyle: "headerStyle", footerStyle: "footerStyle", cssClass: ["class", "cssClass"], headerClass: "headerClass", footerClass: "footerClass" }, providers: [
|
|
3520
|
+
GanttColumnGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttColumnGroupComponent, isStandalone: true, selector: "kendo-gantt-column-group", inputs: { locked: "locked", lockable: "lockable", hidden: "hidden", sortable: "sortable", media: "media", style: "style", headerStyle: "headerStyle", footerStyle: "footerStyle", cssClass: ["class", "cssClass"], headerClass: "headerClass", footerClass: "footerClass" }, providers: [
|
|
3511
3521
|
{
|
|
3512
3522
|
provide: GanttColumnBase,
|
|
3513
3523
|
useExisting: forwardRef(() => GanttColumnGroupComponent)
|
|
@@ -3523,7 +3533,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3523
3533
|
provide: GanttColumnBase,
|
|
3524
3534
|
useExisting: forwardRef(() => GanttColumnGroupComponent)
|
|
3525
3535
|
}
|
|
3526
|
-
]
|
|
3536
|
+
],
|
|
3537
|
+
standalone: true
|
|
3527
3538
|
}]
|
|
3528
3539
|
}], ctorParameters: function () { return [{ type: OptionChangesService }, { type: GanttColumnBase, decorators: [{
|
|
3529
3540
|
type: SkipSelf
|
|
@@ -3610,7 +3621,7 @@ class GanttSpanColumnComponent extends SpanColumnComponent {
|
|
|
3610
3621
|
}
|
|
3611
3622
|
}
|
|
3612
3623
|
GanttSpanColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttSpanColumnComponent, deps: [{ token: OptionChangesService }, { token: GanttColumnBase, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
3613
|
-
GanttSpanColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttSpanColumnComponent, selector: "kendo-gantt-span-column", inputs: { locked: "locked", lockable: "lockable", editable: "editable", hidden: "hidden", media: "media", style: "style", headerStyle: "headerStyle", footerStyle: "footerStyle", cssClass: ["class", "cssClass"], headerClass: "headerClass", footerClass: "footerClass" }, providers: [
|
|
3624
|
+
GanttSpanColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttSpanColumnComponent, isStandalone: true, selector: "kendo-gantt-span-column", inputs: { locked: "locked", lockable: "lockable", editable: "editable", hidden: "hidden", media: "media", style: "style", headerStyle: "headerStyle", footerStyle: "footerStyle", cssClass: ["class", "cssClass"], headerClass: "headerClass", footerClass: "footerClass" }, providers: [
|
|
3614
3625
|
{
|
|
3615
3626
|
provide: GanttColumnBase,
|
|
3616
3627
|
useExisting: forwardRef(() => GanttSpanColumnComponent)
|
|
@@ -3626,7 +3637,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3626
3637
|
provide: GanttColumnBase,
|
|
3627
3638
|
useExisting: forwardRef(() => GanttSpanColumnComponent)
|
|
3628
3639
|
}
|
|
3629
|
-
]
|
|
3640
|
+
],
|
|
3641
|
+
standalone: true
|
|
3630
3642
|
}]
|
|
3631
3643
|
}], ctorParameters: function () { return [{ type: OptionChangesService }, { type: GanttColumnBase, decorators: [{
|
|
3632
3644
|
type: SkipSelf
|
|
@@ -3768,11 +3780,12 @@ class GanttTaskTemplateDirective {
|
|
|
3768
3780
|
}
|
|
3769
3781
|
}
|
|
3770
3782
|
GanttTaskTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3771
|
-
GanttTaskTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttTaskTemplateDirective, selector: "[kendoGanttTaskTemplate]", ngImport: i0 });
|
|
3783
|
+
GanttTaskTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttTaskTemplateDirective, isStandalone: true, selector: "[kendoGanttTaskTemplate]", ngImport: i0 });
|
|
3772
3784
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskTemplateDirective, decorators: [{
|
|
3773
3785
|
type: Directive,
|
|
3774
3786
|
args: [{
|
|
3775
|
-
selector: '[kendoGanttTaskTemplate]'
|
|
3787
|
+
selector: '[kendoGanttTaskTemplate]',
|
|
3788
|
+
standalone: true
|
|
3776
3789
|
}]
|
|
3777
3790
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3778
3791
|
type: Optional
|
|
@@ -3813,11 +3826,12 @@ class GanttSummaryTaskTemplateDirective {
|
|
|
3813
3826
|
}
|
|
3814
3827
|
}
|
|
3815
3828
|
GanttSummaryTaskTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttSummaryTaskTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3816
|
-
GanttSummaryTaskTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttSummaryTaskTemplateDirective, selector: "[kendoGanttSummaryTaskTemplate]", ngImport: i0 });
|
|
3829
|
+
GanttSummaryTaskTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttSummaryTaskTemplateDirective, isStandalone: true, selector: "[kendoGanttSummaryTaskTemplate]", ngImport: i0 });
|
|
3817
3830
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttSummaryTaskTemplateDirective, decorators: [{
|
|
3818
3831
|
type: Directive,
|
|
3819
3832
|
args: [{
|
|
3820
|
-
selector: '[kendoGanttSummaryTaskTemplate]'
|
|
3833
|
+
selector: '[kendoGanttSummaryTaskTemplate]',
|
|
3834
|
+
standalone: true
|
|
3821
3835
|
}]
|
|
3822
3836
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3823
3837
|
type: Optional
|
|
@@ -3853,11 +3867,12 @@ class GanttTaskContentTemplateDirective {
|
|
|
3853
3867
|
}
|
|
3854
3868
|
}
|
|
3855
3869
|
GanttTaskContentTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskContentTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3856
|
-
GanttTaskContentTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttTaskContentTemplateDirective, selector: "[kendoGanttTaskContentTemplate]", ngImport: i0 });
|
|
3870
|
+
GanttTaskContentTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttTaskContentTemplateDirective, isStandalone: true, selector: "[kendoGanttTaskContentTemplate]", ngImport: i0 });
|
|
3857
3871
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskContentTemplateDirective, decorators: [{
|
|
3858
3872
|
type: Directive,
|
|
3859
3873
|
args: [{
|
|
3860
|
-
selector: '[kendoGanttTaskContentTemplate]'
|
|
3874
|
+
selector: '[kendoGanttTaskContentTemplate]',
|
|
3875
|
+
standalone: true
|
|
3861
3876
|
}]
|
|
3862
3877
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3863
3878
|
type: Optional
|
|
@@ -3972,11 +3987,12 @@ class ToolbarTemplateDirective {
|
|
|
3972
3987
|
}
|
|
3973
3988
|
}
|
|
3974
3989
|
ToolbarTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3975
|
-
ToolbarTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ToolbarTemplateDirective, selector: "[kendoGanttToolbarTemplate]", inputs: { position: "position" }, ngImport: i0 });
|
|
3990
|
+
ToolbarTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ToolbarTemplateDirective, isStandalone: true, selector: "[kendoGanttToolbarTemplate]", inputs: { position: "position" }, ngImport: i0 });
|
|
3976
3991
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarTemplateDirective, decorators: [{
|
|
3977
3992
|
type: Directive,
|
|
3978
3993
|
args: [{
|
|
3979
|
-
selector: '[kendoGanttToolbarTemplate]'
|
|
3994
|
+
selector: '[kendoGanttToolbarTemplate]',
|
|
3995
|
+
standalone: true
|
|
3980
3996
|
}]
|
|
3981
3997
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3982
3998
|
type: Optional
|
|
@@ -4044,851 +4060,863 @@ const mapPath = (item) => ({
|
|
|
4044
4060
|
/**
|
|
4045
4061
|
* @hidden
|
|
4046
4062
|
*/
|
|
4047
|
-
class
|
|
4048
|
-
constructor(
|
|
4049
|
-
this.
|
|
4050
|
-
this.
|
|
4063
|
+
class DependenciesTableComponent {
|
|
4064
|
+
constructor(mapper, editService, localizationService) {
|
|
4065
|
+
this.mapper = mapper;
|
|
4066
|
+
this.editService = editService;
|
|
4067
|
+
this.localizationService = localizationService;
|
|
4068
|
+
this.dependenciesChange = new EventEmitter();
|
|
4069
|
+
this.selectedKeys = [];
|
|
4070
|
+
this.formGroups = new FormArray([]);
|
|
4071
|
+
this.dependencyTypes = this.getDependencyTypes();
|
|
4072
|
+
this.plusIcon = plusIcon;
|
|
4073
|
+
this.minusIcon = minusIcon;
|
|
4051
4074
|
}
|
|
4052
|
-
|
|
4053
|
-
this.
|
|
4054
|
-
this.renderer.setAttribute(el, 'tabindex', '-1');
|
|
4055
|
-
});
|
|
4056
|
-
this.renderer.setAttribute(this.focusableContent[this.focusIndex], 'tabindex', '0');
|
|
4057
|
-
this.focusableContent[this.focusIndex].focus();
|
|
4075
|
+
get taskId() {
|
|
4076
|
+
return this.editService.dataItem.id;
|
|
4058
4077
|
}
|
|
4059
|
-
|
|
4060
|
-
|
|
4061
|
-
|
|
4062
|
-
|
|
4063
|
-
|
|
4064
|
-
}], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
|
|
4065
|
-
|
|
4066
|
-
/**
|
|
4067
|
-
* The Gantt ViewSelector component. Shows the currently active view type, and allows switching to another view type.
|
|
4068
|
-
*/
|
|
4069
|
-
class ViewSelectorComponent {
|
|
4070
|
-
constructor(localizationService) {
|
|
4071
|
-
this.localizationService = localizationService;
|
|
4072
|
-
this.hostClass = true;
|
|
4073
|
-
/**
|
|
4074
|
-
* The currently active view type.
|
|
4075
|
-
* @default 'week'
|
|
4076
|
-
*/
|
|
4077
|
-
this.activeView = 'week';
|
|
4078
|
-
/**
|
|
4079
|
-
* Fires each time the user selects a different view type. The event data contains the type of the newly selected view.
|
|
4080
|
-
*/
|
|
4081
|
-
this.activeViewChange = new EventEmitter();
|
|
4078
|
+
// The target dependency id field
|
|
4079
|
+
// e.g. if Predecessors, we have the `fromId` which is the currently edited task,
|
|
4080
|
+
// while the `toId` is missing (needs to be selected by the user)
|
|
4081
|
+
get dependencyIdField() {
|
|
4082
|
+
return this.dependencyType === 'predecessor' ? 'fromId' : 'toId';
|
|
4082
4083
|
}
|
|
4083
|
-
|
|
4084
|
-
|
|
4085
|
-
|
|
4086
|
-
|
|
4087
|
-
|
|
4088
|
-
|
|
4084
|
+
ngOnInit() {
|
|
4085
|
+
// generate the FormGroups per each Grid row
|
|
4086
|
+
if (this.formGroups.controls.length === 0) {
|
|
4087
|
+
const fields = this.mapper.dependencyFields;
|
|
4088
|
+
this.dependencies.forEach(item => {
|
|
4089
|
+
const formGroup = new FormGroup({
|
|
4090
|
+
[fields.id]: new FormControl(this.mapper.extractFromDependency(item, 'id')),
|
|
4091
|
+
[fields.fromId]: new FormControl(this.mapper.extractFromDependency(item, 'fromId'), Validators.required),
|
|
4092
|
+
[fields.toId]: new FormControl(this.mapper.extractFromDependency(item, 'toId'), Validators.required),
|
|
4093
|
+
[fields.type]: new FormControl(this.mapper.extractFromDependency(item, 'type'), Validators.required)
|
|
4094
|
+
});
|
|
4095
|
+
this.formGroups.push(formGroup);
|
|
4096
|
+
});
|
|
4089
4097
|
}
|
|
4098
|
+
this.formGroups.valueChanges.subscribe(val => {
|
|
4099
|
+
this.formGroups.controls.forEach(control => {
|
|
4100
|
+
if (control.dirty) {
|
|
4101
|
+
this.editService.updateDependencies(control.value);
|
|
4102
|
+
}
|
|
4103
|
+
});
|
|
4104
|
+
this.dependenciesChange.emit(val);
|
|
4105
|
+
});
|
|
4090
4106
|
}
|
|
4091
|
-
|
|
4092
|
-
|
|
4093
|
-
|
|
4094
|
-
|
|
4095
|
-
|
|
4107
|
+
getFormControl(dataItemIndex, field) {
|
|
4108
|
+
// return the FormControl for the respective column editor
|
|
4109
|
+
return this.formGroups.controls
|
|
4110
|
+
.find((_control, index) => index === dataItemIndex)
|
|
4111
|
+
.get(this.mapper.dependencyFields[field]);
|
|
4096
4112
|
}
|
|
4097
|
-
|
|
4098
|
-
|
|
4099
|
-
|
|
4100
|
-
|
|
4101
|
-
|
|
4113
|
+
getText(token) {
|
|
4114
|
+
return this.localizationService.get(token);
|
|
4115
|
+
}
|
|
4116
|
+
getDependencyTypes() {
|
|
4117
|
+
const types = Object.keys(DependencyType)
|
|
4118
|
+
.filter(value => typeof DependencyType[value] === 'number')
|
|
4119
|
+
.map(type => {
|
|
4120
|
+
return {
|
|
4121
|
+
type,
|
|
4122
|
+
id: DependencyType[type]
|
|
4123
|
+
};
|
|
4124
|
+
});
|
|
4125
|
+
return types;
|
|
4126
|
+
}
|
|
4127
|
+
addHandler() {
|
|
4128
|
+
const fields = this.mapper.dependencyFields;
|
|
4129
|
+
const formGroup = new FormGroup({
|
|
4130
|
+
[fields.id]: new FormControl(),
|
|
4131
|
+
[fields.fromId]: new FormControl(this.dependencyIdField === 'toId' ? this.taskId : null, Validators.required),
|
|
4132
|
+
[fields.toId]: new FormControl(this.dependencyIdField === 'fromId' ? this.taskId : null, Validators.required),
|
|
4133
|
+
[fields.type]: new FormControl(null, Validators.required)
|
|
4134
|
+
});
|
|
4135
|
+
this.formGroups.push(formGroup);
|
|
4136
|
+
}
|
|
4137
|
+
removeHandler() {
|
|
4138
|
+
const [selectedIndex] = this.selectedKeys;
|
|
4139
|
+
const item = this.formGroups.at(selectedIndex).value;
|
|
4140
|
+
this.editService.deleteDependency(item);
|
|
4141
|
+
this.formGroups.removeAt(selectedIndex);
|
|
4102
4142
|
}
|
|
4103
4143
|
}
|
|
4104
|
-
|
|
4105
|
-
|
|
4106
|
-
<
|
|
4107
|
-
|
|
4108
|
-
|
|
4109
|
-
[
|
|
4110
|
-
|
|
4111
|
-
|
|
4112
|
-
|
|
4113
|
-
|
|
4114
|
-
|
|
4115
|
-
|
|
4116
|
-
|
|
4117
|
-
|
|
4118
|
-
|
|
4119
|
-
|
|
4120
|
-
|
|
4121
|
-
|
|
4144
|
+
DependenciesTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DependenciesTableComponent, deps: [{ token: MappingService }, { token: EditService }, { token: GanttLocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4145
|
+
DependenciesTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DependenciesTableComponent, isStandalone: true, selector: "kendo-gantt-dependencies-table", inputs: { tasks: "tasks", dependencies: "dependencies", dependencyType: "dependencyType" }, outputs: { dependenciesChange: "dependenciesChange" }, ngImport: i0, template: `
|
|
4146
|
+
<kendo-grid
|
|
4147
|
+
[data]="dependencies"
|
|
4148
|
+
[selectable]="{ mode: 'single' }"
|
|
4149
|
+
[(selectedKeys)]="selectedKeys"
|
|
4150
|
+
kendoGridSelectBy
|
|
4151
|
+
[height]="275"
|
|
4152
|
+
>
|
|
4153
|
+
<ng-template kendoGridToolbarTemplate>
|
|
4154
|
+
<button
|
|
4155
|
+
kendoButton
|
|
4156
|
+
icon="plus"
|
|
4157
|
+
[svgIcon]="plusIcon"
|
|
4158
|
+
(click)="addHandler()"
|
|
4159
|
+
>
|
|
4160
|
+
{{ getText('taskEditingDependenciesAddButtonText') }}
|
|
4161
|
+
</button>
|
|
4162
|
+
<button
|
|
4163
|
+
kendoButton
|
|
4164
|
+
icon="minus"
|
|
4165
|
+
[svgIcon]="minusIcon"
|
|
4166
|
+
[disabled]="selectedKeys.length === 0"
|
|
4167
|
+
(click)="removeHandler()"
|
|
4168
|
+
>
|
|
4169
|
+
{{ getText('taskEditingDependenciesRemoveButtonText') }}
|
|
4170
|
+
</button>
|
|
4171
|
+
</ng-template>
|
|
4172
|
+
<kendo-grid-column [title]="getText('taskEditingDependenciesGridNameColumnTitle')" [field]="dependencyIdField">
|
|
4173
|
+
<ng-template kendoGridCellTemplate let-dataItem="dataItem" let-column="column" let-rowIndex="rowIndex">
|
|
4174
|
+
<kendo-dropdownlist
|
|
4175
|
+
[data]="tasks"
|
|
4176
|
+
textField="title"
|
|
4177
|
+
valueField="id"
|
|
4178
|
+
[valuePrimitive]="true"
|
|
4179
|
+
[formControl]="getFormControl(rowIndex, column.field)"
|
|
4180
|
+
>
|
|
4181
|
+
</kendo-dropdownlist>
|
|
4182
|
+
</ng-template>
|
|
4183
|
+
</kendo-grid-column>
|
|
4184
|
+
<kendo-grid-column [title]="getText('taskEditingDependenciesGridTypeColumnTitle')" field="type">
|
|
4185
|
+
<ng-template kendoGridCellTemplate let-dataItem="dataItem" let-column="column" let-rowIndex="rowIndex">
|
|
4186
|
+
<kendo-dropdownlist
|
|
4187
|
+
[data]="dependencyTypes"
|
|
4188
|
+
textField="type"
|
|
4189
|
+
valueField="id"
|
|
4190
|
+
[valuePrimitive]="true"
|
|
4191
|
+
[formControl]="getFormControl(rowIndex, column.field)"
|
|
4192
|
+
>
|
|
4193
|
+
</kendo-dropdownlist>
|
|
4194
|
+
</ng-template>
|
|
4195
|
+
</kendo-grid-column>
|
|
4196
|
+
</kendo-grid>
|
|
4197
|
+
`, isInline: true, dependencies: [{ kind: "component", type: GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "rowReorderable", "navigable", "navigatable", "autoSize", "rowClass", "rowSticky", "rowSelected", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "isDetailExpanded", "isGroupExpanded"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "directive", type: ToolbarTemplateDirective$1, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: ColumnComponent$1, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: CellTemplateDirective$1, selector: "[kendoGridCellTemplate]" }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
4198
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DependenciesTableComponent, decorators: [{
|
|
4122
4199
|
type: Component,
|
|
4123
4200
|
args: [{
|
|
4124
|
-
selector: 'kendo-gantt-
|
|
4201
|
+
selector: 'kendo-gantt-dependencies-table',
|
|
4125
4202
|
template: `
|
|
4126
|
-
<
|
|
4127
|
-
|
|
4128
|
-
|
|
4129
|
-
[
|
|
4130
|
-
|
|
4131
|
-
|
|
4132
|
-
|
|
4133
|
-
|
|
4134
|
-
|
|
4135
|
-
|
|
4136
|
-
|
|
4137
|
-
|
|
4138
|
-
|
|
4139
|
-
|
|
4140
|
-
|
|
4203
|
+
<kendo-grid
|
|
4204
|
+
[data]="dependencies"
|
|
4205
|
+
[selectable]="{ mode: 'single' }"
|
|
4206
|
+
[(selectedKeys)]="selectedKeys"
|
|
4207
|
+
kendoGridSelectBy
|
|
4208
|
+
[height]="275"
|
|
4209
|
+
>
|
|
4210
|
+
<ng-template kendoGridToolbarTemplate>
|
|
4211
|
+
<button
|
|
4212
|
+
kendoButton
|
|
4213
|
+
icon="plus"
|
|
4214
|
+
[svgIcon]="plusIcon"
|
|
4215
|
+
(click)="addHandler()"
|
|
4216
|
+
>
|
|
4217
|
+
{{ getText('taskEditingDependenciesAddButtonText') }}
|
|
4218
|
+
</button>
|
|
4219
|
+
<button
|
|
4220
|
+
kendoButton
|
|
4221
|
+
icon="minus"
|
|
4222
|
+
[svgIcon]="minusIcon"
|
|
4223
|
+
[disabled]="selectedKeys.length === 0"
|
|
4224
|
+
(click)="removeHandler()"
|
|
4225
|
+
>
|
|
4226
|
+
{{ getText('taskEditingDependenciesRemoveButtonText') }}
|
|
4227
|
+
</button>
|
|
4228
|
+
</ng-template>
|
|
4229
|
+
<kendo-grid-column [title]="getText('taskEditingDependenciesGridNameColumnTitle')" [field]="dependencyIdField">
|
|
4230
|
+
<ng-template kendoGridCellTemplate let-dataItem="dataItem" let-column="column" let-rowIndex="rowIndex">
|
|
4231
|
+
<kendo-dropdownlist
|
|
4232
|
+
[data]="tasks"
|
|
4233
|
+
textField="title"
|
|
4234
|
+
valueField="id"
|
|
4235
|
+
[valuePrimitive]="true"
|
|
4236
|
+
[formControl]="getFormControl(rowIndex, column.field)"
|
|
4237
|
+
>
|
|
4238
|
+
</kendo-dropdownlist>
|
|
4239
|
+
</ng-template>
|
|
4240
|
+
</kendo-grid-column>
|
|
4241
|
+
<kendo-grid-column [title]="getText('taskEditingDependenciesGridTypeColumnTitle')" field="type">
|
|
4242
|
+
<ng-template kendoGridCellTemplate let-dataItem="dataItem" let-column="column" let-rowIndex="rowIndex">
|
|
4243
|
+
<kendo-dropdownlist
|
|
4244
|
+
[data]="dependencyTypes"
|
|
4245
|
+
textField="type"
|
|
4246
|
+
valueField="id"
|
|
4247
|
+
[valuePrimitive]="true"
|
|
4248
|
+
[formControl]="getFormControl(rowIndex, column.field)"
|
|
4249
|
+
>
|
|
4250
|
+
</kendo-dropdownlist>
|
|
4251
|
+
</ng-template>
|
|
4252
|
+
</kendo-grid-column>
|
|
4253
|
+
</kendo-grid>
|
|
4254
|
+
`,
|
|
4255
|
+
standalone: true,
|
|
4256
|
+
imports: [GridComponent, SelectionDirective, ToolbarTemplateDirective$1, ButtonComponent, ColumnComponent$1, CellTemplateDirective$1, DropDownListComponent, ReactiveFormsModule]
|
|
4141
4257
|
}]
|
|
4142
|
-
}], ctorParameters: function () { return [{ type:
|
|
4143
|
-
type: HostBinding,
|
|
4144
|
-
args: ['class.k-gantt-views-wrapper']
|
|
4145
|
-
}], views: [{
|
|
4258
|
+
}], ctorParameters: function () { return [{ type: MappingService }, { type: EditService }, { type: GanttLocalizationService }]; }, propDecorators: { tasks: [{
|
|
4146
4259
|
type: Input
|
|
4147
|
-
}],
|
|
4260
|
+
}], dependencies: [{
|
|
4148
4261
|
type: Input
|
|
4149
|
-
}],
|
|
4262
|
+
}], dependencyType: [{
|
|
4263
|
+
type: Input
|
|
4264
|
+
}], dependenciesChange: [{
|
|
4150
4265
|
type: Output
|
|
4151
4266
|
}] } });
|
|
4152
4267
|
|
|
4153
4268
|
/**
|
|
4154
|
-
*
|
|
4155
|
-
* Use it within a toolbar template to provide a custom icon or list of options.
|
|
4269
|
+
* @hidden
|
|
4156
4270
|
*/
|
|
4157
|
-
class
|
|
4158
|
-
constructor(
|
|
4159
|
-
this.
|
|
4271
|
+
class TaskFieldsComponent {
|
|
4272
|
+
constructor(mapper, editService, localizationService) {
|
|
4273
|
+
this.mapper = mapper;
|
|
4160
4274
|
this.editService = editService;
|
|
4161
|
-
this.
|
|
4162
|
-
/**
|
|
4163
|
-
* Sets the data of the DropDownButton.
|
|
4164
|
-
* > The data has to be provided in an array-like list.
|
|
4165
|
-
*/
|
|
4166
|
-
this.data = [{
|
|
4167
|
-
text: this.getText('addChildText'),
|
|
4168
|
-
type: 'addChild'
|
|
4169
|
-
}, {
|
|
4170
|
-
text: this.getText('addAboveText'),
|
|
4171
|
-
type: 'addAbove'
|
|
4172
|
-
}, {
|
|
4173
|
-
text: this.getText('addBelowText'),
|
|
4174
|
-
type: 'addBelow'
|
|
4175
|
-
}];
|
|
4176
|
-
/**
|
|
4177
|
-
* Defines the name of an existing icon in a Kendo UI theme.
|
|
4178
|
-
* @default 'plus'
|
|
4179
|
-
*/
|
|
4180
|
-
this.icon = 'plus';
|
|
4181
|
-
/**
|
|
4182
|
-
* Defines an [`SVGIcon`](slug:api_icons_svgicon) icon to be rendered inside the `GanttAddTaskComponent` using
|
|
4183
|
-
* a [`KendoSVGIcon`](slug:api_icons_svgiconcomponent) component.
|
|
4184
|
-
*/
|
|
4185
|
-
this.svgIcon = plusIcon;
|
|
4186
|
-
}
|
|
4187
|
-
/**
|
|
4188
|
-
* @hidden
|
|
4189
|
-
*/
|
|
4190
|
-
getText(message) {
|
|
4191
|
-
return this.localizationService.get(message);
|
|
4192
|
-
}
|
|
4193
|
-
/**
|
|
4194
|
-
* @hidden
|
|
4195
|
-
*/
|
|
4196
|
-
handleOpen(e) {
|
|
4197
|
-
if (!this.editService.getSelectedItem()) {
|
|
4198
|
-
e.preventDefault();
|
|
4199
|
-
}
|
|
4275
|
+
this.localizationService = localizationService;
|
|
4200
4276
|
}
|
|
4201
4277
|
/**
|
|
4202
4278
|
* @hidden
|
|
4203
4279
|
*/
|
|
4204
|
-
|
|
4205
|
-
|
|
4206
|
-
this.ngZone.run(() => {
|
|
4207
|
-
this.editService.addEvent.next({
|
|
4208
|
-
selectedItem: null,
|
|
4209
|
-
actionType: 'addTask'
|
|
4210
|
-
});
|
|
4211
|
-
});
|
|
4212
|
-
}
|
|
4280
|
+
get formGroup() {
|
|
4281
|
+
return this.editService.taskFormGroup;
|
|
4213
4282
|
}
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
*/
|
|
4217
|
-
handleItemClick(e) {
|
|
4218
|
-
this.editService.addEvent.next({
|
|
4219
|
-
actionType: e.type,
|
|
4220
|
-
selectedItem: null
|
|
4221
|
-
});
|
|
4283
|
+
getText(token) {
|
|
4284
|
+
return this.localizationService.get(token);
|
|
4222
4285
|
}
|
|
4223
4286
|
}
|
|
4224
|
-
|
|
4225
|
-
|
|
4226
|
-
<
|
|
4227
|
-
|
|
4228
|
-
|
|
4229
|
-
|
|
4230
|
-
|
|
4231
|
-
|
|
4232
|
-
|
|
4233
|
-
|
|
4234
|
-
|
|
4235
|
-
|
|
4236
|
-
|
|
4237
|
-
|
|
4287
|
+
TaskFieldsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TaskFieldsComponent, deps: [{ token: MappingService }, { token: EditService }, { token: GanttLocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4288
|
+
TaskFieldsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TaskFieldsComponent, isStandalone: true, selector: "kendo-gantt-task-fields", ngImport: i0, template: `
|
|
4289
|
+
<form class="k-form k-form-md" [formGroup]="formGroup">
|
|
4290
|
+
<kendo-formfield *ngIf="formGroup.get(mapper.taskFields.title)">
|
|
4291
|
+
<kendo-label [for]="title" [text]="getText('titleFieldInputLabel')"></kendo-label>
|
|
4292
|
+
<input #title kendoTextBox [formControlName]="mapper.taskFields.title" />
|
|
4293
|
+
</kendo-formfield>
|
|
4294
|
+
<div class="k-hstack">
|
|
4295
|
+
<kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.start)">
|
|
4296
|
+
<kendo-label [for]="start" [text]="getText('startFieldInputLabel')"></kendo-label>
|
|
4297
|
+
<kendo-datetimepicker #start [formControlName]="mapper.taskFields.start"></kendo-datetimepicker>
|
|
4298
|
+
</kendo-formfield>
|
|
4299
|
+
<kendo-treelist-spacer></kendo-treelist-spacer>
|
|
4300
|
+
<kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.end)">
|
|
4301
|
+
<kendo-label [for]="end" [text]="getText('endFieldInputLabel')"></kendo-label>
|
|
4302
|
+
<kendo-datetimepicker #end [formControlName]="mapper.taskFields.end"></kendo-datetimepicker>
|
|
4303
|
+
</kendo-formfield>
|
|
4304
|
+
</div>
|
|
4305
|
+
<kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.completionRatio)">
|
|
4306
|
+
<kendo-label [for]="completionRatio" [text]="getText('completionRatioFieldInputLabel')"></kendo-label>
|
|
4307
|
+
<kendo-numerictextbox
|
|
4308
|
+
#completionRatio
|
|
4309
|
+
[formControlName]="mapper.taskFields.completionRatio"
|
|
4310
|
+
[min]="0"
|
|
4311
|
+
[max]="1"
|
|
4312
|
+
[decimals]="2"
|
|
4313
|
+
format="p2"
|
|
4314
|
+
[step]="0.01"
|
|
4315
|
+
></kendo-numerictextbox>
|
|
4316
|
+
</kendo-formfield>
|
|
4317
|
+
</form>
|
|
4318
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormFieldComponent, selector: "kendo-formfield", inputs: ["showHints", "orientation", "showErrors"] }, { kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "directive", type: TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { kind: "component", type: DateTimePickerComponent, selector: "kendo-datetimepicker", inputs: ["focusableId", "weekDaysFormat", "showOtherMonthDays", "value", "format", "twoDigitYearMax", "tabindex", "disabledDates", "popupSettings", "title", "subtitle", "disabled", "readonly", "readOnlyInput", "cancelButton", "formatPlaceholder", "placeholder", "steps", "focusedDate", "calendarType", "animateCalendarNavigation", "weekNumber", "min", "max", "rangeValidation", "disabledDatesValidation", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "clearButton", "autoFill", "adaptiveMode", "inputAttributes", "defaultTab", "size", "rounded", "fillMode", "headerTemplate", "footerTemplate", "footer"], outputs: ["valueChange", "open", "close", "focus", "blur", "escape"], exportAs: ["kendo-datetimepicker"] }, { kind: "component", type: TreeListSpacerComponent, selector: "kendo-treelist-spacer, kendo-treelist-pager-spacer", inputs: ["width"] }, { kind: "component", type: NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }] });
|
|
4319
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TaskFieldsComponent, decorators: [{
|
|
4238
4320
|
type: Component,
|
|
4239
4321
|
args: [{
|
|
4240
|
-
selector: 'kendo-gantt-
|
|
4322
|
+
selector: 'kendo-gantt-task-fields',
|
|
4241
4323
|
template: `
|
|
4242
|
-
<
|
|
4243
|
-
|
|
4244
|
-
|
|
4245
|
-
|
|
4246
|
-
|
|
4247
|
-
|
|
4248
|
-
|
|
4249
|
-
|
|
4250
|
-
|
|
4251
|
-
|
|
4252
|
-
|
|
4324
|
+
<form class="k-form k-form-md" [formGroup]="formGroup">
|
|
4325
|
+
<kendo-formfield *ngIf="formGroup.get(mapper.taskFields.title)">
|
|
4326
|
+
<kendo-label [for]="title" [text]="getText('titleFieldInputLabel')"></kendo-label>
|
|
4327
|
+
<input #title kendoTextBox [formControlName]="mapper.taskFields.title" />
|
|
4328
|
+
</kendo-formfield>
|
|
4329
|
+
<div class="k-hstack">
|
|
4330
|
+
<kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.start)">
|
|
4331
|
+
<kendo-label [for]="start" [text]="getText('startFieldInputLabel')"></kendo-label>
|
|
4332
|
+
<kendo-datetimepicker #start [formControlName]="mapper.taskFields.start"></kendo-datetimepicker>
|
|
4333
|
+
</kendo-formfield>
|
|
4334
|
+
<kendo-treelist-spacer></kendo-treelist-spacer>
|
|
4335
|
+
<kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.end)">
|
|
4336
|
+
<kendo-label [for]="end" [text]="getText('endFieldInputLabel')"></kendo-label>
|
|
4337
|
+
<kendo-datetimepicker #end [formControlName]="mapper.taskFields.end"></kendo-datetimepicker>
|
|
4338
|
+
</kendo-formfield>
|
|
4339
|
+
</div>
|
|
4340
|
+
<kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.completionRatio)">
|
|
4341
|
+
<kendo-label [for]="completionRatio" [text]="getText('completionRatioFieldInputLabel')"></kendo-label>
|
|
4342
|
+
<kendo-numerictextbox
|
|
4343
|
+
#completionRatio
|
|
4344
|
+
[formControlName]="mapper.taskFields.completionRatio"
|
|
4345
|
+
[min]="0"
|
|
4346
|
+
[max]="1"
|
|
4347
|
+
[decimals]="2"
|
|
4348
|
+
format="p2"
|
|
4349
|
+
[step]="0.01"
|
|
4350
|
+
></kendo-numerictextbox>
|
|
4351
|
+
</kendo-formfield>
|
|
4352
|
+
</form>
|
|
4353
|
+
`,
|
|
4354
|
+
standalone: true,
|
|
4355
|
+
imports: [ReactiveFormsModule, NgIf, FormFieldComponent, LabelComponent, TextBoxDirective, DateTimePickerComponent, TreeListSpacerComponent, NumericTextBoxComponent]
|
|
4253
4356
|
}]
|
|
4254
|
-
}], ctorParameters: function () { return [{ type:
|
|
4255
|
-
type: Input
|
|
4256
|
-
}], icon: [{
|
|
4257
|
-
type: Input
|
|
4258
|
-
}], svgIcon: [{
|
|
4259
|
-
type: Input
|
|
4260
|
-
}] } });
|
|
4357
|
+
}], ctorParameters: function () { return [{ type: MappingService }, { type: EditService }, { type: GanttLocalizationService }]; } });
|
|
4261
4358
|
|
|
4262
4359
|
/**
|
|
4263
4360
|
* @hidden
|
|
4264
4361
|
*/
|
|
4265
|
-
class
|
|
4266
|
-
constructor(
|
|
4267
|
-
this.
|
|
4268
|
-
this.
|
|
4269
|
-
this.
|
|
4270
|
-
this.
|
|
4271
|
-
this.
|
|
4272
|
-
this.
|
|
4362
|
+
class EditDialogComponent {
|
|
4363
|
+
constructor(mapper, editService, cdr, localizationService) {
|
|
4364
|
+
this.mapper = mapper;
|
|
4365
|
+
this.editService = editService;
|
|
4366
|
+
this.cdr = cdr;
|
|
4367
|
+
this.localizationService = localizationService;
|
|
4368
|
+
this.saveIcon = saveIcon;
|
|
4369
|
+
this.cancelIcon = cancelOutlineIcon;
|
|
4370
|
+
this.deleteIcon = trashIcon;
|
|
4273
4371
|
}
|
|
4274
|
-
|
|
4275
|
-
|
|
4276
|
-
|
|
4277
|
-
|
|
4278
|
-
if (targetIndex > -1) {
|
|
4279
|
-
this.navigationService.focusIndex = targetIndex;
|
|
4280
|
-
}
|
|
4281
|
-
this.navigationService.updateFocus();
|
|
4282
|
-
}
|
|
4372
|
+
ngOnInit() {
|
|
4373
|
+
this.editService.loadTasks(this.data).subscribe(value => {
|
|
4374
|
+
this.loadedTasks = value;
|
|
4375
|
+
});
|
|
4283
4376
|
}
|
|
4284
|
-
|
|
4285
|
-
|
|
4286
|
-
this.navigationService.focusIndex--;
|
|
4287
|
-
if (this.navigationService.focusIndex < 0) {
|
|
4288
|
-
this.navigationService.focusIndex = this.navigationService.focusableContent.length - 1;
|
|
4289
|
-
}
|
|
4290
|
-
this.navigationService.updateFocus();
|
|
4291
|
-
}
|
|
4377
|
+
get predecessors() {
|
|
4378
|
+
return this.editService.predecessors;
|
|
4292
4379
|
}
|
|
4293
|
-
|
|
4294
|
-
|
|
4295
|
-
this.navigationService.focusIndex++;
|
|
4296
|
-
if (this.navigationService.focusIndex >= this.navigationService.focusableContent.length) {
|
|
4297
|
-
this.navigationService.focusIndex = 0;
|
|
4298
|
-
}
|
|
4299
|
-
this.navigationService.updateFocus();
|
|
4300
|
-
}
|
|
4380
|
+
set predecessors(items) {
|
|
4381
|
+
this.editService.predecessors = items;
|
|
4301
4382
|
}
|
|
4302
|
-
|
|
4303
|
-
this.
|
|
4383
|
+
get successors() {
|
|
4384
|
+
return this.editService.successors;
|
|
4304
4385
|
}
|
|
4305
|
-
|
|
4306
|
-
|
|
4386
|
+
set successors(items) {
|
|
4387
|
+
this.editService.successors = items;
|
|
4307
4388
|
}
|
|
4308
|
-
|
|
4309
|
-
return this.
|
|
4389
|
+
getText(token) {
|
|
4390
|
+
return this.localizationService.get(token);
|
|
4310
4391
|
}
|
|
4311
|
-
|
|
4312
|
-
|
|
4313
|
-
const templatePosition = ganttToolbarTemplate ? ganttToolbarTemplate.position : null;
|
|
4314
|
-
return ganttToolbarTemplate && (templatePosition === 'both' || templatePosition === this.position);
|
|
4392
|
+
getDependencyType(typeId) {
|
|
4393
|
+
return DependencyType[typeId];
|
|
4315
4394
|
}
|
|
4316
|
-
|
|
4317
|
-
this.
|
|
4395
|
+
handleEditingResult(editResultType) {
|
|
4396
|
+
this.editService.triggerEditEvent(editResultType);
|
|
4318
4397
|
}
|
|
4319
|
-
|
|
4320
|
-
|
|
4321
|
-
const focusableElements = Array.from(this.hostEl.nativeElement.querySelectorAll(focusableSelector) || [])
|
|
4322
|
-
.filter(el => isVisible(el));
|
|
4323
|
-
if (focusableElements.length) {
|
|
4324
|
-
this.navigationService.focusableContent = focusableElements;
|
|
4325
|
-
}
|
|
4326
|
-
}
|
|
4398
|
+
handleTaskDelete() {
|
|
4399
|
+
this.editService.taskDelete.next(this.editService.dataItem);
|
|
4327
4400
|
}
|
|
4328
4401
|
}
|
|
4329
|
-
|
|
4330
|
-
|
|
4331
|
-
<
|
|
4332
|
-
|
|
4333
|
-
|
|
4334
|
-
|
|
4335
|
-
|
|
4336
|
-
|
|
4337
|
-
|
|
4338
|
-
|
|
4339
|
-
|
|
4340
|
-
|
|
4341
|
-
|
|
4342
|
-
|
|
4343
|
-
|
|
4344
|
-
|
|
4345
|
-
|
|
4346
|
-
|
|
4347
|
-
|
|
4402
|
+
EditDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditDialogComponent, deps: [{ token: MappingService }, { token: EditService }, { token: i0.ChangeDetectorRef }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4403
|
+
EditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: EditDialogComponent, isStandalone: true, selector: "kendo-gantt-edit-dialog", inputs: { data: "data" }, ngImport: i0, template: `
|
|
4404
|
+
<kendo-dialog
|
|
4405
|
+
[title]="getText('taskEditingDialogTitle')"
|
|
4406
|
+
[width]="575"
|
|
4407
|
+
[height]="470"
|
|
4408
|
+
[autoFocusedElement]="'.k-actions .k-button-solid-primary'"
|
|
4409
|
+
(close)="handleEditingResult('cancel')">
|
|
4410
|
+
<kendo-dialog-messages
|
|
4411
|
+
[closeTitle]="getText('taskEditingDialogCloseTitle')"></kendo-dialog-messages>
|
|
4412
|
+
|
|
4413
|
+
<kendo-tabstrip [keepTabContent]="true" [style.height.px]="345">
|
|
4414
|
+
<kendo-tabstrip-tab [title]="getText('taskEditingGeneralTabTitle')" [selected]="true">
|
|
4415
|
+
<ng-template kendoTabContent>
|
|
4416
|
+
<kendo-gantt-task-fields></kendo-gantt-task-fields>
|
|
4417
|
+
</ng-template>
|
|
4418
|
+
</kendo-tabstrip-tab>
|
|
4419
|
+
<kendo-tabstrip-tab [title]="getText('taskEditingPredecessorsTabTitle')">
|
|
4420
|
+
<ng-template kendoTabContent>
|
|
4421
|
+
<kendo-gantt-dependencies-table
|
|
4422
|
+
[tasks]="loadedTasks"
|
|
4423
|
+
[(dependencies)]="predecessors"
|
|
4424
|
+
dependencyType="predecessor"
|
|
4425
|
+
>
|
|
4426
|
+
</kendo-gantt-dependencies-table>
|
|
4427
|
+
</ng-template>
|
|
4428
|
+
</kendo-tabstrip-tab>
|
|
4429
|
+
<kendo-tabstrip-tab [title]="getText('taskEditingSuccessorsTabTitle')">
|
|
4430
|
+
<ng-template kendoTabContent>
|
|
4431
|
+
<kendo-gantt-dependencies-table
|
|
4432
|
+
[tasks]="loadedTasks"
|
|
4433
|
+
[(dependencies)]="successors"
|
|
4434
|
+
dependencyType="successor">
|
|
4435
|
+
</kendo-gantt-dependencies-table>
|
|
4436
|
+
</ng-template>
|
|
4437
|
+
</kendo-tabstrip-tab>
|
|
4438
|
+
</kendo-tabstrip>
|
|
4439
|
+
|
|
4440
|
+
<kendo-dialog-actions layout="start">
|
|
4441
|
+
<button
|
|
4442
|
+
kendoButton
|
|
4443
|
+
themeColor="primary"
|
|
4444
|
+
icon="save"
|
|
4445
|
+
[svgIcon]="saveIcon"
|
|
4446
|
+
(click)="handleEditingResult('save')"
|
|
4447
|
+
>
|
|
4448
|
+
{{ getText('saveButtonText') }}
|
|
4449
|
+
</button>
|
|
4450
|
+
<button
|
|
4451
|
+
kendoButton
|
|
4452
|
+
icon="cancel-outline"
|
|
4453
|
+
[svgIcon]="cancelIcon"
|
|
4454
|
+
(click)="handleEditingResult('cancel')"
|
|
4455
|
+
>
|
|
4456
|
+
{{ getText('cancelButtonText') }}
|
|
4457
|
+
</button>
|
|
4458
|
+
<kendo-treelist-spacer></kendo-treelist-spacer>
|
|
4459
|
+
<button
|
|
4460
|
+
kendoButton
|
|
4461
|
+
themeColor="primary"
|
|
4462
|
+
fillMode="flat"
|
|
4463
|
+
icon="delete"
|
|
4464
|
+
[svgIcon]="deleteIcon"
|
|
4465
|
+
[kendoEventsOutsideAngular]="{
|
|
4466
|
+
click: handleTaskDelete
|
|
4467
|
+
}"
|
|
4468
|
+
[scope]="this"
|
|
4469
|
+
>
|
|
4470
|
+
{{ getText('deleteButtonText') }}
|
|
4471
|
+
</button>
|
|
4472
|
+
</kendo-dialog-actions>
|
|
4473
|
+
</kendo-dialog>
|
|
4474
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "directive", type: CustomMessagesComponent$1, selector: "kendo-dialog-messages, kendo-window-messages" }, { kind: "component", type: TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "closeIcon", "closeIconClass", "closeSVGIcon", "showContentArea"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { kind: "component", type: TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { kind: "directive", type: TabContentDirective, selector: "[kendoTabContent]" }, { kind: "component", type: TaskFieldsComponent, selector: "kendo-gantt-task-fields" }, { kind: "component", type: DependenciesTableComponent, selector: "kendo-gantt-dependencies-table", inputs: ["tasks", "dependencies", "dependencyType"], outputs: ["dependenciesChange"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: TreeListSpacerComponent, selector: "kendo-treelist-spacer, kendo-treelist-pager-spacer", inputs: ["width"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
|
|
4475
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditDialogComponent, decorators: [{
|
|
4348
4476
|
type: Component,
|
|
4349
4477
|
args: [{
|
|
4350
|
-
selector: 'kendo-gantt-
|
|
4351
|
-
providers: [ToolbarNavigationService],
|
|
4478
|
+
selector: 'kendo-gantt-edit-dialog',
|
|
4352
4479
|
template: `
|
|
4353
|
-
<
|
|
4354
|
-
|
|
4355
|
-
|
|
4356
|
-
|
|
4357
|
-
|
|
4358
|
-
|
|
4359
|
-
|
|
4360
|
-
|
|
4361
|
-
|
|
4362
|
-
|
|
4363
|
-
|
|
4364
|
-
|
|
4365
|
-
|
|
4366
|
-
|
|
4367
|
-
|
|
4368
|
-
|
|
4480
|
+
<kendo-dialog
|
|
4481
|
+
[title]="getText('taskEditingDialogTitle')"
|
|
4482
|
+
[width]="575"
|
|
4483
|
+
[height]="470"
|
|
4484
|
+
[autoFocusedElement]="'.k-actions .k-button-solid-primary'"
|
|
4485
|
+
(close)="handleEditingResult('cancel')">
|
|
4486
|
+
<kendo-dialog-messages
|
|
4487
|
+
[closeTitle]="getText('taskEditingDialogCloseTitle')"></kendo-dialog-messages>
|
|
4488
|
+
|
|
4489
|
+
<kendo-tabstrip [keepTabContent]="true" [style.height.px]="345">
|
|
4490
|
+
<kendo-tabstrip-tab [title]="getText('taskEditingGeneralTabTitle')" [selected]="true">
|
|
4491
|
+
<ng-template kendoTabContent>
|
|
4492
|
+
<kendo-gantt-task-fields></kendo-gantt-task-fields>
|
|
4493
|
+
</ng-template>
|
|
4494
|
+
</kendo-tabstrip-tab>
|
|
4495
|
+
<kendo-tabstrip-tab [title]="getText('taskEditingPredecessorsTabTitle')">
|
|
4496
|
+
<ng-template kendoTabContent>
|
|
4497
|
+
<kendo-gantt-dependencies-table
|
|
4498
|
+
[tasks]="loadedTasks"
|
|
4499
|
+
[(dependencies)]="predecessors"
|
|
4500
|
+
dependencyType="predecessor"
|
|
4501
|
+
>
|
|
4502
|
+
</kendo-gantt-dependencies-table>
|
|
4503
|
+
</ng-template>
|
|
4504
|
+
</kendo-tabstrip-tab>
|
|
4505
|
+
<kendo-tabstrip-tab [title]="getText('taskEditingSuccessorsTabTitle')">
|
|
4506
|
+
<ng-template kendoTabContent>
|
|
4507
|
+
<kendo-gantt-dependencies-table
|
|
4508
|
+
[tasks]="loadedTasks"
|
|
4509
|
+
[(dependencies)]="successors"
|
|
4510
|
+
dependencyType="successor">
|
|
4511
|
+
</kendo-gantt-dependencies-table>
|
|
4512
|
+
</ng-template>
|
|
4513
|
+
</kendo-tabstrip-tab>
|
|
4514
|
+
</kendo-tabstrip>
|
|
4515
|
+
|
|
4516
|
+
<kendo-dialog-actions layout="start">
|
|
4517
|
+
<button
|
|
4518
|
+
kendoButton
|
|
4519
|
+
themeColor="primary"
|
|
4520
|
+
icon="save"
|
|
4521
|
+
[svgIcon]="saveIcon"
|
|
4522
|
+
(click)="handleEditingResult('save')"
|
|
4523
|
+
>
|
|
4524
|
+
{{ getText('saveButtonText') }}
|
|
4525
|
+
</button>
|
|
4526
|
+
<button
|
|
4527
|
+
kendoButton
|
|
4528
|
+
icon="cancel-outline"
|
|
4529
|
+
[svgIcon]="cancelIcon"
|
|
4530
|
+
(click)="handleEditingResult('cancel')"
|
|
4531
|
+
>
|
|
4532
|
+
{{ getText('cancelButtonText') }}
|
|
4533
|
+
</button>
|
|
4534
|
+
<kendo-treelist-spacer></kendo-treelist-spacer>
|
|
4535
|
+
<button
|
|
4536
|
+
kendoButton
|
|
4537
|
+
themeColor="primary"
|
|
4538
|
+
fillMode="flat"
|
|
4539
|
+
icon="delete"
|
|
4540
|
+
[svgIcon]="deleteIcon"
|
|
4541
|
+
[kendoEventsOutsideAngular]="{
|
|
4542
|
+
click: handleTaskDelete
|
|
4543
|
+
}"
|
|
4544
|
+
[scope]="this"
|
|
4545
|
+
>
|
|
4546
|
+
{{ getText('deleteButtonText') }}
|
|
4547
|
+
</button>
|
|
4548
|
+
</kendo-dialog-actions>
|
|
4549
|
+
</kendo-dialog>
|
|
4550
|
+
`,
|
|
4551
|
+
standalone: true,
|
|
4552
|
+
imports: [DialogComponent, CustomMessagesComponent$1, TabStripComponent, TabStripTabComponent, TabContentDirective, TaskFieldsComponent, DependenciesTableComponent, DialogActionsComponent, ButtonComponent, TreeListSpacerComponent, EventsOutsideAngularDirective]
|
|
4369
4553
|
}]
|
|
4370
|
-
}], ctorParameters: function () { return [{ type: i0.
|
|
4371
|
-
type: HostBinding,
|
|
4372
|
-
args: ['attr.role']
|
|
4373
|
-
}], toolbarSizingClass: [{
|
|
4374
|
-
type: HostBinding,
|
|
4375
|
-
args: ['class.k-toolbar-md']
|
|
4376
|
-
}], clickHandler: [{
|
|
4377
|
-
type: HostListener,
|
|
4378
|
-
args: ['click', ['$event']]
|
|
4379
|
-
}], arrowLeftListener: [{
|
|
4380
|
-
type: HostListener,
|
|
4381
|
-
args: ['keydown.arrowleft', ['$event']]
|
|
4382
|
-
}], arrowRightListener: [{
|
|
4383
|
-
type: HostListener,
|
|
4384
|
-
args: ['keydown.arrowright', ['$event']]
|
|
4385
|
-
}], activeViewChange: [{
|
|
4386
|
-
type: Output
|
|
4387
|
-
}], showAddTask: [{
|
|
4388
|
-
type: Input
|
|
4389
|
-
}], showViewSelector: [{
|
|
4390
|
-
type: Input
|
|
4391
|
-
}], views: [{
|
|
4392
|
-
type: Input
|
|
4393
|
-
}], activeView: [{
|
|
4394
|
-
type: Input
|
|
4395
|
-
}], toolbarTemplate: [{
|
|
4396
|
-
type: Input
|
|
4397
|
-
}], navigable: [{
|
|
4398
|
-
type: Input
|
|
4399
|
-
}], position: [{
|
|
4554
|
+
}], ctorParameters: function () { return [{ type: MappingService }, { type: EditService }, { type: i0.ChangeDetectorRef }, { type: i1$1.LocalizationService }]; }, propDecorators: { data: [{
|
|
4400
4555
|
type: Input
|
|
4401
4556
|
}] } });
|
|
4402
4557
|
|
|
4403
4558
|
/**
|
|
4404
4559
|
* @hidden
|
|
4405
4560
|
*/
|
|
4406
|
-
class
|
|
4407
|
-
constructor(
|
|
4408
|
-
this.
|
|
4409
|
-
this.
|
|
4410
|
-
this.localizationService = localizationService;
|
|
4411
|
-
this.dependenciesChange = new EventEmitter();
|
|
4412
|
-
this.selectedKeys = [];
|
|
4413
|
-
this.formGroups = new FormArray([]);
|
|
4414
|
-
this.dependencyTypes = this.getDependencyTypes();
|
|
4415
|
-
this.plusIcon = plusIcon;
|
|
4416
|
-
this.minusIcon = minusIcon;
|
|
4417
|
-
}
|
|
4418
|
-
get taskId() {
|
|
4419
|
-
return this.editService.dataItem.id;
|
|
4420
|
-
}
|
|
4421
|
-
// The target dependency id field
|
|
4422
|
-
// e.g. if Predecessors, we have the `fromId` which is the currently edited task,
|
|
4423
|
-
// while the `toId` is missing (needs to be selected by the user)
|
|
4424
|
-
get dependencyIdField() {
|
|
4425
|
-
return this.dependencyType === 'predecessor' ? 'fromId' : 'toId';
|
|
4561
|
+
class ToolbarNavigationService {
|
|
4562
|
+
constructor(renderer) {
|
|
4563
|
+
this.renderer = renderer;
|
|
4564
|
+
this.focusIndex = 0;
|
|
4426
4565
|
}
|
|
4427
|
-
|
|
4428
|
-
|
|
4429
|
-
|
|
4430
|
-
const fields = this.mapper.dependencyFields;
|
|
4431
|
-
this.dependencies.forEach(item => {
|
|
4432
|
-
const formGroup = new FormGroup({
|
|
4433
|
-
[fields.id]: new FormControl(this.mapper.extractFromDependency(item, 'id')),
|
|
4434
|
-
[fields.fromId]: new FormControl(this.mapper.extractFromDependency(item, 'fromId'), Validators.required),
|
|
4435
|
-
[fields.toId]: new FormControl(this.mapper.extractFromDependency(item, 'toId'), Validators.required),
|
|
4436
|
-
[fields.type]: new FormControl(this.mapper.extractFromDependency(item, 'type'), Validators.required)
|
|
4437
|
-
});
|
|
4438
|
-
this.formGroups.push(formGroup);
|
|
4439
|
-
});
|
|
4440
|
-
}
|
|
4441
|
-
this.formGroups.valueChanges.subscribe(val => {
|
|
4442
|
-
this.formGroups.controls.forEach(control => {
|
|
4443
|
-
if (control.dirty) {
|
|
4444
|
-
this.editService.updateDependencies(control.value);
|
|
4445
|
-
}
|
|
4446
|
-
});
|
|
4447
|
-
this.dependenciesChange.emit(val);
|
|
4566
|
+
updateFocus() {
|
|
4567
|
+
this.focusableContent.forEach(el => {
|
|
4568
|
+
this.renderer.setAttribute(el, 'tabindex', '-1');
|
|
4448
4569
|
});
|
|
4570
|
+
this.renderer.setAttribute(this.focusableContent[this.focusIndex], 'tabindex', '0');
|
|
4571
|
+
this.focusableContent[this.focusIndex].focus();
|
|
4449
4572
|
}
|
|
4450
|
-
|
|
4451
|
-
|
|
4452
|
-
|
|
4453
|
-
|
|
4454
|
-
|
|
4455
|
-
|
|
4456
|
-
|
|
4457
|
-
|
|
4573
|
+
}
|
|
4574
|
+
ToolbarNavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarNavigationService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4575
|
+
ToolbarNavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarNavigationService });
|
|
4576
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarNavigationService, decorators: [{
|
|
4577
|
+
type: Injectable
|
|
4578
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
|
|
4579
|
+
|
|
4580
|
+
/**
|
|
4581
|
+
* The Gantt ViewSelector component. Shows the currently active view type, and allows switching to another view type.
|
|
4582
|
+
*/
|
|
4583
|
+
class ViewSelectorComponent {
|
|
4584
|
+
constructor(localizationService) {
|
|
4585
|
+
this.localizationService = localizationService;
|
|
4586
|
+
this.hostClass = true;
|
|
4587
|
+
/**
|
|
4588
|
+
* The currently active view type.
|
|
4589
|
+
* @default 'week'
|
|
4590
|
+
*/
|
|
4591
|
+
this.activeView = 'week';
|
|
4592
|
+
/**
|
|
4593
|
+
* Fires each time the user selects a different view type. The event data contains the type of the newly selected view.
|
|
4594
|
+
*/
|
|
4595
|
+
this.activeViewChange = new EventEmitter();
|
|
4458
4596
|
}
|
|
4459
|
-
|
|
4460
|
-
|
|
4461
|
-
|
|
4462
|
-
|
|
4463
|
-
|
|
4464
|
-
|
|
4465
|
-
|
|
4466
|
-
};
|
|
4467
|
-
});
|
|
4468
|
-
return types;
|
|
4597
|
+
/**
|
|
4598
|
+
* @hidden
|
|
4599
|
+
*/
|
|
4600
|
+
onClick(viewType) {
|
|
4601
|
+
if (viewType !== this.activeView) {
|
|
4602
|
+
this.activeViewChange.emit(viewType);
|
|
4603
|
+
}
|
|
4469
4604
|
}
|
|
4470
|
-
|
|
4471
|
-
|
|
4472
|
-
|
|
4473
|
-
|
|
4474
|
-
|
|
4475
|
-
[fields.toId]: new FormControl(this.dependencyIdField === 'fromId' ? this.taskId : null, Validators.required),
|
|
4476
|
-
[fields.type]: new FormControl(null, Validators.required)
|
|
4477
|
-
});
|
|
4478
|
-
this.formGroups.push(formGroup);
|
|
4605
|
+
/**
|
|
4606
|
+
* @hidden
|
|
4607
|
+
*/
|
|
4608
|
+
getViewTypeText(viewType) {
|
|
4609
|
+
return this.localizationService.get(`${viewType}ViewText`);
|
|
4479
4610
|
}
|
|
4480
|
-
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
|
|
4484
|
-
this.
|
|
4611
|
+
/**
|
|
4612
|
+
* @hidden
|
|
4613
|
+
*/
|
|
4614
|
+
onActiveViewChange(event) {
|
|
4615
|
+
this.activeViewChange.emit(event.target.value);
|
|
4485
4616
|
}
|
|
4486
4617
|
}
|
|
4487
|
-
|
|
4488
|
-
|
|
4489
|
-
<
|
|
4490
|
-
|
|
4491
|
-
|
|
4492
|
-
[
|
|
4493
|
-
|
|
4494
|
-
[
|
|
4495
|
-
>
|
|
4496
|
-
|
|
4497
|
-
|
|
4498
|
-
|
|
4499
|
-
|
|
4500
|
-
|
|
4501
|
-
|
|
4502
|
-
|
|
4503
|
-
|
|
4504
|
-
|
|
4505
|
-
<button
|
|
4506
|
-
kendoButton
|
|
4507
|
-
icon="minus"
|
|
4508
|
-
[svgIcon]="minusIcon"
|
|
4509
|
-
[disabled]="selectedKeys.length === 0"
|
|
4510
|
-
(click)="removeHandler()"
|
|
4511
|
-
>
|
|
4512
|
-
{{ getText('taskEditingDependenciesRemoveButtonText') }}
|
|
4513
|
-
</button>
|
|
4514
|
-
</ng-template>
|
|
4515
|
-
<kendo-grid-column [title]="getText('taskEditingDependenciesGridNameColumnTitle')" [field]="dependencyIdField">
|
|
4516
|
-
<ng-template kendoGridCellTemplate let-dataItem="dataItem" let-column="column" let-rowIndex="rowIndex">
|
|
4517
|
-
<kendo-dropdownlist
|
|
4518
|
-
[data]="tasks"
|
|
4519
|
-
textField="title"
|
|
4520
|
-
valueField="id"
|
|
4521
|
-
[valuePrimitive]="true"
|
|
4522
|
-
[formControl]="getFormControl(rowIndex, column.field)"
|
|
4523
|
-
>
|
|
4524
|
-
</kendo-dropdownlist>
|
|
4525
|
-
</ng-template>
|
|
4526
|
-
</kendo-grid-column>
|
|
4527
|
-
<kendo-grid-column [title]="getText('taskEditingDependenciesGridTypeColumnTitle')" field="type">
|
|
4528
|
-
<ng-template kendoGridCellTemplate let-dataItem="dataItem" let-column="column" let-rowIndex="rowIndex">
|
|
4529
|
-
<kendo-dropdownlist
|
|
4530
|
-
[data]="dependencyTypes"
|
|
4531
|
-
textField="type"
|
|
4532
|
-
valueField="id"
|
|
4533
|
-
[valuePrimitive]="true"
|
|
4534
|
-
[formControl]="getFormControl(rowIndex, column.field)"
|
|
4535
|
-
>
|
|
4536
|
-
</kendo-dropdownlist>
|
|
4537
|
-
</ng-template>
|
|
4538
|
-
</kendo-grid-column>
|
|
4539
|
-
</kendo-grid>
|
|
4540
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: i6$1.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "rowReorderable", "navigable", "navigatable", "autoSize", "rowClass", "rowSticky", "rowSelected", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "isDetailExpanded", "isGroupExpanded"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i6$1.ToolbarTemplateDirective, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { kind: "directive", type: i6$1.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "component", type: i6$1.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: i6$1.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "component", type: i7.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }] });
|
|
4541
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DependenciesTableComponent, decorators: [{
|
|
4618
|
+
ViewSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ViewSelectorComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4619
|
+
ViewSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ViewSelectorComponent, isStandalone: true, selector: "kendo-gantt-view-selector", inputs: { views: "views", activeView: "activeView" }, outputs: { activeViewChange: "activeViewChange" }, host: { properties: { "class.k-gantt-views-wrapper": "this.hostClass" } }, ngImport: i0, template: `
|
|
4620
|
+
<select
|
|
4621
|
+
class="k-dropdownlist k-picker k-rounded-md k-views-dropdown"
|
|
4622
|
+
aria-label="View Selector"
|
|
4623
|
+
[value]="activeView"
|
|
4624
|
+
(change)="onActiveViewChange($event)">
|
|
4625
|
+
<option *ngFor="let view of views" [value]="view">{{getViewTypeText(view)}}</option>
|
|
4626
|
+
</select>
|
|
4627
|
+
<kendo-buttongroup class="k-gantt-views" selection="single" [navigable]="false">
|
|
4628
|
+
<button *ngFor="let view of views"
|
|
4629
|
+
kendoButton
|
|
4630
|
+
type="button"
|
|
4631
|
+
[selected]="view === activeView"
|
|
4632
|
+
(click)="onClick(view)">{{getViewTypeText(view)}}</button>
|
|
4633
|
+
</kendo-buttongroup>
|
|
4634
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "component", type: ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex", "navigable"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
|
|
4635
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ViewSelectorComponent, decorators: [{
|
|
4542
4636
|
type: Component,
|
|
4543
4637
|
args: [{
|
|
4544
|
-
selector: 'kendo-gantt-
|
|
4638
|
+
selector: 'kendo-gantt-view-selector',
|
|
4545
4639
|
template: `
|
|
4546
|
-
<
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
[
|
|
4550
|
-
|
|
4551
|
-
[
|
|
4552
|
-
>
|
|
4553
|
-
|
|
4554
|
-
|
|
4555
|
-
|
|
4556
|
-
|
|
4557
|
-
|
|
4558
|
-
|
|
4559
|
-
|
|
4560
|
-
|
|
4561
|
-
|
|
4562
|
-
|
|
4563
|
-
kendoButton
|
|
4564
|
-
icon="minus"
|
|
4565
|
-
[svgIcon]="minusIcon"
|
|
4566
|
-
[disabled]="selectedKeys.length === 0"
|
|
4567
|
-
(click)="removeHandler()"
|
|
4568
|
-
>
|
|
4569
|
-
{{ getText('taskEditingDependenciesRemoveButtonText') }}
|
|
4570
|
-
</button>
|
|
4571
|
-
</ng-template>
|
|
4572
|
-
<kendo-grid-column [title]="getText('taskEditingDependenciesGridNameColumnTitle')" [field]="dependencyIdField">
|
|
4573
|
-
<ng-template kendoGridCellTemplate let-dataItem="dataItem" let-column="column" let-rowIndex="rowIndex">
|
|
4574
|
-
<kendo-dropdownlist
|
|
4575
|
-
[data]="tasks"
|
|
4576
|
-
textField="title"
|
|
4577
|
-
valueField="id"
|
|
4578
|
-
[valuePrimitive]="true"
|
|
4579
|
-
[formControl]="getFormControl(rowIndex, column.field)"
|
|
4580
|
-
>
|
|
4581
|
-
</kendo-dropdownlist>
|
|
4582
|
-
</ng-template>
|
|
4583
|
-
</kendo-grid-column>
|
|
4584
|
-
<kendo-grid-column [title]="getText('taskEditingDependenciesGridTypeColumnTitle')" field="type">
|
|
4585
|
-
<ng-template kendoGridCellTemplate let-dataItem="dataItem" let-column="column" let-rowIndex="rowIndex">
|
|
4586
|
-
<kendo-dropdownlist
|
|
4587
|
-
[data]="dependencyTypes"
|
|
4588
|
-
textField="type"
|
|
4589
|
-
valueField="id"
|
|
4590
|
-
[valuePrimitive]="true"
|
|
4591
|
-
[formControl]="getFormControl(rowIndex, column.field)"
|
|
4592
|
-
>
|
|
4593
|
-
</kendo-dropdownlist>
|
|
4594
|
-
</ng-template>
|
|
4595
|
-
</kendo-grid-column>
|
|
4596
|
-
</kendo-grid>
|
|
4597
|
-
`
|
|
4640
|
+
<select
|
|
4641
|
+
class="k-dropdownlist k-picker k-rounded-md k-views-dropdown"
|
|
4642
|
+
aria-label="View Selector"
|
|
4643
|
+
[value]="activeView"
|
|
4644
|
+
(change)="onActiveViewChange($event)">
|
|
4645
|
+
<option *ngFor="let view of views" [value]="view">{{getViewTypeText(view)}}</option>
|
|
4646
|
+
</select>
|
|
4647
|
+
<kendo-buttongroup class="k-gantt-views" selection="single" [navigable]="false">
|
|
4648
|
+
<button *ngFor="let view of views"
|
|
4649
|
+
kendoButton
|
|
4650
|
+
type="button"
|
|
4651
|
+
[selected]="view === activeView"
|
|
4652
|
+
(click)="onClick(view)">{{getViewTypeText(view)}}</button>
|
|
4653
|
+
</kendo-buttongroup>
|
|
4654
|
+
`,
|
|
4655
|
+
standalone: true,
|
|
4656
|
+
imports: [NgFor, ReactiveFormsModule, ButtonGroupComponent, ButtonComponent]
|
|
4598
4657
|
}]
|
|
4599
|
-
}], ctorParameters: function () { return [{ type:
|
|
4600
|
-
type:
|
|
4601
|
-
|
|
4658
|
+
}], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; }, propDecorators: { hostClass: [{
|
|
4659
|
+
type: HostBinding,
|
|
4660
|
+
args: ['class.k-gantt-views-wrapper']
|
|
4661
|
+
}], views: [{
|
|
4602
4662
|
type: Input
|
|
4603
|
-
}],
|
|
4663
|
+
}], activeView: [{
|
|
4604
4664
|
type: Input
|
|
4605
|
-
}],
|
|
4665
|
+
}], activeViewChange: [{
|
|
4606
4666
|
type: Output
|
|
4607
4667
|
}] } });
|
|
4608
4668
|
|
|
4609
4669
|
/**
|
|
4610
|
-
*
|
|
4670
|
+
* The UI for adding new items to the Gantt.
|
|
4671
|
+
* Use it within a toolbar template to provide a custom icon or list of options.
|
|
4611
4672
|
*/
|
|
4612
|
-
class
|
|
4613
|
-
constructor(
|
|
4614
|
-
this.mapper = mapper;
|
|
4615
|
-
this.editService = editService;
|
|
4673
|
+
class GanttAddTaskComponent {
|
|
4674
|
+
constructor(localizationService, editService, ngZone) {
|
|
4616
4675
|
this.localizationService = localizationService;
|
|
4676
|
+
this.editService = editService;
|
|
4677
|
+
this.ngZone = ngZone;
|
|
4678
|
+
/**
|
|
4679
|
+
* Sets the data of the DropDownButton.
|
|
4680
|
+
* > The data has to be provided in an array-like list.
|
|
4681
|
+
*/
|
|
4682
|
+
this.data = [{
|
|
4683
|
+
text: this.getText('addChildText'),
|
|
4684
|
+
type: 'addChild'
|
|
4685
|
+
}, {
|
|
4686
|
+
text: this.getText('addAboveText'),
|
|
4687
|
+
type: 'addAbove'
|
|
4688
|
+
}, {
|
|
4689
|
+
text: this.getText('addBelowText'),
|
|
4690
|
+
type: 'addBelow'
|
|
4691
|
+
}];
|
|
4692
|
+
/**
|
|
4693
|
+
* Defines the name of an existing icon in a Kendo UI theme.
|
|
4694
|
+
* @default 'plus'
|
|
4695
|
+
*/
|
|
4696
|
+
this.icon = 'plus';
|
|
4697
|
+
/**
|
|
4698
|
+
* Defines an [`SVGIcon`](slug:api_icons_svgicon) icon to be rendered inside the `GanttAddTaskComponent` using
|
|
4699
|
+
* a [`KendoSVGIcon`](slug:api_icons_svgiconcomponent) component.
|
|
4700
|
+
*/
|
|
4701
|
+
this.svgIcon = plusIcon;
|
|
4617
4702
|
}
|
|
4618
4703
|
/**
|
|
4619
4704
|
* @hidden
|
|
4620
4705
|
*/
|
|
4621
|
-
|
|
4622
|
-
return this.
|
|
4706
|
+
getText(message) {
|
|
4707
|
+
return this.localizationService.get(message);
|
|
4623
4708
|
}
|
|
4624
|
-
|
|
4625
|
-
|
|
4709
|
+
/**
|
|
4710
|
+
* @hidden
|
|
4711
|
+
*/
|
|
4712
|
+
handleOpen(e) {
|
|
4713
|
+
if (!this.editService.getSelectedItem()) {
|
|
4714
|
+
e.preventDefault();
|
|
4715
|
+
}
|
|
4716
|
+
}
|
|
4717
|
+
/**
|
|
4718
|
+
* @hidden
|
|
4719
|
+
*/
|
|
4720
|
+
handleMouseClick() {
|
|
4721
|
+
if (!this.editService.getSelectedItem()) {
|
|
4722
|
+
this.ngZone.run(() => {
|
|
4723
|
+
this.editService.addEvent.next({
|
|
4724
|
+
selectedItem: null,
|
|
4725
|
+
actionType: 'addTask'
|
|
4726
|
+
});
|
|
4727
|
+
});
|
|
4728
|
+
}
|
|
4729
|
+
}
|
|
4730
|
+
/**
|
|
4731
|
+
* @hidden
|
|
4732
|
+
*/
|
|
4733
|
+
handleItemClick(e) {
|
|
4734
|
+
this.editService.addEvent.next({
|
|
4735
|
+
actionType: e.type,
|
|
4736
|
+
selectedItem: null
|
|
4737
|
+
});
|
|
4626
4738
|
}
|
|
4627
4739
|
}
|
|
4628
|
-
|
|
4629
|
-
|
|
4630
|
-
<
|
|
4631
|
-
|
|
4632
|
-
|
|
4633
|
-
|
|
4634
|
-
|
|
4635
|
-
|
|
4636
|
-
|
|
4637
|
-
|
|
4638
|
-
|
|
4639
|
-
|
|
4640
|
-
|
|
4641
|
-
|
|
4642
|
-
<kendo-label [for]="end" [text]="getText('endFieldInputLabel')"></kendo-label>
|
|
4643
|
-
<kendo-datetimepicker #end [formControlName]="mapper.taskFields.end"></kendo-datetimepicker>
|
|
4644
|
-
</kendo-formfield>
|
|
4645
|
-
</div>
|
|
4646
|
-
<kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.completionRatio)">
|
|
4647
|
-
<kendo-label [for]="completionRatio" [text]="getText('completionRatioFieldInputLabel')"></kendo-label>
|
|
4648
|
-
<kendo-numerictextbox
|
|
4649
|
-
#completionRatio
|
|
4650
|
-
[formControlName]="mapper.taskFields.completionRatio"
|
|
4651
|
-
[min]="0"
|
|
4652
|
-
[max]="1"
|
|
4653
|
-
[decimals]="2"
|
|
4654
|
-
format="p2"
|
|
4655
|
-
[step]="0.01"
|
|
4656
|
-
></kendo-numerictextbox>
|
|
4657
|
-
</kendo-formfield>
|
|
4658
|
-
</form>
|
|
4659
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6$2.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "directive", type: i7$1.TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { kind: "component", type: i7$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { kind: "component", type: i7$1.FormFieldComponent, selector: "kendo-formfield", inputs: ["showHints", "orientation", "showErrors"] }, { kind: "component", type: i8.DateTimePickerComponent, selector: "kendo-datetimepicker", inputs: ["focusableId", "weekDaysFormat", "showOtherMonthDays", "value", "format", "twoDigitYearMax", "tabindex", "disabledDates", "popupSettings", "title", "subtitle", "disabled", "readonly", "readOnlyInput", "cancelButton", "formatPlaceholder", "placeholder", "steps", "focusedDate", "calendarType", "animateCalendarNavigation", "weekNumber", "min", "max", "rangeValidation", "disabledDatesValidation", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "clearButton", "autoFill", "adaptiveMode", "inputAttributes", "defaultTab", "size", "rounded", "fillMode", "headerTemplate", "footerTemplate", "footer"], outputs: ["valueChange", "open", "close", "focus", "blur", "escape"], exportAs: ["kendo-datetimepicker"] }, { kind: "component", type: i14.TreeListSpacerComponent, selector: "kendo-treelist-spacer, kendo-treelist-pager-spacer", inputs: ["width"] }] });
|
|
4660
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TaskFieldsComponent, decorators: [{
|
|
4740
|
+
GanttAddTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttAddTaskComponent, deps: [{ token: i1$1.LocalizationService }, { token: EditService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
4741
|
+
GanttAddTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttAddTaskComponent, isStandalone: true, selector: "kendo-gantt-add-task", inputs: { data: "data", icon: "icon", svgIcon: "svgIcon" }, ngImport: i0, template: `
|
|
4742
|
+
<kendo-dropdownbutton
|
|
4743
|
+
[data]="data"
|
|
4744
|
+
[icon]="icon"
|
|
4745
|
+
[svgIcon]="svgIcon"
|
|
4746
|
+
[kendoEventsOutsideAngular]="{ click: handleMouseClick }"
|
|
4747
|
+
[scope]="this"
|
|
4748
|
+
(itemClick)="handleItemClick($event)"
|
|
4749
|
+
(open)="handleOpen($event)">
|
|
4750
|
+
{{ getText('addTaskText') }}
|
|
4751
|
+
</kendo-dropdownbutton>
|
|
4752
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
|
|
4753
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttAddTaskComponent, decorators: [{
|
|
4661
4754
|
type: Component,
|
|
4662
4755
|
args: [{
|
|
4663
|
-
selector: 'kendo-gantt-task
|
|
4756
|
+
selector: 'kendo-gantt-add-task',
|
|
4664
4757
|
template: `
|
|
4665
|
-
<
|
|
4666
|
-
|
|
4667
|
-
|
|
4668
|
-
|
|
4669
|
-
|
|
4670
|
-
|
|
4671
|
-
|
|
4672
|
-
|
|
4673
|
-
|
|
4674
|
-
|
|
4675
|
-
|
|
4676
|
-
|
|
4677
|
-
|
|
4678
|
-
<kendo-datetimepicker #end [formControlName]="mapper.taskFields.end"></kendo-datetimepicker>
|
|
4679
|
-
</kendo-formfield>
|
|
4680
|
-
</div>
|
|
4681
|
-
<kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.completionRatio)">
|
|
4682
|
-
<kendo-label [for]="completionRatio" [text]="getText('completionRatioFieldInputLabel')"></kendo-label>
|
|
4683
|
-
<kendo-numerictextbox
|
|
4684
|
-
#completionRatio
|
|
4685
|
-
[formControlName]="mapper.taskFields.completionRatio"
|
|
4686
|
-
[min]="0"
|
|
4687
|
-
[max]="1"
|
|
4688
|
-
[decimals]="2"
|
|
4689
|
-
format="p2"
|
|
4690
|
-
[step]="0.01"
|
|
4691
|
-
></kendo-numerictextbox>
|
|
4692
|
-
</kendo-formfield>
|
|
4693
|
-
</form>
|
|
4694
|
-
`
|
|
4758
|
+
<kendo-dropdownbutton
|
|
4759
|
+
[data]="data"
|
|
4760
|
+
[icon]="icon"
|
|
4761
|
+
[svgIcon]="svgIcon"
|
|
4762
|
+
[kendoEventsOutsideAngular]="{ click: handleMouseClick }"
|
|
4763
|
+
[scope]="this"
|
|
4764
|
+
(itemClick)="handleItemClick($event)"
|
|
4765
|
+
(open)="handleOpen($event)">
|
|
4766
|
+
{{ getText('addTaskText') }}
|
|
4767
|
+
</kendo-dropdownbutton>
|
|
4768
|
+
`,
|
|
4769
|
+
standalone: true,
|
|
4770
|
+
imports: [DropDownButtonComponent, EventsOutsideAngularDirective]
|
|
4695
4771
|
}]
|
|
4696
|
-
}], ctorParameters: function () { return [{ type:
|
|
4772
|
+
}], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: EditService }, { type: i0.NgZone }]; }, propDecorators: { data: [{
|
|
4773
|
+
type: Input
|
|
4774
|
+
}], icon: [{
|
|
4775
|
+
type: Input
|
|
4776
|
+
}], svgIcon: [{
|
|
4777
|
+
type: Input
|
|
4778
|
+
}] } });
|
|
4697
4779
|
|
|
4698
4780
|
/**
|
|
4699
4781
|
* @hidden
|
|
4700
4782
|
*/
|
|
4701
|
-
class
|
|
4702
|
-
constructor(
|
|
4703
|
-
this.
|
|
4704
|
-
this.
|
|
4705
|
-
this.
|
|
4706
|
-
this.
|
|
4707
|
-
this.
|
|
4708
|
-
this.
|
|
4709
|
-
this.deleteIcon = trashIcon;
|
|
4783
|
+
class ToolbarComponent {
|
|
4784
|
+
constructor(hostEl, navigationService) {
|
|
4785
|
+
this.hostEl = hostEl;
|
|
4786
|
+
this.navigationService = navigationService;
|
|
4787
|
+
this.context = {};
|
|
4788
|
+
this.role = 'toolbar';
|
|
4789
|
+
this.toolbarSizingClass = true;
|
|
4790
|
+
this.activeViewChange = new EventEmitter();
|
|
4710
4791
|
}
|
|
4711
|
-
|
|
4712
|
-
|
|
4713
|
-
|
|
4714
|
-
|
|
4792
|
+
clickHandler(ev) {
|
|
4793
|
+
if (this.navigable) {
|
|
4794
|
+
const closestFocusable = closest(ev.target, isFocusable);
|
|
4795
|
+
const targetIndex = this.navigationService.focusableContent.indexOf(closestFocusable);
|
|
4796
|
+
if (targetIndex > -1) {
|
|
4797
|
+
this.navigationService.focusIndex = targetIndex;
|
|
4798
|
+
}
|
|
4799
|
+
this.navigationService.updateFocus();
|
|
4800
|
+
}
|
|
4715
4801
|
}
|
|
4716
|
-
|
|
4717
|
-
|
|
4802
|
+
arrowLeftListener() {
|
|
4803
|
+
if (this.navigable && isDocumentAvailable()) {
|
|
4804
|
+
this.navigationService.focusIndex--;
|
|
4805
|
+
if (this.navigationService.focusIndex < 0) {
|
|
4806
|
+
this.navigationService.focusIndex = this.navigationService.focusableContent.length - 1;
|
|
4807
|
+
}
|
|
4808
|
+
this.navigationService.updateFocus();
|
|
4809
|
+
}
|
|
4718
4810
|
}
|
|
4719
|
-
|
|
4720
|
-
this.
|
|
4811
|
+
arrowRightListener() {
|
|
4812
|
+
if (this.navigable && isDocumentAvailable()) {
|
|
4813
|
+
this.navigationService.focusIndex++;
|
|
4814
|
+
if (this.navigationService.focusIndex >= this.navigationService.focusableContent.length) {
|
|
4815
|
+
this.navigationService.focusIndex = 0;
|
|
4816
|
+
}
|
|
4817
|
+
this.navigationService.updateFocus();
|
|
4818
|
+
}
|
|
4721
4819
|
}
|
|
4722
|
-
|
|
4723
|
-
|
|
4820
|
+
set position(value) {
|
|
4821
|
+
this.context.position = this._position = value;
|
|
4724
4822
|
}
|
|
4725
|
-
|
|
4726
|
-
this.
|
|
4823
|
+
get position() {
|
|
4824
|
+
return this._position;
|
|
4727
4825
|
}
|
|
4728
|
-
|
|
4729
|
-
return this.
|
|
4826
|
+
get toolbarTemplateRef() {
|
|
4827
|
+
return this.toolbarTemplate ? this.toolbarTemplate.templateRef : undefined;
|
|
4730
4828
|
}
|
|
4731
|
-
|
|
4732
|
-
|
|
4829
|
+
get renderTemplate() {
|
|
4830
|
+
const ganttToolbarTemplate = this.toolbarTemplate;
|
|
4831
|
+
const templatePosition = ganttToolbarTemplate ? ganttToolbarTemplate.position : null;
|
|
4832
|
+
return ganttToolbarTemplate && (templatePosition === 'both' || templatePosition === this.position);
|
|
4733
4833
|
}
|
|
4734
|
-
|
|
4735
|
-
this.
|
|
4834
|
+
handleViewChange(view) {
|
|
4835
|
+
this.activeViewChange.emit(view);
|
|
4736
4836
|
}
|
|
4737
|
-
|
|
4738
|
-
|
|
4837
|
+
ngAfterViewInit() {
|
|
4838
|
+
if (isDocumentAvailable()) {
|
|
4839
|
+
const focusableElements = Array.from(this.hostEl.nativeElement.querySelectorAll(focusableSelector) || [])
|
|
4840
|
+
.filter(el => isVisible(el));
|
|
4841
|
+
if (focusableElements.length) {
|
|
4842
|
+
this.navigationService.focusableContent = focusableElements;
|
|
4843
|
+
}
|
|
4844
|
+
}
|
|
4739
4845
|
}
|
|
4740
4846
|
}
|
|
4741
|
-
|
|
4742
|
-
|
|
4743
|
-
<
|
|
4744
|
-
|
|
4745
|
-
|
|
4746
|
-
|
|
4747
|
-
|
|
4748
|
-
|
|
4749
|
-
|
|
4750
|
-
|
|
4751
|
-
|
|
4752
|
-
|
|
4753
|
-
|
|
4754
|
-
|
|
4755
|
-
|
|
4756
|
-
|
|
4757
|
-
|
|
4758
|
-
|
|
4759
|
-
|
|
4760
|
-
<kendo-gantt-dependencies-table
|
|
4761
|
-
[tasks]="loadedTasks"
|
|
4762
|
-
[(dependencies)]="predecessors"
|
|
4763
|
-
dependencyType="predecessor"
|
|
4764
|
-
>
|
|
4765
|
-
</kendo-gantt-dependencies-table>
|
|
4766
|
-
</ng-template>
|
|
4767
|
-
</kendo-tabstrip-tab>
|
|
4768
|
-
<kendo-tabstrip-tab [title]="getText('taskEditingSuccessorsTabTitle')">
|
|
4769
|
-
<ng-template kendoTabContent>
|
|
4770
|
-
<kendo-gantt-dependencies-table
|
|
4771
|
-
[tasks]="loadedTasks"
|
|
4772
|
-
[(dependencies)]="successors"
|
|
4773
|
-
dependencyType="successor">
|
|
4774
|
-
</kendo-gantt-dependencies-table>
|
|
4775
|
-
</ng-template>
|
|
4776
|
-
</kendo-tabstrip-tab>
|
|
4777
|
-
</kendo-tabstrip>
|
|
4778
|
-
|
|
4779
|
-
<kendo-dialog-actions layout="start">
|
|
4780
|
-
<button
|
|
4781
|
-
kendoButton
|
|
4782
|
-
themeColor="primary"
|
|
4783
|
-
icon="save"
|
|
4784
|
-
[svgIcon]="saveIcon"
|
|
4785
|
-
(click)="handleEditingResult('save')"
|
|
4786
|
-
>
|
|
4787
|
-
{{ getText('saveButtonText') }}
|
|
4788
|
-
</button>
|
|
4789
|
-
<button
|
|
4790
|
-
kendoButton
|
|
4791
|
-
icon="cancel-outline"
|
|
4792
|
-
[svgIcon]="cancelIcon"
|
|
4793
|
-
(click)="handleEditingResult('cancel')"
|
|
4794
|
-
>
|
|
4795
|
-
{{ getText('cancelButtonText') }}
|
|
4796
|
-
</button>
|
|
4797
|
-
<kendo-treelist-spacer></kendo-treelist-spacer>
|
|
4798
|
-
<button
|
|
4799
|
-
kendoButton
|
|
4800
|
-
themeColor="primary"
|
|
4801
|
-
fillMode="flat"
|
|
4802
|
-
icon="delete"
|
|
4803
|
-
[svgIcon]="deleteIcon"
|
|
4804
|
-
[kendoEventsOutsideAngular]="{
|
|
4805
|
-
click: handleTaskDelete
|
|
4806
|
-
}"
|
|
4807
|
-
[scope]="this"
|
|
4808
|
-
>
|
|
4809
|
-
{{ getText('deleteButtonText') }}
|
|
4810
|
-
</button>
|
|
4811
|
-
</kendo-dialog-actions>
|
|
4812
|
-
</kendo-dialog>
|
|
4813
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i11.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: i14.TreeListSpacerComponent, selector: "kendo-treelist-spacer, kendo-treelist-pager-spacer", inputs: ["width"] }, { kind: "component", type: i7$2.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "component", type: i7$2.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "directive", type: i7$2.CustomMessagesComponent, selector: "kendo-dialog-messages, kendo-window-messages" }, { kind: "component", type: i8$1.TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "closeIcon", "closeIconClass", "closeSVGIcon", "showContentArea"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { kind: "component", type: i8$1.TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { kind: "directive", type: i8$1.TabContentDirective, selector: "[kendoTabContent]" }, { kind: "component", type: DependenciesTableComponent, selector: "kendo-gantt-dependencies-table", inputs: ["tasks", "dependencies", "dependencyType"], outputs: ["dependenciesChange"] }, { kind: "component", type: TaskFieldsComponent, selector: "kendo-gantt-task-fields" }] });
|
|
4814
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditDialogComponent, decorators: [{
|
|
4847
|
+
ToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarComponent, deps: [{ token: i0.ElementRef }, { token: ToolbarNavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4848
|
+
ToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ToolbarComponent, isStandalone: true, selector: "kendo-gantt-toolbar", inputs: { showAddTask: "showAddTask", showViewSelector: "showViewSelector", views: "views", activeView: "activeView", toolbarTemplate: "toolbarTemplate", navigable: "navigable", position: "position" }, outputs: { activeViewChange: "activeViewChange" }, host: { listeners: { "click": "clickHandler($event)", "keydown.arrowleft": "arrowLeftListener($event)", "keydown.arrowright": "arrowRightListener($event)" }, properties: { "attr.role": "this.role", "class.k-toolbar-md": "this.toolbarSizingClass" } }, providers: [ToolbarNavigationService], ngImport: i0, template: `
|
|
4849
|
+
<ng-container *ngIf="!renderTemplate">
|
|
4850
|
+
<kendo-gantt-add-task *ngIf="showAddTask"></kendo-gantt-add-task>
|
|
4851
|
+
<span class="k-spacer k-toolbar-spacer"></span>
|
|
4852
|
+
<kendo-gantt-view-selector
|
|
4853
|
+
*ngIf="showViewSelector"
|
|
4854
|
+
[views]="views"
|
|
4855
|
+
[activeView]="activeView"
|
|
4856
|
+
(activeViewChange)="handleViewChange($event)"></kendo-gantt-view-selector>
|
|
4857
|
+
</ng-container>
|
|
4858
|
+
<ng-template
|
|
4859
|
+
*ngIf="renderTemplate"
|
|
4860
|
+
[ngTemplateOutlet]="toolbarTemplateRef"
|
|
4861
|
+
[ngTemplateOutletContext]="context"
|
|
4862
|
+
>
|
|
4863
|
+
</ng-template>
|
|
4864
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GanttAddTaskComponent, selector: "kendo-gantt-add-task", inputs: ["data", "icon", "svgIcon"] }, { kind: "component", type: ViewSelectorComponent, selector: "kendo-gantt-view-selector", inputs: ["views", "activeView"], outputs: ["activeViewChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
4865
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarComponent, decorators: [{
|
|
4815
4866
|
type: Component,
|
|
4816
4867
|
args: [{
|
|
4817
|
-
selector: 'kendo-gantt-
|
|
4868
|
+
selector: 'kendo-gantt-toolbar',
|
|
4869
|
+
providers: [ToolbarNavigationService],
|
|
4818
4870
|
template: `
|
|
4819
|
-
<
|
|
4820
|
-
|
|
4821
|
-
|
|
4822
|
-
|
|
4823
|
-
|
|
4824
|
-
|
|
4825
|
-
|
|
4826
|
-
|
|
4827
|
-
|
|
4828
|
-
|
|
4829
|
-
|
|
4830
|
-
|
|
4831
|
-
|
|
4832
|
-
|
|
4833
|
-
|
|
4834
|
-
|
|
4835
|
-
|
|
4836
|
-
|
|
4837
|
-
[tasks]="loadedTasks"
|
|
4838
|
-
[(dependencies)]="predecessors"
|
|
4839
|
-
dependencyType="predecessor"
|
|
4840
|
-
>
|
|
4841
|
-
</kendo-gantt-dependencies-table>
|
|
4842
|
-
</ng-template>
|
|
4843
|
-
</kendo-tabstrip-tab>
|
|
4844
|
-
<kendo-tabstrip-tab [title]="getText('taskEditingSuccessorsTabTitle')">
|
|
4845
|
-
<ng-template kendoTabContent>
|
|
4846
|
-
<kendo-gantt-dependencies-table
|
|
4847
|
-
[tasks]="loadedTasks"
|
|
4848
|
-
[(dependencies)]="successors"
|
|
4849
|
-
dependencyType="successor">
|
|
4850
|
-
</kendo-gantt-dependencies-table>
|
|
4851
|
-
</ng-template>
|
|
4852
|
-
</kendo-tabstrip-tab>
|
|
4853
|
-
</kendo-tabstrip>
|
|
4854
|
-
|
|
4855
|
-
<kendo-dialog-actions layout="start">
|
|
4856
|
-
<button
|
|
4857
|
-
kendoButton
|
|
4858
|
-
themeColor="primary"
|
|
4859
|
-
icon="save"
|
|
4860
|
-
[svgIcon]="saveIcon"
|
|
4861
|
-
(click)="handleEditingResult('save')"
|
|
4862
|
-
>
|
|
4863
|
-
{{ getText('saveButtonText') }}
|
|
4864
|
-
</button>
|
|
4865
|
-
<button
|
|
4866
|
-
kendoButton
|
|
4867
|
-
icon="cancel-outline"
|
|
4868
|
-
[svgIcon]="cancelIcon"
|
|
4869
|
-
(click)="handleEditingResult('cancel')"
|
|
4870
|
-
>
|
|
4871
|
-
{{ getText('cancelButtonText') }}
|
|
4872
|
-
</button>
|
|
4873
|
-
<kendo-treelist-spacer></kendo-treelist-spacer>
|
|
4874
|
-
<button
|
|
4875
|
-
kendoButton
|
|
4876
|
-
themeColor="primary"
|
|
4877
|
-
fillMode="flat"
|
|
4878
|
-
icon="delete"
|
|
4879
|
-
[svgIcon]="deleteIcon"
|
|
4880
|
-
[kendoEventsOutsideAngular]="{
|
|
4881
|
-
click: handleTaskDelete
|
|
4882
|
-
}"
|
|
4883
|
-
[scope]="this"
|
|
4884
|
-
>
|
|
4885
|
-
{{ getText('deleteButtonText') }}
|
|
4886
|
-
</button>
|
|
4887
|
-
</kendo-dialog-actions>
|
|
4888
|
-
</kendo-dialog>
|
|
4889
|
-
`
|
|
4871
|
+
<ng-container *ngIf="!renderTemplate">
|
|
4872
|
+
<kendo-gantt-add-task *ngIf="showAddTask"></kendo-gantt-add-task>
|
|
4873
|
+
<span class="k-spacer k-toolbar-spacer"></span>
|
|
4874
|
+
<kendo-gantt-view-selector
|
|
4875
|
+
*ngIf="showViewSelector"
|
|
4876
|
+
[views]="views"
|
|
4877
|
+
[activeView]="activeView"
|
|
4878
|
+
(activeViewChange)="handleViewChange($event)"></kendo-gantt-view-selector>
|
|
4879
|
+
</ng-container>
|
|
4880
|
+
<ng-template
|
|
4881
|
+
*ngIf="renderTemplate"
|
|
4882
|
+
[ngTemplateOutlet]="toolbarTemplateRef"
|
|
4883
|
+
[ngTemplateOutletContext]="context"
|
|
4884
|
+
>
|
|
4885
|
+
</ng-template>
|
|
4886
|
+
`,
|
|
4887
|
+
standalone: true,
|
|
4888
|
+
imports: [NgIf, GanttAddTaskComponent, ViewSelectorComponent, NgTemplateOutlet]
|
|
4890
4889
|
}]
|
|
4891
|
-
}], ctorParameters: function () { return [{ type:
|
|
4890
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ToolbarNavigationService }]; }, propDecorators: { role: [{
|
|
4891
|
+
type: HostBinding,
|
|
4892
|
+
args: ['attr.role']
|
|
4893
|
+
}], toolbarSizingClass: [{
|
|
4894
|
+
type: HostBinding,
|
|
4895
|
+
args: ['class.k-toolbar-md']
|
|
4896
|
+
}], clickHandler: [{
|
|
4897
|
+
type: HostListener,
|
|
4898
|
+
args: ['click', ['$event']]
|
|
4899
|
+
}], arrowLeftListener: [{
|
|
4900
|
+
type: HostListener,
|
|
4901
|
+
args: ['keydown.arrowleft', ['$event']]
|
|
4902
|
+
}], arrowRightListener: [{
|
|
4903
|
+
type: HostListener,
|
|
4904
|
+
args: ['keydown.arrowright', ['$event']]
|
|
4905
|
+
}], activeViewChange: [{
|
|
4906
|
+
type: Output
|
|
4907
|
+
}], showAddTask: [{
|
|
4908
|
+
type: Input
|
|
4909
|
+
}], showViewSelector: [{
|
|
4910
|
+
type: Input
|
|
4911
|
+
}], views: [{
|
|
4912
|
+
type: Input
|
|
4913
|
+
}], activeView: [{
|
|
4914
|
+
type: Input
|
|
4915
|
+
}], toolbarTemplate: [{
|
|
4916
|
+
type: Input
|
|
4917
|
+
}], navigable: [{
|
|
4918
|
+
type: Input
|
|
4919
|
+
}], position: [{
|
|
4892
4920
|
type: Input
|
|
4893
4921
|
}] } });
|
|
4894
4922
|
|
|
@@ -5053,7 +5081,7 @@ class LocalizedMessagesDirective extends Messages {
|
|
|
5053
5081
|
}
|
|
5054
5082
|
}
|
|
5055
5083
|
LocalizedMessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
5056
|
-
LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: LocalizedMessagesDirective, selector: "[kendoGanttLocalizedMessages]", providers: [
|
|
5084
|
+
LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: LocalizedMessagesDirective, isStandalone: true, selector: "[kendoGanttLocalizedMessages]", providers: [
|
|
5057
5085
|
{
|
|
5058
5086
|
provide: Messages,
|
|
5059
5087
|
useExisting: forwardRef(() => LocalizedMessagesDirective)
|
|
@@ -5068,7 +5096,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5068
5096
|
useExisting: forwardRef(() => LocalizedMessagesDirective)
|
|
5069
5097
|
}
|
|
5070
5098
|
],
|
|
5071
|
-
selector: '[kendoGanttLocalizedMessages]'
|
|
5099
|
+
selector: '[kendoGanttLocalizedMessages]',
|
|
5100
|
+
standalone: true
|
|
5072
5101
|
}]
|
|
5073
5102
|
}], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
|
|
5074
5103
|
|
|
@@ -6344,7 +6373,7 @@ class GanttComponent {
|
|
|
6344
6373
|
}
|
|
6345
6374
|
}
|
|
6346
6375
|
GanttComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttComponent, deps: [{ token: TimelineViewService }, { token: ScrollSyncService }, { token: i0.Renderer2 }, { token: MappingService }, { token: OptionChangesService }, { token: DependencyDomService }, { token: EditService }, { token: i1$1.LocalizationService }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: NavigationService }, { token: CurrentTimeMarkerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
6347
|
-
GanttComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttComponent, selector: "kendo-gantt", inputs: { roleDescription: ["aria-roledescription", "roleDescription"], role: "role", taskModelFields: "taskModelFields", dependencyModelFields: "dependencyModelFields", activeView: "activeView", data: "data", isSelected: "isSelected", validateNewDependency: "validateNewDependency", selectable: "selectable", toolbarSettings: "toolbarSettings", toolbarAriaLabel: "toolbarAriaLabel", fetchChildren: "fetchChildren", hasChildren: "hasChildren", dependencies: "dependencies", sortable: "sortable", sort: "sort", filterable: "filterable", filter: "filter", workDayStart: "workDayStart", workDayEnd: "workDayEnd", workWeekStart: "workWeekStart", workWeekEnd: "workWeekEnd", navigable: "navigable", timelinePaneOptions: "timelinePaneOptions", treeListPaneOptions: "treeListPaneOptions", taskClass: "taskClass", rowClass: "rowClass", isExpanded: "isExpanded", columnsAutoSize: "columnsAutoSize", currentTimeMarker: "currentTimeMarker", columnMenu: "columnMenu", columnsReorderable: "columnsReorderable", columnsResizable: "columnsResizable", dragScrollSettings: "dragScrollSettings" }, outputs: { selectionChange: "selectionChange", rowExpand: "rowExpand", taskDblClick: "taskDblClick", cellDblClick: "cellDblClick", cellClose: "cellClose", taskDelete: "taskDelete", rowCollapse: "rowCollapse", remove: "remove", cancel: "cancel", save: "save", taskAdd: "taskAdd", dependencyAdd: "dependencyAdd", sortChange: "sortChange", filterChange: "filterChange", dataStateChange: "dataStateChange", treeListPaneCollapsedChange: "treeListPaneCollapsedChange", timelinePaneCollapsedChange: "timelinePaneCollapsedChange", timelinePaneSizeChange: "timelinePaneSizeChange", activeViewChange: "activeViewChange", columnResize: "columnResize", columnReorder: "columnReorder", columnVisibilityChange: "columnVisibilityChange", columnLockedChange: "columnLockedChange", cellClick: "cellClick", taskClick: "taskClick" }, host: { properties: { "attr.aria-roledescription": "this.hostRoleDescriptionAttr", "attr.role": "this.hostRoleAttr", "class.k-gantt": "this.hostClasses", "attr.dir": "this.dir" } }, providers: [
|
|
6376
|
+
GanttComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GanttComponent, isStandalone: true, selector: "kendo-gantt", inputs: { roleDescription: ["aria-roledescription", "roleDescription"], role: "role", taskModelFields: "taskModelFields", dependencyModelFields: "dependencyModelFields", activeView: "activeView", data: "data", isSelected: "isSelected", validateNewDependency: "validateNewDependency", selectable: "selectable", toolbarSettings: "toolbarSettings", toolbarAriaLabel: "toolbarAriaLabel", fetchChildren: "fetchChildren", hasChildren: "hasChildren", dependencies: "dependencies", sortable: "sortable", sort: "sort", filterable: "filterable", filter: "filter", workDayStart: "workDayStart", workDayEnd: "workDayEnd", workWeekStart: "workWeekStart", workWeekEnd: "workWeekEnd", navigable: "navigable", timelinePaneOptions: "timelinePaneOptions", treeListPaneOptions: "treeListPaneOptions", taskClass: "taskClass", rowClass: "rowClass", isExpanded: "isExpanded", columnsAutoSize: "columnsAutoSize", currentTimeMarker: "currentTimeMarker", columnMenu: "columnMenu", columnsReorderable: "columnsReorderable", columnsResizable: "columnsResizable", dragScrollSettings: "dragScrollSettings" }, outputs: { selectionChange: "selectionChange", rowExpand: "rowExpand", taskDblClick: "taskDblClick", cellDblClick: "cellDblClick", cellClose: "cellClose", taskDelete: "taskDelete", rowCollapse: "rowCollapse", remove: "remove", cancel: "cancel", save: "save", taskAdd: "taskAdd", dependencyAdd: "dependencyAdd", sortChange: "sortChange", filterChange: "filterChange", dataStateChange: "dataStateChange", treeListPaneCollapsedChange: "treeListPaneCollapsedChange", timelinePaneCollapsedChange: "timelinePaneCollapsedChange", timelinePaneSizeChange: "timelinePaneSizeChange", activeViewChange: "activeViewChange", columnResize: "columnResize", columnReorder: "columnReorder", columnVisibilityChange: "columnVisibilityChange", columnLockedChange: "columnLockedChange", cellClick: "cellClick", taskClick: "taskClick" }, host: { properties: { "attr.aria-roledescription": "this.hostRoleDescriptionAttr", "attr.role": "this.hostRoleAttr", "class.k-gantt": "this.hostClasses", "attr.dir": "this.dir" } }, providers: [
|
|
6348
6377
|
GanttLocalizationService,
|
|
6349
6378
|
LocalizationService,
|
|
6350
6379
|
{
|
|
@@ -6740,7 +6769,7 @@ GanttComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version
|
|
|
6740
6769
|
</kendo-dialog>
|
|
6741
6770
|
|
|
6742
6771
|
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
|
|
6743
|
-
`, isInline: true, dependencies: [{ kind: "directive", type:
|
|
6772
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGanttLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ToolbarComponent, selector: "kendo-gantt-toolbar", inputs: ["showAddTask", "showViewSelector", "views", "activeView", "toolbarTemplate", "navigable", "position"], outputs: ["activeViewChange"] }, { kind: "component", type: SplitterComponent, selector: "kendo-splitter", inputs: ["orientation", "splitbarWidth", "resizeStep"], outputs: ["layoutChange"], exportAs: ["kendoSplitter"] }, { kind: "component", type: SplitterPaneComponent, selector: "kendo-splitter-pane", inputs: ["order", "size", "separatorLabel", "min", "max", "resizable", "collapsible", "scrollable", "collapsed", "orientation", "containsSplitter", "overlayContent"], outputs: ["sizeChange", "collapsedChange"], exportAs: ["kendoSplitterPane"] }, { kind: "component", type: TreeListComponent, selector: "kendo-treelist", inputs: ["aria-label", "data", "pageSize", "height", "rowHeight", "skip", "scrollable", "sort", "trackBy", "filter", "virtualColumns", "filterable", "sortable", "pageable", "navigable", "navigatable", "autoSize", "rowClass", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "idField", "selectable", "isSelected", "rowReorderable", "columns", "fetchChildren", "hasChildren", "isExpanded"], outputs: ["selectionChange", "filterChange", "pageChange", "sortChange", "dataStateChange", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "scrollBottom", "contentScroll", "expand", "collapse", "expandStateChange", "rowReorder"], exportAs: ["kendoTreeList"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: CustomMessagesComponent$2, selector: "kendo-treelist-messages" }, { kind: "component", type: GanttTimelineComponent, selector: "kendo-gantt-timeline", inputs: ["rows", "slots", "groupSlots", "tableWidth", "activeView", "taskContentTemplate", "taskTemplate", "summaryTaskTemplate", "taskClass", "renderDependencyDragClues", "dragScrollSettings", "currentTimeMarker", "selectable", "isTaskSelected", "isExpanded", "dependencies"], outputs: ["timelineContainerPress", "timelineContainerDrag", "timelineContainerRelease"] }, { kind: "component", type: EditDialogComponent, selector: "kendo-gantt-edit-dialog", inputs: ["data"] }, { kind: "component", type: DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: TreeListSpacerComponent, selector: "kendo-treelist-spacer, kendo-treelist-pager-spacer", inputs: ["width"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }] });
|
|
6744
6773
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttComponent, decorators: [{
|
|
6745
6774
|
type: Component,
|
|
6746
6775
|
args: [{
|
|
@@ -7143,7 +7172,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
7143
7172
|
</kendo-dialog>
|
|
7144
7173
|
|
|
7145
7174
|
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
|
|
7146
|
-
|
|
7175
|
+
`,
|
|
7176
|
+
standalone: true,
|
|
7177
|
+
imports: [LocalizedMessagesDirective, NgIf, ToolbarComponent, SplitterComponent, SplitterPaneComponent, TreeListComponent, EventsOutsideAngularDirective, CustomMessagesComponent$2, GanttTimelineComponent, EditDialogComponent, DialogComponent, DialogActionsComponent, TreeListSpacerComponent, ButtonComponent, WatermarkOverlayComponent]
|
|
7147
7178
|
}]
|
|
7148
7179
|
}], ctorParameters: function () { return [{ type: TimelineViewService }, { type: ScrollSyncService }, { type: i0.Renderer2 }, { type: MappingService }, { type: OptionChangesService }, { type: DependencyDomService }, { type: EditService }, { type: i1$1.LocalizationService }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: NavigationService }, { type: CurrentTimeMarkerService }]; }, propDecorators: { treeList: [{
|
|
7149
7180
|
type: ViewChild,
|
|
@@ -7237,252 +7268,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
7237
7268
|
type: Input
|
|
7238
7269
|
}], taskClass: [{
|
|
7239
7270
|
type: Input
|
|
7240
|
-
}], rowClass: [{
|
|
7241
|
-
type: Input
|
|
7242
|
-
}], isExpanded: [{
|
|
7243
|
-
type: Input
|
|
7244
|
-
}], columnsAutoSize: [{
|
|
7245
|
-
type: Input
|
|
7246
|
-
}], currentTimeMarker: [{
|
|
7247
|
-
type: Input
|
|
7248
|
-
}], columnMenu: [{
|
|
7249
|
-
type: Input
|
|
7250
|
-
}], columnsReorderable: [{
|
|
7251
|
-
type: Input
|
|
7252
|
-
}], columnsResizable: [{
|
|
7253
|
-
type: Input
|
|
7254
|
-
}], dragScrollSettings: [{
|
|
7255
|
-
type: Input
|
|
7256
|
-
}], rowExpand: [{
|
|
7257
|
-
type: Output
|
|
7258
|
-
}], taskDblClick: [{
|
|
7259
|
-
type: Output
|
|
7260
|
-
}], cellDblClick: [{
|
|
7261
|
-
type: Output
|
|
7262
|
-
}], cellClose: [{
|
|
7263
|
-
type: Output
|
|
7264
|
-
}], taskDelete: [{
|
|
7265
|
-
type: Output
|
|
7266
|
-
}], rowCollapse: [{
|
|
7267
|
-
type: Output
|
|
7268
|
-
}], remove: [{
|
|
7269
|
-
type: Output
|
|
7270
|
-
}], cancel: [{
|
|
7271
|
-
type: Output
|
|
7272
|
-
}], save: [{
|
|
7273
|
-
type: Output
|
|
7274
|
-
}], taskAdd: [{
|
|
7275
|
-
type: Output
|
|
7276
|
-
}], dependencyAdd: [{
|
|
7277
|
-
type: Output
|
|
7278
|
-
}], sortChange: [{
|
|
7279
|
-
type: Output
|
|
7280
|
-
}], filterChange: [{
|
|
7281
|
-
type: Output
|
|
7282
|
-
}], dataStateChange: [{
|
|
7283
|
-
type: Output
|
|
7284
|
-
}], treeListPaneCollapsedChange: [{
|
|
7285
|
-
type: Output
|
|
7286
|
-
}], timelinePaneCollapsedChange: [{
|
|
7287
|
-
type: Output
|
|
7288
|
-
}], timelinePaneSizeChange: [{
|
|
7289
|
-
type: Output
|
|
7290
|
-
}], activeViewChange: [{
|
|
7291
|
-
type: Output
|
|
7292
|
-
}], columnResize: [{
|
|
7293
|
-
type: Output
|
|
7294
|
-
}], columnReorder: [{
|
|
7295
|
-
type: Output
|
|
7296
|
-
}], columnVisibilityChange: [{
|
|
7297
|
-
type: Output
|
|
7298
|
-
}], columnLockedChange: [{
|
|
7299
|
-
type: Output
|
|
7300
|
-
}], cellClick: [{
|
|
7301
|
-
type: Output
|
|
7302
|
-
}], taskClick: [{
|
|
7303
|
-
type: Output
|
|
7304
|
-
}] } });
|
|
7305
|
-
|
|
7306
|
-
/**
|
|
7307
|
-
* A directive which binds the Gantt to an array of objects by using
|
|
7308
|
-
* an ID and parent ID field to define the hierarchy.
|
|
7309
|
-
*
|
|
7310
|
-
* The directive encapsulates the in-memory handling of data operations such as sorting and filtering.
|
|
7311
|
-
*/
|
|
7312
|
-
class GanttFlatBindingDirective extends FlatBindingDirective {
|
|
7313
|
-
/**
|
|
7314
|
-
* @hidden
|
|
7315
|
-
*/
|
|
7316
|
-
set aggregate(value) {
|
|
7317
|
-
super.aggregate = value;
|
|
7318
|
-
}
|
|
7319
|
-
}
|
|
7320
|
-
GanttFlatBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttFlatBindingDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
7321
|
-
GanttFlatBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttFlatBindingDirective, selector: "[kendoGanttFlatBinding]", inputs: { data: ["kendoGanttFlatBinding", "data"] }, exportAs: ["kendoGanttFlatBinding"], usesInheritance: true, ngImport: i0 });
|
|
7322
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttFlatBindingDirective, decorators: [{
|
|
7323
|
-
type: Directive,
|
|
7324
|
-
args: [{
|
|
7325
|
-
selector: '[kendoGanttFlatBinding]',
|
|
7326
|
-
exportAs: 'kendoGanttFlatBinding'
|
|
7327
|
-
}]
|
|
7328
|
-
}], propDecorators: { data: [{
|
|
7329
|
-
type: Input,
|
|
7330
|
-
args: ['kendoGanttFlatBinding']
|
|
7331
|
-
}] } });
|
|
7332
|
-
|
|
7333
|
-
/**
|
|
7334
|
-
* A directive which binds the Gantt to a tree of objects,
|
|
7335
|
-
* which encapsulates the in-memory handling of data operations such as sorting and filtering.
|
|
7336
|
-
*/
|
|
7337
|
-
class GanttHierarchyBindingDirective extends HierarchyBindingDirective {
|
|
7338
|
-
/**
|
|
7339
|
-
* @hidden
|
|
7340
|
-
*/
|
|
7341
|
-
set aggregate(value) {
|
|
7342
|
-
super.aggregate = value;
|
|
7343
|
-
}
|
|
7344
|
-
}
|
|
7345
|
-
GanttHierarchyBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttHierarchyBindingDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
7346
|
-
GanttHierarchyBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttHierarchyBindingDirective, selector: "[kendoGanttHierarchyBinding]", inputs: { data: ["kendoGanttHierarchyBinding", "data"] }, exportAs: ["kendoGanttHierarchyBinding"], usesInheritance: true, ngImport: i0 });
|
|
7347
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttHierarchyBindingDirective, decorators: [{
|
|
7348
|
-
type: Directive,
|
|
7349
|
-
args: [{
|
|
7350
|
-
selector: '[kendoGanttHierarchyBinding]',
|
|
7351
|
-
exportAs: 'kendoGanttHierarchyBinding'
|
|
7352
|
-
}]
|
|
7353
|
-
}], propDecorators: { data: [{
|
|
7354
|
-
type: Input,
|
|
7355
|
-
args: ['kendoGanttHierarchyBinding']
|
|
7356
|
-
}] } });
|
|
7357
|
-
|
|
7358
|
-
/**
|
|
7359
|
-
* A directive which controls the expanded state of the items.
|
|
7360
|
-
*/
|
|
7361
|
-
class GanttExpandableDirective extends ExpandableDirective {
|
|
7362
|
-
/**
|
|
7363
|
-
* Defines the item key that will be stored in the expandedKeys collection.
|
|
7364
|
-
* Defaults to the task data item ID field,
|
|
7365
|
-
* which is specified in the [`taskModelFields`]({% slug api_gantt_ganttcomponent %}#toc-taskmodelfields) object.
|
|
7366
|
-
*
|
|
7367
|
-
*/
|
|
7368
|
-
set expandBy(value) {
|
|
7369
|
-
super.expandBy = value;
|
|
7370
|
-
}
|
|
7371
|
-
}
|
|
7372
|
-
GanttExpandableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttExpandableDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
7373
|
-
GanttExpandableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttExpandableDirective, selector: "[kendoGanttExpandable]", inputs: { expandBy: "expandBy" }, exportAs: ["kendoGanttExpandable"], usesInheritance: true, ngImport: i0 });
|
|
7374
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttExpandableDirective, decorators: [{
|
|
7375
|
-
type: Directive,
|
|
7376
|
-
args: [{
|
|
7377
|
-
exportAs: 'kendoGanttExpandable',
|
|
7378
|
-
selector: '[kendoGanttExpandable]'
|
|
7379
|
-
}]
|
|
7380
|
-
}], propDecorators: { expandBy: [{
|
|
7381
|
-
type: Input
|
|
7382
|
-
}] } });
|
|
7383
|
-
|
|
7384
|
-
/**
|
|
7385
|
-
* A directive which handles the [`selectionChange`]({% slug api_gantt_ganttcomponent %}#toc-selectionchange) event of the Gantt
|
|
7386
|
-
* ([see example]({% slug selection_gantt %}#toc-built-in-directive))
|
|
7387
|
-
*/
|
|
7388
|
-
class SelectableDirective {
|
|
7389
|
-
constructor(gantt) {
|
|
7390
|
-
this.gantt = gantt;
|
|
7391
|
-
/**
|
|
7392
|
-
* Fires when the selected keys are changed.
|
|
7393
|
-
*/
|
|
7394
|
-
this.selectedKeysChange = new EventEmitter();
|
|
7395
|
-
this.state = new Set();
|
|
7396
|
-
this.isSelected = this.isSelected.bind(this);
|
|
7397
|
-
this.selectionChange = this.selectionChange.bind(this);
|
|
7398
|
-
this.selectable = true;
|
|
7399
|
-
}
|
|
7400
|
-
/**
|
|
7401
|
-
* @hidden
|
|
7402
|
-
*/
|
|
7403
|
-
set selectable(value) {
|
|
7404
|
-
if (value) {
|
|
7405
|
-
this.gantt.isSelected = this.isSelected;
|
|
7406
|
-
this.subscribeSelection();
|
|
7407
|
-
}
|
|
7408
|
-
else {
|
|
7409
|
-
this.gantt.isSelected = () => false;
|
|
7410
|
-
this.unsubscribeSelection();
|
|
7411
|
-
}
|
|
7412
|
-
this.gantt.selectable = value;
|
|
7413
|
-
this.gantt.updateView();
|
|
7414
|
-
}
|
|
7415
|
-
/**
|
|
7416
|
-
* Sets the selected keys.
|
|
7417
|
-
*/
|
|
7418
|
-
set selectedKeys(value) {
|
|
7419
|
-
if (isPresent(value) && value === this.lastChange) {
|
|
7420
|
-
return;
|
|
7421
|
-
}
|
|
7422
|
-
// prevent multiple items displayed as selected as multiple selection still not supported fully
|
|
7423
|
-
const keys = (value || []).slice(0, 1);
|
|
7424
|
-
this.state = new Set(keys);
|
|
7425
|
-
this.gantt.updateView();
|
|
7426
|
-
}
|
|
7427
|
-
/**
|
|
7428
|
-
* The field name or a function that specifies the data item unique key identifier.
|
|
7429
|
-
* By default, the string field `id` is used.
|
|
7430
|
-
*/
|
|
7431
|
-
set itemKey(value) {
|
|
7432
|
-
if (isString(value)) {
|
|
7433
|
-
this._keyGetter = getter(value);
|
|
7434
|
-
}
|
|
7435
|
-
else {
|
|
7436
|
-
this._keyGetter = value;
|
|
7437
|
-
}
|
|
7438
|
-
}
|
|
7439
|
-
get keyGetter() {
|
|
7440
|
-
return this._keyGetter || this.gantt.idGetter;
|
|
7441
|
-
}
|
|
7442
|
-
ngOnDestroy() {
|
|
7443
|
-
this.unsubscribeSelection();
|
|
7444
|
-
}
|
|
7445
|
-
isSelected(dataItem) {
|
|
7446
|
-
return this.state.has(this.keyGetter(dataItem));
|
|
7447
|
-
}
|
|
7448
|
-
selectionChange({ action, items }) {
|
|
7449
|
-
this.state.clear();
|
|
7450
|
-
if (action === 'select') {
|
|
7451
|
-
items.forEach(item => this.state.add(this.keyGetter(item)));
|
|
7452
|
-
}
|
|
7453
|
-
this.emitSelectedItemsChange();
|
|
7454
|
-
}
|
|
7455
|
-
emitSelectedItemsChange() {
|
|
7456
|
-
this.lastChange = Array.from(this.state);
|
|
7457
|
-
this.selectedKeysChange.emit(this.lastChange);
|
|
7458
|
-
}
|
|
7459
|
-
subscribeSelection() {
|
|
7460
|
-
this.unsubscribeSelection();
|
|
7461
|
-
this.selectionSubscription = this.gantt.selectionChange.subscribe(this.selectionChange);
|
|
7462
|
-
}
|
|
7463
|
-
unsubscribeSelection() {
|
|
7464
|
-
if (this.selectionSubscription) {
|
|
7465
|
-
this.selectionSubscription.unsubscribe();
|
|
7466
|
-
this.selectionSubscription = null;
|
|
7467
|
-
}
|
|
7468
|
-
}
|
|
7469
|
-
}
|
|
7470
|
-
SelectableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SelectableDirective, deps: [{ token: GanttComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
7471
|
-
SelectableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SelectableDirective, selector: "[kendoGanttSelectable]", inputs: { selectable: "selectable", selectedKeys: "selectedKeys", itemKey: "itemKey" }, outputs: { selectedKeysChange: "selectedKeysChange" }, exportAs: ["kendoGanttSelectable"], ngImport: i0 });
|
|
7472
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SelectableDirective, decorators: [{
|
|
7473
|
-
type: Directive,
|
|
7474
|
-
args: [{
|
|
7475
|
-
exportAs: 'kendoGanttSelectable',
|
|
7476
|
-
selector: '[kendoGanttSelectable]'
|
|
7477
|
-
}]
|
|
7478
|
-
}], ctorParameters: function () { return [{ type: GanttComponent }]; }, propDecorators: { selectable: [{
|
|
7479
|
-
type: Input
|
|
7480
|
-
}], selectedKeys: [{
|
|
7271
|
+
}], rowClass: [{
|
|
7481
7272
|
type: Input
|
|
7482
|
-
}],
|
|
7483
|
-
type:
|
|
7484
|
-
}],
|
|
7273
|
+
}], isExpanded: [{
|
|
7274
|
+
type: Input
|
|
7275
|
+
}], columnsAutoSize: [{
|
|
7276
|
+
type: Input
|
|
7277
|
+
}], currentTimeMarker: [{
|
|
7278
|
+
type: Input
|
|
7279
|
+
}], columnMenu: [{
|
|
7280
|
+
type: Input
|
|
7281
|
+
}], columnsReorderable: [{
|
|
7282
|
+
type: Input
|
|
7283
|
+
}], columnsResizable: [{
|
|
7485
7284
|
type: Input
|
|
7285
|
+
}], dragScrollSettings: [{
|
|
7286
|
+
type: Input
|
|
7287
|
+
}], rowExpand: [{
|
|
7288
|
+
type: Output
|
|
7289
|
+
}], taskDblClick: [{
|
|
7290
|
+
type: Output
|
|
7291
|
+
}], cellDblClick: [{
|
|
7292
|
+
type: Output
|
|
7293
|
+
}], cellClose: [{
|
|
7294
|
+
type: Output
|
|
7295
|
+
}], taskDelete: [{
|
|
7296
|
+
type: Output
|
|
7297
|
+
}], rowCollapse: [{
|
|
7298
|
+
type: Output
|
|
7299
|
+
}], remove: [{
|
|
7300
|
+
type: Output
|
|
7301
|
+
}], cancel: [{
|
|
7302
|
+
type: Output
|
|
7303
|
+
}], save: [{
|
|
7304
|
+
type: Output
|
|
7305
|
+
}], taskAdd: [{
|
|
7306
|
+
type: Output
|
|
7307
|
+
}], dependencyAdd: [{
|
|
7308
|
+
type: Output
|
|
7309
|
+
}], sortChange: [{
|
|
7310
|
+
type: Output
|
|
7311
|
+
}], filterChange: [{
|
|
7312
|
+
type: Output
|
|
7313
|
+
}], dataStateChange: [{
|
|
7314
|
+
type: Output
|
|
7315
|
+
}], treeListPaneCollapsedChange: [{
|
|
7316
|
+
type: Output
|
|
7317
|
+
}], timelinePaneCollapsedChange: [{
|
|
7318
|
+
type: Output
|
|
7319
|
+
}], timelinePaneSizeChange: [{
|
|
7320
|
+
type: Output
|
|
7321
|
+
}], activeViewChange: [{
|
|
7322
|
+
type: Output
|
|
7323
|
+
}], columnResize: [{
|
|
7324
|
+
type: Output
|
|
7325
|
+
}], columnReorder: [{
|
|
7326
|
+
type: Output
|
|
7327
|
+
}], columnVisibilityChange: [{
|
|
7328
|
+
type: Output
|
|
7329
|
+
}], columnLockedChange: [{
|
|
7330
|
+
type: Output
|
|
7331
|
+
}], cellClick: [{
|
|
7332
|
+
type: Output
|
|
7333
|
+
}], taskClick: [{
|
|
7334
|
+
type: Output
|
|
7486
7335
|
}] } });
|
|
7487
7336
|
|
|
7488
7337
|
/**
|
|
@@ -7499,7 +7348,7 @@ class DragValidationTooltipComponent {
|
|
|
7499
7348
|
}
|
|
7500
7349
|
}
|
|
7501
7350
|
DragValidationTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DragValidationTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7502
|
-
DragValidationTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DragValidationTooltipComponent, selector: "ng-component", ngImport: i0, template: `
|
|
7351
|
+
DragValidationTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DragValidationTooltipComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
|
|
7503
7352
|
<div
|
|
7504
7353
|
class="k-tooltip k-gantt-tooltip-validation"
|
|
7505
7354
|
[class.k-gantt-tooltip-valid]="showValidityStatus && isValid"
|
|
@@ -7533,10 +7382,92 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
7533
7382
|
<span class="k-gantt-tooltip-validation-value">{{ toTaskName }}</span>
|
|
7534
7383
|
</div>
|
|
7535
7384
|
</div>
|
|
7536
|
-
|
|
7385
|
+
`,
|
|
7386
|
+
standalone: true
|
|
7537
7387
|
}]
|
|
7538
7388
|
}] });
|
|
7539
7389
|
|
|
7390
|
+
/**
|
|
7391
|
+
* A directive which binds the Gantt to an array of objects by using
|
|
7392
|
+
* an ID and parent ID field to define the hierarchy.
|
|
7393
|
+
*
|
|
7394
|
+
* The directive encapsulates the in-memory handling of data operations such as sorting and filtering.
|
|
7395
|
+
*/
|
|
7396
|
+
class GanttFlatBindingDirective extends FlatBindingDirective {
|
|
7397
|
+
/**
|
|
7398
|
+
* @hidden
|
|
7399
|
+
*/
|
|
7400
|
+
set aggregate(value) {
|
|
7401
|
+
super.aggregate = value;
|
|
7402
|
+
}
|
|
7403
|
+
}
|
|
7404
|
+
GanttFlatBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttFlatBindingDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
7405
|
+
GanttFlatBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttFlatBindingDirective, isStandalone: true, selector: "[kendoGanttFlatBinding]", inputs: { data: ["kendoGanttFlatBinding", "data"] }, exportAs: ["kendoGanttFlatBinding"], usesInheritance: true, ngImport: i0 });
|
|
7406
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttFlatBindingDirective, decorators: [{
|
|
7407
|
+
type: Directive,
|
|
7408
|
+
args: [{
|
|
7409
|
+
selector: '[kendoGanttFlatBinding]',
|
|
7410
|
+
exportAs: 'kendoGanttFlatBinding',
|
|
7411
|
+
standalone: true
|
|
7412
|
+
}]
|
|
7413
|
+
}], propDecorators: { data: [{
|
|
7414
|
+
type: Input,
|
|
7415
|
+
args: ['kendoGanttFlatBinding']
|
|
7416
|
+
}] } });
|
|
7417
|
+
|
|
7418
|
+
/**
|
|
7419
|
+
* A directive which binds the Gantt to a tree of objects,
|
|
7420
|
+
* which encapsulates the in-memory handling of data operations such as sorting and filtering.
|
|
7421
|
+
*/
|
|
7422
|
+
class GanttHierarchyBindingDirective extends HierarchyBindingDirective {
|
|
7423
|
+
/**
|
|
7424
|
+
* @hidden
|
|
7425
|
+
*/
|
|
7426
|
+
set aggregate(value) {
|
|
7427
|
+
super.aggregate = value;
|
|
7428
|
+
}
|
|
7429
|
+
}
|
|
7430
|
+
GanttHierarchyBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttHierarchyBindingDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
7431
|
+
GanttHierarchyBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttHierarchyBindingDirective, isStandalone: true, selector: "[kendoGanttHierarchyBinding]", inputs: { data: ["kendoGanttHierarchyBinding", "data"] }, exportAs: ["kendoGanttHierarchyBinding"], usesInheritance: true, ngImport: i0 });
|
|
7432
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttHierarchyBindingDirective, decorators: [{
|
|
7433
|
+
type: Directive,
|
|
7434
|
+
args: [{
|
|
7435
|
+
selector: '[kendoGanttHierarchyBinding]',
|
|
7436
|
+
exportAs: 'kendoGanttHierarchyBinding',
|
|
7437
|
+
standalone: true
|
|
7438
|
+
}]
|
|
7439
|
+
}], propDecorators: { data: [{
|
|
7440
|
+
type: Input,
|
|
7441
|
+
args: ['kendoGanttHierarchyBinding']
|
|
7442
|
+
}] } });
|
|
7443
|
+
|
|
7444
|
+
/**
|
|
7445
|
+
* A directive which controls the expanded state of the items.
|
|
7446
|
+
*/
|
|
7447
|
+
class GanttExpandableDirective extends ExpandableDirective {
|
|
7448
|
+
/**
|
|
7449
|
+
* Defines the item key that will be stored in the expandedKeys collection.
|
|
7450
|
+
* Defaults to the task data item ID field,
|
|
7451
|
+
* which is specified in the [`taskModelFields`]({% slug api_gantt_ganttcomponent %}#toc-taskmodelfields) object.
|
|
7452
|
+
*
|
|
7453
|
+
*/
|
|
7454
|
+
set expandBy(value) {
|
|
7455
|
+
super.expandBy = value;
|
|
7456
|
+
}
|
|
7457
|
+
}
|
|
7458
|
+
GanttExpandableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttExpandableDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
7459
|
+
GanttExpandableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttExpandableDirective, isStandalone: true, selector: "[kendoGanttExpandable]", inputs: { expandBy: "expandBy" }, exportAs: ["kendoGanttExpandable"], usesInheritance: true, ngImport: i0 });
|
|
7460
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttExpandableDirective, decorators: [{
|
|
7461
|
+
type: Directive,
|
|
7462
|
+
args: [{
|
|
7463
|
+
exportAs: 'kendoGanttExpandable',
|
|
7464
|
+
selector: '[kendoGanttExpandable]',
|
|
7465
|
+
standalone: true
|
|
7466
|
+
}]
|
|
7467
|
+
}], propDecorators: { expandBy: [{
|
|
7468
|
+
type: Input
|
|
7469
|
+
}] } });
|
|
7470
|
+
|
|
7540
7471
|
/**
|
|
7541
7472
|
* When added to the .k-task-dot, the element will be kept with hover styles.
|
|
7542
7473
|
* Used for the drag clue from which the dragging has started.
|
|
@@ -7831,11 +7762,12 @@ class DependencyDragCreateDirective {
|
|
|
7831
7762
|
}
|
|
7832
7763
|
}
|
|
7833
7764
|
DependencyDragCreateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DependencyDragCreateDirective, deps: [{ token: GanttComponent }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: MappingService }, { token: i3.PopupService }, { token: TimelineScrollService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
7834
|
-
DependencyDragCreateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DependencyDragCreateDirective, selector: "[kendoGanttDependencyDragCreate]", inputs: { displayValidationTooltip: "displayValidationTooltip" }, ngImport: i0 });
|
|
7765
|
+
DependencyDragCreateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DependencyDragCreateDirective, isStandalone: true, selector: "[kendoGanttDependencyDragCreate]", inputs: { displayValidationTooltip: "displayValidationTooltip" }, ngImport: i0 });
|
|
7835
7766
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DependencyDragCreateDirective, decorators: [{
|
|
7836
7767
|
type: Directive,
|
|
7837
7768
|
args: [{
|
|
7838
|
-
selector: '[kendoGanttDependencyDragCreate]'
|
|
7769
|
+
selector: '[kendoGanttDependencyDragCreate]',
|
|
7770
|
+
standalone: true
|
|
7839
7771
|
}]
|
|
7840
7772
|
}], ctorParameters: function () { return [{ type: GanttComponent }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: MappingService }, { type: i3.PopupService }, { type: TimelineScrollService }]; }, propDecorators: { displayValidationTooltip: [{
|
|
7841
7773
|
type: Input
|
|
@@ -7854,7 +7786,7 @@ class TimelineDayViewComponent extends ViewBase {
|
|
|
7854
7786
|
}
|
|
7855
7787
|
}
|
|
7856
7788
|
TimelineDayViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineDayViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7857
|
-
TimelineDayViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TimelineDayViewComponent, selector: "kendo-gantt-timeline-day-view", providers: [
|
|
7789
|
+
TimelineDayViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TimelineDayViewComponent, isStandalone: true, selector: "kendo-gantt-timeline-day-view", providers: [
|
|
7858
7790
|
{
|
|
7859
7791
|
provide: ViewBase,
|
|
7860
7792
|
useExisting: forwardRef(() => TimelineDayViewComponent)
|
|
@@ -7870,7 +7802,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
7870
7802
|
provide: ViewBase,
|
|
7871
7803
|
useExisting: forwardRef(() => TimelineDayViewComponent)
|
|
7872
7804
|
}
|
|
7873
|
-
]
|
|
7805
|
+
],
|
|
7806
|
+
standalone: true
|
|
7874
7807
|
}]
|
|
7875
7808
|
}], ctorParameters: function () { return [{ type: OptionChangesService }, { type: DependencyDomService }]; } });
|
|
7876
7809
|
|
|
@@ -7887,7 +7820,7 @@ class TimelineWeekViewComponent extends ViewBase {
|
|
|
7887
7820
|
}
|
|
7888
7821
|
}
|
|
7889
7822
|
TimelineWeekViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineWeekViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7890
|
-
TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TimelineWeekViewComponent, selector: "kendo-gantt-timeline-week-view", providers: [
|
|
7823
|
+
TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TimelineWeekViewComponent, isStandalone: true, selector: "kendo-gantt-timeline-week-view", providers: [
|
|
7891
7824
|
{
|
|
7892
7825
|
provide: ViewBase,
|
|
7893
7826
|
useExisting: forwardRef(() => TimelineWeekViewComponent)
|
|
@@ -7903,7 +7836,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
7903
7836
|
provide: ViewBase,
|
|
7904
7837
|
useExisting: forwardRef(() => TimelineWeekViewComponent)
|
|
7905
7838
|
}
|
|
7906
|
-
]
|
|
7839
|
+
],
|
|
7840
|
+
standalone: true
|
|
7907
7841
|
}]
|
|
7908
7842
|
}], ctorParameters: function () { return [{ type: OptionChangesService }, { type: DependencyDomService }]; } });
|
|
7909
7843
|
|
|
@@ -7920,7 +7854,7 @@ class TimelineMonthViewComponent extends ViewBase {
|
|
|
7920
7854
|
}
|
|
7921
7855
|
}
|
|
7922
7856
|
TimelineMonthViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineMonthViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7923
|
-
TimelineMonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TimelineMonthViewComponent, selector: "kendo-gantt-timeline-month-view", providers: [
|
|
7857
|
+
TimelineMonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TimelineMonthViewComponent, isStandalone: true, selector: "kendo-gantt-timeline-month-view", providers: [
|
|
7924
7858
|
{
|
|
7925
7859
|
provide: ViewBase,
|
|
7926
7860
|
useExisting: forwardRef(() => TimelineMonthViewComponent)
|
|
@@ -7936,7 +7870,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
7936
7870
|
provide: ViewBase,
|
|
7937
7871
|
useExisting: forwardRef(() => TimelineMonthViewComponent)
|
|
7938
7872
|
}
|
|
7939
|
-
]
|
|
7873
|
+
],
|
|
7874
|
+
standalone: true
|
|
7940
7875
|
}]
|
|
7941
7876
|
}], ctorParameters: function () { return [{ type: OptionChangesService }, { type: DependencyDomService }]; } });
|
|
7942
7877
|
|
|
@@ -7953,7 +7888,7 @@ class TimelineYearViewComponent extends ViewBase {
|
|
|
7953
7888
|
}
|
|
7954
7889
|
}
|
|
7955
7890
|
TimelineYearViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineYearViewComponent, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7956
|
-
TimelineYearViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TimelineYearViewComponent, selector: "kendo-gantt-timeline-year-view", providers: [
|
|
7891
|
+
TimelineYearViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TimelineYearViewComponent, isStandalone: true, selector: "kendo-gantt-timeline-year-view", providers: [
|
|
7957
7892
|
{
|
|
7958
7893
|
provide: ViewBase,
|
|
7959
7894
|
useExisting: forwardRef(() => TimelineYearViewComponent)
|
|
@@ -7969,10 +7904,116 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
7969
7904
|
provide: ViewBase,
|
|
7970
7905
|
useExisting: forwardRef(() => TimelineYearViewComponent)
|
|
7971
7906
|
}
|
|
7972
|
-
]
|
|
7907
|
+
],
|
|
7908
|
+
standalone: true
|
|
7973
7909
|
}]
|
|
7974
7910
|
}], ctorParameters: function () { return [{ type: OptionChangesService }, { type: DependencyDomService }]; } });
|
|
7975
7911
|
|
|
7912
|
+
/**
|
|
7913
|
+
* A directive which handles the [`selectionChange`]({% slug api_gantt_ganttcomponent %}#toc-selectionchange) event of the Gantt
|
|
7914
|
+
* ([see example]({% slug selection_gantt %}#toc-built-in-directive))
|
|
7915
|
+
*/
|
|
7916
|
+
class SelectableDirective {
|
|
7917
|
+
constructor(gantt) {
|
|
7918
|
+
this.gantt = gantt;
|
|
7919
|
+
/**
|
|
7920
|
+
* Fires when the selected keys are changed.
|
|
7921
|
+
*/
|
|
7922
|
+
this.selectedKeysChange = new EventEmitter();
|
|
7923
|
+
this.state = new Set();
|
|
7924
|
+
this.isSelected = this.isSelected.bind(this);
|
|
7925
|
+
this.selectionChange = this.selectionChange.bind(this);
|
|
7926
|
+
this.selectable = true;
|
|
7927
|
+
}
|
|
7928
|
+
/**
|
|
7929
|
+
* @hidden
|
|
7930
|
+
*/
|
|
7931
|
+
set selectable(value) {
|
|
7932
|
+
if (value) {
|
|
7933
|
+
this.gantt.isSelected = this.isSelected;
|
|
7934
|
+
this.subscribeSelection();
|
|
7935
|
+
}
|
|
7936
|
+
else {
|
|
7937
|
+
this.gantt.isSelected = () => false;
|
|
7938
|
+
this.unsubscribeSelection();
|
|
7939
|
+
}
|
|
7940
|
+
this.gantt.selectable = value;
|
|
7941
|
+
this.gantt.updateView();
|
|
7942
|
+
}
|
|
7943
|
+
/**
|
|
7944
|
+
* Sets the selected keys.
|
|
7945
|
+
*/
|
|
7946
|
+
set selectedKeys(value) {
|
|
7947
|
+
if (isPresent(value) && value === this.lastChange) {
|
|
7948
|
+
return;
|
|
7949
|
+
}
|
|
7950
|
+
// prevent multiple items displayed as selected as multiple selection still not supported fully
|
|
7951
|
+
const keys = (value || []).slice(0, 1);
|
|
7952
|
+
this.state = new Set(keys);
|
|
7953
|
+
this.gantt.updateView();
|
|
7954
|
+
}
|
|
7955
|
+
/**
|
|
7956
|
+
* The field name or a function that specifies the data item unique key identifier.
|
|
7957
|
+
* By default, the string field `id` is used.
|
|
7958
|
+
*/
|
|
7959
|
+
set itemKey(value) {
|
|
7960
|
+
if (isString(value)) {
|
|
7961
|
+
this._keyGetter = getter(value);
|
|
7962
|
+
}
|
|
7963
|
+
else {
|
|
7964
|
+
this._keyGetter = value;
|
|
7965
|
+
}
|
|
7966
|
+
}
|
|
7967
|
+
get keyGetter() {
|
|
7968
|
+
return this._keyGetter || this.gantt.idGetter;
|
|
7969
|
+
}
|
|
7970
|
+
ngOnDestroy() {
|
|
7971
|
+
this.unsubscribeSelection();
|
|
7972
|
+
}
|
|
7973
|
+
isSelected(dataItem) {
|
|
7974
|
+
return this.state.has(this.keyGetter(dataItem));
|
|
7975
|
+
}
|
|
7976
|
+
selectionChange({ action, items }) {
|
|
7977
|
+
this.state.clear();
|
|
7978
|
+
if (action === 'select') {
|
|
7979
|
+
items.forEach(item => this.state.add(this.keyGetter(item)));
|
|
7980
|
+
}
|
|
7981
|
+
this.emitSelectedItemsChange();
|
|
7982
|
+
}
|
|
7983
|
+
emitSelectedItemsChange() {
|
|
7984
|
+
this.lastChange = Array.from(this.state);
|
|
7985
|
+
this.selectedKeysChange.emit(this.lastChange);
|
|
7986
|
+
}
|
|
7987
|
+
subscribeSelection() {
|
|
7988
|
+
this.unsubscribeSelection();
|
|
7989
|
+
this.selectionSubscription = this.gantt.selectionChange.subscribe(this.selectionChange);
|
|
7990
|
+
}
|
|
7991
|
+
unsubscribeSelection() {
|
|
7992
|
+
if (this.selectionSubscription) {
|
|
7993
|
+
this.selectionSubscription.unsubscribe();
|
|
7994
|
+
this.selectionSubscription = null;
|
|
7995
|
+
}
|
|
7996
|
+
}
|
|
7997
|
+
}
|
|
7998
|
+
SelectableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SelectableDirective, deps: [{ token: GanttComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
7999
|
+
SelectableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SelectableDirective, isStandalone: true, selector: "[kendoGanttSelectable]", inputs: { selectable: "selectable", selectedKeys: "selectedKeys", itemKey: "itemKey" }, outputs: { selectedKeysChange: "selectedKeysChange" }, exportAs: ["kendoGanttSelectable"], ngImport: i0 });
|
|
8000
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SelectableDirective, decorators: [{
|
|
8001
|
+
type: Directive,
|
|
8002
|
+
args: [{
|
|
8003
|
+
exportAs: 'kendoGanttSelectable',
|
|
8004
|
+
selector: '[kendoGanttSelectable]',
|
|
8005
|
+
standalone: true
|
|
8006
|
+
}]
|
|
8007
|
+
}], ctorParameters: function () { return [{ type: GanttComponent }]; }, propDecorators: { selectable: [{
|
|
8008
|
+
type: Input
|
|
8009
|
+
}], selectedKeys: [{
|
|
8010
|
+
type: Input
|
|
8011
|
+
}], selectedKeysChange: [{
|
|
8012
|
+
type: Output
|
|
8013
|
+
}], itemKey: [{
|
|
8014
|
+
type: Input
|
|
8015
|
+
}] } });
|
|
8016
|
+
|
|
7976
8017
|
/**
|
|
7977
8018
|
* Custom component messages override default component messages
|
|
7978
8019
|
* ([see example](slug:globalization_treelist#toc-custom-messages)).
|
|
@@ -7987,7 +8028,7 @@ class CustomMessagesComponent extends Messages {
|
|
|
7987
8028
|
}
|
|
7988
8029
|
}
|
|
7989
8030
|
CustomMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomMessagesComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7990
|
-
CustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CustomMessagesComponent, selector: "kendo-gantt-messages", providers: [
|
|
8031
|
+
CustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CustomMessagesComponent, isStandalone: true, selector: "kendo-gantt-messages", providers: [
|
|
7991
8032
|
{
|
|
7992
8033
|
provide: Messages,
|
|
7993
8034
|
useExisting: forwardRef(() => CustomMessagesComponent)
|
|
@@ -8003,74 +8044,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
8003
8044
|
}
|
|
8004
8045
|
],
|
|
8005
8046
|
selector: 'kendo-gantt-messages',
|
|
8006
|
-
template:
|
|
8047
|
+
template: ``,
|
|
8048
|
+
standalone: true
|
|
8007
8049
|
}]
|
|
8008
8050
|
}], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
|
|
8009
8051
|
|
|
8010
|
-
|
|
8011
|
-
|
|
8012
|
-
|
|
8013
|
-
|
|
8014
|
-
InputsModule,
|
|
8015
|
-
DateInputsModule,
|
|
8016
|
-
ButtonsModule,
|
|
8017
|
-
SplitterModule,
|
|
8018
|
-
TreeListModule,
|
|
8019
|
-
ButtonsModule,
|
|
8020
|
-
DialogModule,
|
|
8021
|
-
EventsModule,
|
|
8022
|
-
PopupModule,
|
|
8023
|
-
DraggableModule,
|
|
8024
|
-
TabStripModule,
|
|
8025
|
-
GridModule,
|
|
8026
|
-
DropDownsModule,
|
|
8027
|
-
IconsModule,
|
|
8028
|
-
IntlModule,
|
|
8029
|
-
WatermarkModule
|
|
8030
|
-
];
|
|
8031
|
-
const DECLARATIONS = [
|
|
8052
|
+
/**
|
|
8053
|
+
* Utility array that contains all `@progress/kendo-angular-gantt` related components and directives
|
|
8054
|
+
*/
|
|
8055
|
+
const KENDO_GANTT = [
|
|
8032
8056
|
GanttComponent,
|
|
8033
8057
|
GanttFlatBindingDirective,
|
|
8034
8058
|
GanttHierarchyBindingDirective,
|
|
8035
|
-
GanttTaskComponent,
|
|
8036
|
-
GanttSummaryTaskComponent,
|
|
8037
|
-
GanttMilestoneTaskComponent,
|
|
8038
|
-
GanttTimelineComponent,
|
|
8039
|
-
GanttTasksTableBodyComponent,
|
|
8040
|
-
GanttHeaderTableBodyComponent,
|
|
8041
8059
|
GanttTaskContentTemplateDirective,
|
|
8042
8060
|
GanttTaskTemplateDirective,
|
|
8043
8061
|
GanttSummaryTaskTemplateDirective,
|
|
8044
8062
|
ToolbarTemplateDirective,
|
|
8045
|
-
ToolbarComponent,
|
|
8046
8063
|
ViewSelectorComponent,
|
|
8047
8064
|
GanttColumnComponent,
|
|
8048
8065
|
GanttColumnGroupComponent,
|
|
8049
8066
|
GanttSpanColumnComponent,
|
|
8050
|
-
FilterMenuTemplateDirective,
|
|
8051
8067
|
FilterCellTemplateDirective,
|
|
8068
|
+
FilterMenuTemplateDirective,
|
|
8052
8069
|
CellTemplateDirective,
|
|
8053
8070
|
EditTemplateDirective,
|
|
8054
8071
|
ColumnMenuTemplateDirective,
|
|
8055
8072
|
HeaderTemplateDirective,
|
|
8056
8073
|
FooterTemplateDirective,
|
|
8057
8074
|
GanttExpandableDirective,
|
|
8058
|
-
GanttDependencyDirective,
|
|
8059
8075
|
DependencyDragCreateDirective,
|
|
8060
8076
|
TimelineDayViewComponent,
|
|
8061
8077
|
TimelineWeekViewComponent,
|
|
8062
8078
|
TimelineMonthViewComponent,
|
|
8063
8079
|
TimelineYearViewComponent,
|
|
8064
8080
|
SelectableDirective,
|
|
8065
|
-
EditDialogComponent,
|
|
8066
8081
|
CustomMessagesComponent,
|
|
8067
|
-
|
|
8068
|
-
GanttAddTaskComponent,
|
|
8069
|
-
DragValidationTooltipComponent,
|
|
8070
|
-
TimelineScrollableDirective,
|
|
8071
|
-
DependenciesTableComponent,
|
|
8072
|
-
TaskFieldsComponent
|
|
8082
|
+
GanttAddTaskComponent
|
|
8073
8083
|
];
|
|
8084
|
+
|
|
8085
|
+
// IMPORTANT: NgModule export kept for backwards compatibility
|
|
8074
8086
|
/**
|
|
8075
8087
|
* Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
|
|
8076
8088
|
* definition for the Gantt component.
|
|
@@ -8105,118 +8117,44 @@ const DECLARATIONS = [
|
|
|
8105
8117
|
class GanttModule {
|
|
8106
8118
|
}
|
|
8107
8119
|
GanttModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8108
|
-
GanttModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: GanttModule,
|
|
8109
|
-
GanttFlatBindingDirective,
|
|
8110
|
-
GanttHierarchyBindingDirective,
|
|
8111
|
-
GanttTaskComponent,
|
|
8112
|
-
GanttSummaryTaskComponent,
|
|
8113
|
-
GanttMilestoneTaskComponent,
|
|
8114
|
-
GanttTimelineComponent,
|
|
8115
|
-
GanttTasksTableBodyComponent,
|
|
8116
|
-
GanttHeaderTableBodyComponent,
|
|
8117
|
-
GanttTaskContentTemplateDirective,
|
|
8118
|
-
GanttTaskTemplateDirective,
|
|
8119
|
-
GanttSummaryTaskTemplateDirective,
|
|
8120
|
-
ToolbarTemplateDirective,
|
|
8121
|
-
ToolbarComponent,
|
|
8122
|
-
ViewSelectorComponent,
|
|
8123
|
-
GanttColumnComponent,
|
|
8124
|
-
GanttColumnGroupComponent,
|
|
8125
|
-
GanttSpanColumnComponent,
|
|
8126
|
-
FilterMenuTemplateDirective,
|
|
8127
|
-
FilterCellTemplateDirective,
|
|
8128
|
-
CellTemplateDirective,
|
|
8129
|
-
EditTemplateDirective,
|
|
8130
|
-
ColumnMenuTemplateDirective,
|
|
8131
|
-
HeaderTemplateDirective,
|
|
8132
|
-
FooterTemplateDirective,
|
|
8133
|
-
GanttExpandableDirective,
|
|
8134
|
-
GanttDependencyDirective,
|
|
8135
|
-
DependencyDragCreateDirective,
|
|
8136
|
-
TimelineDayViewComponent,
|
|
8137
|
-
TimelineWeekViewComponent,
|
|
8138
|
-
TimelineMonthViewComponent,
|
|
8139
|
-
TimelineYearViewComponent,
|
|
8140
|
-
SelectableDirective,
|
|
8141
|
-
EditDialogComponent,
|
|
8142
|
-
CustomMessagesComponent,
|
|
8143
|
-
LocalizedMessagesDirective,
|
|
8144
|
-
GanttAddTaskComponent,
|
|
8145
|
-
DragValidationTooltipComponent,
|
|
8146
|
-
TimelineScrollableDirective,
|
|
8147
|
-
DependenciesTableComponent,
|
|
8148
|
-
TaskFieldsComponent], imports: [CommonModule,
|
|
8149
|
-
ReactiveFormsModule,
|
|
8150
|
-
LabelModule,
|
|
8151
|
-
InputsModule,
|
|
8152
|
-
DateInputsModule,
|
|
8153
|
-
ButtonsModule,
|
|
8154
|
-
SplitterModule,
|
|
8155
|
-
TreeListModule,
|
|
8156
|
-
ButtonsModule,
|
|
8157
|
-
DialogModule,
|
|
8158
|
-
EventsModule,
|
|
8159
|
-
PopupModule,
|
|
8160
|
-
DraggableModule,
|
|
8161
|
-
TabStripModule,
|
|
8162
|
-
GridModule,
|
|
8163
|
-
DropDownsModule,
|
|
8164
|
-
IconsModule,
|
|
8165
|
-
IntlModule,
|
|
8166
|
-
WatermarkModule], exports: [GanttComponent,
|
|
8167
|
-
GanttFlatBindingDirective,
|
|
8168
|
-
GanttHierarchyBindingDirective,
|
|
8169
|
-
GanttTaskComponent,
|
|
8170
|
-
GanttSummaryTaskComponent,
|
|
8171
|
-
GanttMilestoneTaskComponent,
|
|
8172
|
-
GanttTimelineComponent,
|
|
8173
|
-
GanttTasksTableBodyComponent,
|
|
8174
|
-
GanttHeaderTableBodyComponent,
|
|
8175
|
-
GanttTaskContentTemplateDirective,
|
|
8176
|
-
GanttTaskTemplateDirective,
|
|
8177
|
-
GanttSummaryTaskTemplateDirective,
|
|
8178
|
-
ToolbarTemplateDirective,
|
|
8179
|
-
ToolbarComponent,
|
|
8180
|
-
ViewSelectorComponent,
|
|
8181
|
-
GanttColumnComponent,
|
|
8182
|
-
GanttColumnGroupComponent,
|
|
8183
|
-
GanttSpanColumnComponent,
|
|
8184
|
-
FilterMenuTemplateDirective,
|
|
8185
|
-
FilterCellTemplateDirective,
|
|
8186
|
-
CellTemplateDirective,
|
|
8187
|
-
EditTemplateDirective,
|
|
8188
|
-
ColumnMenuTemplateDirective,
|
|
8189
|
-
HeaderTemplateDirective,
|
|
8190
|
-
FooterTemplateDirective,
|
|
8191
|
-
GanttExpandableDirective,
|
|
8192
|
-
GanttDependencyDirective,
|
|
8193
|
-
DependencyDragCreateDirective,
|
|
8194
|
-
TimelineDayViewComponent,
|
|
8195
|
-
TimelineWeekViewComponent,
|
|
8196
|
-
TimelineMonthViewComponent,
|
|
8197
|
-
TimelineYearViewComponent,
|
|
8198
|
-
SelectableDirective,
|
|
8199
|
-
EditDialogComponent,
|
|
8200
|
-
CustomMessagesComponent,
|
|
8201
|
-
LocalizedMessagesDirective,
|
|
8202
|
-
GanttAddTaskComponent,
|
|
8203
|
-
DragValidationTooltipComponent,
|
|
8204
|
-
TimelineScrollableDirective,
|
|
8205
|
-
DependenciesTableComponent,
|
|
8206
|
-
TaskFieldsComponent] });
|
|
8120
|
+
GanttModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: GanttModule, imports: [GanttComponent, GanttFlatBindingDirective, GanttHierarchyBindingDirective, GanttTaskContentTemplateDirective, GanttTaskTemplateDirective, GanttSummaryTaskTemplateDirective, ToolbarTemplateDirective, ViewSelectorComponent, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, FilterCellTemplateDirective, FilterMenuTemplateDirective, CellTemplateDirective, EditTemplateDirective, ColumnMenuTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, GanttExpandableDirective, DependencyDragCreateDirective, TimelineDayViewComponent, TimelineWeekViewComponent, TimelineMonthViewComponent, TimelineYearViewComponent, SelectableDirective, CustomMessagesComponent, GanttAddTaskComponent], exports: [GanttComponent, GanttFlatBindingDirective, GanttHierarchyBindingDirective, GanttTaskContentTemplateDirective, GanttTaskTemplateDirective, GanttSummaryTaskTemplateDirective, ToolbarTemplateDirective, ViewSelectorComponent, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, FilterCellTemplateDirective, FilterMenuTemplateDirective, CellTemplateDirective, EditTemplateDirective, ColumnMenuTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, GanttExpandableDirective, DependencyDragCreateDirective, TimelineDayViewComponent, TimelineWeekViewComponent, TimelineMonthViewComponent, TimelineYearViewComponent, SelectableDirective, CustomMessagesComponent, GanttAddTaskComponent] });
|
|
8207
8121
|
GanttModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttModule, providers: [{
|
|
8208
8122
|
provide: L10N_PREFIX,
|
|
8209
8123
|
useValue: 'kendo.gantt'
|
|
8210
8124
|
}, {
|
|
8211
8125
|
provide: TOUCH_ENABLED,
|
|
8212
8126
|
useValue: touchEnabled
|
|
8213
|
-
}
|
|
8127
|
+
},
|
|
8128
|
+
// InputsModule providers
|
|
8129
|
+
IconsService,
|
|
8130
|
+
PopupService,
|
|
8131
|
+
ResizeBatchService,
|
|
8132
|
+
DialogContainerService,
|
|
8133
|
+
DialogService,
|
|
8134
|
+
WindowService,
|
|
8135
|
+
WindowContainerService,
|
|
8136
|
+
// DateInputsModule providers
|
|
8137
|
+
CalendarDOMService,
|
|
8138
|
+
CenturyViewService,
|
|
8139
|
+
DecadeViewService,
|
|
8140
|
+
MonthViewService,
|
|
8141
|
+
YearViewService,
|
|
8142
|
+
WeekNamesService,
|
|
8143
|
+
NavigationService$1,
|
|
8144
|
+
TimePickerDOMService,
|
|
8145
|
+
HoursService,
|
|
8146
|
+
MinutesService,
|
|
8147
|
+
SecondsService,
|
|
8148
|
+
MillisecondsService,
|
|
8149
|
+
DayPeriodService,
|
|
8150
|
+
// TreeListModule providers
|
|
8151
|
+
ColumnResizingService
|
|
8152
|
+
], imports: [GanttComponent, ViewSelectorComponent, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, TimelineDayViewComponent, TimelineWeekViewComponent, TimelineMonthViewComponent, TimelineYearViewComponent, CustomMessagesComponent, GanttAddTaskComponent] });
|
|
8214
8153
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttModule, decorators: [{
|
|
8215
8154
|
type: NgModule,
|
|
8216
8155
|
args: [{
|
|
8217
|
-
imports: [...
|
|
8218
|
-
|
|
8219
|
-
exports: [...DECLARATIONS],
|
|
8156
|
+
imports: [...KENDO_GANTT],
|
|
8157
|
+
exports: [...KENDO_GANTT],
|
|
8220
8158
|
entryComponents: [DragValidationTooltipComponent],
|
|
8221
8159
|
providers: [{
|
|
8222
8160
|
provide: L10N_PREFIX,
|
|
@@ -8224,7 +8162,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
8224
8162
|
}, {
|
|
8225
8163
|
provide: TOUCH_ENABLED,
|
|
8226
8164
|
useValue: touchEnabled
|
|
8227
|
-
}
|
|
8165
|
+
},
|
|
8166
|
+
// InputsModule providers
|
|
8167
|
+
IconsService,
|
|
8168
|
+
PopupService,
|
|
8169
|
+
ResizeBatchService,
|
|
8170
|
+
DialogContainerService,
|
|
8171
|
+
DialogService,
|
|
8172
|
+
WindowService,
|
|
8173
|
+
WindowContainerService,
|
|
8174
|
+
// DateInputsModule providers
|
|
8175
|
+
CalendarDOMService,
|
|
8176
|
+
CenturyViewService,
|
|
8177
|
+
DecadeViewService,
|
|
8178
|
+
MonthViewService,
|
|
8179
|
+
YearViewService,
|
|
8180
|
+
WeekNamesService,
|
|
8181
|
+
NavigationService$1,
|
|
8182
|
+
TimePickerDOMService,
|
|
8183
|
+
HoursService,
|
|
8184
|
+
MinutesService,
|
|
8185
|
+
SecondsService,
|
|
8186
|
+
MillisecondsService,
|
|
8187
|
+
DayPeriodService,
|
|
8188
|
+
// TreeListModule providers
|
|
8189
|
+
ColumnResizingService
|
|
8190
|
+
]
|
|
8228
8191
|
}]
|
|
8229
8192
|
}] });
|
|
8230
8193
|
|
|
@@ -8232,5 +8195,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
8232
8195
|
* Generated bundle index. Do not edit.
|
|
8233
8196
|
*/
|
|
8234
8197
|
|
|
8235
|
-
export { CellCloseEvent, CellTemplateDirective, ColumnMenuTemplateDirective, CustomMessagesComponent, DependenciesTableComponent, DependencyDragCreateDirective, DependencyType, DragValidationTooltipComponent, EditDialogComponent, EditTemplateDirective, FilterCellTemplateDirective, FilterMenuTemplateDirective, FooterTemplateDirective, GanttAddTaskComponent, GanttColumnBase, GanttColumnComponent, GanttColumnGroupComponent, GanttComponent, GanttDependencyDirective, GanttExpandableDirective, GanttFlatBindingDirective, GanttHeaderTableBodyComponent, GanttHierarchyBindingDirective, GanttMilestoneTaskComponent, GanttModule, GanttSpanColumnComponent, GanttSummaryTaskComponent, GanttSummaryTaskTemplateDirective, GanttTaskComponent, GanttTaskContentTemplateDirective, GanttTaskTemplateDirective, GanttTasksTableBodyComponent, GanttTimelineComponent, HeaderTemplateDirective, LocalizedMessagesDirective, SelectableDirective, TaskFieldsComponent, TimelineDayViewComponent, TimelineMonthViewComponent, TimelineScrollableDirective, TimelineWeekViewComponent, TimelineYearViewComponent, ToolbarComponent, ToolbarTemplateDirective, ViewSelectorComponent };
|
|
8198
|
+
export { CellCloseEvent, CellTemplateDirective, ColumnMenuTemplateDirective, CustomMessagesComponent, DependenciesTableComponent, DependencyDragCreateDirective, DependencyType, DragValidationTooltipComponent, EditDialogComponent, EditTemplateDirective, FilterCellTemplateDirective, FilterMenuTemplateDirective, FooterTemplateDirective, GanttAddTaskComponent, GanttColumnBase, GanttColumnComponent, GanttColumnGroupComponent, GanttComponent, GanttDependencyDirective, GanttExpandableDirective, GanttFlatBindingDirective, GanttHeaderTableBodyComponent, GanttHierarchyBindingDirective, GanttMilestoneTaskComponent, GanttModule, GanttSpanColumnComponent, GanttSummaryTaskComponent, GanttSummaryTaskTemplateDirective, GanttTaskComponent, GanttTaskContentTemplateDirective, GanttTaskTemplateDirective, GanttTasksTableBodyComponent, GanttTimelineComponent, HeaderTemplateDirective, KENDO_GANTT, LocalizedMessagesDirective, SelectableDirective, TaskFieldsComponent, TimelineDayViewComponent, TimelineMonthViewComponent, TimelineScrollableDirective, TimelineWeekViewComponent, TimelineYearViewComponent, ToolbarComponent, ToolbarTemplateDirective, ViewSelectorComponent };
|
|
8236
8199
|
|