@progress/kendo-angular-gantt 16.5.0 → 16.6.0-develop.10
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/NOTICE.txt +12 -19
- 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 +23 -16
- package/esm2020/gantt.module.mjs +90 -222
- 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 +12 -13
- package/esm2020/rendering/gantt-summary-task.component.mjs +12 -13
- package/esm2020/rendering/gantt-task.component.mjs +14 -15
- 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 +1812 -1867
- package/fesm2020/progress-kendo-angular-gantt.mjs +1963 -2012
- 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 +3 -3
- package/rendering/gantt-summary-task.component.d.ts +3 -3
- package/rendering/gantt-task.component.d.ts +3 -3
- 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
- package/common/touch-enabled.d.ts +0 -9
- package/esm2020/common/touch-enabled.mjs +0 -9
|
@@ -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,
|
|
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, 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: 1722607229,
|
|
44
|
+
version: '16.6.0-develop.10',
|
|
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
|
*/
|
|
@@ -1091,11 +1341,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1091
1341
|
type: Injectable
|
|
1092
1342
|
}], ctorParameters: function () { return [{ type: MappingService }]; } });
|
|
1093
1343
|
|
|
1094
|
-
/**
|
|
1095
|
-
* @hidden
|
|
1096
|
-
*/
|
|
1097
|
-
const TOUCH_ENABLED = new InjectionToken('gantt-touch-enabled');
|
|
1098
|
-
|
|
1099
1344
|
/**
|
|
1100
1345
|
* @hidden
|
|
1101
1346
|
*/
|
|
@@ -1734,19 +1979,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1734
1979
|
* @hidden
|
|
1735
1980
|
*/
|
|
1736
1981
|
class GanttTaskComponent extends GanttTaskBase {
|
|
1737
|
-
constructor(editService,
|
|
1982
|
+
constructor(editService, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
|
|
1738
1983
|
super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
|
|
1739
1984
|
this.editService = editService;
|
|
1740
|
-
this.touchEnabled = touchEnabled;
|
|
1741
1985
|
this.xIcon = xIcon;
|
|
1986
|
+
this.touchEnabled = touchEnabled;
|
|
1742
1987
|
}
|
|
1743
1988
|
onTaskDelete() {
|
|
1744
1989
|
this.editService.dataItem = this.dataItem;
|
|
1745
1990
|
this.editService.taskDelete.next(this.dataItem);
|
|
1746
1991
|
}
|
|
1747
1992
|
}
|
|
1748
|
-
GanttTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskComponent, deps: [{ token: EditService }, { token:
|
|
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: [
|
|
1993
|
+
GanttTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskComponent, deps: [{ token: EditService }, { token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1994
|
+
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: [
|
|
1750
1995
|
{
|
|
1751
1996
|
provide: GanttTaskBase,
|
|
1752
1997
|
useExisting: forwardRef(() => GanttTaskComponent)
|
|
@@ -1822,7 +2067,7 @@ GanttTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
1822
2067
|
>
|
|
1823
2068
|
</div>
|
|
1824
2069
|
</ng-container>
|
|
1825
|
-
`, isInline: true, dependencies: [{ kind: "directive", type:
|
|
2070
|
+
`, 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"] }] });
|
|
1826
2071
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskComponent, decorators: [{
|
|
1827
2072
|
type: Component,
|
|
1828
2073
|
args: [{
|
|
@@ -1876,147 +2121,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1876
2121
|
[scope]="this"
|
|
1877
2122
|
>
|
|
1878
2123
|
<kendo-icon-wrapper
|
|
1879
|
-
icon="x"
|
|
1880
|
-
[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
|
-
>
|
|
2124
|
+
icon="x"
|
|
2125
|
+
[svgIcon]="xIcon"></kendo-icon-wrapper>
|
|
2126
|
+
</span>
|
|
2127
|
+
</span>
|
|
2015
2128
|
</div>
|
|
2016
|
-
</
|
|
2129
|
+
</ng-container>
|
|
2017
2130
|
<ng-template
|
|
2018
|
-
|
|
2019
|
-
[ngTemplateOutlet]="
|
|
2131
|
+
*ngIf="taskTemplate"
|
|
2132
|
+
[ngTemplateOutlet]="taskTemplate"
|
|
2020
2133
|
[ngTemplateOutletContext]="{
|
|
2021
2134
|
$implicit: dataItem,
|
|
2022
2135
|
elementWidth: taskWidth
|
|
@@ -2036,47 +2149,69 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
2036
2149
|
>
|
|
2037
2150
|
</div>
|
|
2038
2151
|
</ng-container>
|
|
2039
|
-
|
|
2152
|
+
`,
|
|
2153
|
+
standalone: true,
|
|
2154
|
+
imports: [NgClass, NgIf, NgTemplateOutlet, EventsOutsideAngularDirective, IconWrapperComponent]
|
|
2040
2155
|
}]
|
|
2041
|
-
}], ctorParameters: function () { return [{ type:
|
|
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: [{
|
|
2156
|
+
}], ctorParameters: function () { return [{ type: EditService }, { type: MappingService }, { type: TimelineViewService }, { type: DependencyDomService }, { type: OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; }, propDecorators: { taskContentTemplate: [{
|
|
2048
2157
|
type: Input
|
|
2049
|
-
}],
|
|
2158
|
+
}], taskTemplate: [{
|
|
2050
2159
|
type: Input
|
|
2051
2160
|
}] } });
|
|
2052
2161
|
|
|
2053
2162
|
/**
|
|
2054
2163
|
* @hidden
|
|
2055
2164
|
*/
|
|
2056
|
-
class
|
|
2057
|
-
constructor(
|
|
2165
|
+
class GanttSummaryTaskComponent extends GanttTaskBase {
|
|
2166
|
+
constructor(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
|
|
2058
2167
|
super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
|
|
2168
|
+
this.summaryWrapperClass = true;
|
|
2059
2169
|
this.touchEnabled = touchEnabled;
|
|
2060
|
-
|
|
2170
|
+
}
|
|
2171
|
+
get ariaExpanded() {
|
|
2172
|
+
// if no callback is provided, all child items are displayed and the item is regarded as expanded
|
|
2173
|
+
// replicates the TreeList aria-expanded behavior
|
|
2174
|
+
const isExpanded = !isPresent(this.isExpanded) || this.isExpanded(this.dataItem);
|
|
2175
|
+
return String(isExpanded);
|
|
2061
2176
|
}
|
|
2062
2177
|
}
|
|
2063
|
-
|
|
2064
|
-
|
|
2178
|
+
GanttSummaryTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttSummaryTaskComponent, deps: [{ token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2179
|
+
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: [
|
|
2065
2180
|
{
|
|
2066
2181
|
provide: GanttTaskBase,
|
|
2067
|
-
useExisting: forwardRef(() =>
|
|
2182
|
+
useExisting: forwardRef(() => GanttSummaryTaskComponent)
|
|
2068
2183
|
}
|
|
2069
2184
|
], usesInheritance: true, ngImport: i0, template: `
|
|
2070
2185
|
<div
|
|
2071
2186
|
#task
|
|
2072
2187
|
role="treeitem"
|
|
2073
|
-
class="k-task k-task-
|
|
2188
|
+
class="k-task k-task-summary"
|
|
2074
2189
|
[ngClass]="taskClass(dataItem)"
|
|
2190
|
+
[style.width.px]="taskWidth"
|
|
2075
2191
|
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
2076
2192
|
[class.k-selected]="isSelected(dataItem)"
|
|
2077
2193
|
[attr.aria-selected]="ariaSelected"
|
|
2194
|
+
[attr.aria-expanded]="ariaExpanded"
|
|
2078
2195
|
[attr.aria-level]="level + 1"
|
|
2079
2196
|
>
|
|
2197
|
+
<div *ngIf="!template; else summaryTemplate"
|
|
2198
|
+
class="k-task-summary-progress"
|
|
2199
|
+
[style.width.px]="taskWidth">
|
|
2200
|
+
<div
|
|
2201
|
+
class="k-task-summary-complete"
|
|
2202
|
+
[style.width.px]="completionOverlayWidth"
|
|
2203
|
+
>
|
|
2204
|
+
</div>
|
|
2205
|
+
</div>
|
|
2206
|
+
<ng-template
|
|
2207
|
+
#summaryTemplate
|
|
2208
|
+
[ngTemplateOutlet]="template"
|
|
2209
|
+
[ngTemplateOutletContext]="{
|
|
2210
|
+
$implicit: dataItem,
|
|
2211
|
+
elementWidth: taskWidth
|
|
2212
|
+
}"
|
|
2213
|
+
>
|
|
2214
|
+
</ng-template>
|
|
2080
2215
|
</div>
|
|
2081
2216
|
<ng-container *ngIf="renderDependencyDragClues">
|
|
2082
2217
|
<div
|
|
@@ -2090,498 +2225,304 @@ GanttMilestoneTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.
|
|
|
2090
2225
|
>
|
|
2091
2226
|
</div>
|
|
2092
2227
|
</ng-container>
|
|
2093
|
-
`, isInline: true, dependencies: [{ kind: "directive", type:
|
|
2094
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type:
|
|
2228
|
+
`, 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"] }] });
|
|
2229
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttSummaryTaskComponent, decorators: [{
|
|
2095
2230
|
type: Component,
|
|
2096
2231
|
args: [{
|
|
2097
|
-
selector: 'kendo-gantt-
|
|
2232
|
+
selector: 'kendo-gantt-summary-task',
|
|
2098
2233
|
providers: [
|
|
2099
2234
|
{
|
|
2100
2235
|
provide: GanttTaskBase,
|
|
2101
|
-
useExisting: forwardRef(() =>
|
|
2236
|
+
useExisting: forwardRef(() => GanttSummaryTaskComponent)
|
|
2102
2237
|
}
|
|
2103
2238
|
],
|
|
2104
2239
|
template: `
|
|
2105
2240
|
<div
|
|
2106
2241
|
#task
|
|
2107
2242
|
role="treeitem"
|
|
2108
|
-
class="k-task k-task-
|
|
2243
|
+
class="k-task k-task-summary"
|
|
2109
2244
|
[ngClass]="taskClass(dataItem)"
|
|
2245
|
+
[style.width.px]="taskWidth"
|
|
2110
2246
|
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
2111
2247
|
[class.k-selected]="isSelected(dataItem)"
|
|
2112
2248
|
[attr.aria-selected]="ariaSelected"
|
|
2249
|
+
[attr.aria-expanded]="ariaExpanded"
|
|
2113
2250
|
[attr.aria-level]="level + 1"
|
|
2114
2251
|
>
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
class
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
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
|
-
`
|
|
2252
|
+
<div *ngIf="!template; else summaryTemplate"
|
|
2253
|
+
class="k-task-summary-progress"
|
|
2254
|
+
[style.width.px]="taskWidth">
|
|
2255
|
+
<div
|
|
2256
|
+
class="k-task-summary-complete"
|
|
2257
|
+
[style.width.px]="completionOverlayWidth"
|
|
2258
|
+
>
|
|
2259
|
+
</div>
|
|
2260
|
+
</div>
|
|
2261
|
+
<ng-template
|
|
2262
|
+
#summaryTemplate
|
|
2263
|
+
[ngTemplateOutlet]="template"
|
|
2264
|
+
[ngTemplateOutletContext]="{
|
|
2265
|
+
$implicit: dataItem,
|
|
2266
|
+
elementWidth: taskWidth
|
|
2267
|
+
}"
|
|
2268
|
+
>
|
|
2269
|
+
</ng-template>
|
|
2270
|
+
</div>
|
|
2271
|
+
<ng-container *ngIf="renderDependencyDragClues">
|
|
2272
|
+
<div
|
|
2273
|
+
class="k-task-dot k-task-start k-touch-action-none"
|
|
2274
|
+
[class.k-display-block]="touchEnabled"
|
|
2275
|
+
>
|
|
2276
|
+
</div>
|
|
2277
|
+
<div
|
|
2278
|
+
class="k-task-dot k-task-end k-touch-action-none"
|
|
2279
|
+
[class.k-display-block]="touchEnabled"
|
|
2280
|
+
>
|
|
2281
|
+
</div>
|
|
2282
|
+
</ng-container>
|
|
2283
|
+
`,
|
|
2284
|
+
standalone: true,
|
|
2285
|
+
imports: [NgClass, NgIf, NgTemplateOutlet]
|
|
2317
2286
|
}]
|
|
2318
|
-
}], propDecorators: {
|
|
2287
|
+
}], ctorParameters: function () { return [{ type: MappingService }, { type: TimelineViewService }, { type: DependencyDomService }, { type: OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; }, propDecorators: { summaryWrapperClass: [{
|
|
2319
2288
|
type: HostBinding,
|
|
2320
|
-
args: ['class.k-
|
|
2321
|
-
}],
|
|
2289
|
+
args: ['class.k-summary-wrap']
|
|
2290
|
+
}], template: [{
|
|
2322
2291
|
type: Input
|
|
2323
|
-
}],
|
|
2292
|
+
}], isExpanded: [{
|
|
2324
2293
|
type: Input
|
|
2325
2294
|
}] } });
|
|
2326
2295
|
|
|
2327
|
-
/**
|
|
2328
|
-
* @hidden
|
|
2329
|
-
*
|
|
2330
|
-
* Gets the offset (top and left values) relative to a target element.
|
|
2331
|
-
*/
|
|
2332
|
-
const getOffsetRelativeToParent = (element, targetParent) => {
|
|
2333
|
-
const offset = {
|
|
2334
|
-
top: 0,
|
|
2335
|
-
left: 0
|
|
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;
|
|
2345
|
-
}
|
|
2346
|
-
return offset;
|
|
2347
|
-
};
|
|
2348
|
-
/**
|
|
2349
|
-
* @hidden
|
|
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
2296
|
/**
|
|
2360
2297
|
* @hidden
|
|
2361
2298
|
*/
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
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));
|
|
2299
|
+
class GanttMilestoneTaskComponent extends GanttTaskBase {
|
|
2300
|
+
constructor(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {
|
|
2301
|
+
super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);
|
|
2302
|
+
this.milestoneWrapperClass = true;
|
|
2303
|
+
this.touchEnabled = touchEnabled;
|
|
2391
2304
|
}
|
|
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 });
|
|
2305
|
+
}
|
|
2306
|
+
GanttMilestoneTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttMilestoneTaskComponent, deps: [{ token: MappingService }, { token: TimelineViewService }, { token: DependencyDomService }, { token: OptionChangesService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2307
|
+
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: [
|
|
2308
|
+
{
|
|
2309
|
+
provide: GanttTaskBase,
|
|
2310
|
+
useExisting: forwardRef(() => GanttMilestoneTaskComponent)
|
|
2428
2311
|
}
|
|
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
|
-
return {
|
|
2497
|
-
left: clientLeft - offsetContainerClientRect.left + offsetContainer.scrollLeft,
|
|
2498
|
-
top: clientTop - offsetContainerClientRect.top + offsetContainer.scrollTop
|
|
2499
|
-
};
|
|
2500
|
-
};
|
|
2501
|
-
/**
|
|
2502
|
-
* @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
|
-
*/
|
|
2508
|
-
const getElementClientCenterCoords = (element) => {
|
|
2509
|
-
// client (viewport) coordinates of the targeted element
|
|
2510
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect#value
|
|
2511
|
-
const { left, top, width, height } = element.getBoundingClientRect();
|
|
2512
|
-
return {
|
|
2513
|
-
left: left + (width / 2),
|
|
2514
|
-
top: top + (height / 2)
|
|
2515
|
-
};
|
|
2516
|
-
};
|
|
2312
|
+
], usesInheritance: true, ngImport: i0, template: `
|
|
2313
|
+
<div
|
|
2314
|
+
#task
|
|
2315
|
+
role="treeitem"
|
|
2316
|
+
class="k-task k-task-milestone"
|
|
2317
|
+
[ngClass]="taskClass(dataItem)"
|
|
2318
|
+
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
2319
|
+
[class.k-selected]="isSelected(dataItem)"
|
|
2320
|
+
[attr.aria-selected]="ariaSelected"
|
|
2321
|
+
[attr.aria-level]="level + 1"
|
|
2322
|
+
>
|
|
2323
|
+
</div>
|
|
2324
|
+
<ng-container *ngIf="renderDependencyDragClues">
|
|
2325
|
+
<div
|
|
2326
|
+
class="k-task-dot k-task-start k-touch-action-none"
|
|
2327
|
+
[class.k-display-block]="touchEnabled"
|
|
2328
|
+
>
|
|
2329
|
+
</div>
|
|
2330
|
+
<div
|
|
2331
|
+
class="k-task-dot k-task-end k-touch-action-none"
|
|
2332
|
+
[class.k-display-block]="touchEnabled"
|
|
2333
|
+
>
|
|
2334
|
+
</div>
|
|
2335
|
+
</ng-container>
|
|
2336
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
2337
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttMilestoneTaskComponent, decorators: [{
|
|
2338
|
+
type: Component,
|
|
2339
|
+
args: [{
|
|
2340
|
+
selector: 'kendo-gantt-milestone-task',
|
|
2341
|
+
providers: [
|
|
2342
|
+
{
|
|
2343
|
+
provide: GanttTaskBase,
|
|
2344
|
+
useExisting: forwardRef(() => GanttMilestoneTaskComponent)
|
|
2345
|
+
}
|
|
2346
|
+
],
|
|
2347
|
+
template: `
|
|
2348
|
+
<div
|
|
2349
|
+
#task
|
|
2350
|
+
role="treeitem"
|
|
2351
|
+
class="k-task k-task-milestone"
|
|
2352
|
+
[ngClass]="taskClass(dataItem)"
|
|
2353
|
+
[attr.title]="mapper.extractFromTask(dataItem, 'title')"
|
|
2354
|
+
[class.k-selected]="isSelected(dataItem)"
|
|
2355
|
+
[attr.aria-selected]="ariaSelected"
|
|
2356
|
+
[attr.aria-level]="level + 1"
|
|
2357
|
+
>
|
|
2358
|
+
</div>
|
|
2359
|
+
<ng-container *ngIf="renderDependencyDragClues">
|
|
2360
|
+
<div
|
|
2361
|
+
class="k-task-dot k-task-start k-touch-action-none"
|
|
2362
|
+
[class.k-display-block]="touchEnabled"
|
|
2363
|
+
>
|
|
2364
|
+
</div>
|
|
2365
|
+
<div
|
|
2366
|
+
class="k-task-dot k-task-end k-touch-action-none"
|
|
2367
|
+
[class.k-display-block]="touchEnabled"
|
|
2368
|
+
>
|
|
2369
|
+
</div>
|
|
2370
|
+
</ng-container>
|
|
2371
|
+
`,
|
|
2372
|
+
standalone: true,
|
|
2373
|
+
imports: [NgClass, NgIf]
|
|
2374
|
+
}]
|
|
2375
|
+
}], ctorParameters: function () { return [{ type: MappingService }, { type: TimelineViewService }, { type: DependencyDomService }, { type: OptionChangesService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; }, propDecorators: { milestoneWrapperClass: [{
|
|
2376
|
+
type: HostBinding,
|
|
2377
|
+
args: ['class.k-milestone-wrap']
|
|
2378
|
+
}] } });
|
|
2517
2379
|
|
|
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
2380
|
/**
|
|
2527
2381
|
* @hidden
|
|
2528
2382
|
*/
|
|
2529
|
-
class
|
|
2530
|
-
constructor(
|
|
2531
|
-
this.polyline = polyline;
|
|
2532
|
-
this.zone = zone;
|
|
2533
|
-
this.renderer = renderer;
|
|
2534
|
-
this.mapper = mapper;
|
|
2383
|
+
class GanttTasksTableBodyComponent {
|
|
2384
|
+
constructor(dependencyDomService, mapper) {
|
|
2535
2385
|
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
|
-
}
|
|
2386
|
+
this.mapper = mapper;
|
|
2551
2387
|
}
|
|
2552
|
-
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
this.
|
|
2557
|
-
return;
|
|
2388
|
+
set timelineRow(timelineRow) {
|
|
2389
|
+
// register the row value only when the first row is rendered
|
|
2390
|
+
// with server-side data-binding, the rows rendering could be delayed
|
|
2391
|
+
if (isPresent(timelineRow)) {
|
|
2392
|
+
this.dependencyDomService.registerTimelineRow(timelineRow.nativeElement);
|
|
2558
2393
|
}
|
|
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
2394
|
}
|
|
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);
|
|
2395
|
+
isMileStone(item) {
|
|
2396
|
+
return !item.hasChildren && isEqual(this.mapper.extractFromTask(item.data, 'start'), this.mapper.extractFromTask(item.data, 'end'));
|
|
2575
2397
|
}
|
|
2576
2398
|
}
|
|
2577
|
-
|
|
2578
|
-
|
|
2579
|
-
|
|
2580
|
-
|
|
2399
|
+
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 });
|
|
2400
|
+
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: `
|
|
2401
|
+
<tr class="k-table-row" #timelineRow *ngFor="let item of rows; let index = index">
|
|
2402
|
+
<td class="k-table-td">
|
|
2403
|
+
<kendo-gantt-milestone-task
|
|
2404
|
+
*ngIf="isMileStone(item); else task"
|
|
2405
|
+
[dataItem]="item.data"
|
|
2406
|
+
[level]="item.level"
|
|
2407
|
+
[activeView]="activeView"
|
|
2408
|
+
[taskClass]="taskClass"
|
|
2409
|
+
[selectable]="selectable"
|
|
2410
|
+
[isSelected]="isTaskSelected"
|
|
2411
|
+
[index]="index"
|
|
2412
|
+
[renderDependencyDragClues]="renderDependencyDragClues"
|
|
2413
|
+
>
|
|
2414
|
+
</kendo-gantt-milestone-task>
|
|
2415
|
+
<ng-template #task>
|
|
2416
|
+
<kendo-gantt-summary-task
|
|
2417
|
+
*ngIf="item.hasChildren"
|
|
2418
|
+
[dataItem]="item.data"
|
|
2419
|
+
[level]="item.level"
|
|
2420
|
+
[template]="summaryTaskTemplate"
|
|
2421
|
+
[activeView]="activeView"
|
|
2422
|
+
[taskClass]="taskClass"
|
|
2423
|
+
[selectable]="selectable"
|
|
2424
|
+
[isSelected]="isTaskSelected"
|
|
2425
|
+
[isExpanded]="isExpanded"
|
|
2426
|
+
[index]="index"
|
|
2427
|
+
[renderDependencyDragClues]="renderDependencyDragClues"
|
|
2428
|
+
>
|
|
2429
|
+
</kendo-gantt-summary-task>
|
|
2430
|
+
<kendo-gantt-task
|
|
2431
|
+
*ngIf="!item.hasChildren"
|
|
2432
|
+
[dataItem]="item.data"
|
|
2433
|
+
[level]="item.level"
|
|
2434
|
+
[taskContentTemplate]="taskContentTemplate"
|
|
2435
|
+
[taskTemplate]="taskTemplate"
|
|
2436
|
+
[activeView]="activeView"
|
|
2437
|
+
[taskClass]="taskClass"
|
|
2438
|
+
[selectable]="selectable"
|
|
2439
|
+
[isSelected]="isTaskSelected"
|
|
2440
|
+
[index]="index"
|
|
2441
|
+
[renderDependencyDragClues]="renderDependencyDragClues"
|
|
2442
|
+
>
|
|
2443
|
+
</kendo-gantt-task>
|
|
2444
|
+
</ng-template>
|
|
2445
|
+
</td>
|
|
2446
|
+
</tr>
|
|
2447
|
+
`, 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"] }] });
|
|
2448
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTasksTableBodyComponent, decorators: [{
|
|
2449
|
+
type: Component,
|
|
2581
2450
|
args: [{
|
|
2582
|
-
selector
|
|
2451
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
2452
|
+
selector: '[kendoGanttTasksTableBody]',
|
|
2453
|
+
template: `
|
|
2454
|
+
<tr class="k-table-row" #timelineRow *ngFor="let item of rows; let index = index">
|
|
2455
|
+
<td class="k-table-td">
|
|
2456
|
+
<kendo-gantt-milestone-task
|
|
2457
|
+
*ngIf="isMileStone(item); else task"
|
|
2458
|
+
[dataItem]="item.data"
|
|
2459
|
+
[level]="item.level"
|
|
2460
|
+
[activeView]="activeView"
|
|
2461
|
+
[taskClass]="taskClass"
|
|
2462
|
+
[selectable]="selectable"
|
|
2463
|
+
[isSelected]="isTaskSelected"
|
|
2464
|
+
[index]="index"
|
|
2465
|
+
[renderDependencyDragClues]="renderDependencyDragClues"
|
|
2466
|
+
>
|
|
2467
|
+
</kendo-gantt-milestone-task>
|
|
2468
|
+
<ng-template #task>
|
|
2469
|
+
<kendo-gantt-summary-task
|
|
2470
|
+
*ngIf="item.hasChildren"
|
|
2471
|
+
[dataItem]="item.data"
|
|
2472
|
+
[level]="item.level"
|
|
2473
|
+
[template]="summaryTaskTemplate"
|
|
2474
|
+
[activeView]="activeView"
|
|
2475
|
+
[taskClass]="taskClass"
|
|
2476
|
+
[selectable]="selectable"
|
|
2477
|
+
[isSelected]="isTaskSelected"
|
|
2478
|
+
[isExpanded]="isExpanded"
|
|
2479
|
+
[index]="index"
|
|
2480
|
+
[renderDependencyDragClues]="renderDependencyDragClues"
|
|
2481
|
+
>
|
|
2482
|
+
</kendo-gantt-summary-task>
|
|
2483
|
+
<kendo-gantt-task
|
|
2484
|
+
*ngIf="!item.hasChildren"
|
|
2485
|
+
[dataItem]="item.data"
|
|
2486
|
+
[level]="item.level"
|
|
2487
|
+
[taskContentTemplate]="taskContentTemplate"
|
|
2488
|
+
[taskTemplate]="taskTemplate"
|
|
2489
|
+
[activeView]="activeView"
|
|
2490
|
+
[taskClass]="taskClass"
|
|
2491
|
+
[selectable]="selectable"
|
|
2492
|
+
[isSelected]="isTaskSelected"
|
|
2493
|
+
[index]="index"
|
|
2494
|
+
[renderDependencyDragClues]="renderDependencyDragClues"
|
|
2495
|
+
>
|
|
2496
|
+
</kendo-gantt-task>
|
|
2497
|
+
</ng-template>
|
|
2498
|
+
</td>
|
|
2499
|
+
</tr>
|
|
2500
|
+
`,
|
|
2501
|
+
standalone: true,
|
|
2502
|
+
imports: [NgFor, NgIf, GanttMilestoneTaskComponent, GanttSummaryTaskComponent, GanttTaskComponent]
|
|
2583
2503
|
}]
|
|
2584
|
-
}], ctorParameters: function () { return [{ type:
|
|
2504
|
+
}], ctorParameters: function () { return [{ type: DependencyDomService }, { type: MappingService }]; }, propDecorators: { timelineRow: [{
|
|
2505
|
+
type: ViewChild,
|
|
2506
|
+
args: ['timelineRow', { static: false }]
|
|
2507
|
+
}], selectable: [{
|
|
2508
|
+
type: Input
|
|
2509
|
+
}], rows: [{
|
|
2510
|
+
type: Input
|
|
2511
|
+
}], activeView: [{
|
|
2512
|
+
type: Input
|
|
2513
|
+
}], taskContentTemplate: [{
|
|
2514
|
+
type: Input
|
|
2515
|
+
}], taskTemplate: [{
|
|
2516
|
+
type: Input
|
|
2517
|
+
}], summaryTaskTemplate: [{
|
|
2518
|
+
type: Input
|
|
2519
|
+
}], taskClass: [{
|
|
2520
|
+
type: Input
|
|
2521
|
+
}], isExpanded: [{
|
|
2522
|
+
type: Input
|
|
2523
|
+
}], isTaskSelected: [{
|
|
2524
|
+
type: Input
|
|
2525
|
+
}], renderDependencyDragClues: [{
|
|
2585
2526
|
type: Input
|
|
2586
2527
|
}] } });
|
|
2587
2528
|
|
|
@@ -2761,16 +2702,61 @@ class TimelineScrollableDirective {
|
|
|
2761
2702
|
}
|
|
2762
2703
|
}
|
|
2763
2704
|
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 });
|
|
2705
|
+
TimelineScrollableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: TimelineScrollableDirective, isStandalone: true, selector: "[kendoGanttTimelineScrollable]", inputs: { scrollSettings: "scrollSettings" }, ngImport: i0 });
|
|
2765
2706
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineScrollableDirective, decorators: [{
|
|
2766
2707
|
type: Directive,
|
|
2767
2708
|
args: [{
|
|
2768
|
-
selector: '[kendoGanttTimelineScrollable]'
|
|
2709
|
+
selector: '[kendoGanttTimelineScrollable]',
|
|
2710
|
+
standalone: true
|
|
2769
2711
|
}]
|
|
2770
2712
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: TimelineScrollService }, { type: i0.NgZone }]; }, propDecorators: { scrollSettings: [{
|
|
2771
2713
|
type: Input
|
|
2772
2714
|
}] } });
|
|
2773
2715
|
|
|
2716
|
+
/**
|
|
2717
|
+
* @hidden
|
|
2718
|
+
*/
|
|
2719
|
+
class GanttHeaderTableBodyComponent {
|
|
2720
|
+
constructor() {
|
|
2721
|
+
this.tbodyClass = true;
|
|
2722
|
+
}
|
|
2723
|
+
}
|
|
2724
|
+
GanttHeaderTableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttHeaderTableBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2725
|
+
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: `
|
|
2726
|
+
<tr class="k-table-row">
|
|
2727
|
+
<td *ngFor="let item of groupSlots" [attr.colspan]="item.span" class="k-header k-table-td">{{ item.text }}</td>
|
|
2728
|
+
</tr>
|
|
2729
|
+
|
|
2730
|
+
<tr class="k-table-row">
|
|
2731
|
+
<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>
|
|
2732
|
+
</tr>
|
|
2733
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
2734
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttHeaderTableBodyComponent, decorators: [{
|
|
2735
|
+
type: Component,
|
|
2736
|
+
args: [{
|
|
2737
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
2738
|
+
selector: '[kendoGanttHeaderTableBody]',
|
|
2739
|
+
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
|
+
`,
|
|
2748
|
+
standalone: true,
|
|
2749
|
+
imports: [NgFor]
|
|
2750
|
+
}]
|
|
2751
|
+
}], propDecorators: { tbodyClass: [{
|
|
2752
|
+
type: HostBinding,
|
|
2753
|
+
args: ['class.k-table-tbody']
|
|
2754
|
+
}], groupSlots: [{
|
|
2755
|
+
type: Input
|
|
2756
|
+
}], slots: [{
|
|
2757
|
+
type: Input
|
|
2758
|
+
}] } });
|
|
2759
|
+
|
|
2774
2760
|
/**
|
|
2775
2761
|
* @hidden
|
|
2776
2762
|
*/
|
|
@@ -2840,7 +2826,7 @@ class GanttTimelineComponent {
|
|
|
2840
2826
|
}
|
|
2841
2827
|
}
|
|
2842
2828
|
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: `
|
|
2829
|
+
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
2830
|
<div class="k-gantt-timeline k-grid k-grid-md">
|
|
2845
2831
|
<div class="k-grid-header">
|
|
2846
2832
|
<div #timelineHeaderWrap class="k-grid-header-wrap">
|
|
@@ -2943,7 +2929,7 @@ GanttTimelineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
2943
2929
|
<ng-container #dragPopupContainer></ng-container>
|
|
2944
2930
|
</div>
|
|
2945
2931
|
</div>
|
|
2946
|
-
`, isInline: true, dependencies: [{ kind: "directive", type:
|
|
2932
|
+
`, 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
2933
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTimelineComponent, decorators: [{
|
|
2948
2934
|
type: Component,
|
|
2949
2935
|
args: [{
|
|
@@ -3051,7 +3037,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3051
3037
|
<ng-container #dragPopupContainer></ng-container>
|
|
3052
3038
|
</div>
|
|
3053
3039
|
</div>
|
|
3054
|
-
|
|
3040
|
+
`,
|
|
3041
|
+
standalone: true,
|
|
3042
|
+
imports: [TableDirective, GanttHeaderTableBodyComponent, TimelineScrollableDirective, DraggableDirective, NgFor, GanttTasksTableBodyComponent, GanttDependencyDirective]
|
|
3055
3043
|
}]
|
|
3056
3044
|
}], ctorParameters: function () { return [{ type: ScrollSyncService }, { type: DependencyDomService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: CurrentTimeMarkerService }]; }, propDecorators: { timelineContent: [{
|
|
3057
3045
|
type: ViewChild,
|
|
@@ -3182,11 +3170,12 @@ class CellTemplateDirective {
|
|
|
3182
3170
|
}
|
|
3183
3171
|
}
|
|
3184
3172
|
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 });
|
|
3173
|
+
CellTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CellTemplateDirective, isStandalone: true, selector: "[kendoGanttCellTemplate]", ngImport: i0 });
|
|
3186
3174
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CellTemplateDirective, decorators: [{
|
|
3187
3175
|
type: Directive,
|
|
3188
3176
|
args: [{
|
|
3189
|
-
selector: '[kendoGanttCellTemplate]'
|
|
3177
|
+
selector: '[kendoGanttCellTemplate]',
|
|
3178
|
+
standalone: true
|
|
3190
3179
|
}]
|
|
3191
3180
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3192
3181
|
type: Optional
|
|
@@ -3208,11 +3197,12 @@ class ColumnMenuTemplateDirective {
|
|
|
3208
3197
|
}
|
|
3209
3198
|
}
|
|
3210
3199
|
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 });
|
|
3200
|
+
ColumnMenuTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ColumnMenuTemplateDirective, isStandalone: true, selector: "[kendoGanttColumnMenuTemplate]", ngImport: i0 });
|
|
3212
3201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnMenuTemplateDirective, decorators: [{
|
|
3213
3202
|
type: Directive,
|
|
3214
3203
|
args: [{
|
|
3215
|
-
selector: '[kendoGanttColumnMenuTemplate]'
|
|
3204
|
+
selector: '[kendoGanttColumnMenuTemplate]',
|
|
3205
|
+
standalone: true
|
|
3216
3206
|
}]
|
|
3217
3207
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3218
3208
|
type: Optional
|
|
@@ -3233,11 +3223,12 @@ class FilterCellTemplateDirective {
|
|
|
3233
3223
|
}
|
|
3234
3224
|
}
|
|
3235
3225
|
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 });
|
|
3226
|
+
FilterCellTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FilterCellTemplateDirective, isStandalone: true, selector: "[kendoGanttFilterCellTemplate]", ngImport: i0 });
|
|
3237
3227
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterCellTemplateDirective, decorators: [{
|
|
3238
3228
|
type: Directive,
|
|
3239
3229
|
args: [{
|
|
3240
|
-
selector: '[kendoGanttFilterCellTemplate]'
|
|
3230
|
+
selector: '[kendoGanttFilterCellTemplate]',
|
|
3231
|
+
standalone: true
|
|
3241
3232
|
}]
|
|
3242
3233
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3243
3234
|
type: Optional
|
|
@@ -3257,11 +3248,12 @@ class FilterMenuTemplateDirective {
|
|
|
3257
3248
|
}
|
|
3258
3249
|
}
|
|
3259
3250
|
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 });
|
|
3251
|
+
FilterMenuTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FilterMenuTemplateDirective, isStandalone: true, selector: "[kendoGanttFilterMenuTemplate]", ngImport: i0 });
|
|
3261
3252
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterMenuTemplateDirective, decorators: [{
|
|
3262
3253
|
type: Directive,
|
|
3263
3254
|
args: [{
|
|
3264
|
-
selector: '[kendoGanttFilterMenuTemplate]'
|
|
3255
|
+
selector: '[kendoGanttFilterMenuTemplate]',
|
|
3256
|
+
standalone: true
|
|
3265
3257
|
}]
|
|
3266
3258
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3267
3259
|
type: Optional
|
|
@@ -3285,11 +3277,12 @@ class FooterTemplateDirective {
|
|
|
3285
3277
|
}
|
|
3286
3278
|
}
|
|
3287
3279
|
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 });
|
|
3280
|
+
FooterTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FooterTemplateDirective, isStandalone: true, selector: "[kendoGanttFooterTemplate]", ngImport: i0 });
|
|
3289
3281
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FooterTemplateDirective, decorators: [{
|
|
3290
3282
|
type: Directive,
|
|
3291
3283
|
args: [{
|
|
3292
|
-
selector: '[kendoGanttFooterTemplate]'
|
|
3284
|
+
selector: '[kendoGanttFooterTemplate]',
|
|
3285
|
+
standalone: true
|
|
3293
3286
|
}]
|
|
3294
3287
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3295
3288
|
type: Optional
|
|
@@ -3311,11 +3304,12 @@ class HeaderTemplateDirective {
|
|
|
3311
3304
|
}
|
|
3312
3305
|
}
|
|
3313
3306
|
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 });
|
|
3307
|
+
HeaderTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: HeaderTemplateDirective, isStandalone: true, selector: "[kendoGanttHeaderTemplate]", ngImport: i0 });
|
|
3315
3308
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: HeaderTemplateDirective, decorators: [{
|
|
3316
3309
|
type: Directive,
|
|
3317
3310
|
args: [{
|
|
3318
|
-
selector: '[kendoGanttHeaderTemplate]'
|
|
3311
|
+
selector: '[kendoGanttHeaderTemplate]',
|
|
3312
|
+
standalone: true
|
|
3319
3313
|
}]
|
|
3320
3314
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3321
3315
|
type: Optional
|
|
@@ -3341,11 +3335,12 @@ class EditTemplateDirective {
|
|
|
3341
3335
|
}
|
|
3342
3336
|
}
|
|
3343
3337
|
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 });
|
|
3338
|
+
EditTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: EditTemplateDirective, isStandalone: true, selector: "[kendoGanttEditTemplate]", ngImport: i0 });
|
|
3345
3339
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditTemplateDirective, decorators: [{
|
|
3346
3340
|
type: Directive,
|
|
3347
3341
|
args: [{
|
|
3348
|
-
selector: '[kendoGanttEditTemplate]'
|
|
3342
|
+
selector: '[kendoGanttEditTemplate]',
|
|
3343
|
+
standalone: true
|
|
3349
3344
|
}]
|
|
3350
3345
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3351
3346
|
type: Optional
|
|
@@ -3395,7 +3390,7 @@ class GanttColumnComponent extends ColumnComponent {
|
|
|
3395
3390
|
}
|
|
3396
3391
|
}
|
|
3397
3392
|
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: [
|
|
3393
|
+
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
3394
|
{
|
|
3400
3395
|
provide: GanttColumnBase,
|
|
3401
3396
|
useExisting: forwardRef(() => GanttColumnComponent)
|
|
@@ -3411,7 +3406,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3411
3406
|
provide: GanttColumnBase,
|
|
3412
3407
|
useExisting: forwardRef(() => GanttColumnComponent)
|
|
3413
3408
|
}
|
|
3414
|
-
]
|
|
3409
|
+
],
|
|
3410
|
+
standalone: true
|
|
3415
3411
|
}]
|
|
3416
3412
|
}], ctorParameters: function () { return [{ type: OptionChangesService }, { type: GanttColumnBase, decorators: [{
|
|
3417
3413
|
type: SkipSelf
|
|
@@ -3507,7 +3503,7 @@ class GanttColumnGroupComponent extends ColumnGroupComponent {
|
|
|
3507
3503
|
}
|
|
3508
3504
|
}
|
|
3509
3505
|
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: [
|
|
3506
|
+
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
3507
|
{
|
|
3512
3508
|
provide: GanttColumnBase,
|
|
3513
3509
|
useExisting: forwardRef(() => GanttColumnGroupComponent)
|
|
@@ -3523,7 +3519,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3523
3519
|
provide: GanttColumnBase,
|
|
3524
3520
|
useExisting: forwardRef(() => GanttColumnGroupComponent)
|
|
3525
3521
|
}
|
|
3526
|
-
]
|
|
3522
|
+
],
|
|
3523
|
+
standalone: true
|
|
3527
3524
|
}]
|
|
3528
3525
|
}], ctorParameters: function () { return [{ type: OptionChangesService }, { type: GanttColumnBase, decorators: [{
|
|
3529
3526
|
type: SkipSelf
|
|
@@ -3610,7 +3607,7 @@ class GanttSpanColumnComponent extends SpanColumnComponent {
|
|
|
3610
3607
|
}
|
|
3611
3608
|
}
|
|
3612
3609
|
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: [
|
|
3610
|
+
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
3611
|
{
|
|
3615
3612
|
provide: GanttColumnBase,
|
|
3616
3613
|
useExisting: forwardRef(() => GanttSpanColumnComponent)
|
|
@@ -3626,7 +3623,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3626
3623
|
provide: GanttColumnBase,
|
|
3627
3624
|
useExisting: forwardRef(() => GanttSpanColumnComponent)
|
|
3628
3625
|
}
|
|
3629
|
-
]
|
|
3626
|
+
],
|
|
3627
|
+
standalone: true
|
|
3630
3628
|
}]
|
|
3631
3629
|
}], ctorParameters: function () { return [{ type: OptionChangesService }, { type: GanttColumnBase, decorators: [{
|
|
3632
3630
|
type: SkipSelf
|
|
@@ -3768,11 +3766,12 @@ class GanttTaskTemplateDirective {
|
|
|
3768
3766
|
}
|
|
3769
3767
|
}
|
|
3770
3768
|
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 });
|
|
3769
|
+
GanttTaskTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttTaskTemplateDirective, isStandalone: true, selector: "[kendoGanttTaskTemplate]", ngImport: i0 });
|
|
3772
3770
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskTemplateDirective, decorators: [{
|
|
3773
3771
|
type: Directive,
|
|
3774
3772
|
args: [{
|
|
3775
|
-
selector: '[kendoGanttTaskTemplate]'
|
|
3773
|
+
selector: '[kendoGanttTaskTemplate]',
|
|
3774
|
+
standalone: true
|
|
3776
3775
|
}]
|
|
3777
3776
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3778
3777
|
type: Optional
|
|
@@ -3787,619 +3786,263 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3787
3786
|
* - `elementWidth`—The current summary task wrapper element's calculated width in pixels based on its start and end date.
|
|
3788
3787
|
* Use it as an alias for a template variable by utilizing the `let-elementWidth="elementWidth"` syntax.
|
|
3789
3788
|
* Useful for calculations related to rendering custom elements representing the task progress.
|
|
3790
|
-
*
|
|
3791
|
-
* @example
|
|
3792
|
-
* ```ts-preview
|
|
3793
|
-
* _@Component({
|
|
3794
|
-
* selector: 'my-app',
|
|
3795
|
-
* template: `
|
|
3796
|
-
* <kendo-gantt [kendoGanttHierarchyBinding]="data">
|
|
3797
|
-
* <ng-template kendoGanttSummaryTaskTemplate let-dataItem let-elementWidth="elementWidth">
|
|
3798
|
-
* <div [style]="'color: white; font-size: 8px;'">
|
|
3799
|
-
* {{ dataItem.title }} - {{ dataItem.completionRatio * 100 }}% complete; width: {{ elementWidth }}
|
|
3800
|
-
* </div>
|
|
3801
|
-
* </ng-template>
|
|
3802
|
-
* </kendo-gantt>
|
|
3803
|
-
* `
|
|
3804
|
-
* })
|
|
3805
|
-
* class AppComponent {
|
|
3806
|
-
* public data: any[] = sampleTasks;
|
|
3807
|
-
* }
|
|
3808
|
-
* ```
|
|
3809
|
-
*/
|
|
3810
|
-
class GanttSummaryTaskTemplateDirective {
|
|
3811
|
-
constructor(templateRef) {
|
|
3812
|
-
this.templateRef = templateRef;
|
|
3813
|
-
}
|
|
3814
|
-
}
|
|
3815
|
-
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 });
|
|
3817
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttSummaryTaskTemplateDirective, decorators: [{
|
|
3818
|
-
type: Directive,
|
|
3819
|
-
args: [{
|
|
3820
|
-
selector: '[kendoGanttSummaryTaskTemplate]'
|
|
3821
|
-
}]
|
|
3822
|
-
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3823
|
-
type: Optional
|
|
3824
|
-
}] }]; } });
|
|
3825
|
-
|
|
3826
|
-
/**
|
|
3827
|
-
* Represents a template that defines the text content section of the task component.
|
|
3828
|
-
* To define the template, nest an `<ng-template>` tag
|
|
3829
|
-
* with the `kendoGanttTaskContentTemplate` directive inside the `<kendo-gantt>` tag.
|
|
3830
|
-
*
|
|
3831
|
-
* The template context is set to the current data item.
|
|
3832
|
-
*
|
|
3833
|
-
* @example
|
|
3834
|
-
* ```ts-preview
|
|
3835
|
-
* _@Component({
|
|
3836
|
-
* selector: 'my-app',
|
|
3837
|
-
* template: `
|
|
3838
|
-
* <kendo-gantt [kendoGanttHierarchyBinding]="data">
|
|
3839
|
-
* <ng-template kendoGanttTaskContentTemplate let-dataItem>
|
|
3840
|
-
* {{ dataItem.title }} - {{ dataItem.completionRatio * 100 }}% complete
|
|
3841
|
-
* </ng-template>
|
|
3842
|
-
* </kendo-gantt>
|
|
3843
|
-
* `
|
|
3844
|
-
* })
|
|
3845
|
-
* class AppComponent {
|
|
3846
|
-
* public data: any[] = sampleTasks;
|
|
3847
|
-
* }
|
|
3848
|
-
* ```
|
|
3849
|
-
*/
|
|
3850
|
-
class GanttTaskContentTemplateDirective {
|
|
3851
|
-
constructor(templateRef) {
|
|
3852
|
-
this.templateRef = templateRef;
|
|
3853
|
-
}
|
|
3854
|
-
}
|
|
3855
|
-
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 });
|
|
3857
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskContentTemplateDirective, decorators: [{
|
|
3858
|
-
type: Directive,
|
|
3859
|
-
args: [{
|
|
3860
|
-
selector: '[kendoGanttTaskContentTemplate]'
|
|
3861
|
-
}]
|
|
3862
|
-
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3863
|
-
type: Optional
|
|
3864
|
-
}] }]; } });
|
|
3865
|
-
|
|
3866
|
-
/**
|
|
3867
|
-
* Represents the toolbar template of the Gantt.
|
|
3868
|
-
*
|
|
3869
|
-
* The template context has the following field:
|
|
3870
|
-
* - `position`—The position at which the toolbar template is rendered. The possible values are `'top'` and `'bottom'`.
|
|
3871
|
-
*
|
|
3872
|
-
* @example
|
|
3873
|
-
* ```ts-preview
|
|
3874
|
-
*
|
|
3875
|
-
* _@Component({
|
|
3876
|
-
* selector: 'my-app',
|
|
3877
|
-
* template: `
|
|
3878
|
-
* <div class="example-config">
|
|
3879
|
-
* <input type="radio" kendoRadioButton id="top" name="position" value="top" checked (click)="positionChange($event)"/>
|
|
3880
|
-
* <kendo-label class="k-radio-label" for="top">Top</kendo-label><br/>
|
|
3881
|
-
* <input type="radio" kendoRadioButton id="bottom" name="position" value="bottom" (click)="positionChange($event)"/>
|
|
3882
|
-
* <kendo-label class="k-radio-label" for="bottom">Bottom</kendo-label><br/>
|
|
3883
|
-
* <input type="radio" kendoRadioButton id="both" name="position" value="both" (click)="positionChange($event)"/>
|
|
3884
|
-
* <kendo-label class="k-radio-label" for="both">Both</kendo-label><br/>
|
|
3885
|
-
* </div>
|
|
3886
|
-
* <kendo-gantt [[kendoGanttHierarchyBinding]="data"]="data" [style.height.px]="400">
|
|
3887
|
-
* <ng-template kendoGanttToolbarTemplate [position]="position" let-position="position">
|
|
3888
|
-
* <button kendoButton (click)="onClick()">Custom action</button>
|
|
3889
|
-
* </ng-template>
|
|
3890
|
-
* </kendo-gantt>
|
|
3891
|
-
* `
|
|
3892
|
-
* })
|
|
3893
|
-
*
|
|
3894
|
-
* class AppComponent {
|
|
3895
|
-
* public position: 'top' | 'bottom' | 'both' = 'top';
|
|
3896
|
-
*
|
|
3897
|
-
* public data = [{
|
|
3898
|
-
* id: 7,
|
|
3899
|
-
* title: "Software validation, research and implementation",
|
|
3900
|
-
* orderId: 0,
|
|
3901
|
-
* start: new Date("2014-06-02T00:00:00.000Z"),
|
|
3902
|
-
* end: new Date("2014-07-12T00:00:00.000Z"),
|
|
3903
|
-
* completionRatio: 0.45708333333333334,
|
|
3904
|
-
* isExpanded: true,
|
|
3905
|
-
* children: [{
|
|
3906
|
-
* id: 11,
|
|
3907
|
-
* title: "Research",
|
|
3908
|
-
* orderId: 1,
|
|
3909
|
-
* start: new Date("2014-06-02T00:00:00.000Z"),
|
|
3910
|
-
* end: new Date("2014-06-07T00:00:00.000Z"),
|
|
3911
|
-
* completionRatio: 0.5766666666666667,
|
|
3912
|
-
* isExpanded: true,
|
|
3913
|
-
* children: [{
|
|
3914
|
-
* id: 19,
|
|
3915
|
-
* title: "Validation with Customers",
|
|
3916
|
-
* orderId: 0,
|
|
3917
|
-
* start: new Date("2014-06-02T00:00:00.000Z"),
|
|
3918
|
-
* end: new Date("2014-06-04T00:00:00.000Z"),
|
|
3919
|
-
* completionRatio: 0.25,
|
|
3920
|
-
* isExpanded: true
|
|
3921
|
-
* },
|
|
3922
|
-
* {
|
|
3923
|
-
* id: 20,
|
|
3924
|
-
* title: "Market Research",
|
|
3925
|
-
* orderId: 1,
|
|
3926
|
-
* start: new Date("2014-06-02T00:00:00.000Z"),
|
|
3927
|
-
* end: new Date("2014-06-03T02:00:00.000Z"),
|
|
3928
|
-
* completionRatio: 0.82,
|
|
3929
|
-
* isExpanded: true
|
|
3930
|
-
* },
|
|
3931
|
-
* {
|
|
3932
|
-
* id: 39,
|
|
3933
|
-
* title: "Functional and Technical Specification",
|
|
3934
|
-
* orderId: 2,
|
|
3935
|
-
* start: new Date("2014-06-04T00:00:00.000Z"),
|
|
3936
|
-
* end: new Date("2014-06-07T00:00:00.000Z"),
|
|
3937
|
-
* completionRatio: 0.66,
|
|
3938
|
-
* isExpanded: true
|
|
3939
|
-
* }]
|
|
3940
|
-
* }]
|
|
3941
|
-
* };
|
|
3942
|
-
*
|
|
3943
|
-
* public positionChange(event: MouseEvent): void {
|
|
3944
|
-
* this.position = event.target['defaultValue'];
|
|
3945
|
-
* }
|
|
3946
|
-
*
|
|
3947
|
-
* public onClick(): void {
|
|
3948
|
-
* console.log("button was clicked");
|
|
3949
|
-
* }
|
|
3950
|
-
* }
|
|
3951
|
-
*
|
|
3952
|
-
* ```
|
|
3953
|
-
*/
|
|
3954
|
-
class ToolbarTemplateDirective {
|
|
3955
|
-
constructor(templateRef) {
|
|
3956
|
-
this.templateRef = templateRef;
|
|
3957
|
-
this._position = "top";
|
|
3958
|
-
}
|
|
3959
|
-
/**
|
|
3960
|
-
* Defines the Gantt Toolbar that will use this template.
|
|
3961
|
-
*
|
|
3962
|
-
* The possible values are:
|
|
3963
|
-
* - `top`—The template will be rendered in the top toolbar (if present) only.
|
|
3964
|
-
* - `bottom`—The template will be rendered in the bottom toolbar (if present) only.
|
|
3965
|
-
* - `both`—The template will be rendered in both toolbars (if present).
|
|
3966
|
-
*/
|
|
3967
|
-
set position(position) {
|
|
3968
|
-
this._position = position;
|
|
3969
|
-
}
|
|
3970
|
-
get position() {
|
|
3971
|
-
return this._position;
|
|
3972
|
-
}
|
|
3973
|
-
}
|
|
3974
|
-
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 });
|
|
3976
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarTemplateDirective, decorators: [{
|
|
3977
|
-
type: Directive,
|
|
3978
|
-
args: [{
|
|
3979
|
-
selector: '[kendoGanttToolbarTemplate]'
|
|
3980
|
-
}]
|
|
3981
|
-
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3982
|
-
type: Optional
|
|
3983
|
-
}] }]; }, propDecorators: { position: [{
|
|
3984
|
-
type: Input,
|
|
3985
|
-
args: ['position']
|
|
3986
|
-
}] } });
|
|
3987
|
-
|
|
3988
|
-
/**
|
|
3989
|
-
* The base class for the timeline view components of the Gantt.
|
|
3990
|
-
*/
|
|
3991
|
-
class ViewBase {
|
|
3992
|
-
/**
|
|
3993
|
-
*
|
|
3994
|
-
* @hidden
|
|
3995
|
-
*/
|
|
3996
|
-
constructor(optionChangesService, dependencyDomService) {
|
|
3997
|
-
this.optionChangesService = optionChangesService;
|
|
3998
|
-
this.dependencyDomService = dependencyDomService;
|
|
3999
|
-
/**
|
|
4000
|
-
* The width of the time slot headers. Values are treated as pixels.
|
|
4001
|
-
*
|
|
4002
|
-
* @default 100
|
|
4003
|
-
*/
|
|
4004
|
-
this.slotWidth = 100;
|
|
4005
|
-
}
|
|
4006
|
-
ngOnChanges(changes) {
|
|
4007
|
-
if (anyChanged(['slotWidth'], changes)) {
|
|
4008
|
-
this.optionChangesService.notifyColumnChanges();
|
|
4009
|
-
this.dependencyDomService.notifyChanges();
|
|
4010
|
-
}
|
|
4011
|
-
if (anyChanged(['timelineHeadersDateFormat'], changes)) {
|
|
4012
|
-
this.optionChangesService.notifyDateFormatChanges();
|
|
4013
|
-
}
|
|
4014
|
-
}
|
|
4015
|
-
}
|
|
4016
|
-
ViewBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ViewBase, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4017
|
-
ViewBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ViewBase, selector: "kendo-gantt-view-base", inputs: { slotWidth: "slotWidth", timelineHeadersDateFormat: "timelineHeadersDateFormat", currentTimeMarker: "currentTimeMarker" }, usesOnChanges: true, ngImport: i0 });
|
|
4018
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ViewBase, decorators: [{
|
|
4019
|
-
type: Directive,
|
|
4020
|
-
args: [{
|
|
4021
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
4022
|
-
selector: 'kendo-gantt-view-base'
|
|
4023
|
-
}]
|
|
4024
|
-
}], ctorParameters: function () { return [{ type: OptionChangesService }, { type: DependencyDomService }]; }, propDecorators: { slotWidth: [{
|
|
4025
|
-
type: Input
|
|
4026
|
-
}], timelineHeadersDateFormat: [{
|
|
4027
|
-
type: Input
|
|
4028
|
-
}], currentTimeMarker: [{
|
|
4029
|
-
type: Input
|
|
4030
|
-
}] } });
|
|
4031
|
-
|
|
4032
|
-
/**
|
|
4033
|
-
* @hidden
|
|
4034
|
-
*/
|
|
4035
|
-
const getEditItem = (dataItem, data, mapper) => {
|
|
4036
|
-
const treeListDataItem = data.find(item => mapper.extractFromTask(item.data, 'id') === mapper.extractFromTask(dataItem, 'id'));
|
|
4037
|
-
return mapPath(treeListDataItem);
|
|
4038
|
-
};
|
|
4039
|
-
const mapPath = (item) => ({
|
|
4040
|
-
dataItem: item.data,
|
|
4041
|
-
parent: item.parent.data ? mapPath(item.parent) : null
|
|
4042
|
-
});
|
|
4043
|
-
|
|
4044
|
-
/**
|
|
4045
|
-
* @hidden
|
|
3789
|
+
*
|
|
3790
|
+
* @example
|
|
3791
|
+
* ```ts-preview
|
|
3792
|
+
* _@Component({
|
|
3793
|
+
* selector: 'my-app',
|
|
3794
|
+
* template: `
|
|
3795
|
+
* <kendo-gantt [kendoGanttHierarchyBinding]="data">
|
|
3796
|
+
* <ng-template kendoGanttSummaryTaskTemplate let-dataItem let-elementWidth="elementWidth">
|
|
3797
|
+
* <div [style]="'color: white; font-size: 8px;'">
|
|
3798
|
+
* {{ dataItem.title }} - {{ dataItem.completionRatio * 100 }}% complete; width: {{ elementWidth }}
|
|
3799
|
+
* </div>
|
|
3800
|
+
* </ng-template>
|
|
3801
|
+
* </kendo-gantt>
|
|
3802
|
+
* `
|
|
3803
|
+
* })
|
|
3804
|
+
* class AppComponent {
|
|
3805
|
+
* public data: any[] = sampleTasks;
|
|
3806
|
+
* }
|
|
3807
|
+
* ```
|
|
4046
3808
|
*/
|
|
4047
|
-
class
|
|
4048
|
-
constructor(
|
|
4049
|
-
this.
|
|
4050
|
-
this.focusIndex = 0;
|
|
4051
|
-
}
|
|
4052
|
-
updateFocus() {
|
|
4053
|
-
this.focusableContent.forEach(el => {
|
|
4054
|
-
this.renderer.setAttribute(el, 'tabindex', '-1');
|
|
4055
|
-
});
|
|
4056
|
-
this.renderer.setAttribute(this.focusableContent[this.focusIndex], 'tabindex', '0');
|
|
4057
|
-
this.focusableContent[this.focusIndex].focus();
|
|
3809
|
+
class GanttSummaryTaskTemplateDirective {
|
|
3810
|
+
constructor(templateRef) {
|
|
3811
|
+
this.templateRef = templateRef;
|
|
4058
3812
|
}
|
|
4059
3813
|
}
|
|
4060
|
-
|
|
4061
|
-
|
|
4062
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type:
|
|
4063
|
-
type:
|
|
4064
|
-
|
|
3814
|
+
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 });
|
|
3815
|
+
GanttSummaryTaskTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: GanttSummaryTaskTemplateDirective, isStandalone: true, selector: "[kendoGanttSummaryTaskTemplate]", ngImport: i0 });
|
|
3816
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttSummaryTaskTemplateDirective, decorators: [{
|
|
3817
|
+
type: Directive,
|
|
3818
|
+
args: [{
|
|
3819
|
+
selector: '[kendoGanttSummaryTaskTemplate]',
|
|
3820
|
+
standalone: true
|
|
3821
|
+
}]
|
|
3822
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3823
|
+
type: Optional
|
|
3824
|
+
}] }]; } });
|
|
4065
3825
|
|
|
4066
3826
|
/**
|
|
4067
|
-
*
|
|
3827
|
+
* Represents a template that defines the text content section of the task component.
|
|
3828
|
+
* To define the template, nest an `<ng-template>` tag
|
|
3829
|
+
* with the `kendoGanttTaskContentTemplate` directive inside the `<kendo-gantt>` tag.
|
|
3830
|
+
*
|
|
3831
|
+
* The template context is set to the current data item.
|
|
3832
|
+
*
|
|
3833
|
+
* @example
|
|
3834
|
+
* ```ts-preview
|
|
3835
|
+
* _@Component({
|
|
3836
|
+
* selector: 'my-app',
|
|
3837
|
+
* template: `
|
|
3838
|
+
* <kendo-gantt [kendoGanttHierarchyBinding]="data">
|
|
3839
|
+
* <ng-template kendoGanttTaskContentTemplate let-dataItem>
|
|
3840
|
+
* {{ dataItem.title }} - {{ dataItem.completionRatio * 100 }}% complete
|
|
3841
|
+
* </ng-template>
|
|
3842
|
+
* </kendo-gantt>
|
|
3843
|
+
* `
|
|
3844
|
+
* })
|
|
3845
|
+
* class AppComponent {
|
|
3846
|
+
* public data: any[] = sampleTasks;
|
|
3847
|
+
* }
|
|
3848
|
+
* ```
|
|
4068
3849
|
*/
|
|
4069
|
-
class
|
|
4070
|
-
constructor(
|
|
4071
|
-
this.
|
|
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();
|
|
4082
|
-
}
|
|
4083
|
-
/**
|
|
4084
|
-
* @hidden
|
|
4085
|
-
*/
|
|
4086
|
-
onClick(viewType) {
|
|
4087
|
-
if (viewType !== this.activeView) {
|
|
4088
|
-
this.activeViewChange.emit(viewType);
|
|
4089
|
-
}
|
|
4090
|
-
}
|
|
4091
|
-
/**
|
|
4092
|
-
* @hidden
|
|
4093
|
-
*/
|
|
4094
|
-
getViewTypeText(viewType) {
|
|
4095
|
-
return this.localizationService.get(`${viewType}ViewText`);
|
|
4096
|
-
}
|
|
4097
|
-
/**
|
|
4098
|
-
* @hidden
|
|
4099
|
-
*/
|
|
4100
|
-
onActiveViewChange(event) {
|
|
4101
|
-
this.activeViewChange.emit(event.target.value);
|
|
3850
|
+
class GanttTaskContentTemplateDirective {
|
|
3851
|
+
constructor(templateRef) {
|
|
3852
|
+
this.templateRef = templateRef;
|
|
4102
3853
|
}
|
|
4103
3854
|
}
|
|
4104
|
-
|
|
4105
|
-
|
|
4106
|
-
|
|
4107
|
-
|
|
4108
|
-
aria-label="View Selector"
|
|
4109
|
-
[value]="activeView"
|
|
4110
|
-
(change)="onActiveViewChange($event)">
|
|
4111
|
-
<option *ngFor="let view of views" [value]="view">{{getViewTypeText(view)}}</option>
|
|
4112
|
-
</select>
|
|
4113
|
-
<kendo-buttongroup class="k-gantt-views" selection="single" [navigable]="false">
|
|
4114
|
-
<button *ngFor="let view of views"
|
|
4115
|
-
kendoButton
|
|
4116
|
-
type="button"
|
|
4117
|
-
[selected]="view === activeView"
|
|
4118
|
-
(click)="onClick(view)">{{getViewTypeText(view)}}</button>
|
|
4119
|
-
</kendo-buttongroup>
|
|
4120
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "component", type: i4.ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex", "navigable"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }, { 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"] }] });
|
|
4121
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ViewSelectorComponent, decorators: [{
|
|
4122
|
-
type: Component,
|
|
3855
|
+
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, isStandalone: true, selector: "[kendoGanttTaskContentTemplate]", ngImport: i0 });
|
|
3857
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttTaskContentTemplateDirective, decorators: [{
|
|
3858
|
+
type: Directive,
|
|
4123
3859
|
args: [{
|
|
4124
|
-
selector: '
|
|
4125
|
-
|
|
4126
|
-
<select
|
|
4127
|
-
class="k-dropdownlist k-picker k-rounded-md k-views-dropdown"
|
|
4128
|
-
aria-label="View Selector"
|
|
4129
|
-
[value]="activeView"
|
|
4130
|
-
(change)="onActiveViewChange($event)">
|
|
4131
|
-
<option *ngFor="let view of views" [value]="view">{{getViewTypeText(view)}}</option>
|
|
4132
|
-
</select>
|
|
4133
|
-
<kendo-buttongroup class="k-gantt-views" selection="single" [navigable]="false">
|
|
4134
|
-
<button *ngFor="let view of views"
|
|
4135
|
-
kendoButton
|
|
4136
|
-
type="button"
|
|
4137
|
-
[selected]="view === activeView"
|
|
4138
|
-
(click)="onClick(view)">{{getViewTypeText(view)}}</button>
|
|
4139
|
-
</kendo-buttongroup>
|
|
4140
|
-
`
|
|
3860
|
+
selector: '[kendoGanttTaskContentTemplate]',
|
|
3861
|
+
standalone: true
|
|
4141
3862
|
}]
|
|
4142
|
-
}], ctorParameters: function () { return [{ type:
|
|
4143
|
-
|
|
4144
|
-
|
|
4145
|
-
}], views: [{
|
|
4146
|
-
type: Input
|
|
4147
|
-
}], activeView: [{
|
|
4148
|
-
type: Input
|
|
4149
|
-
}], activeViewChange: [{
|
|
4150
|
-
type: Output
|
|
4151
|
-
}] } });
|
|
3863
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3864
|
+
type: Optional
|
|
3865
|
+
}] }]; } });
|
|
4152
3866
|
|
|
4153
3867
|
/**
|
|
4154
|
-
*
|
|
4155
|
-
*
|
|
4156
|
-
|
|
4157
|
-
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
|
|
4161
|
-
|
|
4162
|
-
|
|
4163
|
-
|
|
4164
|
-
|
|
4165
|
-
|
|
4166
|
-
|
|
4167
|
-
|
|
4168
|
-
|
|
4169
|
-
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
|
|
4184
|
-
|
|
4185
|
-
|
|
4186
|
-
|
|
4187
|
-
|
|
4188
|
-
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
|
|
4193
|
-
|
|
4194
|
-
|
|
4195
|
-
|
|
4196
|
-
|
|
4197
|
-
|
|
4198
|
-
|
|
4199
|
-
|
|
3868
|
+
* Represents the toolbar template of the Gantt.
|
|
3869
|
+
*
|
|
3870
|
+
* The template context has the following field:
|
|
3871
|
+
* - `position`—The position at which the toolbar template is rendered. The possible values are `'top'` and `'bottom'`.
|
|
3872
|
+
*
|
|
3873
|
+
* @example
|
|
3874
|
+
* ```ts-preview
|
|
3875
|
+
*
|
|
3876
|
+
* _@Component({
|
|
3877
|
+
* selector: 'my-app',
|
|
3878
|
+
* template: `
|
|
3879
|
+
* <div class="example-config">
|
|
3880
|
+
* <input type="radio" kendoRadioButton id="top" name="position" value="top" checked (click)="positionChange($event)"/>
|
|
3881
|
+
* <kendo-label class="k-radio-label" for="top">Top</kendo-label><br/>
|
|
3882
|
+
* <input type="radio" kendoRadioButton id="bottom" name="position" value="bottom" (click)="positionChange($event)"/>
|
|
3883
|
+
* <kendo-label class="k-radio-label" for="bottom">Bottom</kendo-label><br/>
|
|
3884
|
+
* <input type="radio" kendoRadioButton id="both" name="position" value="both" (click)="positionChange($event)"/>
|
|
3885
|
+
* <kendo-label class="k-radio-label" for="both">Both</kendo-label><br/>
|
|
3886
|
+
* </div>
|
|
3887
|
+
* <kendo-gantt [[kendoGanttHierarchyBinding]="data"]="data" [style.height.px]="400">
|
|
3888
|
+
* <ng-template kendoGanttToolbarTemplate [position]="position" let-position="position">
|
|
3889
|
+
* <button kendoButton (click)="onClick()">Custom action</button>
|
|
3890
|
+
* </ng-template>
|
|
3891
|
+
* </kendo-gantt>
|
|
3892
|
+
* `
|
|
3893
|
+
* })
|
|
3894
|
+
*
|
|
3895
|
+
* class AppComponent {
|
|
3896
|
+
* public position: 'top' | 'bottom' | 'both' = 'top';
|
|
3897
|
+
*
|
|
3898
|
+
* public data = [{
|
|
3899
|
+
* id: 7,
|
|
3900
|
+
* title: "Software validation, research and implementation",
|
|
3901
|
+
* orderId: 0,
|
|
3902
|
+
* start: new Date("2014-06-02T00:00:00.000Z"),
|
|
3903
|
+
* end: new Date("2014-07-12T00:00:00.000Z"),
|
|
3904
|
+
* completionRatio: 0.45708333333333334,
|
|
3905
|
+
* isExpanded: true,
|
|
3906
|
+
* children: [{
|
|
3907
|
+
* id: 11,
|
|
3908
|
+
* title: "Research",
|
|
3909
|
+
* orderId: 1,
|
|
3910
|
+
* start: new Date("2014-06-02T00:00:00.000Z"),
|
|
3911
|
+
* end: new Date("2014-06-07T00:00:00.000Z"),
|
|
3912
|
+
* completionRatio: 0.5766666666666667,
|
|
3913
|
+
* isExpanded: true,
|
|
3914
|
+
* children: [{
|
|
3915
|
+
* id: 19,
|
|
3916
|
+
* title: "Validation with Customers",
|
|
3917
|
+
* orderId: 0,
|
|
3918
|
+
* start: new Date("2014-06-02T00:00:00.000Z"),
|
|
3919
|
+
* end: new Date("2014-06-04T00:00:00.000Z"),
|
|
3920
|
+
* completionRatio: 0.25,
|
|
3921
|
+
* isExpanded: true
|
|
3922
|
+
* },
|
|
3923
|
+
* {
|
|
3924
|
+
* id: 20,
|
|
3925
|
+
* title: "Market Research",
|
|
3926
|
+
* orderId: 1,
|
|
3927
|
+
* start: new Date("2014-06-02T00:00:00.000Z"),
|
|
3928
|
+
* end: new Date("2014-06-03T02:00:00.000Z"),
|
|
3929
|
+
* completionRatio: 0.82,
|
|
3930
|
+
* isExpanded: true
|
|
3931
|
+
* },
|
|
3932
|
+
* {
|
|
3933
|
+
* id: 39,
|
|
3934
|
+
* title: "Functional and Technical Specification",
|
|
3935
|
+
* orderId: 2,
|
|
3936
|
+
* start: new Date("2014-06-04T00:00:00.000Z"),
|
|
3937
|
+
* end: new Date("2014-06-07T00:00:00.000Z"),
|
|
3938
|
+
* completionRatio: 0.66,
|
|
3939
|
+
* isExpanded: true
|
|
3940
|
+
* }]
|
|
3941
|
+
* }]
|
|
3942
|
+
* };
|
|
3943
|
+
*
|
|
3944
|
+
* public positionChange(event: MouseEvent): void {
|
|
3945
|
+
* this.position = event.target['defaultValue'];
|
|
3946
|
+
* }
|
|
3947
|
+
*
|
|
3948
|
+
* public onClick(): void {
|
|
3949
|
+
* console.log("button was clicked");
|
|
3950
|
+
* }
|
|
3951
|
+
* }
|
|
3952
|
+
*
|
|
3953
|
+
* ```
|
|
3954
|
+
*/
|
|
3955
|
+
class ToolbarTemplateDirective {
|
|
3956
|
+
constructor(templateRef) {
|
|
3957
|
+
this.templateRef = templateRef;
|
|
3958
|
+
this._position = "top";
|
|
4200
3959
|
}
|
|
4201
3960
|
/**
|
|
4202
|
-
*
|
|
3961
|
+
* Defines the Gantt Toolbar that will use this template.
|
|
3962
|
+
*
|
|
3963
|
+
* The possible values are:
|
|
3964
|
+
* - `top`—The template will be rendered in the top toolbar (if present) only.
|
|
3965
|
+
* - `bottom`—The template will be rendered in the bottom toolbar (if present) only.
|
|
3966
|
+
* - `both`—The template will be rendered in both toolbars (if present).
|
|
4203
3967
|
*/
|
|
4204
|
-
|
|
4205
|
-
|
|
4206
|
-
this.ngZone.run(() => {
|
|
4207
|
-
this.editService.addEvent.next({
|
|
4208
|
-
selectedItem: null,
|
|
4209
|
-
actionType: 'addTask'
|
|
4210
|
-
});
|
|
4211
|
-
});
|
|
4212
|
-
}
|
|
3968
|
+
set position(position) {
|
|
3969
|
+
this._position = position;
|
|
4213
3970
|
}
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
*/
|
|
4217
|
-
handleItemClick(e) {
|
|
4218
|
-
this.editService.addEvent.next({
|
|
4219
|
-
actionType: e.type,
|
|
4220
|
-
selectedItem: null
|
|
4221
|
-
});
|
|
3971
|
+
get position() {
|
|
3972
|
+
return this._position;
|
|
4222
3973
|
}
|
|
4223
3974
|
}
|
|
4224
|
-
|
|
4225
|
-
|
|
4226
|
-
|
|
4227
|
-
|
|
4228
|
-
[icon]="icon"
|
|
4229
|
-
[svgIcon]="svgIcon"
|
|
4230
|
-
[kendoEventsOutsideAngular]="{ click: handleMouseClick }"
|
|
4231
|
-
[scope]="this"
|
|
4232
|
-
(itemClick)="handleItemClick($event)"
|
|
4233
|
-
(open)="handleOpen($event)">
|
|
4234
|
-
{{ getText('addTaskText') }}
|
|
4235
|
-
</kendo-dropdownbutton>
|
|
4236
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i11.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: i4.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }] });
|
|
4237
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttAddTaskComponent, decorators: [{
|
|
4238
|
-
type: Component,
|
|
3975
|
+
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 });
|
|
3976
|
+
ToolbarTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ToolbarTemplateDirective, isStandalone: true, selector: "[kendoGanttToolbarTemplate]", inputs: { position: "position" }, ngImport: i0 });
|
|
3977
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarTemplateDirective, decorators: [{
|
|
3978
|
+
type: Directive,
|
|
4239
3979
|
args: [{
|
|
4240
|
-
selector: '
|
|
4241
|
-
|
|
4242
|
-
<kendo-dropdownbutton
|
|
4243
|
-
[data]="data"
|
|
4244
|
-
[icon]="icon"
|
|
4245
|
-
[svgIcon]="svgIcon"
|
|
4246
|
-
[kendoEventsOutsideAngular]="{ click: handleMouseClick }"
|
|
4247
|
-
[scope]="this"
|
|
4248
|
-
(itemClick)="handleItemClick($event)"
|
|
4249
|
-
(open)="handleOpen($event)">
|
|
4250
|
-
{{ getText('addTaskText') }}
|
|
4251
|
-
</kendo-dropdownbutton>
|
|
4252
|
-
`
|
|
3980
|
+
selector: '[kendoGanttToolbarTemplate]',
|
|
3981
|
+
standalone: true
|
|
4253
3982
|
}]
|
|
4254
|
-
}], ctorParameters: function () { return [{ type:
|
|
4255
|
-
|
|
4256
|
-
|
|
4257
|
-
type: Input
|
|
4258
|
-
|
|
4259
|
-
type: Input
|
|
3983
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
3984
|
+
type: Optional
|
|
3985
|
+
}] }]; }, propDecorators: { position: [{
|
|
3986
|
+
type: Input,
|
|
3987
|
+
args: ['position']
|
|
4260
3988
|
}] } });
|
|
4261
3989
|
|
|
4262
3990
|
/**
|
|
4263
|
-
*
|
|
3991
|
+
* The base class for the timeline view components of the Gantt.
|
|
4264
3992
|
*/
|
|
4265
|
-
class
|
|
4266
|
-
|
|
4267
|
-
|
|
4268
|
-
|
|
4269
|
-
|
|
4270
|
-
|
|
4271
|
-
this.
|
|
4272
|
-
this.
|
|
4273
|
-
|
|
4274
|
-
|
|
4275
|
-
|
|
4276
|
-
|
|
4277
|
-
|
|
4278
|
-
|
|
4279
|
-
this.navigationService.focusIndex = targetIndex;
|
|
4280
|
-
}
|
|
4281
|
-
this.navigationService.updateFocus();
|
|
4282
|
-
}
|
|
4283
|
-
}
|
|
4284
|
-
arrowLeftListener() {
|
|
4285
|
-
if (this.navigable && isDocumentAvailable()) {
|
|
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
|
-
}
|
|
3993
|
+
class ViewBase {
|
|
3994
|
+
/**
|
|
3995
|
+
*
|
|
3996
|
+
* @hidden
|
|
3997
|
+
*/
|
|
3998
|
+
constructor(optionChangesService, dependencyDomService) {
|
|
3999
|
+
this.optionChangesService = optionChangesService;
|
|
4000
|
+
this.dependencyDomService = dependencyDomService;
|
|
4001
|
+
/**
|
|
4002
|
+
* The width of the time slot headers. Values are treated as pixels.
|
|
4003
|
+
*
|
|
4004
|
+
* @default 100
|
|
4005
|
+
*/
|
|
4006
|
+
this.slotWidth = 100;
|
|
4292
4007
|
}
|
|
4293
|
-
|
|
4294
|
-
if (
|
|
4295
|
-
this.
|
|
4296
|
-
|
|
4297
|
-
this.navigationService.focusIndex = 0;
|
|
4298
|
-
}
|
|
4299
|
-
this.navigationService.updateFocus();
|
|
4008
|
+
ngOnChanges(changes) {
|
|
4009
|
+
if (anyChanged(['slotWidth'], changes)) {
|
|
4010
|
+
this.optionChangesService.notifyColumnChanges();
|
|
4011
|
+
this.dependencyDomService.notifyChanges();
|
|
4300
4012
|
}
|
|
4301
|
-
|
|
4302
|
-
|
|
4303
|
-
this.context.position = this._position = value;
|
|
4304
|
-
}
|
|
4305
|
-
get position() {
|
|
4306
|
-
return this._position;
|
|
4307
|
-
}
|
|
4308
|
-
get toolbarTemplateRef() {
|
|
4309
|
-
return this.toolbarTemplate ? this.toolbarTemplate.templateRef : undefined;
|
|
4310
|
-
}
|
|
4311
|
-
get renderTemplate() {
|
|
4312
|
-
const ganttToolbarTemplate = this.toolbarTemplate;
|
|
4313
|
-
const templatePosition = ganttToolbarTemplate ? ganttToolbarTemplate.position : null;
|
|
4314
|
-
return ganttToolbarTemplate && (templatePosition === 'both' || templatePosition === this.position);
|
|
4315
|
-
}
|
|
4316
|
-
handleViewChange(view) {
|
|
4317
|
-
this.activeViewChange.emit(view);
|
|
4318
|
-
}
|
|
4319
|
-
ngAfterViewInit() {
|
|
4320
|
-
if (isDocumentAvailable()) {
|
|
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
|
-
}
|
|
4013
|
+
if (anyChanged(['timelineHeadersDateFormat'], changes)) {
|
|
4014
|
+
this.optionChangesService.notifyDateFormatChanges();
|
|
4326
4015
|
}
|
|
4327
4016
|
}
|
|
4328
4017
|
}
|
|
4329
|
-
|
|
4330
|
-
|
|
4331
|
-
|
|
4332
|
-
|
|
4333
|
-
<span class="k-spacer k-toolbar-spacer"></span>
|
|
4334
|
-
<kendo-gantt-view-selector
|
|
4335
|
-
*ngIf="showViewSelector"
|
|
4336
|
-
[views]="views"
|
|
4337
|
-
[activeView]="activeView"
|
|
4338
|
-
(activeViewChange)="handleViewChange($event)"></kendo-gantt-view-selector>
|
|
4339
|
-
</ng-container>
|
|
4340
|
-
<ng-template
|
|
4341
|
-
*ngIf="renderTemplate"
|
|
4342
|
-
[ngTemplateOutlet]="toolbarTemplateRef"
|
|
4343
|
-
[ngTemplateOutletContext]="context"
|
|
4344
|
-
>
|
|
4345
|
-
</ng-template>
|
|
4346
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ViewSelectorComponent, selector: "kendo-gantt-view-selector", inputs: ["views", "activeView"], outputs: ["activeViewChange"] }, { kind: "component", type: GanttAddTaskComponent, selector: "kendo-gantt-add-task", inputs: ["data", "icon", "svgIcon"] }] });
|
|
4347
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarComponent, decorators: [{
|
|
4348
|
-
type: Component,
|
|
4018
|
+
ViewBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ViewBase, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4019
|
+
ViewBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ViewBase, selector: "kendo-gantt-view-base", inputs: { slotWidth: "slotWidth", timelineHeadersDateFormat: "timelineHeadersDateFormat", currentTimeMarker: "currentTimeMarker" }, usesOnChanges: true, ngImport: i0 });
|
|
4020
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ViewBase, decorators: [{
|
|
4021
|
+
type: Directive,
|
|
4349
4022
|
args: [{
|
|
4350
|
-
|
|
4351
|
-
|
|
4352
|
-
template: `
|
|
4353
|
-
<ng-container *ngIf="!renderTemplate">
|
|
4354
|
-
<kendo-gantt-add-task *ngIf="showAddTask"></kendo-gantt-add-task>
|
|
4355
|
-
<span class="k-spacer k-toolbar-spacer"></span>
|
|
4356
|
-
<kendo-gantt-view-selector
|
|
4357
|
-
*ngIf="showViewSelector"
|
|
4358
|
-
[views]="views"
|
|
4359
|
-
[activeView]="activeView"
|
|
4360
|
-
(activeViewChange)="handleViewChange($event)"></kendo-gantt-view-selector>
|
|
4361
|
-
</ng-container>
|
|
4362
|
-
<ng-template
|
|
4363
|
-
*ngIf="renderTemplate"
|
|
4364
|
-
[ngTemplateOutlet]="toolbarTemplateRef"
|
|
4365
|
-
[ngTemplateOutletContext]="context"
|
|
4366
|
-
>
|
|
4367
|
-
</ng-template>
|
|
4368
|
-
`
|
|
4023
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
4024
|
+
selector: 'kendo-gantt-view-base'
|
|
4369
4025
|
}]
|
|
4370
|
-
}], ctorParameters: function () { return [{ type:
|
|
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: [{
|
|
4026
|
+
}], ctorParameters: function () { return [{ type: OptionChangesService }, { type: DependencyDomService }]; }, propDecorators: { slotWidth: [{
|
|
4396
4027
|
type: Input
|
|
4397
|
-
}],
|
|
4028
|
+
}], timelineHeadersDateFormat: [{
|
|
4398
4029
|
type: Input
|
|
4399
|
-
}],
|
|
4030
|
+
}], currentTimeMarker: [{
|
|
4400
4031
|
type: Input
|
|
4401
4032
|
}] } });
|
|
4402
4033
|
|
|
4034
|
+
/**
|
|
4035
|
+
* @hidden
|
|
4036
|
+
*/
|
|
4037
|
+
const getEditItem = (dataItem, data, mapper) => {
|
|
4038
|
+
const treeListDataItem = data.find(item => mapper.extractFromTask(item.data, 'id') === mapper.extractFromTask(dataItem, 'id'));
|
|
4039
|
+
return mapPath(treeListDataItem);
|
|
4040
|
+
};
|
|
4041
|
+
const mapPath = (item) => ({
|
|
4042
|
+
dataItem: item.data,
|
|
4043
|
+
parent: item.parent.data ? mapPath(item.parent) : null
|
|
4044
|
+
});
|
|
4045
|
+
|
|
4403
4046
|
/**
|
|
4404
4047
|
* @hidden
|
|
4405
4048
|
*/
|
|
@@ -4484,411 +4127,782 @@ class DependenciesTableComponent {
|
|
|
4484
4127
|
this.formGroups.removeAt(selectedIndex);
|
|
4485
4128
|
}
|
|
4486
4129
|
}
|
|
4487
|
-
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 });
|
|
4488
|
-
DependenciesTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DependenciesTableComponent, selector: "kendo-gantt-dependencies-table", inputs: { tasks: "tasks", dependencies: "dependencies", dependencyType: "dependencyType" }, outputs: { dependenciesChange: "dependenciesChange" }, ngImport: i0, template: `
|
|
4489
|
-
<kendo-grid
|
|
4490
|
-
[data]="dependencies"
|
|
4491
|
-
[selectable]="{ mode: 'single' }"
|
|
4492
|
-
[(selectedKeys)]="selectedKeys"
|
|
4493
|
-
kendoGridSelectBy
|
|
4494
|
-
[height]="275"
|
|
4495
|
-
>
|
|
4496
|
-
<ng-template kendoGridToolbarTemplate>
|
|
4130
|
+
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 });
|
|
4131
|
+
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: `
|
|
4132
|
+
<kendo-grid
|
|
4133
|
+
[data]="dependencies"
|
|
4134
|
+
[selectable]="{ mode: 'single' }"
|
|
4135
|
+
[(selectedKeys)]="selectedKeys"
|
|
4136
|
+
kendoGridSelectBy
|
|
4137
|
+
[height]="275"
|
|
4138
|
+
>
|
|
4139
|
+
<ng-template kendoGridToolbarTemplate>
|
|
4140
|
+
<button
|
|
4141
|
+
kendoButton
|
|
4142
|
+
icon="plus"
|
|
4143
|
+
[svgIcon]="plusIcon"
|
|
4144
|
+
(click)="addHandler()"
|
|
4145
|
+
>
|
|
4146
|
+
{{ getText('taskEditingDependenciesAddButtonText') }}
|
|
4147
|
+
</button>
|
|
4148
|
+
<button
|
|
4149
|
+
kendoButton
|
|
4150
|
+
icon="minus"
|
|
4151
|
+
[svgIcon]="minusIcon"
|
|
4152
|
+
[disabled]="selectedKeys.length === 0"
|
|
4153
|
+
(click)="removeHandler()"
|
|
4154
|
+
>
|
|
4155
|
+
{{ getText('taskEditingDependenciesRemoveButtonText') }}
|
|
4156
|
+
</button>
|
|
4157
|
+
</ng-template>
|
|
4158
|
+
<kendo-grid-column [title]="getText('taskEditingDependenciesGridNameColumnTitle')" [field]="dependencyIdField">
|
|
4159
|
+
<ng-template kendoGridCellTemplate let-dataItem="dataItem" let-column="column" let-rowIndex="rowIndex">
|
|
4160
|
+
<kendo-dropdownlist
|
|
4161
|
+
[data]="tasks"
|
|
4162
|
+
textField="title"
|
|
4163
|
+
valueField="id"
|
|
4164
|
+
[valuePrimitive]="true"
|
|
4165
|
+
[formControl]="getFormControl(rowIndex, column.field)"
|
|
4166
|
+
>
|
|
4167
|
+
</kendo-dropdownlist>
|
|
4168
|
+
</ng-template>
|
|
4169
|
+
</kendo-grid-column>
|
|
4170
|
+
<kendo-grid-column [title]="getText('taskEditingDependenciesGridTypeColumnTitle')" field="type">
|
|
4171
|
+
<ng-template kendoGridCellTemplate let-dataItem="dataItem" let-column="column" let-rowIndex="rowIndex">
|
|
4172
|
+
<kendo-dropdownlist
|
|
4173
|
+
[data]="dependencyTypes"
|
|
4174
|
+
textField="type"
|
|
4175
|
+
valueField="id"
|
|
4176
|
+
[valuePrimitive]="true"
|
|
4177
|
+
[formControl]="getFormControl(rowIndex, column.field)"
|
|
4178
|
+
>
|
|
4179
|
+
</kendo-dropdownlist>
|
|
4180
|
+
</ng-template>
|
|
4181
|
+
</kendo-grid-column>
|
|
4182
|
+
</kendo-grid>
|
|
4183
|
+
`, 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"] }] });
|
|
4184
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DependenciesTableComponent, decorators: [{
|
|
4185
|
+
type: Component,
|
|
4186
|
+
args: [{
|
|
4187
|
+
selector: 'kendo-gantt-dependencies-table',
|
|
4188
|
+
template: `
|
|
4189
|
+
<kendo-grid
|
|
4190
|
+
[data]="dependencies"
|
|
4191
|
+
[selectable]="{ mode: 'single' }"
|
|
4192
|
+
[(selectedKeys)]="selectedKeys"
|
|
4193
|
+
kendoGridSelectBy
|
|
4194
|
+
[height]="275"
|
|
4195
|
+
>
|
|
4196
|
+
<ng-template kendoGridToolbarTemplate>
|
|
4197
|
+
<button
|
|
4198
|
+
kendoButton
|
|
4199
|
+
icon="plus"
|
|
4200
|
+
[svgIcon]="plusIcon"
|
|
4201
|
+
(click)="addHandler()"
|
|
4202
|
+
>
|
|
4203
|
+
{{ getText('taskEditingDependenciesAddButtonText') }}
|
|
4204
|
+
</button>
|
|
4205
|
+
<button
|
|
4206
|
+
kendoButton
|
|
4207
|
+
icon="minus"
|
|
4208
|
+
[svgIcon]="minusIcon"
|
|
4209
|
+
[disabled]="selectedKeys.length === 0"
|
|
4210
|
+
(click)="removeHandler()"
|
|
4211
|
+
>
|
|
4212
|
+
{{ getText('taskEditingDependenciesRemoveButtonText') }}
|
|
4213
|
+
</button>
|
|
4214
|
+
</ng-template>
|
|
4215
|
+
<kendo-grid-column [title]="getText('taskEditingDependenciesGridNameColumnTitle')" [field]="dependencyIdField">
|
|
4216
|
+
<ng-template kendoGridCellTemplate let-dataItem="dataItem" let-column="column" let-rowIndex="rowIndex">
|
|
4217
|
+
<kendo-dropdownlist
|
|
4218
|
+
[data]="tasks"
|
|
4219
|
+
textField="title"
|
|
4220
|
+
valueField="id"
|
|
4221
|
+
[valuePrimitive]="true"
|
|
4222
|
+
[formControl]="getFormControl(rowIndex, column.field)"
|
|
4223
|
+
>
|
|
4224
|
+
</kendo-dropdownlist>
|
|
4225
|
+
</ng-template>
|
|
4226
|
+
</kendo-grid-column>
|
|
4227
|
+
<kendo-grid-column [title]="getText('taskEditingDependenciesGridTypeColumnTitle')" field="type">
|
|
4228
|
+
<ng-template kendoGridCellTemplate let-dataItem="dataItem" let-column="column" let-rowIndex="rowIndex">
|
|
4229
|
+
<kendo-dropdownlist
|
|
4230
|
+
[data]="dependencyTypes"
|
|
4231
|
+
textField="type"
|
|
4232
|
+
valueField="id"
|
|
4233
|
+
[valuePrimitive]="true"
|
|
4234
|
+
[formControl]="getFormControl(rowIndex, column.field)"
|
|
4235
|
+
>
|
|
4236
|
+
</kendo-dropdownlist>
|
|
4237
|
+
</ng-template>
|
|
4238
|
+
</kendo-grid-column>
|
|
4239
|
+
</kendo-grid>
|
|
4240
|
+
`,
|
|
4241
|
+
standalone: true,
|
|
4242
|
+
imports: [GridComponent, SelectionDirective, ToolbarTemplateDirective$1, ButtonComponent, ColumnComponent$1, CellTemplateDirective$1, DropDownListComponent, ReactiveFormsModule]
|
|
4243
|
+
}]
|
|
4244
|
+
}], ctorParameters: function () { return [{ type: MappingService }, { type: EditService }, { type: GanttLocalizationService }]; }, propDecorators: { tasks: [{
|
|
4245
|
+
type: Input
|
|
4246
|
+
}], dependencies: [{
|
|
4247
|
+
type: Input
|
|
4248
|
+
}], dependencyType: [{
|
|
4249
|
+
type: Input
|
|
4250
|
+
}], dependenciesChange: [{
|
|
4251
|
+
type: Output
|
|
4252
|
+
}] } });
|
|
4253
|
+
|
|
4254
|
+
/**
|
|
4255
|
+
* @hidden
|
|
4256
|
+
*/
|
|
4257
|
+
class TaskFieldsComponent {
|
|
4258
|
+
constructor(mapper, editService, localizationService) {
|
|
4259
|
+
this.mapper = mapper;
|
|
4260
|
+
this.editService = editService;
|
|
4261
|
+
this.localizationService = localizationService;
|
|
4262
|
+
}
|
|
4263
|
+
/**
|
|
4264
|
+
* @hidden
|
|
4265
|
+
*/
|
|
4266
|
+
get formGroup() {
|
|
4267
|
+
return this.editService.taskFormGroup;
|
|
4268
|
+
}
|
|
4269
|
+
getText(token) {
|
|
4270
|
+
return this.localizationService.get(token);
|
|
4271
|
+
}
|
|
4272
|
+
}
|
|
4273
|
+
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 });
|
|
4274
|
+
TaskFieldsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TaskFieldsComponent, isStandalone: true, selector: "kendo-gantt-task-fields", ngImport: i0, template: `
|
|
4275
|
+
<form class="k-form k-form-md" [formGroup]="formGroup">
|
|
4276
|
+
<kendo-formfield *ngIf="formGroup.get(mapper.taskFields.title)">
|
|
4277
|
+
<kendo-label [for]="title" [text]="getText('titleFieldInputLabel')"></kendo-label>
|
|
4278
|
+
<input #title kendoTextBox [formControlName]="mapper.taskFields.title" />
|
|
4279
|
+
</kendo-formfield>
|
|
4280
|
+
<div class="k-hstack">
|
|
4281
|
+
<kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.start)">
|
|
4282
|
+
<kendo-label [for]="start" [text]="getText('startFieldInputLabel')"></kendo-label>
|
|
4283
|
+
<kendo-datetimepicker #start [formControlName]="mapper.taskFields.start"></kendo-datetimepicker>
|
|
4284
|
+
</kendo-formfield>
|
|
4285
|
+
<kendo-treelist-spacer></kendo-treelist-spacer>
|
|
4286
|
+
<kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.end)">
|
|
4287
|
+
<kendo-label [for]="end" [text]="getText('endFieldInputLabel')"></kendo-label>
|
|
4288
|
+
<kendo-datetimepicker #end [formControlName]="mapper.taskFields.end"></kendo-datetimepicker>
|
|
4289
|
+
</kendo-formfield>
|
|
4290
|
+
</div>
|
|
4291
|
+
<kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.completionRatio)">
|
|
4292
|
+
<kendo-label [for]="completionRatio" [text]="getText('completionRatioFieldInputLabel')"></kendo-label>
|
|
4293
|
+
<kendo-numerictextbox
|
|
4294
|
+
#completionRatio
|
|
4295
|
+
[formControlName]="mapper.taskFields.completionRatio"
|
|
4296
|
+
[min]="0"
|
|
4297
|
+
[max]="1"
|
|
4298
|
+
[decimals]="2"
|
|
4299
|
+
format="p2"
|
|
4300
|
+
[step]="0.01"
|
|
4301
|
+
></kendo-numerictextbox>
|
|
4302
|
+
</kendo-formfield>
|
|
4303
|
+
</form>
|
|
4304
|
+
`, 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"] }] });
|
|
4305
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TaskFieldsComponent, decorators: [{
|
|
4306
|
+
type: Component,
|
|
4307
|
+
args: [{
|
|
4308
|
+
selector: 'kendo-gantt-task-fields',
|
|
4309
|
+
template: `
|
|
4310
|
+
<form class="k-form k-form-md" [formGroup]="formGroup">
|
|
4311
|
+
<kendo-formfield *ngIf="formGroup.get(mapper.taskFields.title)">
|
|
4312
|
+
<kendo-label [for]="title" [text]="getText('titleFieldInputLabel')"></kendo-label>
|
|
4313
|
+
<input #title kendoTextBox [formControlName]="mapper.taskFields.title" />
|
|
4314
|
+
</kendo-formfield>
|
|
4315
|
+
<div class="k-hstack">
|
|
4316
|
+
<kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.start)">
|
|
4317
|
+
<kendo-label [for]="start" [text]="getText('startFieldInputLabel')"></kendo-label>
|
|
4318
|
+
<kendo-datetimepicker #start [formControlName]="mapper.taskFields.start"></kendo-datetimepicker>
|
|
4319
|
+
</kendo-formfield>
|
|
4320
|
+
<kendo-treelist-spacer></kendo-treelist-spacer>
|
|
4321
|
+
<kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.end)">
|
|
4322
|
+
<kendo-label [for]="end" [text]="getText('endFieldInputLabel')"></kendo-label>
|
|
4323
|
+
<kendo-datetimepicker #end [formControlName]="mapper.taskFields.end"></kendo-datetimepicker>
|
|
4324
|
+
</kendo-formfield>
|
|
4325
|
+
</div>
|
|
4326
|
+
<kendo-formfield [style.width.%]="49" *ngIf="formGroup.get(mapper.taskFields.completionRatio)">
|
|
4327
|
+
<kendo-label [for]="completionRatio" [text]="getText('completionRatioFieldInputLabel')"></kendo-label>
|
|
4328
|
+
<kendo-numerictextbox
|
|
4329
|
+
#completionRatio
|
|
4330
|
+
[formControlName]="mapper.taskFields.completionRatio"
|
|
4331
|
+
[min]="0"
|
|
4332
|
+
[max]="1"
|
|
4333
|
+
[decimals]="2"
|
|
4334
|
+
format="p2"
|
|
4335
|
+
[step]="0.01"
|
|
4336
|
+
></kendo-numerictextbox>
|
|
4337
|
+
</kendo-formfield>
|
|
4338
|
+
</form>
|
|
4339
|
+
`,
|
|
4340
|
+
standalone: true,
|
|
4341
|
+
imports: [ReactiveFormsModule, NgIf, FormFieldComponent, LabelComponent, TextBoxDirective, DateTimePickerComponent, TreeListSpacerComponent, NumericTextBoxComponent]
|
|
4342
|
+
}]
|
|
4343
|
+
}], ctorParameters: function () { return [{ type: MappingService }, { type: EditService }, { type: GanttLocalizationService }]; } });
|
|
4344
|
+
|
|
4345
|
+
/**
|
|
4346
|
+
* @hidden
|
|
4347
|
+
*/
|
|
4348
|
+
class EditDialogComponent {
|
|
4349
|
+
constructor(mapper, editService, cdr, localizationService) {
|
|
4350
|
+
this.mapper = mapper;
|
|
4351
|
+
this.editService = editService;
|
|
4352
|
+
this.cdr = cdr;
|
|
4353
|
+
this.localizationService = localizationService;
|
|
4354
|
+
this.saveIcon = saveIcon;
|
|
4355
|
+
this.cancelIcon = cancelOutlineIcon;
|
|
4356
|
+
this.deleteIcon = trashIcon;
|
|
4357
|
+
}
|
|
4358
|
+
ngOnInit() {
|
|
4359
|
+
this.editService.loadTasks(this.data).subscribe(value => {
|
|
4360
|
+
this.loadedTasks = value;
|
|
4361
|
+
});
|
|
4362
|
+
}
|
|
4363
|
+
get predecessors() {
|
|
4364
|
+
return this.editService.predecessors;
|
|
4365
|
+
}
|
|
4366
|
+
set predecessors(items) {
|
|
4367
|
+
this.editService.predecessors = items;
|
|
4368
|
+
}
|
|
4369
|
+
get successors() {
|
|
4370
|
+
return this.editService.successors;
|
|
4371
|
+
}
|
|
4372
|
+
set successors(items) {
|
|
4373
|
+
this.editService.successors = items;
|
|
4374
|
+
}
|
|
4375
|
+
getText(token) {
|
|
4376
|
+
return this.localizationService.get(token);
|
|
4377
|
+
}
|
|
4378
|
+
getDependencyType(typeId) {
|
|
4379
|
+
return DependencyType[typeId];
|
|
4380
|
+
}
|
|
4381
|
+
handleEditingResult(editResultType) {
|
|
4382
|
+
this.editService.triggerEditEvent(editResultType);
|
|
4383
|
+
}
|
|
4384
|
+
handleTaskDelete() {
|
|
4385
|
+
this.editService.taskDelete.next(this.editService.dataItem);
|
|
4386
|
+
}
|
|
4387
|
+
}
|
|
4388
|
+
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 });
|
|
4389
|
+
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: `
|
|
4390
|
+
<kendo-dialog
|
|
4391
|
+
[title]="getText('taskEditingDialogTitle')"
|
|
4392
|
+
[width]="575"
|
|
4393
|
+
[height]="470"
|
|
4394
|
+
[autoFocusedElement]="'.k-actions .k-button-solid-primary'"
|
|
4395
|
+
(close)="handleEditingResult('cancel')">
|
|
4396
|
+
<kendo-dialog-messages
|
|
4397
|
+
[closeTitle]="getText('taskEditingDialogCloseTitle')"></kendo-dialog-messages>
|
|
4398
|
+
|
|
4399
|
+
<kendo-tabstrip [keepTabContent]="true" [style.height.px]="345">
|
|
4400
|
+
<kendo-tabstrip-tab [title]="getText('taskEditingGeneralTabTitle')" [selected]="true">
|
|
4401
|
+
<ng-template kendoTabContent>
|
|
4402
|
+
<kendo-gantt-task-fields></kendo-gantt-task-fields>
|
|
4403
|
+
</ng-template>
|
|
4404
|
+
</kendo-tabstrip-tab>
|
|
4405
|
+
<kendo-tabstrip-tab [title]="getText('taskEditingPredecessorsTabTitle')">
|
|
4406
|
+
<ng-template kendoTabContent>
|
|
4407
|
+
<kendo-gantt-dependencies-table
|
|
4408
|
+
[tasks]="loadedTasks"
|
|
4409
|
+
[(dependencies)]="predecessors"
|
|
4410
|
+
dependencyType="predecessor"
|
|
4411
|
+
>
|
|
4412
|
+
</kendo-gantt-dependencies-table>
|
|
4413
|
+
</ng-template>
|
|
4414
|
+
</kendo-tabstrip-tab>
|
|
4415
|
+
<kendo-tabstrip-tab [title]="getText('taskEditingSuccessorsTabTitle')">
|
|
4416
|
+
<ng-template kendoTabContent>
|
|
4417
|
+
<kendo-gantt-dependencies-table
|
|
4418
|
+
[tasks]="loadedTasks"
|
|
4419
|
+
[(dependencies)]="successors"
|
|
4420
|
+
dependencyType="successor">
|
|
4421
|
+
</kendo-gantt-dependencies-table>
|
|
4422
|
+
</ng-template>
|
|
4423
|
+
</kendo-tabstrip-tab>
|
|
4424
|
+
</kendo-tabstrip>
|
|
4425
|
+
|
|
4426
|
+
<kendo-dialog-actions layout="start">
|
|
4497
4427
|
<button
|
|
4498
4428
|
kendoButton
|
|
4499
|
-
|
|
4500
|
-
|
|
4501
|
-
|
|
4429
|
+
themeColor="primary"
|
|
4430
|
+
icon="save"
|
|
4431
|
+
[svgIcon]="saveIcon"
|
|
4432
|
+
(click)="handleEditingResult('save')"
|
|
4502
4433
|
>
|
|
4503
|
-
{{ getText('
|
|
4434
|
+
{{ getText('saveButtonText') }}
|
|
4504
4435
|
</button>
|
|
4505
4436
|
<button
|
|
4506
4437
|
kendoButton
|
|
4507
|
-
icon="
|
|
4508
|
-
[svgIcon]="
|
|
4509
|
-
|
|
4510
|
-
(click)="removeHandler()"
|
|
4438
|
+
icon="cancel-outline"
|
|
4439
|
+
[svgIcon]="cancelIcon"
|
|
4440
|
+
(click)="handleEditingResult('cancel')"
|
|
4511
4441
|
>
|
|
4512
|
-
{{ getText('
|
|
4442
|
+
{{ getText('cancelButtonText') }}
|
|
4513
4443
|
</button>
|
|
4514
|
-
|
|
4515
|
-
|
|
4516
|
-
|
|
4517
|
-
|
|
4518
|
-
|
|
4519
|
-
|
|
4520
|
-
|
|
4521
|
-
|
|
4522
|
-
|
|
4523
|
-
|
|
4524
|
-
|
|
4525
|
-
|
|
4526
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
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: [{
|
|
4444
|
+
<kendo-treelist-spacer></kendo-treelist-spacer>
|
|
4445
|
+
<button
|
|
4446
|
+
kendoButton
|
|
4447
|
+
themeColor="primary"
|
|
4448
|
+
fillMode="flat"
|
|
4449
|
+
icon="delete"
|
|
4450
|
+
[svgIcon]="deleteIcon"
|
|
4451
|
+
[kendoEventsOutsideAngular]="{
|
|
4452
|
+
click: handleTaskDelete
|
|
4453
|
+
}"
|
|
4454
|
+
[scope]="this"
|
|
4455
|
+
>
|
|
4456
|
+
{{ getText('deleteButtonText') }}
|
|
4457
|
+
</button>
|
|
4458
|
+
</kendo-dialog-actions>
|
|
4459
|
+
</kendo-dialog>
|
|
4460
|
+
`, 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"] }] });
|
|
4461
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditDialogComponent, decorators: [{
|
|
4542
4462
|
type: Component,
|
|
4543
4463
|
args: [{
|
|
4544
|
-
selector: 'kendo-gantt-
|
|
4464
|
+
selector: 'kendo-gantt-edit-dialog',
|
|
4545
4465
|
template: `
|
|
4546
|
-
<kendo-
|
|
4547
|
-
[
|
|
4548
|
-
[
|
|
4549
|
-
[
|
|
4550
|
-
|
|
4551
|
-
|
|
4552
|
-
|
|
4553
|
-
|
|
4466
|
+
<kendo-dialog
|
|
4467
|
+
[title]="getText('taskEditingDialogTitle')"
|
|
4468
|
+
[width]="575"
|
|
4469
|
+
[height]="470"
|
|
4470
|
+
[autoFocusedElement]="'.k-actions .k-button-solid-primary'"
|
|
4471
|
+
(close)="handleEditingResult('cancel')">
|
|
4472
|
+
<kendo-dialog-messages
|
|
4473
|
+
[closeTitle]="getText('taskEditingDialogCloseTitle')"></kendo-dialog-messages>
|
|
4474
|
+
|
|
4475
|
+
<kendo-tabstrip [keepTabContent]="true" [style.height.px]="345">
|
|
4476
|
+
<kendo-tabstrip-tab [title]="getText('taskEditingGeneralTabTitle')" [selected]="true">
|
|
4477
|
+
<ng-template kendoTabContent>
|
|
4478
|
+
<kendo-gantt-task-fields></kendo-gantt-task-fields>
|
|
4479
|
+
</ng-template>
|
|
4480
|
+
</kendo-tabstrip-tab>
|
|
4481
|
+
<kendo-tabstrip-tab [title]="getText('taskEditingPredecessorsTabTitle')">
|
|
4482
|
+
<ng-template kendoTabContent>
|
|
4483
|
+
<kendo-gantt-dependencies-table
|
|
4484
|
+
[tasks]="loadedTasks"
|
|
4485
|
+
[(dependencies)]="predecessors"
|
|
4486
|
+
dependencyType="predecessor"
|
|
4487
|
+
>
|
|
4488
|
+
</kendo-gantt-dependencies-table>
|
|
4489
|
+
</ng-template>
|
|
4490
|
+
</kendo-tabstrip-tab>
|
|
4491
|
+
<kendo-tabstrip-tab [title]="getText('taskEditingSuccessorsTabTitle')">
|
|
4492
|
+
<ng-template kendoTabContent>
|
|
4493
|
+
<kendo-gantt-dependencies-table
|
|
4494
|
+
[tasks]="loadedTasks"
|
|
4495
|
+
[(dependencies)]="successors"
|
|
4496
|
+
dependencyType="successor">
|
|
4497
|
+
</kendo-gantt-dependencies-table>
|
|
4498
|
+
</ng-template>
|
|
4499
|
+
</kendo-tabstrip-tab>
|
|
4500
|
+
</kendo-tabstrip>
|
|
4501
|
+
|
|
4502
|
+
<kendo-dialog-actions layout="start">
|
|
4554
4503
|
<button
|
|
4555
4504
|
kendoButton
|
|
4556
|
-
|
|
4557
|
-
|
|
4558
|
-
|
|
4505
|
+
themeColor="primary"
|
|
4506
|
+
icon="save"
|
|
4507
|
+
[svgIcon]="saveIcon"
|
|
4508
|
+
(click)="handleEditingResult('save')"
|
|
4559
4509
|
>
|
|
4560
|
-
{{ getText('
|
|
4510
|
+
{{ getText('saveButtonText') }}
|
|
4561
4511
|
</button>
|
|
4562
4512
|
<button
|
|
4563
4513
|
kendoButton
|
|
4564
|
-
icon="
|
|
4565
|
-
[svgIcon]="
|
|
4566
|
-
|
|
4567
|
-
(click)="removeHandler()"
|
|
4514
|
+
icon="cancel-outline"
|
|
4515
|
+
[svgIcon]="cancelIcon"
|
|
4516
|
+
(click)="handleEditingResult('cancel')"
|
|
4568
4517
|
>
|
|
4569
|
-
{{ getText('
|
|
4518
|
+
{{ getText('cancelButtonText') }}
|
|
4570
4519
|
</button>
|
|
4571
|
-
|
|
4572
|
-
|
|
4573
|
-
|
|
4574
|
-
|
|
4575
|
-
|
|
4576
|
-
|
|
4577
|
-
|
|
4578
|
-
|
|
4579
|
-
|
|
4580
|
-
|
|
4581
|
-
|
|
4582
|
-
|
|
4583
|
-
|
|
4584
|
-
|
|
4585
|
-
|
|
4586
|
-
|
|
4587
|
-
|
|
4588
|
-
|
|
4589
|
-
|
|
4590
|
-
|
|
4591
|
-
|
|
4592
|
-
|
|
4593
|
-
|
|
4594
|
-
|
|
4595
|
-
|
|
4596
|
-
|
|
4597
|
-
|
|
4520
|
+
<kendo-treelist-spacer></kendo-treelist-spacer>
|
|
4521
|
+
<button
|
|
4522
|
+
kendoButton
|
|
4523
|
+
themeColor="primary"
|
|
4524
|
+
fillMode="flat"
|
|
4525
|
+
icon="delete"
|
|
4526
|
+
[svgIcon]="deleteIcon"
|
|
4527
|
+
[kendoEventsOutsideAngular]="{
|
|
4528
|
+
click: handleTaskDelete
|
|
4529
|
+
}"
|
|
4530
|
+
[scope]="this"
|
|
4531
|
+
>
|
|
4532
|
+
{{ getText('deleteButtonText') }}
|
|
4533
|
+
</button>
|
|
4534
|
+
</kendo-dialog-actions>
|
|
4535
|
+
</kendo-dialog>
|
|
4536
|
+
`,
|
|
4537
|
+
standalone: true,
|
|
4538
|
+
imports: [DialogComponent, CustomMessagesComponent$1, TabStripComponent, TabStripTabComponent, TabContentDirective, TaskFieldsComponent, DependenciesTableComponent, DialogActionsComponent, ButtonComponent, TreeListSpacerComponent, EventsOutsideAngularDirective]
|
|
4539
|
+
}]
|
|
4540
|
+
}], ctorParameters: function () { return [{ type: MappingService }, { type: EditService }, { type: i0.ChangeDetectorRef }, { type: i1$1.LocalizationService }]; }, propDecorators: { data: [{
|
|
4541
|
+
type: Input
|
|
4542
|
+
}] } });
|
|
4543
|
+
|
|
4544
|
+
/**
|
|
4545
|
+
* @hidden
|
|
4546
|
+
*/
|
|
4547
|
+
class ToolbarNavigationService {
|
|
4548
|
+
constructor(renderer) {
|
|
4549
|
+
this.renderer = renderer;
|
|
4550
|
+
this.focusIndex = 0;
|
|
4551
|
+
}
|
|
4552
|
+
updateFocus() {
|
|
4553
|
+
this.focusableContent.forEach(el => {
|
|
4554
|
+
this.renderer.setAttribute(el, 'tabindex', '-1');
|
|
4555
|
+
});
|
|
4556
|
+
this.renderer.setAttribute(this.focusableContent[this.focusIndex], 'tabindex', '0');
|
|
4557
|
+
this.focusableContent[this.focusIndex].focus();
|
|
4558
|
+
}
|
|
4559
|
+
}
|
|
4560
|
+
ToolbarNavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarNavigationService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4561
|
+
ToolbarNavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarNavigationService });
|
|
4562
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarNavigationService, decorators: [{
|
|
4563
|
+
type: Injectable
|
|
4564
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
|
|
4565
|
+
|
|
4566
|
+
/**
|
|
4567
|
+
* The Gantt ViewSelector component. Shows the currently active view type, and allows switching to another view type.
|
|
4568
|
+
*/
|
|
4569
|
+
class ViewSelectorComponent {
|
|
4570
|
+
constructor(localizationService) {
|
|
4571
|
+
this.localizationService = localizationService;
|
|
4572
|
+
this.hostClass = true;
|
|
4573
|
+
/**
|
|
4574
|
+
* The currently active view type.
|
|
4575
|
+
* @default 'week'
|
|
4576
|
+
*/
|
|
4577
|
+
this.activeView = 'week';
|
|
4578
|
+
/**
|
|
4579
|
+
* Fires each time the user selects a different view type. The event data contains the type of the newly selected view.
|
|
4580
|
+
*/
|
|
4581
|
+
this.activeViewChange = new EventEmitter();
|
|
4582
|
+
}
|
|
4583
|
+
/**
|
|
4584
|
+
* @hidden
|
|
4585
|
+
*/
|
|
4586
|
+
onClick(viewType) {
|
|
4587
|
+
if (viewType !== this.activeView) {
|
|
4588
|
+
this.activeViewChange.emit(viewType);
|
|
4589
|
+
}
|
|
4590
|
+
}
|
|
4591
|
+
/**
|
|
4592
|
+
* @hidden
|
|
4593
|
+
*/
|
|
4594
|
+
getViewTypeText(viewType) {
|
|
4595
|
+
return this.localizationService.get(`${viewType}ViewText`);
|
|
4596
|
+
}
|
|
4597
|
+
/**
|
|
4598
|
+
* @hidden
|
|
4599
|
+
*/
|
|
4600
|
+
onActiveViewChange(event) {
|
|
4601
|
+
this.activeViewChange.emit(event.target.value);
|
|
4602
|
+
}
|
|
4603
|
+
}
|
|
4604
|
+
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 });
|
|
4605
|
+
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: `
|
|
4606
|
+
<select
|
|
4607
|
+
class="k-dropdownlist k-picker k-rounded-md k-views-dropdown"
|
|
4608
|
+
aria-label="View Selector"
|
|
4609
|
+
[value]="activeView"
|
|
4610
|
+
(change)="onActiveViewChange($event)">
|
|
4611
|
+
<option *ngFor="let view of views" [value]="view">{{getViewTypeText(view)}}</option>
|
|
4612
|
+
</select>
|
|
4613
|
+
<kendo-buttongroup class="k-gantt-views" selection="single" [navigable]="false">
|
|
4614
|
+
<button *ngFor="let view of views"
|
|
4615
|
+
kendoButton
|
|
4616
|
+
type="button"
|
|
4617
|
+
[selected]="view === activeView"
|
|
4618
|
+
(click)="onClick(view)">{{getViewTypeText(view)}}</button>
|
|
4619
|
+
</kendo-buttongroup>
|
|
4620
|
+
`, 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"] }] });
|
|
4621
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ViewSelectorComponent, decorators: [{
|
|
4622
|
+
type: Component,
|
|
4623
|
+
args: [{
|
|
4624
|
+
selector: 'kendo-gantt-view-selector',
|
|
4625
|
+
template: `
|
|
4626
|
+
<select
|
|
4627
|
+
class="k-dropdownlist k-picker k-rounded-md k-views-dropdown"
|
|
4628
|
+
aria-label="View Selector"
|
|
4629
|
+
[value]="activeView"
|
|
4630
|
+
(change)="onActiveViewChange($event)">
|
|
4631
|
+
<option *ngFor="let view of views" [value]="view">{{getViewTypeText(view)}}</option>
|
|
4632
|
+
</select>
|
|
4633
|
+
<kendo-buttongroup class="k-gantt-views" selection="single" [navigable]="false">
|
|
4634
|
+
<button *ngFor="let view of views"
|
|
4635
|
+
kendoButton
|
|
4636
|
+
type="button"
|
|
4637
|
+
[selected]="view === activeView"
|
|
4638
|
+
(click)="onClick(view)">{{getViewTypeText(view)}}</button>
|
|
4639
|
+
</kendo-buttongroup>
|
|
4640
|
+
`,
|
|
4641
|
+
standalone: true,
|
|
4642
|
+
imports: [NgFor, ReactiveFormsModule, ButtonGroupComponent, ButtonComponent]
|
|
4598
4643
|
}]
|
|
4599
|
-
}], ctorParameters: function () { return [{ type:
|
|
4600
|
-
type:
|
|
4601
|
-
|
|
4644
|
+
}], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; }, propDecorators: { hostClass: [{
|
|
4645
|
+
type: HostBinding,
|
|
4646
|
+
args: ['class.k-gantt-views-wrapper']
|
|
4647
|
+
}], views: [{
|
|
4602
4648
|
type: Input
|
|
4603
|
-
}],
|
|
4649
|
+
}], activeView: [{
|
|
4604
4650
|
type: Input
|
|
4605
|
-
}],
|
|
4651
|
+
}], activeViewChange: [{
|
|
4606
4652
|
type: Output
|
|
4607
4653
|
}] } });
|
|
4608
4654
|
|
|
4609
4655
|
/**
|
|
4610
|
-
*
|
|
4656
|
+
* The UI for adding new items to the Gantt.
|
|
4657
|
+
* Use it within a toolbar template to provide a custom icon or list of options.
|
|
4611
4658
|
*/
|
|
4612
|
-
class
|
|
4613
|
-
constructor(
|
|
4614
|
-
this.mapper = mapper;
|
|
4615
|
-
this.editService = editService;
|
|
4659
|
+
class GanttAddTaskComponent {
|
|
4660
|
+
constructor(localizationService, editService, ngZone) {
|
|
4616
4661
|
this.localizationService = localizationService;
|
|
4662
|
+
this.editService = editService;
|
|
4663
|
+
this.ngZone = ngZone;
|
|
4664
|
+
/**
|
|
4665
|
+
* Sets the data of the DropDownButton.
|
|
4666
|
+
* > The data has to be provided in an array-like list.
|
|
4667
|
+
*/
|
|
4668
|
+
this.data = [{
|
|
4669
|
+
text: this.getText('addChildText'),
|
|
4670
|
+
type: 'addChild'
|
|
4671
|
+
}, {
|
|
4672
|
+
text: this.getText('addAboveText'),
|
|
4673
|
+
type: 'addAbove'
|
|
4674
|
+
}, {
|
|
4675
|
+
text: this.getText('addBelowText'),
|
|
4676
|
+
type: 'addBelow'
|
|
4677
|
+
}];
|
|
4678
|
+
/**
|
|
4679
|
+
* Defines the name of an existing icon in a Kendo UI theme.
|
|
4680
|
+
* @default 'plus'
|
|
4681
|
+
*/
|
|
4682
|
+
this.icon = 'plus';
|
|
4683
|
+
/**
|
|
4684
|
+
* Defines an [`SVGIcon`](slug:api_icons_svgicon) icon to be rendered inside the `GanttAddTaskComponent` using
|
|
4685
|
+
* a [`KendoSVGIcon`](slug:api_icons_svgiconcomponent) component.
|
|
4686
|
+
*/
|
|
4687
|
+
this.svgIcon = plusIcon;
|
|
4617
4688
|
}
|
|
4618
4689
|
/**
|
|
4619
4690
|
* @hidden
|
|
4620
4691
|
*/
|
|
4621
|
-
|
|
4622
|
-
return this.
|
|
4692
|
+
getText(message) {
|
|
4693
|
+
return this.localizationService.get(message);
|
|
4623
4694
|
}
|
|
4624
|
-
|
|
4625
|
-
|
|
4695
|
+
/**
|
|
4696
|
+
* @hidden
|
|
4697
|
+
*/
|
|
4698
|
+
handleOpen(e) {
|
|
4699
|
+
if (!this.editService.getSelectedItem()) {
|
|
4700
|
+
e.preventDefault();
|
|
4701
|
+
}
|
|
4702
|
+
}
|
|
4703
|
+
/**
|
|
4704
|
+
* @hidden
|
|
4705
|
+
*/
|
|
4706
|
+
handleMouseClick() {
|
|
4707
|
+
if (!this.editService.getSelectedItem()) {
|
|
4708
|
+
this.ngZone.run(() => {
|
|
4709
|
+
this.editService.addEvent.next({
|
|
4710
|
+
selectedItem: null,
|
|
4711
|
+
actionType: 'addTask'
|
|
4712
|
+
});
|
|
4713
|
+
});
|
|
4714
|
+
}
|
|
4715
|
+
}
|
|
4716
|
+
/**
|
|
4717
|
+
* @hidden
|
|
4718
|
+
*/
|
|
4719
|
+
handleItemClick(e) {
|
|
4720
|
+
this.editService.addEvent.next({
|
|
4721
|
+
actionType: e.type,
|
|
4722
|
+
selectedItem: null
|
|
4723
|
+
});
|
|
4626
4724
|
}
|
|
4627
4725
|
}
|
|
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: [{
|
|
4726
|
+
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 });
|
|
4727
|
+
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: `
|
|
4728
|
+
<kendo-dropdownbutton
|
|
4729
|
+
[data]="data"
|
|
4730
|
+
[icon]="icon"
|
|
4731
|
+
[svgIcon]="svgIcon"
|
|
4732
|
+
[kendoEventsOutsideAngular]="{ click: handleMouseClick }"
|
|
4733
|
+
[scope]="this"
|
|
4734
|
+
(itemClick)="handleItemClick($event)"
|
|
4735
|
+
(open)="handleOpen($event)">
|
|
4736
|
+
{{ getText('addTaskText') }}
|
|
4737
|
+
</kendo-dropdownbutton>
|
|
4738
|
+
`, 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"] }] });
|
|
4739
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttAddTaskComponent, decorators: [{
|
|
4661
4740
|
type: Component,
|
|
4662
4741
|
args: [{
|
|
4663
|
-
selector: 'kendo-gantt-task
|
|
4742
|
+
selector: 'kendo-gantt-add-task',
|
|
4664
4743
|
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
|
-
`
|
|
4744
|
+
<kendo-dropdownbutton
|
|
4745
|
+
[data]="data"
|
|
4746
|
+
[icon]="icon"
|
|
4747
|
+
[svgIcon]="svgIcon"
|
|
4748
|
+
[kendoEventsOutsideAngular]="{ click: handleMouseClick }"
|
|
4749
|
+
[scope]="this"
|
|
4750
|
+
(itemClick)="handleItemClick($event)"
|
|
4751
|
+
(open)="handleOpen($event)">
|
|
4752
|
+
{{ getText('addTaskText') }}
|
|
4753
|
+
</kendo-dropdownbutton>
|
|
4754
|
+
`,
|
|
4755
|
+
standalone: true,
|
|
4756
|
+
imports: [DropDownButtonComponent, EventsOutsideAngularDirective]
|
|
4695
4757
|
}]
|
|
4696
|
-
}], ctorParameters: function () { return [{ type:
|
|
4758
|
+
}], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: EditService }, { type: i0.NgZone }]; }, propDecorators: { data: [{
|
|
4759
|
+
type: Input
|
|
4760
|
+
}], icon: [{
|
|
4761
|
+
type: Input
|
|
4762
|
+
}], svgIcon: [{
|
|
4763
|
+
type: Input
|
|
4764
|
+
}] } });
|
|
4697
4765
|
|
|
4698
4766
|
/**
|
|
4699
4767
|
* @hidden
|
|
4700
4768
|
*/
|
|
4701
|
-
class
|
|
4702
|
-
constructor(
|
|
4703
|
-
this.
|
|
4704
|
-
this.
|
|
4705
|
-
this.
|
|
4706
|
-
this.
|
|
4707
|
-
this.
|
|
4708
|
-
this.
|
|
4709
|
-
this.deleteIcon = trashIcon;
|
|
4710
|
-
}
|
|
4711
|
-
ngOnInit() {
|
|
4712
|
-
this.editService.loadTasks(this.data).subscribe(value => {
|
|
4713
|
-
this.loadedTasks = value;
|
|
4714
|
-
});
|
|
4769
|
+
class ToolbarComponent {
|
|
4770
|
+
constructor(hostEl, navigationService) {
|
|
4771
|
+
this.hostEl = hostEl;
|
|
4772
|
+
this.navigationService = navigationService;
|
|
4773
|
+
this.context = {};
|
|
4774
|
+
this.role = 'toolbar';
|
|
4775
|
+
this.toolbarSizingClass = true;
|
|
4776
|
+
this.activeViewChange = new EventEmitter();
|
|
4715
4777
|
}
|
|
4716
|
-
|
|
4717
|
-
|
|
4778
|
+
clickHandler(ev) {
|
|
4779
|
+
if (this.navigable) {
|
|
4780
|
+
const closestFocusable = closest(ev.target, isFocusable);
|
|
4781
|
+
const targetIndex = this.navigationService.focusableContent.indexOf(closestFocusable);
|
|
4782
|
+
if (targetIndex > -1) {
|
|
4783
|
+
this.navigationService.focusIndex = targetIndex;
|
|
4784
|
+
}
|
|
4785
|
+
this.navigationService.updateFocus();
|
|
4786
|
+
}
|
|
4718
4787
|
}
|
|
4719
|
-
|
|
4720
|
-
this.
|
|
4788
|
+
arrowLeftListener() {
|
|
4789
|
+
if (this.navigable && isDocumentAvailable()) {
|
|
4790
|
+
this.navigationService.focusIndex--;
|
|
4791
|
+
if (this.navigationService.focusIndex < 0) {
|
|
4792
|
+
this.navigationService.focusIndex = this.navigationService.focusableContent.length - 1;
|
|
4793
|
+
}
|
|
4794
|
+
this.navigationService.updateFocus();
|
|
4795
|
+
}
|
|
4721
4796
|
}
|
|
4722
|
-
|
|
4723
|
-
|
|
4797
|
+
arrowRightListener() {
|
|
4798
|
+
if (this.navigable && isDocumentAvailable()) {
|
|
4799
|
+
this.navigationService.focusIndex++;
|
|
4800
|
+
if (this.navigationService.focusIndex >= this.navigationService.focusableContent.length) {
|
|
4801
|
+
this.navigationService.focusIndex = 0;
|
|
4802
|
+
}
|
|
4803
|
+
this.navigationService.updateFocus();
|
|
4804
|
+
}
|
|
4724
4805
|
}
|
|
4725
|
-
set
|
|
4726
|
-
this.
|
|
4806
|
+
set position(value) {
|
|
4807
|
+
this.context.position = this._position = value;
|
|
4727
4808
|
}
|
|
4728
|
-
|
|
4729
|
-
return this.
|
|
4809
|
+
get position() {
|
|
4810
|
+
return this._position;
|
|
4730
4811
|
}
|
|
4731
|
-
|
|
4732
|
-
return
|
|
4812
|
+
get toolbarTemplateRef() {
|
|
4813
|
+
return this.toolbarTemplate ? this.toolbarTemplate.templateRef : undefined;
|
|
4733
4814
|
}
|
|
4734
|
-
|
|
4735
|
-
this.
|
|
4815
|
+
get renderTemplate() {
|
|
4816
|
+
const ganttToolbarTemplate = this.toolbarTemplate;
|
|
4817
|
+
const templatePosition = ganttToolbarTemplate ? ganttToolbarTemplate.position : null;
|
|
4818
|
+
return ganttToolbarTemplate && (templatePosition === 'both' || templatePosition === this.position);
|
|
4736
4819
|
}
|
|
4737
|
-
|
|
4738
|
-
this.
|
|
4820
|
+
handleViewChange(view) {
|
|
4821
|
+
this.activeViewChange.emit(view);
|
|
4822
|
+
}
|
|
4823
|
+
ngAfterViewInit() {
|
|
4824
|
+
if (isDocumentAvailable()) {
|
|
4825
|
+
const focusableElements = Array.from(this.hostEl.nativeElement.querySelectorAll(focusableSelector) || [])
|
|
4826
|
+
.filter(el => isVisible(el));
|
|
4827
|
+
if (focusableElements.length) {
|
|
4828
|
+
this.navigationService.focusableContent = focusableElements;
|
|
4829
|
+
}
|
|
4830
|
+
}
|
|
4739
4831
|
}
|
|
4740
4832
|
}
|
|
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: [{
|
|
4833
|
+
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 });
|
|
4834
|
+
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: `
|
|
4835
|
+
<ng-container *ngIf="!renderTemplate">
|
|
4836
|
+
<kendo-gantt-add-task *ngIf="showAddTask"></kendo-gantt-add-task>
|
|
4837
|
+
<span class="k-spacer k-toolbar-spacer"></span>
|
|
4838
|
+
<kendo-gantt-view-selector
|
|
4839
|
+
*ngIf="showViewSelector"
|
|
4840
|
+
[views]="views"
|
|
4841
|
+
[activeView]="activeView"
|
|
4842
|
+
(activeViewChange)="handleViewChange($event)"></kendo-gantt-view-selector>
|
|
4843
|
+
</ng-container>
|
|
4844
|
+
<ng-template
|
|
4845
|
+
*ngIf="renderTemplate"
|
|
4846
|
+
[ngTemplateOutlet]="toolbarTemplateRef"
|
|
4847
|
+
[ngTemplateOutletContext]="context"
|
|
4848
|
+
>
|
|
4849
|
+
</ng-template>
|
|
4850
|
+
`, 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"] }] });
|
|
4851
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToolbarComponent, decorators: [{
|
|
4815
4852
|
type: Component,
|
|
4816
4853
|
args: [{
|
|
4817
|
-
selector: 'kendo-gantt-
|
|
4854
|
+
selector: 'kendo-gantt-toolbar',
|
|
4855
|
+
providers: [ToolbarNavigationService],
|
|
4818
4856
|
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
|
-
`
|
|
4857
|
+
<ng-container *ngIf="!renderTemplate">
|
|
4858
|
+
<kendo-gantt-add-task *ngIf="showAddTask"></kendo-gantt-add-task>
|
|
4859
|
+
<span class="k-spacer k-toolbar-spacer"></span>
|
|
4860
|
+
<kendo-gantt-view-selector
|
|
4861
|
+
*ngIf="showViewSelector"
|
|
4862
|
+
[views]="views"
|
|
4863
|
+
[activeView]="activeView"
|
|
4864
|
+
(activeViewChange)="handleViewChange($event)"></kendo-gantt-view-selector>
|
|
4865
|
+
</ng-container>
|
|
4866
|
+
<ng-template
|
|
4867
|
+
*ngIf="renderTemplate"
|
|
4868
|
+
[ngTemplateOutlet]="toolbarTemplateRef"
|
|
4869
|
+
[ngTemplateOutletContext]="context"
|
|
4870
|
+
>
|
|
4871
|
+
</ng-template>
|
|
4872
|
+
`,
|
|
4873
|
+
standalone: true,
|
|
4874
|
+
imports: [NgIf, GanttAddTaskComponent, ViewSelectorComponent, NgTemplateOutlet]
|
|
4890
4875
|
}]
|
|
4891
|
-
}], ctorParameters: function () { return [{ type:
|
|
4876
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ToolbarNavigationService }]; }, propDecorators: { role: [{
|
|
4877
|
+
type: HostBinding,
|
|
4878
|
+
args: ['attr.role']
|
|
4879
|
+
}], toolbarSizingClass: [{
|
|
4880
|
+
type: HostBinding,
|
|
4881
|
+
args: ['class.k-toolbar-md']
|
|
4882
|
+
}], clickHandler: [{
|
|
4883
|
+
type: HostListener,
|
|
4884
|
+
args: ['click', ['$event']]
|
|
4885
|
+
}], arrowLeftListener: [{
|
|
4886
|
+
type: HostListener,
|
|
4887
|
+
args: ['keydown.arrowleft', ['$event']]
|
|
4888
|
+
}], arrowRightListener: [{
|
|
4889
|
+
type: HostListener,
|
|
4890
|
+
args: ['keydown.arrowright', ['$event']]
|
|
4891
|
+
}], activeViewChange: [{
|
|
4892
|
+
type: Output
|
|
4893
|
+
}], showAddTask: [{
|
|
4894
|
+
type: Input
|
|
4895
|
+
}], showViewSelector: [{
|
|
4896
|
+
type: Input
|
|
4897
|
+
}], views: [{
|
|
4898
|
+
type: Input
|
|
4899
|
+
}], activeView: [{
|
|
4900
|
+
type: Input
|
|
4901
|
+
}], toolbarTemplate: [{
|
|
4902
|
+
type: Input
|
|
4903
|
+
}], navigable: [{
|
|
4904
|
+
type: Input
|
|
4905
|
+
}], position: [{
|
|
4892
4906
|
type: Input
|
|
4893
4907
|
}] } });
|
|
4894
4908
|
|
|
@@ -5053,7 +5067,7 @@ class LocalizedMessagesDirective extends Messages {
|
|
|
5053
5067
|
}
|
|
5054
5068
|
}
|
|
5055
5069
|
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: [
|
|
5070
|
+
LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: LocalizedMessagesDirective, isStandalone: true, selector: "[kendoGanttLocalizedMessages]", providers: [
|
|
5057
5071
|
{
|
|
5058
5072
|
provide: Messages,
|
|
5059
5073
|
useExisting: forwardRef(() => LocalizedMessagesDirective)
|
|
@@ -5068,7 +5082,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5068
5082
|
useExisting: forwardRef(() => LocalizedMessagesDirective)
|
|
5069
5083
|
}
|
|
5070
5084
|
],
|
|
5071
|
-
selector: '[kendoGanttLocalizedMessages]'
|
|
5085
|
+
selector: '[kendoGanttLocalizedMessages]',
|
|
5086
|
+
standalone: true
|
|
5072
5087
|
}]
|
|
5073
5088
|
}], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
|
|
5074
5089
|
|
|
@@ -6344,9 +6359,13 @@ class GanttComponent {
|
|
|
6344
6359
|
}
|
|
6345
6360
|
}
|
|
6346
6361
|
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: [
|
|
6362
|
+
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
6363
|
GanttLocalizationService,
|
|
6349
6364
|
LocalizationService,
|
|
6365
|
+
{
|
|
6366
|
+
provide: L10N_PREFIX,
|
|
6367
|
+
useValue: 'kendo.gantt'
|
|
6368
|
+
},
|
|
6350
6369
|
{
|
|
6351
6370
|
provide: DataBoundTreeComponent,
|
|
6352
6371
|
useExisting: forwardRef(() => GanttComponent)
|
|
@@ -6740,7 +6759,7 @@ GanttComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version
|
|
|
6740
6759
|
</kendo-dialog>
|
|
6741
6760
|
|
|
6742
6761
|
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
|
|
6743
|
-
`, isInline: true, dependencies: [{ kind: "directive", type:
|
|
6762
|
+
`, 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
6763
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttComponent, decorators: [{
|
|
6745
6764
|
type: Component,
|
|
6746
6765
|
args: [{
|
|
@@ -6749,6 +6768,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
6749
6768
|
providers: [
|
|
6750
6769
|
GanttLocalizationService,
|
|
6751
6770
|
LocalizationService,
|
|
6771
|
+
{
|
|
6772
|
+
provide: L10N_PREFIX,
|
|
6773
|
+
useValue: 'kendo.gantt'
|
|
6774
|
+
},
|
|
6752
6775
|
{
|
|
6753
6776
|
provide: DataBoundTreeComponent,
|
|
6754
6777
|
useExisting: forwardRef(() => GanttComponent)
|
|
@@ -7143,7 +7166,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
7143
7166
|
</kendo-dialog>
|
|
7144
7167
|
|
|
7145
7168
|
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
|
|
7146
|
-
|
|
7169
|
+
`,
|
|
7170
|
+
standalone: true,
|
|
7171
|
+
imports: [LocalizedMessagesDirective, NgIf, ToolbarComponent, SplitterComponent, SplitterPaneComponent, TreeListComponent, EventsOutsideAngularDirective, CustomMessagesComponent$2, GanttTimelineComponent, EditDialogComponent, DialogComponent, DialogActionsComponent, TreeListSpacerComponent, ButtonComponent, WatermarkOverlayComponent]
|
|
7147
7172
|
}]
|
|
7148
7173
|
}], 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
7174
|
type: ViewChild,
|
|
@@ -7237,252 +7262,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
7237
7262
|
type: Input
|
|
7238
7263
|
}], taskClass: [{
|
|
7239
7264
|
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: [{
|
|
7265
|
+
}], rowClass: [{
|
|
7481
7266
|
type: Input
|
|
7482
|
-
}],
|
|
7483
|
-
type:
|
|
7484
|
-
}],
|
|
7267
|
+
}], isExpanded: [{
|
|
7268
|
+
type: Input
|
|
7269
|
+
}], columnsAutoSize: [{
|
|
7270
|
+
type: Input
|
|
7271
|
+
}], currentTimeMarker: [{
|
|
7272
|
+
type: Input
|
|
7273
|
+
}], columnMenu: [{
|
|
7274
|
+
type: Input
|
|
7275
|
+
}], columnsReorderable: [{
|
|
7276
|
+
type: Input
|
|
7277
|
+
}], columnsResizable: [{
|
|
7485
7278
|
type: Input
|
|
7279
|
+
}], dragScrollSettings: [{
|
|
7280
|
+
type: Input
|
|
7281
|
+
}], rowExpand: [{
|
|
7282
|
+
type: Output
|
|
7283
|
+
}], taskDblClick: [{
|
|
7284
|
+
type: Output
|
|
7285
|
+
}], cellDblClick: [{
|
|
7286
|
+
type: Output
|
|
7287
|
+
}], cellClose: [{
|
|
7288
|
+
type: Output
|
|
7289
|
+
}], taskDelete: [{
|
|
7290
|
+
type: Output
|
|
7291
|
+
}], rowCollapse: [{
|
|
7292
|
+
type: Output
|
|
7293
|
+
}], remove: [{
|
|
7294
|
+
type: Output
|
|
7295
|
+
}], cancel: [{
|
|
7296
|
+
type: Output
|
|
7297
|
+
}], save: [{
|
|
7298
|
+
type: Output
|
|
7299
|
+
}], taskAdd: [{
|
|
7300
|
+
type: Output
|
|
7301
|
+
}], dependencyAdd: [{
|
|
7302
|
+
type: Output
|
|
7303
|
+
}], sortChange: [{
|
|
7304
|
+
type: Output
|
|
7305
|
+
}], filterChange: [{
|
|
7306
|
+
type: Output
|
|
7307
|
+
}], dataStateChange: [{
|
|
7308
|
+
type: Output
|
|
7309
|
+
}], treeListPaneCollapsedChange: [{
|
|
7310
|
+
type: Output
|
|
7311
|
+
}], timelinePaneCollapsedChange: [{
|
|
7312
|
+
type: Output
|
|
7313
|
+
}], timelinePaneSizeChange: [{
|
|
7314
|
+
type: Output
|
|
7315
|
+
}], activeViewChange: [{
|
|
7316
|
+
type: Output
|
|
7317
|
+
}], columnResize: [{
|
|
7318
|
+
type: Output
|
|
7319
|
+
}], columnReorder: [{
|
|
7320
|
+
type: Output
|
|
7321
|
+
}], columnVisibilityChange: [{
|
|
7322
|
+
type: Output
|
|
7323
|
+
}], columnLockedChange: [{
|
|
7324
|
+
type: Output
|
|
7325
|
+
}], cellClick: [{
|
|
7326
|
+
type: Output
|
|
7327
|
+
}], taskClick: [{
|
|
7328
|
+
type: Output
|
|
7486
7329
|
}] } });
|
|
7487
7330
|
|
|
7488
7331
|
/**
|
|
@@ -7499,7 +7342,7 @@ class DragValidationTooltipComponent {
|
|
|
7499
7342
|
}
|
|
7500
7343
|
}
|
|
7501
7344
|
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: `
|
|
7345
|
+
DragValidationTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DragValidationTooltipComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
|
|
7503
7346
|
<div
|
|
7504
7347
|
class="k-tooltip k-gantt-tooltip-validation"
|
|
7505
7348
|
[class.k-gantt-tooltip-valid]="showValidityStatus && isValid"
|
|
@@ -7533,10 +7376,92 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
7533
7376
|
<span class="k-gantt-tooltip-validation-value">{{ toTaskName }}</span>
|
|
7534
7377
|
</div>
|
|
7535
7378
|
</div>
|
|
7536
|
-
|
|
7379
|
+
`,
|
|
7380
|
+
standalone: true
|
|
7537
7381
|
}]
|
|
7538
7382
|
}] });
|
|
7539
7383
|
|
|
7384
|
+
/**
|
|
7385
|
+
* A directive which binds the Gantt to an array of objects by using
|
|
7386
|
+
* an ID and parent ID field to define the hierarchy.
|
|
7387
|
+
*
|
|
7388
|
+
* The directive encapsulates the in-memory handling of data operations such as sorting and filtering.
|
|
7389
|
+
*/
|
|
7390
|
+
class GanttFlatBindingDirective extends FlatBindingDirective {
|
|
7391
|
+
/**
|
|
7392
|
+
* @hidden
|
|
7393
|
+
*/
|
|
7394
|
+
set aggregate(value) {
|
|
7395
|
+
super.aggregate = value;
|
|
7396
|
+
}
|
|
7397
|
+
}
|
|
7398
|
+
GanttFlatBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttFlatBindingDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
7399
|
+
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 });
|
|
7400
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttFlatBindingDirective, decorators: [{
|
|
7401
|
+
type: Directive,
|
|
7402
|
+
args: [{
|
|
7403
|
+
selector: '[kendoGanttFlatBinding]',
|
|
7404
|
+
exportAs: 'kendoGanttFlatBinding',
|
|
7405
|
+
standalone: true
|
|
7406
|
+
}]
|
|
7407
|
+
}], propDecorators: { data: [{
|
|
7408
|
+
type: Input,
|
|
7409
|
+
args: ['kendoGanttFlatBinding']
|
|
7410
|
+
}] } });
|
|
7411
|
+
|
|
7412
|
+
/**
|
|
7413
|
+
* A directive which binds the Gantt to a tree of objects,
|
|
7414
|
+
* which encapsulates the in-memory handling of data operations such as sorting and filtering.
|
|
7415
|
+
*/
|
|
7416
|
+
class GanttHierarchyBindingDirective extends HierarchyBindingDirective {
|
|
7417
|
+
/**
|
|
7418
|
+
* @hidden
|
|
7419
|
+
*/
|
|
7420
|
+
set aggregate(value) {
|
|
7421
|
+
super.aggregate = value;
|
|
7422
|
+
}
|
|
7423
|
+
}
|
|
7424
|
+
GanttHierarchyBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttHierarchyBindingDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
7425
|
+
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 });
|
|
7426
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttHierarchyBindingDirective, decorators: [{
|
|
7427
|
+
type: Directive,
|
|
7428
|
+
args: [{
|
|
7429
|
+
selector: '[kendoGanttHierarchyBinding]',
|
|
7430
|
+
exportAs: 'kendoGanttHierarchyBinding',
|
|
7431
|
+
standalone: true
|
|
7432
|
+
}]
|
|
7433
|
+
}], propDecorators: { data: [{
|
|
7434
|
+
type: Input,
|
|
7435
|
+
args: ['kendoGanttHierarchyBinding']
|
|
7436
|
+
}] } });
|
|
7437
|
+
|
|
7438
|
+
/**
|
|
7439
|
+
* A directive which controls the expanded state of the items.
|
|
7440
|
+
*/
|
|
7441
|
+
class GanttExpandableDirective extends ExpandableDirective {
|
|
7442
|
+
/**
|
|
7443
|
+
* Defines the item key that will be stored in the expandedKeys collection.
|
|
7444
|
+
* Defaults to the task data item ID field,
|
|
7445
|
+
* which is specified in the [`taskModelFields`]({% slug api_gantt_ganttcomponent %}#toc-taskmodelfields) object.
|
|
7446
|
+
*
|
|
7447
|
+
*/
|
|
7448
|
+
set expandBy(value) {
|
|
7449
|
+
super.expandBy = value;
|
|
7450
|
+
}
|
|
7451
|
+
}
|
|
7452
|
+
GanttExpandableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttExpandableDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
7453
|
+
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 });
|
|
7454
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttExpandableDirective, decorators: [{
|
|
7455
|
+
type: Directive,
|
|
7456
|
+
args: [{
|
|
7457
|
+
exportAs: 'kendoGanttExpandable',
|
|
7458
|
+
selector: '[kendoGanttExpandable]',
|
|
7459
|
+
standalone: true
|
|
7460
|
+
}]
|
|
7461
|
+
}], propDecorators: { expandBy: [{
|
|
7462
|
+
type: Input
|
|
7463
|
+
}] } });
|
|
7464
|
+
|
|
7540
7465
|
/**
|
|
7541
7466
|
* When added to the .k-task-dot, the element will be kept with hover styles.
|
|
7542
7467
|
* Used for the drag clue from which the dragging has started.
|
|
@@ -7831,11 +7756,12 @@ class DependencyDragCreateDirective {
|
|
|
7831
7756
|
}
|
|
7832
7757
|
}
|
|
7833
7758
|
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 });
|
|
7759
|
+
DependencyDragCreateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DependencyDragCreateDirective, isStandalone: true, selector: "[kendoGanttDependencyDragCreate]", inputs: { displayValidationTooltip: "displayValidationTooltip" }, ngImport: i0 });
|
|
7835
7760
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DependencyDragCreateDirective, decorators: [{
|
|
7836
7761
|
type: Directive,
|
|
7837
7762
|
args: [{
|
|
7838
|
-
selector: '[kendoGanttDependencyDragCreate]'
|
|
7763
|
+
selector: '[kendoGanttDependencyDragCreate]',
|
|
7764
|
+
standalone: true
|
|
7839
7765
|
}]
|
|
7840
7766
|
}], ctorParameters: function () { return [{ type: GanttComponent }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: MappingService }, { type: i3.PopupService }, { type: TimelineScrollService }]; }, propDecorators: { displayValidationTooltip: [{
|
|
7841
7767
|
type: Input
|
|
@@ -7854,7 +7780,7 @@ class TimelineDayViewComponent extends ViewBase {
|
|
|
7854
7780
|
}
|
|
7855
7781
|
}
|
|
7856
7782
|
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: [
|
|
7783
|
+
TimelineDayViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TimelineDayViewComponent, isStandalone: true, selector: "kendo-gantt-timeline-day-view", providers: [
|
|
7858
7784
|
{
|
|
7859
7785
|
provide: ViewBase,
|
|
7860
7786
|
useExisting: forwardRef(() => TimelineDayViewComponent)
|
|
@@ -7870,7 +7796,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
7870
7796
|
provide: ViewBase,
|
|
7871
7797
|
useExisting: forwardRef(() => TimelineDayViewComponent)
|
|
7872
7798
|
}
|
|
7873
|
-
]
|
|
7799
|
+
],
|
|
7800
|
+
standalone: true
|
|
7874
7801
|
}]
|
|
7875
7802
|
}], ctorParameters: function () { return [{ type: OptionChangesService }, { type: DependencyDomService }]; } });
|
|
7876
7803
|
|
|
@@ -7887,7 +7814,7 @@ class TimelineWeekViewComponent extends ViewBase {
|
|
|
7887
7814
|
}
|
|
7888
7815
|
}
|
|
7889
7816
|
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: [
|
|
7817
|
+
TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TimelineWeekViewComponent, isStandalone: true, selector: "kendo-gantt-timeline-week-view", providers: [
|
|
7891
7818
|
{
|
|
7892
7819
|
provide: ViewBase,
|
|
7893
7820
|
useExisting: forwardRef(() => TimelineWeekViewComponent)
|
|
@@ -7903,7 +7830,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
7903
7830
|
provide: ViewBase,
|
|
7904
7831
|
useExisting: forwardRef(() => TimelineWeekViewComponent)
|
|
7905
7832
|
}
|
|
7906
|
-
]
|
|
7833
|
+
],
|
|
7834
|
+
standalone: true
|
|
7907
7835
|
}]
|
|
7908
7836
|
}], ctorParameters: function () { return [{ type: OptionChangesService }, { type: DependencyDomService }]; } });
|
|
7909
7837
|
|
|
@@ -7920,7 +7848,7 @@ class TimelineMonthViewComponent extends ViewBase {
|
|
|
7920
7848
|
}
|
|
7921
7849
|
}
|
|
7922
7850
|
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: [
|
|
7851
|
+
TimelineMonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TimelineMonthViewComponent, isStandalone: true, selector: "kendo-gantt-timeline-month-view", providers: [
|
|
7924
7852
|
{
|
|
7925
7853
|
provide: ViewBase,
|
|
7926
7854
|
useExisting: forwardRef(() => TimelineMonthViewComponent)
|
|
@@ -7936,7 +7864,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
7936
7864
|
provide: ViewBase,
|
|
7937
7865
|
useExisting: forwardRef(() => TimelineMonthViewComponent)
|
|
7938
7866
|
}
|
|
7939
|
-
]
|
|
7867
|
+
],
|
|
7868
|
+
standalone: true
|
|
7940
7869
|
}]
|
|
7941
7870
|
}], ctorParameters: function () { return [{ type: OptionChangesService }, { type: DependencyDomService }]; } });
|
|
7942
7871
|
|
|
@@ -7953,7 +7882,7 @@ class TimelineYearViewComponent extends ViewBase {
|
|
|
7953
7882
|
}
|
|
7954
7883
|
}
|
|
7955
7884
|
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: [
|
|
7885
|
+
TimelineYearViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TimelineYearViewComponent, isStandalone: true, selector: "kendo-gantt-timeline-year-view", providers: [
|
|
7957
7886
|
{
|
|
7958
7887
|
provide: ViewBase,
|
|
7959
7888
|
useExisting: forwardRef(() => TimelineYearViewComponent)
|
|
@@ -7969,10 +7898,116 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
7969
7898
|
provide: ViewBase,
|
|
7970
7899
|
useExisting: forwardRef(() => TimelineYearViewComponent)
|
|
7971
7900
|
}
|
|
7972
|
-
]
|
|
7901
|
+
],
|
|
7902
|
+
standalone: true
|
|
7973
7903
|
}]
|
|
7974
7904
|
}], ctorParameters: function () { return [{ type: OptionChangesService }, { type: DependencyDomService }]; } });
|
|
7975
7905
|
|
|
7906
|
+
/**
|
|
7907
|
+
* A directive which handles the [`selectionChange`]({% slug api_gantt_ganttcomponent %}#toc-selectionchange) event of the Gantt
|
|
7908
|
+
* ([see example]({% slug selection_gantt %}#toc-built-in-directive))
|
|
7909
|
+
*/
|
|
7910
|
+
class SelectableDirective {
|
|
7911
|
+
constructor(gantt) {
|
|
7912
|
+
this.gantt = gantt;
|
|
7913
|
+
/**
|
|
7914
|
+
* Fires when the selected keys are changed.
|
|
7915
|
+
*/
|
|
7916
|
+
this.selectedKeysChange = new EventEmitter();
|
|
7917
|
+
this.state = new Set();
|
|
7918
|
+
this.isSelected = this.isSelected.bind(this);
|
|
7919
|
+
this.selectionChange = this.selectionChange.bind(this);
|
|
7920
|
+
this.selectable = true;
|
|
7921
|
+
}
|
|
7922
|
+
/**
|
|
7923
|
+
* @hidden
|
|
7924
|
+
*/
|
|
7925
|
+
set selectable(value) {
|
|
7926
|
+
if (value) {
|
|
7927
|
+
this.gantt.isSelected = this.isSelected;
|
|
7928
|
+
this.subscribeSelection();
|
|
7929
|
+
}
|
|
7930
|
+
else {
|
|
7931
|
+
this.gantt.isSelected = () => false;
|
|
7932
|
+
this.unsubscribeSelection();
|
|
7933
|
+
}
|
|
7934
|
+
this.gantt.selectable = value;
|
|
7935
|
+
this.gantt.updateView();
|
|
7936
|
+
}
|
|
7937
|
+
/**
|
|
7938
|
+
* Sets the selected keys.
|
|
7939
|
+
*/
|
|
7940
|
+
set selectedKeys(value) {
|
|
7941
|
+
if (isPresent(value) && value === this.lastChange) {
|
|
7942
|
+
return;
|
|
7943
|
+
}
|
|
7944
|
+
// prevent multiple items displayed as selected as multiple selection still not supported fully
|
|
7945
|
+
const keys = (value || []).slice(0, 1);
|
|
7946
|
+
this.state = new Set(keys);
|
|
7947
|
+
this.gantt.updateView();
|
|
7948
|
+
}
|
|
7949
|
+
/**
|
|
7950
|
+
* The field name or a function that specifies the data item unique key identifier.
|
|
7951
|
+
* By default, the string field `id` is used.
|
|
7952
|
+
*/
|
|
7953
|
+
set itemKey(value) {
|
|
7954
|
+
if (isString(value)) {
|
|
7955
|
+
this._keyGetter = getter(value);
|
|
7956
|
+
}
|
|
7957
|
+
else {
|
|
7958
|
+
this._keyGetter = value;
|
|
7959
|
+
}
|
|
7960
|
+
}
|
|
7961
|
+
get keyGetter() {
|
|
7962
|
+
return this._keyGetter || this.gantt.idGetter;
|
|
7963
|
+
}
|
|
7964
|
+
ngOnDestroy() {
|
|
7965
|
+
this.unsubscribeSelection();
|
|
7966
|
+
}
|
|
7967
|
+
isSelected(dataItem) {
|
|
7968
|
+
return this.state.has(this.keyGetter(dataItem));
|
|
7969
|
+
}
|
|
7970
|
+
selectionChange({ action, items }) {
|
|
7971
|
+
this.state.clear();
|
|
7972
|
+
if (action === 'select') {
|
|
7973
|
+
items.forEach(item => this.state.add(this.keyGetter(item)));
|
|
7974
|
+
}
|
|
7975
|
+
this.emitSelectedItemsChange();
|
|
7976
|
+
}
|
|
7977
|
+
emitSelectedItemsChange() {
|
|
7978
|
+
this.lastChange = Array.from(this.state);
|
|
7979
|
+
this.selectedKeysChange.emit(this.lastChange);
|
|
7980
|
+
}
|
|
7981
|
+
subscribeSelection() {
|
|
7982
|
+
this.unsubscribeSelection();
|
|
7983
|
+
this.selectionSubscription = this.gantt.selectionChange.subscribe(this.selectionChange);
|
|
7984
|
+
}
|
|
7985
|
+
unsubscribeSelection() {
|
|
7986
|
+
if (this.selectionSubscription) {
|
|
7987
|
+
this.selectionSubscription.unsubscribe();
|
|
7988
|
+
this.selectionSubscription = null;
|
|
7989
|
+
}
|
|
7990
|
+
}
|
|
7991
|
+
}
|
|
7992
|
+
SelectableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SelectableDirective, deps: [{ token: GanttComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
7993
|
+
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 });
|
|
7994
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SelectableDirective, decorators: [{
|
|
7995
|
+
type: Directive,
|
|
7996
|
+
args: [{
|
|
7997
|
+
exportAs: 'kendoGanttSelectable',
|
|
7998
|
+
selector: '[kendoGanttSelectable]',
|
|
7999
|
+
standalone: true
|
|
8000
|
+
}]
|
|
8001
|
+
}], ctorParameters: function () { return [{ type: GanttComponent }]; }, propDecorators: { selectable: [{
|
|
8002
|
+
type: Input
|
|
8003
|
+
}], selectedKeys: [{
|
|
8004
|
+
type: Input
|
|
8005
|
+
}], selectedKeysChange: [{
|
|
8006
|
+
type: Output
|
|
8007
|
+
}], itemKey: [{
|
|
8008
|
+
type: Input
|
|
8009
|
+
}] } });
|
|
8010
|
+
|
|
7976
8011
|
/**
|
|
7977
8012
|
* Custom component messages override default component messages
|
|
7978
8013
|
* ([see example](slug:globalization_treelist#toc-custom-messages)).
|
|
@@ -7987,7 +8022,7 @@ class CustomMessagesComponent extends Messages {
|
|
|
7987
8022
|
}
|
|
7988
8023
|
}
|
|
7989
8024
|
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: [
|
|
8025
|
+
CustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CustomMessagesComponent, isStandalone: true, selector: "kendo-gantt-messages", providers: [
|
|
7991
8026
|
{
|
|
7992
8027
|
provide: Messages,
|
|
7993
8028
|
useExisting: forwardRef(() => CustomMessagesComponent)
|
|
@@ -8003,74 +8038,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
8003
8038
|
}
|
|
8004
8039
|
],
|
|
8005
8040
|
selector: 'kendo-gantt-messages',
|
|
8006
|
-
template:
|
|
8041
|
+
template: ``,
|
|
8042
|
+
standalone: true
|
|
8007
8043
|
}]
|
|
8008
8044
|
}], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
|
|
8009
8045
|
|
|
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 = [
|
|
8046
|
+
/**
|
|
8047
|
+
* Utility array that contains all `@progress/kendo-angular-gantt` related components and directives
|
|
8048
|
+
*/
|
|
8049
|
+
const KENDO_GANTT = [
|
|
8032
8050
|
GanttComponent,
|
|
8033
8051
|
GanttFlatBindingDirective,
|
|
8034
8052
|
GanttHierarchyBindingDirective,
|
|
8035
|
-
GanttTaskComponent,
|
|
8036
|
-
GanttSummaryTaskComponent,
|
|
8037
|
-
GanttMilestoneTaskComponent,
|
|
8038
|
-
GanttTimelineComponent,
|
|
8039
|
-
GanttTasksTableBodyComponent,
|
|
8040
|
-
GanttHeaderTableBodyComponent,
|
|
8041
8053
|
GanttTaskContentTemplateDirective,
|
|
8042
8054
|
GanttTaskTemplateDirective,
|
|
8043
8055
|
GanttSummaryTaskTemplateDirective,
|
|
8044
8056
|
ToolbarTemplateDirective,
|
|
8045
|
-
ToolbarComponent,
|
|
8046
8057
|
ViewSelectorComponent,
|
|
8047
8058
|
GanttColumnComponent,
|
|
8048
8059
|
GanttColumnGroupComponent,
|
|
8049
8060
|
GanttSpanColumnComponent,
|
|
8050
|
-
FilterMenuTemplateDirective,
|
|
8051
8061
|
FilterCellTemplateDirective,
|
|
8062
|
+
FilterMenuTemplateDirective,
|
|
8052
8063
|
CellTemplateDirective,
|
|
8053
8064
|
EditTemplateDirective,
|
|
8054
8065
|
ColumnMenuTemplateDirective,
|
|
8055
8066
|
HeaderTemplateDirective,
|
|
8056
8067
|
FooterTemplateDirective,
|
|
8057
8068
|
GanttExpandableDirective,
|
|
8058
|
-
GanttDependencyDirective,
|
|
8059
8069
|
DependencyDragCreateDirective,
|
|
8060
8070
|
TimelineDayViewComponent,
|
|
8061
8071
|
TimelineWeekViewComponent,
|
|
8062
8072
|
TimelineMonthViewComponent,
|
|
8063
8073
|
TimelineYearViewComponent,
|
|
8064
8074
|
SelectableDirective,
|
|
8065
|
-
EditDialogComponent,
|
|
8066
8075
|
CustomMessagesComponent,
|
|
8067
|
-
|
|
8068
|
-
GanttAddTaskComponent,
|
|
8069
|
-
DragValidationTooltipComponent,
|
|
8070
|
-
TimelineScrollableDirective,
|
|
8071
|
-
DependenciesTableComponent,
|
|
8072
|
-
TaskFieldsComponent
|
|
8076
|
+
GanttAddTaskComponent
|
|
8073
8077
|
];
|
|
8078
|
+
|
|
8079
|
+
// IMPORTANT: NgModule export kept for backwards compatibility
|
|
8074
8080
|
/**
|
|
8075
8081
|
* Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
|
|
8076
8082
|
* definition for the Gantt component.
|
|
@@ -8105,126 +8111,71 @@ const DECLARATIONS = [
|
|
|
8105
8111
|
class GanttModule {
|
|
8106
8112
|
}
|
|
8107
8113
|
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] });
|
|
8114
|
+
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
8115
|
GanttModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttModule, providers: [{
|
|
8208
8116
|
provide: L10N_PREFIX,
|
|
8209
8117
|
useValue: 'kendo.gantt'
|
|
8210
|
-
},
|
|
8211
|
-
|
|
8212
|
-
|
|
8213
|
-
|
|
8118
|
+
},
|
|
8119
|
+
// InputsModule providers
|
|
8120
|
+
IconsService,
|
|
8121
|
+
PopupService,
|
|
8122
|
+
ResizeBatchService,
|
|
8123
|
+
DialogContainerService,
|
|
8124
|
+
DialogService,
|
|
8125
|
+
WindowService,
|
|
8126
|
+
WindowContainerService,
|
|
8127
|
+
// DateInputsModule providers
|
|
8128
|
+
CalendarDOMService,
|
|
8129
|
+
CenturyViewService,
|
|
8130
|
+
DecadeViewService,
|
|
8131
|
+
MonthViewService,
|
|
8132
|
+
YearViewService,
|
|
8133
|
+
WeekNamesService,
|
|
8134
|
+
NavigationService$1,
|
|
8135
|
+
TimePickerDOMService,
|
|
8136
|
+
HoursService,
|
|
8137
|
+
MinutesService,
|
|
8138
|
+
SecondsService,
|
|
8139
|
+
MillisecondsService,
|
|
8140
|
+
DayPeriodService,
|
|
8141
|
+
// TreeListModule providers
|
|
8142
|
+
ColumnResizingService
|
|
8143
|
+
], imports: [GanttComponent, ViewSelectorComponent, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, TimelineDayViewComponent, TimelineWeekViewComponent, TimelineMonthViewComponent, TimelineYearViewComponent, CustomMessagesComponent, GanttAddTaskComponent] });
|
|
8214
8144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GanttModule, decorators: [{
|
|
8215
8145
|
type: NgModule,
|
|
8216
8146
|
args: [{
|
|
8217
|
-
imports: [...
|
|
8218
|
-
|
|
8219
|
-
exports: [...DECLARATIONS],
|
|
8147
|
+
imports: [...KENDO_GANTT],
|
|
8148
|
+
exports: [...KENDO_GANTT],
|
|
8220
8149
|
entryComponents: [DragValidationTooltipComponent],
|
|
8221
8150
|
providers: [{
|
|
8222
8151
|
provide: L10N_PREFIX,
|
|
8223
8152
|
useValue: 'kendo.gantt'
|
|
8224
|
-
},
|
|
8225
|
-
|
|
8226
|
-
|
|
8227
|
-
|
|
8153
|
+
},
|
|
8154
|
+
// InputsModule providers
|
|
8155
|
+
IconsService,
|
|
8156
|
+
PopupService,
|
|
8157
|
+
ResizeBatchService,
|
|
8158
|
+
DialogContainerService,
|
|
8159
|
+
DialogService,
|
|
8160
|
+
WindowService,
|
|
8161
|
+
WindowContainerService,
|
|
8162
|
+
// DateInputsModule providers
|
|
8163
|
+
CalendarDOMService,
|
|
8164
|
+
CenturyViewService,
|
|
8165
|
+
DecadeViewService,
|
|
8166
|
+
MonthViewService,
|
|
8167
|
+
YearViewService,
|
|
8168
|
+
WeekNamesService,
|
|
8169
|
+
NavigationService$1,
|
|
8170
|
+
TimePickerDOMService,
|
|
8171
|
+
HoursService,
|
|
8172
|
+
MinutesService,
|
|
8173
|
+
SecondsService,
|
|
8174
|
+
MillisecondsService,
|
|
8175
|
+
DayPeriodService,
|
|
8176
|
+
// TreeListModule providers
|
|
8177
|
+
ColumnResizingService
|
|
8178
|
+
]
|
|
8228
8179
|
}]
|
|
8229
8180
|
}] });
|
|
8230
8181
|
|
|
@@ -8232,5 +8183,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
8232
8183
|
* Generated bundle index. Do not edit.
|
|
8233
8184
|
*/
|
|
8234
8185
|
|
|
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 };
|
|
8186
|
+
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
8187
|
|