@progress/kendo-angular-gantt 13.2.0-develop.1 → 13.2.0-develop.3
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/common/option-changes.service.d.ts +2 -0
- package/esm2020/common/option-changes.service.mjs +4 -0
- package/esm2020/gantt.component.mjs +3 -0
- package/esm2020/gantt.module.mjs +5 -2
- package/esm2020/models/timeline-header-date-format.mjs +5 -0
- package/esm2020/package-metadata.mjs +2 -2
- package/esm2020/timeline/timeline-base-view.service.mjs +34 -14
- package/esm2020/timeline/timeline-day-view.service.mjs +11 -7
- package/esm2020/timeline/timeline-month-view.service.mjs +11 -7
- package/esm2020/timeline/timeline-week-view.service.mjs +11 -7
- package/esm2020/timeline/timeline-year-view.service.mjs +11 -7
- package/esm2020/timeline/view-base.mjs +6 -1
- package/fesm2015/progress-kendo-angular-gantt.mjs +104 -45
- package/fesm2020/progress-kendo-angular-gantt.mjs +91 -44
- package/gantt.module.d.ts +2 -1
- package/models/models.d.ts +1 -0
- package/models/timeline-header-date-format.d.ts +18 -0
- package/models/timeline-options.interface.d.ts +5 -0
- package/package.json +13 -13
- package/schematics/ngAdd/index.js +11 -11
- package/timeline/timeline-base-view.service.d.ts +12 -7
- package/timeline/timeline-day-view.service.d.ts +2 -1
- package/timeline/timeline-month-view.service.d.ts +2 -1
- package/timeline/timeline-week-view.service.d.ts +2 -1
- package/timeline/timeline-year-view.service.d.ts +2 -1
- package/timeline/view-base.d.ts +6 -1
|
@@ -3,7 +3,7 @@
|
|
|
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, Component, HostBinding, Input, InjectionToken, EventEmitter, Directive, ViewChild, forwardRef,
|
|
6
|
+
import { Injectable, Component, HostBinding, Input, InjectionToken, Inject, LOCALE_ID, EventEmitter, Directive, ViewChild, forwardRef, ViewContainerRef, Output, Optional, QueryList, SkipSelf, Host, ContentChildren, ContentChild, HostListener, isDevMode, NgModule } from '@angular/core';
|
|
7
7
|
import * as i11 from '@progress/kendo-angular-treelist';
|
|
8
8
|
import { ColumnBase, ColumnComponent, ColumnGroupComponent, SpanColumnComponent, DataBoundTreeComponent, ExpandableTreeComponent, TreeListComponent, FlatBindingDirective, HierarchyBindingDirective, ExpandableDirective, TreeListModule } from '@progress/kendo-angular-treelist';
|
|
9
9
|
import { Subject, Subscription, fromEvent, forkJoin, EMPTY, isObservable, of } from 'rxjs';
|
|
@@ -15,8 +15,10 @@ import { cloneDate, addWeeks, firstDayInWeek, addDays, lastDayOfMonth, getDate,
|
|
|
15
15
|
import { getter, touchEnabled } from '@progress/kendo-common';
|
|
16
16
|
import * as i6 from '@angular/common';
|
|
17
17
|
import { CommonModule } from '@angular/common';
|
|
18
|
-
import {
|
|
18
|
+
import { __decorate, __param, __metadata } from 'tslib';
|
|
19
19
|
import * as i1 from '@progress/kendo-angular-intl';
|
|
20
|
+
import { IntlService, IntlModule } from '@progress/kendo-angular-intl';
|
|
21
|
+
import { orderBy } from '@progress/kendo-data-query';
|
|
20
22
|
import { xIcon, plusIcon, minusIcon, saveIcon, cancelOutlineIcon, trashIcon } from '@progress/kendo-svg-icons';
|
|
21
23
|
import * as i7 from '@progress/kendo-angular-icons';
|
|
22
24
|
import { IconsModule } from '@progress/kendo-angular-icons';
|
|
@@ -50,8 +52,8 @@ const packageMetadata = {
|
|
|
50
52
|
name: '@progress/kendo-angular-gantt',
|
|
51
53
|
productName: 'Kendo UI for Angular',
|
|
52
54
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
53
|
-
publishDate:
|
|
54
|
-
version: '13.2.0-develop.
|
|
55
|
+
publishDate: 1688546776,
|
|
56
|
+
version: '13.2.0-develop.3',
|
|
55
57
|
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'
|
|
56
58
|
};
|
|
57
59
|
|
|
@@ -717,10 +719,15 @@ const MONTH_FORMAT = 'MMM';
|
|
|
717
719
|
/**
|
|
718
720
|
* @hidden
|
|
719
721
|
*/
|
|
720
|
-
|
|
721
|
-
|
|
722
|
+
const YEAR_FORMAT = 'yyyy';
|
|
723
|
+
/**
|
|
724
|
+
* @hidden
|
|
725
|
+
*/
|
|
726
|
+
let TimelineBaseViewService = class TimelineBaseViewService {
|
|
727
|
+
constructor(intlService, mapper, localeId) {
|
|
722
728
|
this.intlService = intlService;
|
|
723
729
|
this.mapper = mapper;
|
|
730
|
+
this.localeId = localeId;
|
|
724
731
|
this._viewStart = 0;
|
|
725
732
|
}
|
|
726
733
|
get viewStart() {
|
|
@@ -753,13 +760,14 @@ class TimelineBaseViewService {
|
|
|
753
760
|
* @param end - The tasks' range end date
|
|
754
761
|
* @returns {Array<Object>} - A collection containing the hour slots
|
|
755
762
|
*/
|
|
756
|
-
getHours(start, end) {
|
|
763
|
+
getHours(start, end, customDateFormat) {
|
|
757
764
|
const slots = [];
|
|
758
765
|
const workDayStart = this.intlService.parseDate(this.options.workDayStart).getHours();
|
|
759
766
|
const workDayEnd = this.intlService.parseDate(this.options.workDayEnd).getHours();
|
|
760
767
|
// TODO: retrieve from option?
|
|
761
768
|
const hourSpan = 1;
|
|
762
769
|
let startDate = new Date(start);
|
|
770
|
+
const hoursFormat = customDateFormat ? customDateFormat : HOUR_FORMAT;
|
|
763
771
|
const endDate = new Date(end);
|
|
764
772
|
while (startDate < endDate) {
|
|
765
773
|
const slotEnd = new Date(startDate);
|
|
@@ -769,7 +777,7 @@ class TimelineBaseViewService {
|
|
|
769
777
|
start: startDate,
|
|
770
778
|
end: slotEnd,
|
|
771
779
|
isWorking: isWorkSlot,
|
|
772
|
-
text: this.intlService.formatDate(startDate,
|
|
780
|
+
text: this.intlService.formatDate(startDate, hoursFormat, this.localeId),
|
|
773
781
|
span: 1,
|
|
774
782
|
slotWidth: this.options.slotWidth
|
|
775
783
|
});
|
|
@@ -783,9 +791,10 @@ class TimelineBaseViewService {
|
|
|
783
791
|
* @param end - The tasks' range end date
|
|
784
792
|
* @returns {Array<Object>} - A collection containing the day slots
|
|
785
793
|
*/
|
|
786
|
-
getDays(start, end) {
|
|
794
|
+
getDays(start, end, customDateFormat) {
|
|
787
795
|
const slots = [];
|
|
788
796
|
let startDay = new Date(start);
|
|
797
|
+
const dayFormat = customDateFormat ? customDateFormat : DAY_FORMAT;
|
|
789
798
|
const endDay = new Date(end);
|
|
790
799
|
while (startDay <= endDay) {
|
|
791
800
|
// Get the days with cleared time values (except for start and end day)
|
|
@@ -797,7 +806,7 @@ class TimelineBaseViewService {
|
|
|
797
806
|
start: startDay,
|
|
798
807
|
end: slotEnd,
|
|
799
808
|
isWorking: isWorking,
|
|
800
|
-
text: this.intlService.formatDate(startDay,
|
|
809
|
+
text: this.intlService.formatDate(startDay, dayFormat, this.localeId),
|
|
801
810
|
span: 1,
|
|
802
811
|
slotWidth: this.options.slotWidth
|
|
803
812
|
});
|
|
@@ -805,18 +814,19 @@ class TimelineBaseViewService {
|
|
|
805
814
|
}
|
|
806
815
|
return slots;
|
|
807
816
|
}
|
|
808
|
-
getWeeks(start, end) {
|
|
817
|
+
getWeeks(start, end, customDateFormat) {
|
|
809
818
|
const weekStart = this.intlService.firstDay();
|
|
810
819
|
const slots = [];
|
|
811
820
|
let startDay = new Date(start);
|
|
821
|
+
const dayFormat = customDateFormat ? customDateFormat : DAY_FORMAT;
|
|
812
822
|
const endDay = new Date(end);
|
|
813
823
|
while (startDay <= endDay) {
|
|
814
824
|
const lastWeekDay = lastDayOfWeek(startDay, weekStart);
|
|
815
825
|
const slotEnd = lastWeekDay > endDay ? endDay : lastWeekDay;
|
|
816
826
|
const daySlots = this.getDays(startDay, slotEnd);
|
|
817
827
|
const span = daySlots.length;
|
|
818
|
-
const firstDay = this.intlService.formatDate(firstDayInWeek(getDate(startDay), weekStart),
|
|
819
|
-
const lastDay = this.intlService.formatDate(slotEnd,
|
|
828
|
+
const firstDay = this.intlService.formatDate(firstDayInWeek(getDate(startDay), weekStart), dayFormat, this.localeId);
|
|
829
|
+
const lastDay = this.intlService.formatDate(slotEnd, dayFormat, this.localeId);
|
|
820
830
|
if (span > 0) {
|
|
821
831
|
slots.push({
|
|
822
832
|
start: daySlots[0].start,
|
|
@@ -830,9 +840,10 @@ class TimelineBaseViewService {
|
|
|
830
840
|
}
|
|
831
841
|
return slots;
|
|
832
842
|
}
|
|
833
|
-
getMonths(start, end, isMainViewType) {
|
|
843
|
+
getMonths(start, end, isMainViewType, customDateFormat) {
|
|
834
844
|
const slots = [];
|
|
835
845
|
let startDay = new Date(start);
|
|
846
|
+
const monthFormat = customDateFormat ? customDateFormat : MONTH_FORMAT;
|
|
836
847
|
const endDay = new Date(end);
|
|
837
848
|
while (startDay < endDay) {
|
|
838
849
|
const endMonth = lastDayOfMonth(startDay);
|
|
@@ -841,7 +852,7 @@ class TimelineBaseViewService {
|
|
|
841
852
|
const weekSlots = this.getWeeks(startDay, slotEnd);
|
|
842
853
|
const span = isMainViewType ? daySlots.length : weekSlots.length;
|
|
843
854
|
const monthStart = firstDayOfMonth(getDate(startDay));
|
|
844
|
-
const shortText = this.intlService.formatDate(monthStart,
|
|
855
|
+
const shortText = this.intlService.formatDate(monthStart, monthFormat, this.localeId);
|
|
845
856
|
if (span > 0) {
|
|
846
857
|
slots.push({
|
|
847
858
|
start: isMainViewType ? daySlots[0].start : weekSlots[0].start,
|
|
@@ -855,10 +866,11 @@ class TimelineBaseViewService {
|
|
|
855
866
|
}
|
|
856
867
|
return slots;
|
|
857
868
|
}
|
|
858
|
-
getYears(start, end) {
|
|
869
|
+
getYears(start, end, customDateFormat) {
|
|
859
870
|
const slots = [];
|
|
860
871
|
let startDay = new Date(start);
|
|
861
872
|
const endDay = new Date(end);
|
|
873
|
+
const yearFormat = customDateFormat ? customDateFormat : YEAR_FORMAT;
|
|
862
874
|
while (startDay < endDay) {
|
|
863
875
|
const yearEnd = lastDayOfMonth(lastMonthOfYear(startDay));
|
|
864
876
|
const slotEnd = endDay < yearEnd ? endDay : yearEnd;
|
|
@@ -869,7 +881,7 @@ class TimelineBaseViewService {
|
|
|
869
881
|
start: monthSlots[0].start,
|
|
870
882
|
end: monthSlots[span - 1].end,
|
|
871
883
|
span: span,
|
|
872
|
-
text:
|
|
884
|
+
text: this.intlService.formatDate(slotEnd, yearFormat),
|
|
873
885
|
slotWidth: this.options.slotWidth
|
|
874
886
|
});
|
|
875
887
|
}
|
|
@@ -877,14 +889,20 @@ class TimelineBaseViewService {
|
|
|
877
889
|
}
|
|
878
890
|
return slots;
|
|
879
891
|
}
|
|
880
|
-
}
|
|
892
|
+
};
|
|
893
|
+
TimelineBaseViewService = __decorate([
|
|
894
|
+
__param(2, Inject(LOCALE_ID)),
|
|
895
|
+
__metadata("design:paramtypes", [IntlService,
|
|
896
|
+
MappingService, String])
|
|
897
|
+
], TimelineBaseViewService);
|
|
881
898
|
|
|
882
899
|
/**
|
|
883
900
|
* @hidden
|
|
884
901
|
*/
|
|
885
902
|
class TimelineDayViewService extends TimelineBaseViewService {
|
|
886
|
-
constructor(intlService, mapper) {
|
|
887
|
-
super(intlService, mapper);
|
|
903
|
+
constructor(intlService, mapper, localeId) {
|
|
904
|
+
super(intlService, mapper, localeId);
|
|
905
|
+
this.localeId = localeId;
|
|
888
906
|
}
|
|
889
907
|
/**
|
|
890
908
|
* Gets a date an hour before the first task start with minutes, seconds, milliseconds cleared.
|
|
@@ -915,14 +933,15 @@ class TimelineDayViewService extends TimelineBaseViewService {
|
|
|
915
933
|
* Used to render the number of columns and the header
|
|
916
934
|
*/
|
|
917
935
|
getSlots(tasks) {
|
|
936
|
+
var _a, _b;
|
|
918
937
|
// will return the header rows slots
|
|
919
938
|
const slots = [];
|
|
920
939
|
const { start, end } = this.getRange(tasks);
|
|
921
|
-
const daySlots = this.getDays(start, end);
|
|
940
|
+
const daySlots = this.getDays(start, end, (_a = this.options.timelineHeadersDateFormat) === null || _a === void 0 ? void 0 : _a.groupHeaderDateFormat);
|
|
922
941
|
const hourSlots = [];
|
|
923
942
|
for (let i = 0; i < daySlots.length; i++) {
|
|
924
943
|
const daySlot = daySlots[i];
|
|
925
|
-
const hours = this.getHours(daySlot.start, daySlot.end);
|
|
944
|
+
const hours = this.getHours(daySlot.start, daySlot.end, (_b = this.options.timelineHeadersDateFormat) === null || _b === void 0 ? void 0 : _b.columnHeaderDateFormat);
|
|
926
945
|
daySlot.span = hours.length;
|
|
927
946
|
hourSlots.push(...hours);
|
|
928
947
|
}
|
|
@@ -930,18 +949,24 @@ class TimelineDayViewService extends TimelineBaseViewService {
|
|
|
930
949
|
return slots;
|
|
931
950
|
}
|
|
932
951
|
}
|
|
933
|
-
TimelineDayViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineDayViewService, deps: [{ token: i1.IntlService }, { token: MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
952
|
+
TimelineDayViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineDayViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
934
953
|
TimelineDayViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineDayViewService });
|
|
935
954
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineDayViewService, decorators: [{
|
|
936
955
|
type: Injectable
|
|
937
|
-
}], ctorParameters: function () {
|
|
956
|
+
}], ctorParameters: function () {
|
|
957
|
+
return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
|
|
958
|
+
type: Inject,
|
|
959
|
+
args: [LOCALE_ID]
|
|
960
|
+
}] }];
|
|
961
|
+
} });
|
|
938
962
|
|
|
939
963
|
/**
|
|
940
964
|
* @hidden
|
|
941
965
|
*/
|
|
942
966
|
class TimelineMonthViewService extends TimelineBaseViewService {
|
|
943
|
-
constructor(intlService, mapper) {
|
|
944
|
-
super(intlService, mapper);
|
|
967
|
+
constructor(intlService, mapper, localeId) {
|
|
968
|
+
super(intlService, mapper, localeId);
|
|
969
|
+
this.localeId = localeId;
|
|
945
970
|
}
|
|
946
971
|
/**
|
|
947
972
|
* Gets a week before the first week in which a task starts.
|
|
@@ -976,27 +1001,34 @@ class TimelineMonthViewService extends TimelineBaseViewService {
|
|
|
976
1001
|
* Used to render the number of columns and the header
|
|
977
1002
|
*/
|
|
978
1003
|
getSlots(tasks) {
|
|
1004
|
+
var _a, _b;
|
|
979
1005
|
// will return the header rows slots
|
|
980
1006
|
const slots = [];
|
|
981
1007
|
const { start, end } = this.getRange(tasks);
|
|
982
|
-
const months = this.getMonths(start, end, true);
|
|
983
|
-
const weeks = this.getWeeks(start, end);
|
|
1008
|
+
const months = this.getMonths(start, end, true, (_a = this.options.timelineHeadersDateFormat) === null || _a === void 0 ? void 0 : _a.groupHeaderDateFormat);
|
|
1009
|
+
const weeks = this.getWeeks(start, end, (_b = this.options.timelineHeadersDateFormat) === null || _b === void 0 ? void 0 : _b.columnHeaderDateFormat);
|
|
984
1010
|
slots.push(months, weeks);
|
|
985
1011
|
return slots;
|
|
986
1012
|
}
|
|
987
1013
|
}
|
|
988
|
-
TimelineMonthViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewService, deps: [{ token: i1.IntlService }, { token: MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1014
|
+
TimelineMonthViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
989
1015
|
TimelineMonthViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewService });
|
|
990
1016
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewService, decorators: [{
|
|
991
1017
|
type: Injectable
|
|
992
|
-
}], ctorParameters: function () {
|
|
1018
|
+
}], ctorParameters: function () {
|
|
1019
|
+
return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
|
|
1020
|
+
type: Inject,
|
|
1021
|
+
args: [LOCALE_ID]
|
|
1022
|
+
}] }];
|
|
1023
|
+
} });
|
|
993
1024
|
|
|
994
1025
|
/**
|
|
995
1026
|
* @hidden
|
|
996
1027
|
*/
|
|
997
1028
|
class TimelineWeekViewService extends TimelineBaseViewService {
|
|
998
|
-
constructor(intlService, mapper) {
|
|
999
|
-
super(intlService, mapper);
|
|
1029
|
+
constructor(intlService, mapper, localeId) {
|
|
1030
|
+
super(intlService, mapper, localeId);
|
|
1031
|
+
this.localeId = localeId;
|
|
1000
1032
|
}
|
|
1001
1033
|
/**
|
|
1002
1034
|
* Gets a date a day before the first task start with hours, minutes, seconds, milliseconds cleared.
|
|
@@ -1027,27 +1059,34 @@ class TimelineWeekViewService extends TimelineBaseViewService {
|
|
|
1027
1059
|
* Used to render the number of columns and the header
|
|
1028
1060
|
*/
|
|
1029
1061
|
getSlots(tasks) {
|
|
1062
|
+
var _a, _b;
|
|
1030
1063
|
// will return the header rows slots
|
|
1031
1064
|
const slots = [];
|
|
1032
1065
|
const { start, end } = this.getRange(tasks);
|
|
1033
|
-
const weeks = this.getWeeks(start, end);
|
|
1034
|
-
const days = this.getDays(start, end);
|
|
1066
|
+
const weeks = this.getWeeks(start, end, (_a = this.options.timelineHeadersDateFormat) === null || _a === void 0 ? void 0 : _a.groupHeaderDateFormat);
|
|
1067
|
+
const days = this.getDays(start, end, (_b = this.options.timelineHeadersDateFormat) === null || _b === void 0 ? void 0 : _b.columnHeaderDateFormat);
|
|
1035
1068
|
slots.push(weeks, days);
|
|
1036
1069
|
return slots;
|
|
1037
1070
|
}
|
|
1038
1071
|
}
|
|
1039
|
-
TimelineWeekViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewService, deps: [{ token: i1.IntlService }, { token: MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1072
|
+
TimelineWeekViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1040
1073
|
TimelineWeekViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewService });
|
|
1041
1074
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewService, decorators: [{
|
|
1042
1075
|
type: Injectable
|
|
1043
|
-
}], ctorParameters: function () {
|
|
1076
|
+
}], ctorParameters: function () {
|
|
1077
|
+
return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
|
|
1078
|
+
type: Inject,
|
|
1079
|
+
args: [LOCALE_ID]
|
|
1080
|
+
}] }];
|
|
1081
|
+
} });
|
|
1044
1082
|
|
|
1045
1083
|
/**
|
|
1046
1084
|
* @hidden
|
|
1047
1085
|
*/
|
|
1048
1086
|
class TimeLineYearViewService extends TimelineBaseViewService {
|
|
1049
|
-
constructor(intlService, mapper) {
|
|
1050
|
-
super(intlService, mapper);
|
|
1087
|
+
constructor(intlService, mapper, localeId) {
|
|
1088
|
+
super(intlService, mapper, localeId);
|
|
1089
|
+
this.localeId = localeId;
|
|
1051
1090
|
}
|
|
1052
1091
|
getTableWidth(tasks) {
|
|
1053
1092
|
const timeSlots = this.getSlots(tasks)[1];
|
|
@@ -1073,20 +1112,26 @@ class TimeLineYearViewService extends TimelineBaseViewService {
|
|
|
1073
1112
|
* Used to render the number of columns and the header
|
|
1074
1113
|
*/
|
|
1075
1114
|
getSlots(tasks) {
|
|
1115
|
+
var _a, _b;
|
|
1076
1116
|
// will return the header rows slots
|
|
1077
1117
|
const slots = [];
|
|
1078
1118
|
const { start, end } = this.getRange(tasks);
|
|
1079
|
-
const years = this.getYears(start, end);
|
|
1080
|
-
const months = this.getMonths(start, end);
|
|
1119
|
+
const years = this.getYears(start, end, (_a = this.options.timelineHeadersDateFormat) === null || _a === void 0 ? void 0 : _a.groupHeaderDateFormat);
|
|
1120
|
+
const months = this.getMonths(start, end, false, (_b = this.options.timelineHeadersDateFormat) === null || _b === void 0 ? void 0 : _b.columnHeaderDateFormat);
|
|
1081
1121
|
slots.push(years, months);
|
|
1082
1122
|
return slots;
|
|
1083
1123
|
}
|
|
1084
1124
|
}
|
|
1085
|
-
TimeLineYearViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimeLineYearViewService, deps: [{ token: i1.IntlService }, { token: MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1125
|
+
TimeLineYearViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimeLineYearViewService, deps: [{ token: i1.IntlService }, { token: MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1086
1126
|
TimeLineYearViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimeLineYearViewService });
|
|
1087
1127
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimeLineYearViewService, decorators: [{
|
|
1088
1128
|
type: Injectable
|
|
1089
|
-
}], ctorParameters: function () {
|
|
1129
|
+
}], ctorParameters: function () {
|
|
1130
|
+
return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
|
|
1131
|
+
type: Inject,
|
|
1132
|
+
args: [LOCALE_ID]
|
|
1133
|
+
}] }];
|
|
1134
|
+
} });
|
|
1090
1135
|
|
|
1091
1136
|
/**
|
|
1092
1137
|
* @hidden
|
|
@@ -1123,6 +1168,7 @@ class OptionChangesService {
|
|
|
1123
1168
|
constructor() {
|
|
1124
1169
|
this.viewChanges = new EventEmitter();
|
|
1125
1170
|
this.columnChanges = new EventEmitter();
|
|
1171
|
+
this.dateFormatChanges = new EventEmitter();
|
|
1126
1172
|
}
|
|
1127
1173
|
notifyColumnChanges() {
|
|
1128
1174
|
this.columnChanges.emit();
|
|
@@ -1130,6 +1176,9 @@ class OptionChangesService {
|
|
|
1130
1176
|
notifyViewChanges() {
|
|
1131
1177
|
this.viewChanges.emit();
|
|
1132
1178
|
}
|
|
1179
|
+
notifyDateFormatChanges() {
|
|
1180
|
+
this.dateFormatChanges.emit();
|
|
1181
|
+
}
|
|
1133
1182
|
}
|
|
1134
1183
|
OptionChangesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: OptionChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1135
1184
|
OptionChangesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: OptionChangesService });
|
|
@@ -3903,10 +3952,13 @@ class ViewBase {
|
|
|
3903
3952
|
this.optionChangesService.notifyColumnChanges();
|
|
3904
3953
|
this.dependencyDomService.notifyChanges();
|
|
3905
3954
|
}
|
|
3955
|
+
if (anyChanged(['timelineHeadersDateFormat'], changes)) {
|
|
3956
|
+
this.optionChangesService.notifyDateFormatChanges();
|
|
3957
|
+
}
|
|
3906
3958
|
}
|
|
3907
3959
|
}
|
|
3908
3960
|
ViewBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewBase, deps: [{ token: OptionChangesService }, { token: DependencyDomService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3909
|
-
ViewBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: ViewBase, selector: "kendo-gantt-view-base", inputs: { slotWidth: "slotWidth" }, usesOnChanges: true, ngImport: i0 });
|
|
3961
|
+
ViewBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: ViewBase, selector: "kendo-gantt-view-base", inputs: { slotWidth: "slotWidth", timelineHeadersDateFormat: "timelineHeadersDateFormat" }, usesOnChanges: true, ngImport: i0 });
|
|
3910
3962
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewBase, decorators: [{
|
|
3911
3963
|
type: Directive,
|
|
3912
3964
|
args: [{
|
|
@@ -3915,6 +3967,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
3915
3967
|
}]
|
|
3916
3968
|
}], ctorParameters: function () { return [{ type: OptionChangesService }, { type: DependencyDomService }]; }, propDecorators: { slotWidth: [{
|
|
3917
3969
|
type: Input
|
|
3970
|
+
}], timelineHeadersDateFormat: [{
|
|
3971
|
+
type: Input
|
|
3918
3972
|
}] } });
|
|
3919
3973
|
|
|
3920
3974
|
/**
|
|
@@ -5317,6 +5371,9 @@ class GanttComponent {
|
|
|
5317
5371
|
this.optionChangesSubscriptions.add(this.optionChangesService.viewChanges.subscribe(() => {
|
|
5318
5372
|
this.loadTimelineData();
|
|
5319
5373
|
}));
|
|
5374
|
+
this.optionChangesSubscriptions.add(this.optionChangesService.dateFormatChanges.subscribe(() => {
|
|
5375
|
+
this.loadTimelineData();
|
|
5376
|
+
}));
|
|
5320
5377
|
this.optionChangesSubscriptions.add(this.optionChangesService.columnChanges.subscribe(() => {
|
|
5321
5378
|
this.treeList.columns.notifyOnChanges();
|
|
5322
5379
|
}));
|
|
@@ -7859,7 +7916,8 @@ const IMPORTED_MODULES = [
|
|
|
7859
7916
|
TabStripModule,
|
|
7860
7917
|
GridModule,
|
|
7861
7918
|
DropDownsModule,
|
|
7862
|
-
IconsModule
|
|
7919
|
+
IconsModule,
|
|
7920
|
+
IntlModule
|
|
7863
7921
|
];
|
|
7864
7922
|
const DECLARATIONS = [
|
|
7865
7923
|
GanttComponent,
|
|
@@ -7994,7 +8052,8 @@ GanttModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "1
|
|
|
7994
8052
|
TabStripModule,
|
|
7995
8053
|
GridModule,
|
|
7996
8054
|
DropDownsModule,
|
|
7997
|
-
IconsModule
|
|
8055
|
+
IconsModule,
|
|
8056
|
+
IntlModule], exports: [GanttComponent,
|
|
7998
8057
|
GanttFlatBindingDirective,
|
|
7999
8058
|
GanttHierarchyBindingDirective,
|
|
8000
8059
|
GanttTaskComponent,
|