@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
|
@@ -10,8 +10,10 @@ import * as i0 from "@angular/core";
|
|
|
10
10
|
export declare class OptionChangesService {
|
|
11
11
|
readonly viewChanges: EventEmitter<any>;
|
|
12
12
|
readonly columnChanges: EventEmitter<any>;
|
|
13
|
+
readonly dateFormatChanges: EventEmitter<any>;
|
|
13
14
|
notifyColumnChanges(): void;
|
|
14
15
|
notifyViewChanges(): void;
|
|
16
|
+
notifyDateFormatChanges(): void;
|
|
15
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<OptionChangesService, never>;
|
|
16
18
|
static ɵprov: i0.ɵɵInjectableDeclaration<OptionChangesService>;
|
|
17
19
|
}
|
|
@@ -11,6 +11,7 @@ export class OptionChangesService {
|
|
|
11
11
|
constructor() {
|
|
12
12
|
this.viewChanges = new EventEmitter();
|
|
13
13
|
this.columnChanges = new EventEmitter();
|
|
14
|
+
this.dateFormatChanges = new EventEmitter();
|
|
14
15
|
}
|
|
15
16
|
notifyColumnChanges() {
|
|
16
17
|
this.columnChanges.emit();
|
|
@@ -18,6 +19,9 @@ export class OptionChangesService {
|
|
|
18
19
|
notifyViewChanges() {
|
|
19
20
|
this.viewChanges.emit();
|
|
20
21
|
}
|
|
22
|
+
notifyDateFormatChanges() {
|
|
23
|
+
this.dateFormatChanges.emit();
|
|
24
|
+
}
|
|
21
25
|
}
|
|
22
26
|
OptionChangesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: OptionChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
23
27
|
OptionChangesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: OptionChangesService });
|
|
@@ -412,6 +412,9 @@ export class GanttComponent {
|
|
|
412
412
|
this.optionChangesSubscriptions.add(this.optionChangesService.viewChanges.subscribe(() => {
|
|
413
413
|
this.loadTimelineData();
|
|
414
414
|
}));
|
|
415
|
+
this.optionChangesSubscriptions.add(this.optionChangesService.dateFormatChanges.subscribe(() => {
|
|
416
|
+
this.loadTimelineData();
|
|
417
|
+
}));
|
|
415
418
|
this.optionChangesSubscriptions.add(this.optionChangesService.columnChanges.subscribe(() => {
|
|
416
419
|
this.treeList.columns.notifyOnChanges();
|
|
417
420
|
}));
|
package/esm2020/gantt.module.mjs
CHANGED
|
@@ -52,6 +52,7 @@ import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
|
|
|
52
52
|
import { DependenciesTableComponent } from './editing/dependencies-table.component';
|
|
53
53
|
import { TaskFieldsComponent } from './editing/task-fields.component';
|
|
54
54
|
import { IconsModule } from '@progress/kendo-angular-icons';
|
|
55
|
+
import { IntlModule } from '@progress/kendo-angular-intl';
|
|
55
56
|
import * as i0 from "@angular/core";
|
|
56
57
|
const IMPORTED_MODULES = [
|
|
57
58
|
CommonModule,
|
|
@@ -70,7 +71,8 @@ const IMPORTED_MODULES = [
|
|
|
70
71
|
TabStripModule,
|
|
71
72
|
GridModule,
|
|
72
73
|
DropDownsModule,
|
|
73
|
-
IconsModule
|
|
74
|
+
IconsModule,
|
|
75
|
+
IntlModule
|
|
74
76
|
];
|
|
75
77
|
const DECLARATIONS = [
|
|
76
78
|
GanttComponent,
|
|
@@ -205,7 +207,8 @@ GanttModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "1
|
|
|
205
207
|
TabStripModule,
|
|
206
208
|
GridModule,
|
|
207
209
|
DropDownsModule,
|
|
208
|
-
IconsModule
|
|
210
|
+
IconsModule,
|
|
211
|
+
IntlModule], exports: [GanttComponent,
|
|
209
212
|
GanttFlatBindingDirective,
|
|
210
213
|
GanttHierarchyBindingDirective,
|
|
211
214
|
GanttTaskComponent,
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
export {};
|
|
@@ -9,7 +9,7 @@ export const packageMetadata = {
|
|
|
9
9
|
name: '@progress/kendo-angular-gantt',
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
|
11
11
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
12
|
-
publishDate:
|
|
13
|
-
version: '13.2.0-develop.
|
|
12
|
+
publishDate: 1688546776,
|
|
13
|
+
version: '13.2.0-develop.3',
|
|
14
14
|
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'
|
|
15
15
|
};
|
|
@@ -2,9 +2,13 @@
|
|
|
2
2
|
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { __decorate, __metadata, __param } from "tslib";
|
|
6
|
+
import { IntlService } from '@progress/kendo-angular-intl';
|
|
5
7
|
import { orderBy } from '@progress/kendo-data-query';
|
|
8
|
+
import { MappingService } from '../common/mapping.service';
|
|
6
9
|
import { isWorkDay, isWorkHour, lastDayOfWeek } from '../utils';
|
|
7
10
|
import { addDays, firstDayInWeek, getDate, firstDayOfMonth, lastDayOfMonth, addMonths, addWeeks, lastMonthOfYear } from '@progress/kendo-date-math';
|
|
11
|
+
import { Inject, LOCALE_ID } from '@angular/core';
|
|
8
12
|
/**
|
|
9
13
|
* @hidden
|
|
10
14
|
*/
|
|
@@ -20,10 +24,15 @@ export const MONTH_FORMAT = 'MMM';
|
|
|
20
24
|
/**
|
|
21
25
|
* @hidden
|
|
22
26
|
*/
|
|
23
|
-
export
|
|
24
|
-
|
|
27
|
+
export const YEAR_FORMAT = 'yyyy';
|
|
28
|
+
/**
|
|
29
|
+
* @hidden
|
|
30
|
+
*/
|
|
31
|
+
let TimelineBaseViewService = class TimelineBaseViewService {
|
|
32
|
+
constructor(intlService, mapper, localeId) {
|
|
25
33
|
this.intlService = intlService;
|
|
26
34
|
this.mapper = mapper;
|
|
35
|
+
this.localeId = localeId;
|
|
27
36
|
this._viewStart = 0;
|
|
28
37
|
}
|
|
29
38
|
get viewStart() {
|
|
@@ -56,13 +65,14 @@ export class TimelineBaseViewService {
|
|
|
56
65
|
* @param end - The tasks' range end date
|
|
57
66
|
* @returns {Array<Object>} - A collection containing the hour slots
|
|
58
67
|
*/
|
|
59
|
-
getHours(start, end) {
|
|
68
|
+
getHours(start, end, customDateFormat) {
|
|
60
69
|
const slots = [];
|
|
61
70
|
const workDayStart = this.intlService.parseDate(this.options.workDayStart).getHours();
|
|
62
71
|
const workDayEnd = this.intlService.parseDate(this.options.workDayEnd).getHours();
|
|
63
72
|
// TODO: retrieve from option?
|
|
64
73
|
const hourSpan = 1;
|
|
65
74
|
let startDate = new Date(start);
|
|
75
|
+
const hoursFormat = customDateFormat ? customDateFormat : HOUR_FORMAT;
|
|
66
76
|
const endDate = new Date(end);
|
|
67
77
|
while (startDate < endDate) {
|
|
68
78
|
const slotEnd = new Date(startDate);
|
|
@@ -72,7 +82,7 @@ export class TimelineBaseViewService {
|
|
|
72
82
|
start: startDate,
|
|
73
83
|
end: slotEnd,
|
|
74
84
|
isWorking: isWorkSlot,
|
|
75
|
-
text: this.intlService.formatDate(startDate,
|
|
85
|
+
text: this.intlService.formatDate(startDate, hoursFormat, this.localeId),
|
|
76
86
|
span: 1,
|
|
77
87
|
slotWidth: this.options.slotWidth
|
|
78
88
|
});
|
|
@@ -86,9 +96,10 @@ export class TimelineBaseViewService {
|
|
|
86
96
|
* @param end - The tasks' range end date
|
|
87
97
|
* @returns {Array<Object>} - A collection containing the day slots
|
|
88
98
|
*/
|
|
89
|
-
getDays(start, end) {
|
|
99
|
+
getDays(start, end, customDateFormat) {
|
|
90
100
|
const slots = [];
|
|
91
101
|
let startDay = new Date(start);
|
|
102
|
+
const dayFormat = customDateFormat ? customDateFormat : DAY_FORMAT;
|
|
92
103
|
const endDay = new Date(end);
|
|
93
104
|
while (startDay <= endDay) {
|
|
94
105
|
// Get the days with cleared time values (except for start and end day)
|
|
@@ -100,7 +111,7 @@ export class TimelineBaseViewService {
|
|
|
100
111
|
start: startDay,
|
|
101
112
|
end: slotEnd,
|
|
102
113
|
isWorking: isWorking,
|
|
103
|
-
text: this.intlService.formatDate(startDay,
|
|
114
|
+
text: this.intlService.formatDate(startDay, dayFormat, this.localeId),
|
|
104
115
|
span: 1,
|
|
105
116
|
slotWidth: this.options.slotWidth
|
|
106
117
|
});
|
|
@@ -108,18 +119,19 @@ export class TimelineBaseViewService {
|
|
|
108
119
|
}
|
|
109
120
|
return slots;
|
|
110
121
|
}
|
|
111
|
-
getWeeks(start, end) {
|
|
122
|
+
getWeeks(start, end, customDateFormat) {
|
|
112
123
|
const weekStart = this.intlService.firstDay();
|
|
113
124
|
const slots = [];
|
|
114
125
|
let startDay = new Date(start);
|
|
126
|
+
const dayFormat = customDateFormat ? customDateFormat : DAY_FORMAT;
|
|
115
127
|
const endDay = new Date(end);
|
|
116
128
|
while (startDay <= endDay) {
|
|
117
129
|
const lastWeekDay = lastDayOfWeek(startDay, weekStart);
|
|
118
130
|
const slotEnd = lastWeekDay > endDay ? endDay : lastWeekDay;
|
|
119
131
|
const daySlots = this.getDays(startDay, slotEnd);
|
|
120
132
|
const span = daySlots.length;
|
|
121
|
-
const firstDay = this.intlService.formatDate(firstDayInWeek(getDate(startDay), weekStart),
|
|
122
|
-
const lastDay = this.intlService.formatDate(slotEnd,
|
|
133
|
+
const firstDay = this.intlService.formatDate(firstDayInWeek(getDate(startDay), weekStart), dayFormat, this.localeId);
|
|
134
|
+
const lastDay = this.intlService.formatDate(slotEnd, dayFormat, this.localeId);
|
|
123
135
|
if (span > 0) {
|
|
124
136
|
slots.push({
|
|
125
137
|
start: daySlots[0].start,
|
|
@@ -133,9 +145,10 @@ export class TimelineBaseViewService {
|
|
|
133
145
|
}
|
|
134
146
|
return slots;
|
|
135
147
|
}
|
|
136
|
-
getMonths(start, end, isMainViewType) {
|
|
148
|
+
getMonths(start, end, isMainViewType, customDateFormat) {
|
|
137
149
|
const slots = [];
|
|
138
150
|
let startDay = new Date(start);
|
|
151
|
+
const monthFormat = customDateFormat ? customDateFormat : MONTH_FORMAT;
|
|
139
152
|
const endDay = new Date(end);
|
|
140
153
|
while (startDay < endDay) {
|
|
141
154
|
const endMonth = lastDayOfMonth(startDay);
|
|
@@ -144,7 +157,7 @@ export class TimelineBaseViewService {
|
|
|
144
157
|
const weekSlots = this.getWeeks(startDay, slotEnd);
|
|
145
158
|
const span = isMainViewType ? daySlots.length : weekSlots.length;
|
|
146
159
|
const monthStart = firstDayOfMonth(getDate(startDay));
|
|
147
|
-
const shortText = this.intlService.formatDate(monthStart,
|
|
160
|
+
const shortText = this.intlService.formatDate(monthStart, monthFormat, this.localeId);
|
|
148
161
|
if (span > 0) {
|
|
149
162
|
slots.push({
|
|
150
163
|
start: isMainViewType ? daySlots[0].start : weekSlots[0].start,
|
|
@@ -158,10 +171,11 @@ export class TimelineBaseViewService {
|
|
|
158
171
|
}
|
|
159
172
|
return slots;
|
|
160
173
|
}
|
|
161
|
-
getYears(start, end) {
|
|
174
|
+
getYears(start, end, customDateFormat) {
|
|
162
175
|
const slots = [];
|
|
163
176
|
let startDay = new Date(start);
|
|
164
177
|
const endDay = new Date(end);
|
|
178
|
+
const yearFormat = customDateFormat ? customDateFormat : YEAR_FORMAT;
|
|
165
179
|
while (startDay < endDay) {
|
|
166
180
|
const yearEnd = lastDayOfMonth(lastMonthOfYear(startDay));
|
|
167
181
|
const slotEnd = endDay < yearEnd ? endDay : yearEnd;
|
|
@@ -172,7 +186,7 @@ export class TimelineBaseViewService {
|
|
|
172
186
|
start: monthSlots[0].start,
|
|
173
187
|
end: monthSlots[span - 1].end,
|
|
174
188
|
span: span,
|
|
175
|
-
text:
|
|
189
|
+
text: this.intlService.formatDate(slotEnd, yearFormat),
|
|
176
190
|
slotWidth: this.options.slotWidth
|
|
177
191
|
});
|
|
178
192
|
}
|
|
@@ -180,4 +194,10 @@ export class TimelineBaseViewService {
|
|
|
180
194
|
}
|
|
181
195
|
return slots;
|
|
182
196
|
}
|
|
183
|
-
}
|
|
197
|
+
};
|
|
198
|
+
TimelineBaseViewService = __decorate([
|
|
199
|
+
__param(2, Inject(LOCALE_ID)),
|
|
200
|
+
__metadata("design:paramtypes", [IntlService,
|
|
201
|
+
MappingService, String])
|
|
202
|
+
], TimelineBaseViewService);
|
|
203
|
+
export { TimelineBaseViewService };
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Injectable } from '@angular/core';
|
|
5
|
+
import { Inject, Injectable, LOCALE_ID } from '@angular/core';
|
|
6
6
|
import { IntlService } from '@progress/kendo-angular-intl';
|
|
7
7
|
import { TimelineBaseViewService } from './timeline-base-view.service';
|
|
8
8
|
import { MappingService } from '../common/mapping.service';
|
|
@@ -14,8 +14,9 @@ import * as i2 from "../common/mapping.service";
|
|
|
14
14
|
* @hidden
|
|
15
15
|
*/
|
|
16
16
|
export class TimelineDayViewService extends TimelineBaseViewService {
|
|
17
|
-
constructor(intlService, mapper) {
|
|
18
|
-
super(intlService, mapper);
|
|
17
|
+
constructor(intlService, mapper, localeId) {
|
|
18
|
+
super(intlService, mapper, localeId);
|
|
19
|
+
this.localeId = localeId;
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
21
22
|
* Gets a date an hour before the first task start with minutes, seconds, milliseconds cleared.
|
|
@@ -49,11 +50,11 @@ export class TimelineDayViewService extends TimelineBaseViewService {
|
|
|
49
50
|
// will return the header rows slots
|
|
50
51
|
const slots = [];
|
|
51
52
|
const { start, end } = this.getRange(tasks);
|
|
52
|
-
const daySlots = this.getDays(start, end);
|
|
53
|
+
const daySlots = this.getDays(start, end, this.options.timelineHeadersDateFormat?.groupHeaderDateFormat);
|
|
53
54
|
const hourSlots = [];
|
|
54
55
|
for (let i = 0; i < daySlots.length; i++) {
|
|
55
56
|
const daySlot = daySlots[i];
|
|
56
|
-
const hours = this.getHours(daySlot.start, daySlot.end);
|
|
57
|
+
const hours = this.getHours(daySlot.start, daySlot.end, this.options.timelineHeadersDateFormat?.columnHeaderDateFormat);
|
|
57
58
|
daySlot.span = hours.length;
|
|
58
59
|
hourSlots.push(...hours);
|
|
59
60
|
}
|
|
@@ -61,8 +62,11 @@ export class TimelineDayViewService extends TimelineBaseViewService {
|
|
|
61
62
|
return slots;
|
|
62
63
|
}
|
|
63
64
|
}
|
|
64
|
-
TimelineDayViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineDayViewService, deps: [{ token: i1.IntlService }, { token: i2.MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
65
|
+
TimelineDayViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineDayViewService, deps: [{ token: i1.IntlService }, { token: i2.MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
65
66
|
TimelineDayViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineDayViewService });
|
|
66
67
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineDayViewService, decorators: [{
|
|
67
68
|
type: Injectable
|
|
68
|
-
}], ctorParameters: function () { return [{ type: i1.IntlService }, { type: i2.MappingService }
|
|
69
|
+
}], ctorParameters: function () { return [{ type: i1.IntlService }, { type: i2.MappingService }, { type: undefined, decorators: [{
|
|
70
|
+
type: Inject,
|
|
71
|
+
args: [LOCALE_ID]
|
|
72
|
+
}] }]; } });
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Injectable } from '@angular/core';
|
|
5
|
+
import { Inject, Injectable, LOCALE_ID } from '@angular/core';
|
|
6
6
|
import { IntlService } from '@progress/kendo-angular-intl';
|
|
7
7
|
import { addDays, addWeeks, firstDayInWeek, getDate } from '@progress/kendo-date-math';
|
|
8
8
|
import { MappingService } from '../common/mapping.service';
|
|
@@ -14,8 +14,9 @@ import * as i2 from "../common/mapping.service";
|
|
|
14
14
|
* @hidden
|
|
15
15
|
*/
|
|
16
16
|
export class TimelineMonthViewService extends TimelineBaseViewService {
|
|
17
|
-
constructor(intlService, mapper) {
|
|
18
|
-
super(intlService, mapper);
|
|
17
|
+
constructor(intlService, mapper, localeId) {
|
|
18
|
+
super(intlService, mapper, localeId);
|
|
19
|
+
this.localeId = localeId;
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
21
22
|
* Gets a week before the first week in which a task starts.
|
|
@@ -53,14 +54,17 @@ export class TimelineMonthViewService extends TimelineBaseViewService {
|
|
|
53
54
|
// will return the header rows slots
|
|
54
55
|
const slots = [];
|
|
55
56
|
const { start, end } = this.getRange(tasks);
|
|
56
|
-
const months = this.getMonths(start, end, true);
|
|
57
|
-
const weeks = this.getWeeks(start, end);
|
|
57
|
+
const months = this.getMonths(start, end, true, this.options.timelineHeadersDateFormat?.groupHeaderDateFormat);
|
|
58
|
+
const weeks = this.getWeeks(start, end, this.options.timelineHeadersDateFormat?.columnHeaderDateFormat);
|
|
58
59
|
slots.push(months, weeks);
|
|
59
60
|
return slots;
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
|
-
TimelineMonthViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewService, deps: [{ token: i1.IntlService }, { token: i2.MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
63
|
+
TimelineMonthViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewService, deps: [{ token: i1.IntlService }, { token: i2.MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
63
64
|
TimelineMonthViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewService });
|
|
64
65
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewService, decorators: [{
|
|
65
66
|
type: Injectable
|
|
66
|
-
}], ctorParameters: function () { return [{ type: i1.IntlService }, { type: i2.MappingService }
|
|
67
|
+
}], ctorParameters: function () { return [{ type: i1.IntlService }, { type: i2.MappingService }, { type: undefined, decorators: [{
|
|
68
|
+
type: Inject,
|
|
69
|
+
args: [LOCALE_ID]
|
|
70
|
+
}] }]; } });
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Injectable } from '@angular/core';
|
|
5
|
+
import { Inject, Injectable, LOCALE_ID } from '@angular/core';
|
|
6
6
|
import { IntlService } from '@progress/kendo-angular-intl';
|
|
7
7
|
import { addDays, getDate } from '@progress/kendo-date-math';
|
|
8
8
|
import { MappingService } from '../common/mapping.service';
|
|
@@ -14,8 +14,9 @@ import * as i2 from "../common/mapping.service";
|
|
|
14
14
|
* @hidden
|
|
15
15
|
*/
|
|
16
16
|
export class TimelineWeekViewService extends TimelineBaseViewService {
|
|
17
|
-
constructor(intlService, mapper) {
|
|
18
|
-
super(intlService, mapper);
|
|
17
|
+
constructor(intlService, mapper, localeId) {
|
|
18
|
+
super(intlService, mapper, localeId);
|
|
19
|
+
this.localeId = localeId;
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
21
22
|
* Gets a date a day before the first task start with hours, minutes, seconds, milliseconds cleared.
|
|
@@ -49,14 +50,17 @@ export class TimelineWeekViewService extends TimelineBaseViewService {
|
|
|
49
50
|
// will return the header rows slots
|
|
50
51
|
const slots = [];
|
|
51
52
|
const { start, end } = this.getRange(tasks);
|
|
52
|
-
const weeks = this.getWeeks(start, end);
|
|
53
|
-
const days = this.getDays(start, end);
|
|
53
|
+
const weeks = this.getWeeks(start, end, this.options.timelineHeadersDateFormat?.groupHeaderDateFormat);
|
|
54
|
+
const days = this.getDays(start, end, this.options.timelineHeadersDateFormat?.columnHeaderDateFormat);
|
|
54
55
|
slots.push(weeks, days);
|
|
55
56
|
return slots;
|
|
56
57
|
}
|
|
57
58
|
}
|
|
58
|
-
TimelineWeekViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewService, deps: [{ token: i1.IntlService }, { token: i2.MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
59
|
+
TimelineWeekViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewService, deps: [{ token: i1.IntlService }, { token: i2.MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
59
60
|
TimelineWeekViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewService });
|
|
60
61
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewService, decorators: [{
|
|
61
62
|
type: Injectable
|
|
62
|
-
}], ctorParameters: function () { return [{ type: i1.IntlService }, { type: i2.MappingService }
|
|
63
|
+
}], ctorParameters: function () { return [{ type: i1.IntlService }, { type: i2.MappingService }, { type: undefined, decorators: [{
|
|
64
|
+
type: Inject,
|
|
65
|
+
args: [LOCALE_ID]
|
|
66
|
+
}] }]; } });
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Injectable } from "@angular/core";
|
|
5
|
+
import { Inject, Injectable, LOCALE_ID } from "@angular/core";
|
|
6
6
|
import { IntlService } from "@progress/kendo-angular-intl";
|
|
7
7
|
import { addMonths, firstDayOfMonth, getDate, lastDayOfMonth } from "@progress/kendo-date-math";
|
|
8
8
|
import { MappingService } from "../common/mapping.service";
|
|
@@ -14,8 +14,9 @@ import * as i2 from "../common/mapping.service";
|
|
|
14
14
|
* @hidden
|
|
15
15
|
*/
|
|
16
16
|
export class TimeLineYearViewService extends TimelineBaseViewService {
|
|
17
|
-
constructor(intlService, mapper) {
|
|
18
|
-
super(intlService, mapper);
|
|
17
|
+
constructor(intlService, mapper, localeId) {
|
|
18
|
+
super(intlService, mapper, localeId);
|
|
19
|
+
this.localeId = localeId;
|
|
19
20
|
}
|
|
20
21
|
getTableWidth(tasks) {
|
|
21
22
|
const timeSlots = this.getSlots(tasks)[1];
|
|
@@ -44,14 +45,17 @@ export class TimeLineYearViewService extends TimelineBaseViewService {
|
|
|
44
45
|
// will return the header rows slots
|
|
45
46
|
const slots = [];
|
|
46
47
|
const { start, end } = this.getRange(tasks);
|
|
47
|
-
const years = this.getYears(start, end);
|
|
48
|
-
const months = this.getMonths(start, end);
|
|
48
|
+
const years = this.getYears(start, end, this.options.timelineHeadersDateFormat?.groupHeaderDateFormat);
|
|
49
|
+
const months = this.getMonths(start, end, false, this.options.timelineHeadersDateFormat?.columnHeaderDateFormat);
|
|
49
50
|
slots.push(years, months);
|
|
50
51
|
return slots;
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
|
-
TimeLineYearViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimeLineYearViewService, deps: [{ token: i1.IntlService }, { token: i2.MappingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
54
|
+
TimeLineYearViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimeLineYearViewService, deps: [{ token: i1.IntlService }, { token: i2.MappingService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
54
55
|
TimeLineYearViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimeLineYearViewService });
|
|
55
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimeLineYearViewService, decorators: [{
|
|
56
57
|
type: Injectable
|
|
57
|
-
}], ctorParameters: function () { return [{ type: i1.IntlService }, { type: i2.MappingService }
|
|
58
|
+
}], ctorParameters: function () { return [{ type: i1.IntlService }, { type: i2.MappingService }, { type: undefined, decorators: [{
|
|
59
|
+
type: Inject,
|
|
60
|
+
args: [LOCALE_ID]
|
|
61
|
+
}] }]; } });
|
|
@@ -32,10 +32,13 @@ export class ViewBase {
|
|
|
32
32
|
this.optionChangesService.notifyColumnChanges();
|
|
33
33
|
this.dependencyDomService.notifyChanges();
|
|
34
34
|
}
|
|
35
|
+
if (anyChanged(['timelineHeadersDateFormat'], changes)) {
|
|
36
|
+
this.optionChangesService.notifyDateFormatChanges();
|
|
37
|
+
}
|
|
35
38
|
}
|
|
36
39
|
}
|
|
37
40
|
ViewBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewBase, deps: [{ token: i1.OptionChangesService }, { token: i2.DependencyDomService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
38
|
-
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 });
|
|
41
|
+
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 });
|
|
39
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewBase, decorators: [{
|
|
40
43
|
type: Directive,
|
|
41
44
|
args: [{
|
|
@@ -44,4 +47,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
44
47
|
}]
|
|
45
48
|
}], ctorParameters: function () { return [{ type: i1.OptionChangesService }, { type: i2.DependencyDomService }]; }, propDecorators: { slotWidth: [{
|
|
46
49
|
type: Input
|
|
50
|
+
}], timelineHeadersDateFormat: [{
|
|
51
|
+
type: Input
|
|
47
52
|
}] } });
|