@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.
@@ -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, Inject, ViewContainerRef, Output, Optional, QueryList, SkipSelf, Host, ContentChildren, ContentChild, HostListener, isDevMode, NgModule } from '@angular/core';
6
+ import { Injectable, Component, HostBinding, Input, InjectionToken, EventEmitter, Inject, LOCALE_ID, 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 { cloneDate, addWeeks, firstDayInWeek, addDays, lastDayOfMonth, getDate, firstDayOfMonth, addMonths, lastMonthOfYear, MS_PER_HOUR, MS_PER_DAY, isEqual } from '@progress/kendo-date-math';
@@ -16,6 +16,8 @@ import { getter, touchEnabled } from '@progress/kendo-common';
16
16
  import * as i6 from '@angular/common';
17
17
  import { CommonModule } from '@angular/common';
18
18
  import * as i1 from '@progress/kendo-angular-intl';
19
+ import { IntlService, IntlModule } from '@progress/kendo-angular-intl';
20
+ import { __decorate, __param, __metadata } from 'tslib';
19
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';
@@ -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: 1688396905,
54
- version: '13.2.0-develop.1',
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
 
@@ -966,6 +968,7 @@ class OptionChangesService {
966
968
  constructor() {
967
969
  this.viewChanges = new EventEmitter();
968
970
  this.columnChanges = new EventEmitter();
971
+ this.dateFormatChanges = new EventEmitter();
969
972
  }
970
973
  notifyColumnChanges() {
971
974
  this.columnChanges.emit();
@@ -973,6 +976,9 @@ class OptionChangesService {
973
976
  notifyViewChanges() {
974
977
  this.viewChanges.emit();
975
978
  }
979
+ notifyDateFormatChanges() {
980
+ this.dateFormatChanges.emit();
981
+ }
976
982
  }
977
983
  OptionChangesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: OptionChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
978
984
  OptionChangesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: OptionChangesService });
@@ -995,10 +1001,15 @@ const MONTH_FORMAT = 'MMM';
995
1001
  /**
996
1002
  * @hidden
997
1003
  */
998
- class TimelineBaseViewService {
999
- constructor(intlService, mapper) {
1004
+ const YEAR_FORMAT = 'yyyy';
1005
+ /**
1006
+ * @hidden
1007
+ */
1008
+ let TimelineBaseViewService = class TimelineBaseViewService {
1009
+ constructor(intlService, mapper, localeId) {
1000
1010
  this.intlService = intlService;
1001
1011
  this.mapper = mapper;
1012
+ this.localeId = localeId;
1002
1013
  this._viewStart = 0;
1003
1014
  }
1004
1015
  get viewStart() {
@@ -1031,13 +1042,14 @@ class TimelineBaseViewService {
1031
1042
  * @param end - The tasks' range end date
1032
1043
  * @returns {Array<Object>} - A collection containing the hour slots
1033
1044
  */
1034
- getHours(start, end) {
1045
+ getHours(start, end, customDateFormat) {
1035
1046
  const slots = [];
1036
1047
  const workDayStart = this.intlService.parseDate(this.options.workDayStart).getHours();
1037
1048
  const workDayEnd = this.intlService.parseDate(this.options.workDayEnd).getHours();
1038
1049
  // TODO: retrieve from option?
1039
1050
  const hourSpan = 1;
1040
1051
  let startDate = new Date(start);
1052
+ const hoursFormat = customDateFormat ? customDateFormat : HOUR_FORMAT;
1041
1053
  const endDate = new Date(end);
1042
1054
  while (startDate < endDate) {
1043
1055
  const slotEnd = new Date(startDate);
@@ -1047,7 +1059,7 @@ class TimelineBaseViewService {
1047
1059
  start: startDate,
1048
1060
  end: slotEnd,
1049
1061
  isWorking: isWorkSlot,
1050
- text: this.intlService.formatDate(startDate, HOUR_FORMAT),
1062
+ text: this.intlService.formatDate(startDate, hoursFormat, this.localeId),
1051
1063
  span: 1,
1052
1064
  slotWidth: this.options.slotWidth
1053
1065
  });
@@ -1061,9 +1073,10 @@ class TimelineBaseViewService {
1061
1073
  * @param end - The tasks' range end date
1062
1074
  * @returns {Array<Object>} - A collection containing the day slots
1063
1075
  */
1064
- getDays(start, end) {
1076
+ getDays(start, end, customDateFormat) {
1065
1077
  const slots = [];
1066
1078
  let startDay = new Date(start);
1079
+ const dayFormat = customDateFormat ? customDateFormat : DAY_FORMAT;
1067
1080
  const endDay = new Date(end);
1068
1081
  while (startDay <= endDay) {
1069
1082
  // Get the days with cleared time values (except for start and end day)
@@ -1075,7 +1088,7 @@ class TimelineBaseViewService {
1075
1088
  start: startDay,
1076
1089
  end: slotEnd,
1077
1090
  isWorking: isWorking,
1078
- text: this.intlService.formatDate(startDay, DAY_FORMAT),
1091
+ text: this.intlService.formatDate(startDay, dayFormat, this.localeId),
1079
1092
  span: 1,
1080
1093
  slotWidth: this.options.slotWidth
1081
1094
  });
@@ -1083,18 +1096,19 @@ class TimelineBaseViewService {
1083
1096
  }
1084
1097
  return slots;
1085
1098
  }
1086
- getWeeks(start, end) {
1099
+ getWeeks(start, end, customDateFormat) {
1087
1100
  const weekStart = this.intlService.firstDay();
1088
1101
  const slots = [];
1089
1102
  let startDay = new Date(start);
1103
+ const dayFormat = customDateFormat ? customDateFormat : DAY_FORMAT;
1090
1104
  const endDay = new Date(end);
1091
1105
  while (startDay <= endDay) {
1092
1106
  const lastWeekDay = lastDayOfWeek(startDay, weekStart);
1093
1107
  const slotEnd = lastWeekDay > endDay ? endDay : lastWeekDay;
1094
1108
  const daySlots = this.getDays(startDay, slotEnd);
1095
1109
  const span = daySlots.length;
1096
- const firstDay = this.intlService.formatDate(firstDayInWeek(getDate(startDay), weekStart), DAY_FORMAT);
1097
- const lastDay = this.intlService.formatDate(slotEnd, DAY_FORMAT);
1110
+ const firstDay = this.intlService.formatDate(firstDayInWeek(getDate(startDay), weekStart), dayFormat, this.localeId);
1111
+ const lastDay = this.intlService.formatDate(slotEnd, dayFormat, this.localeId);
1098
1112
  if (span > 0) {
1099
1113
  slots.push({
1100
1114
  start: daySlots[0].start,
@@ -1108,9 +1122,10 @@ class TimelineBaseViewService {
1108
1122
  }
1109
1123
  return slots;
1110
1124
  }
1111
- getMonths(start, end, isMainViewType) {
1125
+ getMonths(start, end, isMainViewType, customDateFormat) {
1112
1126
  const slots = [];
1113
1127
  let startDay = new Date(start);
1128
+ const monthFormat = customDateFormat ? customDateFormat : MONTH_FORMAT;
1114
1129
  const endDay = new Date(end);
1115
1130
  while (startDay < endDay) {
1116
1131
  const endMonth = lastDayOfMonth(startDay);
@@ -1119,7 +1134,7 @@ class TimelineBaseViewService {
1119
1134
  const weekSlots = this.getWeeks(startDay, slotEnd);
1120
1135
  const span = isMainViewType ? daySlots.length : weekSlots.length;
1121
1136
  const monthStart = firstDayOfMonth(getDate(startDay));
1122
- const shortText = this.intlService.formatDate(monthStart, MONTH_FORMAT);
1137
+ const shortText = this.intlService.formatDate(monthStart, monthFormat, this.localeId);
1123
1138
  if (span > 0) {
1124
1139
  slots.push({
1125
1140
  start: isMainViewType ? daySlots[0].start : weekSlots[0].start,
@@ -1133,10 +1148,11 @@ class TimelineBaseViewService {
1133
1148
  }
1134
1149
  return slots;
1135
1150
  }
1136
- getYears(start, end) {
1151
+ getYears(start, end, customDateFormat) {
1137
1152
  const slots = [];
1138
1153
  let startDay = new Date(start);
1139
1154
  const endDay = new Date(end);
1155
+ const yearFormat = customDateFormat ? customDateFormat : YEAR_FORMAT;
1140
1156
  while (startDay < endDay) {
1141
1157
  const yearEnd = lastDayOfMonth(lastMonthOfYear(startDay));
1142
1158
  const slotEnd = endDay < yearEnd ? endDay : yearEnd;
@@ -1147,7 +1163,7 @@ class TimelineBaseViewService {
1147
1163
  start: monthSlots[0].start,
1148
1164
  end: monthSlots[span - 1].end,
1149
1165
  span: span,
1150
- text: slotEnd.getFullYear(),
1166
+ text: this.intlService.formatDate(slotEnd, yearFormat),
1151
1167
  slotWidth: this.options.slotWidth
1152
1168
  });
1153
1169
  }
@@ -1155,14 +1171,20 @@ class TimelineBaseViewService {
1155
1171
  }
1156
1172
  return slots;
1157
1173
  }
1158
- }
1174
+ };
1175
+ TimelineBaseViewService = __decorate([
1176
+ __param(2, Inject(LOCALE_ID)),
1177
+ __metadata("design:paramtypes", [IntlService,
1178
+ MappingService, String])
1179
+ ], TimelineBaseViewService);
1159
1180
 
1160
1181
  /**
1161
1182
  * @hidden
1162
1183
  */
1163
1184
  class TimelineDayViewService extends TimelineBaseViewService {
1164
- constructor(intlService, mapper) {
1165
- super(intlService, mapper);
1185
+ constructor(intlService, mapper, localeId) {
1186
+ super(intlService, mapper, localeId);
1187
+ this.localeId = localeId;
1166
1188
  }
1167
1189
  /**
1168
1190
  * Gets a date an hour before the first task start with minutes, seconds, milliseconds cleared.
@@ -1196,11 +1218,11 @@ class TimelineDayViewService extends TimelineBaseViewService {
1196
1218
  // will return the header rows slots
1197
1219
  const slots = [];
1198
1220
  const { start, end } = this.getRange(tasks);
1199
- const daySlots = this.getDays(start, end);
1221
+ const daySlots = this.getDays(start, end, this.options.timelineHeadersDateFormat?.groupHeaderDateFormat);
1200
1222
  const hourSlots = [];
1201
1223
  for (let i = 0; i < daySlots.length; i++) {
1202
1224
  const daySlot = daySlots[i];
1203
- const hours = this.getHours(daySlot.start, daySlot.end);
1225
+ const hours = this.getHours(daySlot.start, daySlot.end, this.options.timelineHeadersDateFormat?.columnHeaderDateFormat);
1204
1226
  daySlot.span = hours.length;
1205
1227
  hourSlots.push(...hours);
1206
1228
  }
@@ -1208,18 +1230,22 @@ class TimelineDayViewService extends TimelineBaseViewService {
1208
1230
  return slots;
1209
1231
  }
1210
1232
  }
1211
- 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 });
1233
+ 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 });
1212
1234
  TimelineDayViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineDayViewService });
1213
1235
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineDayViewService, decorators: [{
1214
1236
  type: Injectable
1215
- }], ctorParameters: function () { return [{ type: i1.IntlService }, { type: MappingService }]; } });
1237
+ }], ctorParameters: function () { return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
1238
+ type: Inject,
1239
+ args: [LOCALE_ID]
1240
+ }] }]; } });
1216
1241
 
1217
1242
  /**
1218
1243
  * @hidden
1219
1244
  */
1220
1245
  class TimelineMonthViewService extends TimelineBaseViewService {
1221
- constructor(intlService, mapper) {
1222
- super(intlService, mapper);
1246
+ constructor(intlService, mapper, localeId) {
1247
+ super(intlService, mapper, localeId);
1248
+ this.localeId = localeId;
1223
1249
  }
1224
1250
  /**
1225
1251
  * Gets a week before the first week in which a task starts.
@@ -1257,24 +1283,28 @@ class TimelineMonthViewService extends TimelineBaseViewService {
1257
1283
  // will return the header rows slots
1258
1284
  const slots = [];
1259
1285
  const { start, end } = this.getRange(tasks);
1260
- const months = this.getMonths(start, end, true);
1261
- const weeks = this.getWeeks(start, end);
1286
+ const months = this.getMonths(start, end, true, this.options.timelineHeadersDateFormat?.groupHeaderDateFormat);
1287
+ const weeks = this.getWeeks(start, end, this.options.timelineHeadersDateFormat?.columnHeaderDateFormat);
1262
1288
  slots.push(months, weeks);
1263
1289
  return slots;
1264
1290
  }
1265
1291
  }
1266
- 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 });
1292
+ 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 });
1267
1293
  TimelineMonthViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewService });
1268
1294
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewService, decorators: [{
1269
1295
  type: Injectable
1270
- }], ctorParameters: function () { return [{ type: i1.IntlService }, { type: MappingService }]; } });
1296
+ }], ctorParameters: function () { return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
1297
+ type: Inject,
1298
+ args: [LOCALE_ID]
1299
+ }] }]; } });
1271
1300
 
1272
1301
  /**
1273
1302
  * @hidden
1274
1303
  */
1275
1304
  class TimelineWeekViewService extends TimelineBaseViewService {
1276
- constructor(intlService, mapper) {
1277
- super(intlService, mapper);
1305
+ constructor(intlService, mapper, localeId) {
1306
+ super(intlService, mapper, localeId);
1307
+ this.localeId = localeId;
1278
1308
  }
1279
1309
  /**
1280
1310
  * Gets a date a day before the first task start with hours, minutes, seconds, milliseconds cleared.
@@ -1308,24 +1338,28 @@ class TimelineWeekViewService extends TimelineBaseViewService {
1308
1338
  // will return the header rows slots
1309
1339
  const slots = [];
1310
1340
  const { start, end } = this.getRange(tasks);
1311
- const weeks = this.getWeeks(start, end);
1312
- const days = this.getDays(start, end);
1341
+ const weeks = this.getWeeks(start, end, this.options.timelineHeadersDateFormat?.groupHeaderDateFormat);
1342
+ const days = this.getDays(start, end, this.options.timelineHeadersDateFormat?.columnHeaderDateFormat);
1313
1343
  slots.push(weeks, days);
1314
1344
  return slots;
1315
1345
  }
1316
1346
  }
1317
- 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 });
1347
+ 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 });
1318
1348
  TimelineWeekViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewService });
1319
1349
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewService, decorators: [{
1320
1350
  type: Injectable
1321
- }], ctorParameters: function () { return [{ type: i1.IntlService }, { type: MappingService }]; } });
1351
+ }], ctorParameters: function () { return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
1352
+ type: Inject,
1353
+ args: [LOCALE_ID]
1354
+ }] }]; } });
1322
1355
 
1323
1356
  /**
1324
1357
  * @hidden
1325
1358
  */
1326
1359
  class TimeLineYearViewService extends TimelineBaseViewService {
1327
- constructor(intlService, mapper) {
1328
- super(intlService, mapper);
1360
+ constructor(intlService, mapper, localeId) {
1361
+ super(intlService, mapper, localeId);
1362
+ this.localeId = localeId;
1329
1363
  }
1330
1364
  getTableWidth(tasks) {
1331
1365
  const timeSlots = this.getSlots(tasks)[1];
@@ -1354,17 +1388,20 @@ class TimeLineYearViewService extends TimelineBaseViewService {
1354
1388
  // will return the header rows slots
1355
1389
  const slots = [];
1356
1390
  const { start, end } = this.getRange(tasks);
1357
- const years = this.getYears(start, end);
1358
- const months = this.getMonths(start, end);
1391
+ const years = this.getYears(start, end, this.options.timelineHeadersDateFormat?.groupHeaderDateFormat);
1392
+ const months = this.getMonths(start, end, false, this.options.timelineHeadersDateFormat?.columnHeaderDateFormat);
1359
1393
  slots.push(years, months);
1360
1394
  return slots;
1361
1395
  }
1362
1396
  }
1363
- 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 });
1397
+ 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 });
1364
1398
  TimeLineYearViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimeLineYearViewService });
1365
1399
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimeLineYearViewService, decorators: [{
1366
1400
  type: Injectable
1367
- }], ctorParameters: function () { return [{ type: i1.IntlService }, { type: MappingService }]; } });
1401
+ }], ctorParameters: function () { return [{ type: i1.IntlService }, { type: MappingService }, { type: undefined, decorators: [{
1402
+ type: Inject,
1403
+ args: [LOCALE_ID]
1404
+ }] }]; } });
1368
1405
 
1369
1406
  /**
1370
1407
  * @hidden
@@ -3869,10 +3906,13 @@ class ViewBase {
3869
3906
  this.optionChangesService.notifyColumnChanges();
3870
3907
  this.dependencyDomService.notifyChanges();
3871
3908
  }
3909
+ if (anyChanged(['timelineHeadersDateFormat'], changes)) {
3910
+ this.optionChangesService.notifyDateFormatChanges();
3911
+ }
3872
3912
  }
3873
3913
  }
3874
3914
  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 });
3875
- 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 });
3915
+ 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 });
3876
3916
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewBase, decorators: [{
3877
3917
  type: Directive,
3878
3918
  args: [{
@@ -3881,6 +3921,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3881
3921
  }]
3882
3922
  }], ctorParameters: function () { return [{ type: OptionChangesService }, { type: DependencyDomService }]; }, propDecorators: { slotWidth: [{
3883
3923
  type: Input
3924
+ }], timelineHeadersDateFormat: [{
3925
+ type: Input
3884
3926
  }] } });
3885
3927
 
3886
3928
  /**
@@ -5283,6 +5325,9 @@ class GanttComponent {
5283
5325
  this.optionChangesSubscriptions.add(this.optionChangesService.viewChanges.subscribe(() => {
5284
5326
  this.loadTimelineData();
5285
5327
  }));
5328
+ this.optionChangesSubscriptions.add(this.optionChangesService.dateFormatChanges.subscribe(() => {
5329
+ this.loadTimelineData();
5330
+ }));
5286
5331
  this.optionChangesSubscriptions.add(this.optionChangesService.columnChanges.subscribe(() => {
5287
5332
  this.treeList.columns.notifyOnChanges();
5288
5333
  }));
@@ -7834,7 +7879,8 @@ const IMPORTED_MODULES = [
7834
7879
  TabStripModule,
7835
7880
  GridModule,
7836
7881
  DropDownsModule,
7837
- IconsModule
7882
+ IconsModule,
7883
+ IntlModule
7838
7884
  ];
7839
7885
  const DECLARATIONS = [
7840
7886
  GanttComponent,
@@ -7969,7 +8015,8 @@ GanttModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "1
7969
8015
  TabStripModule,
7970
8016
  GridModule,
7971
8017
  DropDownsModule,
7972
- IconsModule], exports: [GanttComponent,
8018
+ IconsModule,
8019
+ IntlModule], exports: [GanttComponent,
7973
8020
  GanttFlatBindingDirective,
7974
8021
  GanttHierarchyBindingDirective,
7975
8022
  GanttTaskComponent,
package/gantt.module.d.ts CHANGED
@@ -58,6 +58,7 @@ import * as i52 from "@progress/kendo-angular-popup";
58
58
  import * as i53 from "@progress/kendo-angular-grid";
59
59
  import * as i54 from "@progress/kendo-angular-dropdowns";
60
60
  import * as i55 from "@progress/kendo-angular-icons";
61
+ import * as i56 from "@progress/kendo-angular-intl";
61
62
  /**
62
63
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
63
64
  * definition for the Gantt component.
@@ -91,6 +92,6 @@ import * as i55 from "@progress/kendo-angular-icons";
91
92
  */
92
93
  export declare class GanttModule {
93
94
  static ɵfac: i0.ɵɵFactoryDeclaration<GanttModule, never>;
94
- static ɵmod: i0.ɵɵNgModuleDeclaration<GanttModule, [typeof i1.GanttComponent, typeof i2.GanttFlatBindingDirective, typeof i3.GanttHierarchyBindingDirective, typeof i4.GanttTaskComponent, typeof i5.GanttSummaryTaskComponent, typeof i6.GanttMilestoneTaskComponent, typeof i7.GanttTimelineComponent, typeof i8.GanttTasksTableBodyComponent, typeof i9.GanttHeaderTableBodyComponent, typeof i10.GanttTaskContentTemplateDirective, typeof i11.GanttTaskTemplateDirective, typeof i12.GanttSummaryTaskTemplateDirective, typeof i13.ToolbarTemplateDirective, typeof i14.ToolbarComponent, typeof i15.ViewSelectorComponent, typeof i16.GanttColumnComponent, typeof i17.GanttColumnGroupComponent, typeof i18.GanttSpanColumnComponent, typeof i19.FilterMenuTemplateDirective, typeof i20.FilterCellTemplateDirective, typeof i21.CellTemplateDirective, typeof i22.EditTemplateDirective, typeof i23.ColumnMenuTemplateDirective, typeof i24.HeaderTemplateDirective, typeof i25.FooterTemplateDirective, typeof i26.GanttExpandableDirective, typeof i27.GanttDependencyDirective, typeof i28.DependencyDragCreateDirective, typeof i29.TimelineDayViewComponent, typeof i30.TimelineWeekViewComponent, typeof i31.TimelineMonthViewComponent, typeof i32.TimelineYearViewComponent, typeof i33.SelectableDirective, typeof i34.EditDialogComponent, typeof i35.CustomMessagesComponent, typeof i36.LocalizedMessagesDirective, typeof i37.GanttAddTaskComponent, typeof i38.DragValidationTooltipComponent, typeof i39.TimelineScrollableDirective, typeof i40.DependenciesTableComponent, typeof i41.TaskFieldsComponent], [typeof i42.CommonModule, typeof i43.ReactiveFormsModule, typeof i44.LabelModule, typeof i45.InputsModule, typeof i46.DateInputsModule, typeof i47.ButtonsModule, typeof i48.SplitterModule, typeof i49.TreeListModule, typeof i47.ButtonsModule, typeof i50.DialogModule, typeof i51.EventsModule, typeof i52.PopupModule, typeof i51.DraggableModule, typeof i48.TabStripModule, typeof i53.GridModule, typeof i54.DropDownsModule, typeof i55.IconsModule], [typeof i1.GanttComponent, typeof i2.GanttFlatBindingDirective, typeof i3.GanttHierarchyBindingDirective, typeof i4.GanttTaskComponent, typeof i5.GanttSummaryTaskComponent, typeof i6.GanttMilestoneTaskComponent, typeof i7.GanttTimelineComponent, typeof i8.GanttTasksTableBodyComponent, typeof i9.GanttHeaderTableBodyComponent, typeof i10.GanttTaskContentTemplateDirective, typeof i11.GanttTaskTemplateDirective, typeof i12.GanttSummaryTaskTemplateDirective, typeof i13.ToolbarTemplateDirective, typeof i14.ToolbarComponent, typeof i15.ViewSelectorComponent, typeof i16.GanttColumnComponent, typeof i17.GanttColumnGroupComponent, typeof i18.GanttSpanColumnComponent, typeof i19.FilterMenuTemplateDirective, typeof i20.FilterCellTemplateDirective, typeof i21.CellTemplateDirective, typeof i22.EditTemplateDirective, typeof i23.ColumnMenuTemplateDirective, typeof i24.HeaderTemplateDirective, typeof i25.FooterTemplateDirective, typeof i26.GanttExpandableDirective, typeof i27.GanttDependencyDirective, typeof i28.DependencyDragCreateDirective, typeof i29.TimelineDayViewComponent, typeof i30.TimelineWeekViewComponent, typeof i31.TimelineMonthViewComponent, typeof i32.TimelineYearViewComponent, typeof i33.SelectableDirective, typeof i34.EditDialogComponent, typeof i35.CustomMessagesComponent, typeof i36.LocalizedMessagesDirective, typeof i37.GanttAddTaskComponent, typeof i38.DragValidationTooltipComponent, typeof i39.TimelineScrollableDirective, typeof i40.DependenciesTableComponent, typeof i41.TaskFieldsComponent]>;
95
+ static ɵmod: i0.ɵɵNgModuleDeclaration<GanttModule, [typeof i1.GanttComponent, typeof i2.GanttFlatBindingDirective, typeof i3.GanttHierarchyBindingDirective, typeof i4.GanttTaskComponent, typeof i5.GanttSummaryTaskComponent, typeof i6.GanttMilestoneTaskComponent, typeof i7.GanttTimelineComponent, typeof i8.GanttTasksTableBodyComponent, typeof i9.GanttHeaderTableBodyComponent, typeof i10.GanttTaskContentTemplateDirective, typeof i11.GanttTaskTemplateDirective, typeof i12.GanttSummaryTaskTemplateDirective, typeof i13.ToolbarTemplateDirective, typeof i14.ToolbarComponent, typeof i15.ViewSelectorComponent, typeof i16.GanttColumnComponent, typeof i17.GanttColumnGroupComponent, typeof i18.GanttSpanColumnComponent, typeof i19.FilterMenuTemplateDirective, typeof i20.FilterCellTemplateDirective, typeof i21.CellTemplateDirective, typeof i22.EditTemplateDirective, typeof i23.ColumnMenuTemplateDirective, typeof i24.HeaderTemplateDirective, typeof i25.FooterTemplateDirective, typeof i26.GanttExpandableDirective, typeof i27.GanttDependencyDirective, typeof i28.DependencyDragCreateDirective, typeof i29.TimelineDayViewComponent, typeof i30.TimelineWeekViewComponent, typeof i31.TimelineMonthViewComponent, typeof i32.TimelineYearViewComponent, typeof i33.SelectableDirective, typeof i34.EditDialogComponent, typeof i35.CustomMessagesComponent, typeof i36.LocalizedMessagesDirective, typeof i37.GanttAddTaskComponent, typeof i38.DragValidationTooltipComponent, typeof i39.TimelineScrollableDirective, typeof i40.DependenciesTableComponent, typeof i41.TaskFieldsComponent], [typeof i42.CommonModule, typeof i43.ReactiveFormsModule, typeof i44.LabelModule, typeof i45.InputsModule, typeof i46.DateInputsModule, typeof i47.ButtonsModule, typeof i48.SplitterModule, typeof i49.TreeListModule, typeof i47.ButtonsModule, typeof i50.DialogModule, typeof i51.EventsModule, typeof i52.PopupModule, typeof i51.DraggableModule, typeof i48.TabStripModule, typeof i53.GridModule, typeof i54.DropDownsModule, typeof i55.IconsModule, typeof i56.IntlModule], [typeof i1.GanttComponent, typeof i2.GanttFlatBindingDirective, typeof i3.GanttHierarchyBindingDirective, typeof i4.GanttTaskComponent, typeof i5.GanttSummaryTaskComponent, typeof i6.GanttMilestoneTaskComponent, typeof i7.GanttTimelineComponent, typeof i8.GanttTasksTableBodyComponent, typeof i9.GanttHeaderTableBodyComponent, typeof i10.GanttTaskContentTemplateDirective, typeof i11.GanttTaskTemplateDirective, typeof i12.GanttSummaryTaskTemplateDirective, typeof i13.ToolbarTemplateDirective, typeof i14.ToolbarComponent, typeof i15.ViewSelectorComponent, typeof i16.GanttColumnComponent, typeof i17.GanttColumnGroupComponent, typeof i18.GanttSpanColumnComponent, typeof i19.FilterMenuTemplateDirective, typeof i20.FilterCellTemplateDirective, typeof i21.CellTemplateDirective, typeof i22.EditTemplateDirective, typeof i23.ColumnMenuTemplateDirective, typeof i24.HeaderTemplateDirective, typeof i25.FooterTemplateDirective, typeof i26.GanttExpandableDirective, typeof i27.GanttDependencyDirective, typeof i28.DependencyDragCreateDirective, typeof i29.TimelineDayViewComponent, typeof i30.TimelineWeekViewComponent, typeof i31.TimelineMonthViewComponent, typeof i32.TimelineYearViewComponent, typeof i33.SelectableDirective, typeof i34.EditDialogComponent, typeof i35.CustomMessagesComponent, typeof i36.LocalizedMessagesDirective, typeof i37.GanttAddTaskComponent, typeof i38.DragValidationTooltipComponent, typeof i39.TimelineScrollableDirective, typeof i40.DependenciesTableComponent, typeof i41.TaskFieldsComponent]>;
95
96
  static ɵinj: i0.ɵɵInjectorDeclaration<GanttModule>;
96
97
  }
@@ -35,6 +35,7 @@ export { EditEventDependencies } from './events/task-edit-event.interface';
35
35
  export { DependencyAddEvent } from './events/dependency-add-event.interface';
36
36
  export { DragScrollSettings } from '../scrolling/drag-scroll-settings';
37
37
  export { TaskDeleteEvent } from './events/task-delete-event.interface';
38
+ export { TimelineHeaderDateFormat } from './timeline-header-date-format';
38
39
  export { ColumnLockedChangeEvent } from './events/column-locked-change-event.interface';
39
40
  export { ColumnReorderEvent } from './events/column-reorder-event.interface';
40
41
  export { ColumnResizeEvent } from './events/column-resize-event.interface';
@@ -0,0 +1,18 @@
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
+ import { DateFormatOptions } from "@progress/kendo-intl";
6
+ /**
7
+ * Represents the options for formatting the Group Headers and Column Headers in each individual Timeline Header.
8
+ */
9
+ export interface TimelineHeaderDateFormat {
10
+ /**
11
+ * Specifies the date format for the group header in the Timeline Header.
12
+ */
13
+ groupHeaderDateFormat?: string | DateFormatOptions;
14
+ /**
15
+ * Specifies the date format for the column header in the Timeline Header.
16
+ */
17
+ columnHeaderDateFormat?: string | DateFormatOptions;
18
+ }
@@ -4,6 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Day } from "@progress/kendo-date-math";
6
6
  import { TimelineViewType } from "./timeline-view";
7
+ import { TimelineHeaderDateFormat } from "./timeline-header-date-format";
7
8
  /**
8
9
  * @hidden
9
10
  *
@@ -38,4 +39,8 @@ export interface TimelineOptions {
38
39
  * The end of the work week (index based).
39
40
  */
40
41
  workWeekEnd?: Day;
42
+ /**
43
+ * The options for formatting the Group Headers and Column Headers in each individual Timeline Header.
44
+ */
45
+ timelineHeadersDateFormat?: TimelineHeaderDateFormat;
41
46
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-gantt",
3
- "version": "13.2.0-develop.1",
3
+ "version": "13.2.0-develop.3",
4
4
  "description": "Kendo UI Angular Gantt",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -24,22 +24,22 @@
24
24
  "@angular/platform-browser": "13 - 16",
25
25
  "@progress/kendo-data-query": "^1.5.5",
26
26
  "@progress/kendo-licensing": "^1.0.2",
27
- "@progress/kendo-angular-buttons": "13.2.0-develop.1",
28
- "@progress/kendo-angular-common": "13.2.0-develop.1",
29
- "@progress/kendo-angular-dialog": "13.2.0-develop.1",
30
- "@progress/kendo-angular-dropdowns": "13.2.0-develop.1",
31
- "@progress/kendo-angular-grid": "13.2.0-develop.1",
32
- "@progress/kendo-angular-icons": "13.2.0-develop.1",
33
- "@progress/kendo-angular-intl": "13.2.0-develop.1",
34
- "@progress/kendo-angular-l10n": "13.2.0-develop.1",
35
- "@progress/kendo-angular-layout": "13.2.0-develop.1",
36
- "@progress/kendo-angular-popup": "13.2.0-develop.1",
37
- "@progress/kendo-angular-treelist": "13.2.0-develop.1",
27
+ "@progress/kendo-angular-buttons": "13.2.0-develop.3",
28
+ "@progress/kendo-angular-common": "13.2.0-develop.3",
29
+ "@progress/kendo-angular-dialog": "13.2.0-develop.3",
30
+ "@progress/kendo-angular-dropdowns": "13.2.0-develop.3",
31
+ "@progress/kendo-angular-grid": "13.2.0-develop.3",
32
+ "@progress/kendo-angular-icons": "13.2.0-develop.3",
33
+ "@progress/kendo-angular-intl": "13.2.0-develop.3",
34
+ "@progress/kendo-angular-l10n": "13.2.0-develop.3",
35
+ "@progress/kendo-angular-layout": "13.2.0-develop.3",
36
+ "@progress/kendo-angular-popup": "13.2.0-develop.3",
37
+ "@progress/kendo-angular-treelist": "13.2.0-develop.3",
38
38
  "rxjs": "^6.5.3 || ^7.0.0"
39
39
  },
40
40
  "dependencies": {
41
41
  "tslib": "^2.3.1",
42
- "@progress/kendo-angular-schematics": "13.2.0-develop.1",
42
+ "@progress/kendo-angular-schematics": "13.2.0-develop.3",
43
43
  "@progress/kendo-common": "^0.2.1",
44
44
  "@progress/kendo-date-math": "^1.5.2",
45
45
  "@progress/kendo-draggable": "^3.0.0"
@@ -7,20 +7,20 @@ function default_1(options) {
7
7
  // See https://github.com/telerik/kendo-schematics/issues/28
8
8
  peerDependencies: {
9
9
  // peer deps of the treelist
10
- '@progress/kendo-angular-dateinputs': '13.2.0-develop.1',
11
- '@progress/kendo-angular-dropdowns': '13.2.0-develop.1',
12
- '@progress/kendo-angular-excel-export': '13.2.0-develop.1',
13
- '@progress/kendo-angular-inputs': '13.2.0-develop.1',
14
- '@progress/kendo-angular-l10n': '13.2.0-develop.1',
15
- '@progress/kendo-angular-label': '13.2.0-develop.1',
16
- '@progress/kendo-angular-pdf-export': '13.2.0-develop.1',
17
- '@progress/kendo-angular-popup': '13.2.0-develop.1',
18
- '@progress/kendo-angular-utils': '13.2.0-develop.1',
10
+ '@progress/kendo-angular-dateinputs': '13.2.0-develop.3',
11
+ '@progress/kendo-angular-dropdowns': '13.2.0-develop.3',
12
+ '@progress/kendo-angular-excel-export': '13.2.0-develop.3',
13
+ '@progress/kendo-angular-inputs': '13.2.0-develop.3',
14
+ '@progress/kendo-angular-l10n': '13.2.0-develop.3',
15
+ '@progress/kendo-angular-label': '13.2.0-develop.3',
16
+ '@progress/kendo-angular-pdf-export': '13.2.0-develop.3',
17
+ '@progress/kendo-angular-popup': '13.2.0-develop.3',
18
+ '@progress/kendo-angular-utils': '13.2.0-develop.3',
19
19
  '@progress/kendo-drawing': '^1.0.0',
20
20
  // peer dep of the dropdowns
21
- '@progress/kendo-angular-treeview': '13.2.0-develop.1',
21
+ '@progress/kendo-angular-treeview': '13.2.0-develop.3',
22
22
  // peer dep of the layout
23
- '@progress/kendo-angular-progressbar': '13.2.0-develop.1',
23
+ '@progress/kendo-angular-progressbar': '13.2.0-develop.3',
24
24
  // peer dep of the icons
25
25
  '@progress/kendo-svg-icons': '^1.0.0'
26
26
  } });
@@ -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 { IntlService } from '@progress/kendo-angular-intl';
5
+ import { DateFormatOptions, IntlService } from '@progress/kendo-angular-intl';
6
6
  import { MappingService } from '../common/mapping.service';
7
7
  import { TimelineOptions } from '../models/timeline-options.interface';
8
8
  import { DateRange } from '../models/date-range.interface';
@@ -19,15 +19,20 @@ export declare const HOUR_FORMAT = "HH:mm aa";
19
19
  * @hidden
20
20
  */
21
21
  export declare const MONTH_FORMAT = "MMM";
22
+ /**
23
+ * @hidden
24
+ */
25
+ export declare const YEAR_FORMAT = "yyyy";
22
26
  /**
23
27
  * @hidden
24
28
  */
25
29
  export declare abstract class TimelineBaseViewService {
26
30
  protected intlService: IntlService;
27
31
  protected mapper: MappingService;
32
+ localeId: string;
28
33
  options: TimelineOptions;
29
34
  private _viewStart;
30
- constructor(intlService: IntlService, mapper: MappingService);
35
+ constructor(intlService: IntlService, mapper: MappingService, localeId: string);
31
36
  get viewStart(): number;
32
37
  /**
33
38
  *
@@ -64,15 +69,15 @@ export declare abstract class TimelineBaseViewService {
64
69
  * @param end - The tasks' range end date
65
70
  * @returns {Array<Object>} - A collection containing the hour slots
66
71
  */
67
- protected getHours(start: any, end: any): Array<Slot>;
72
+ protected getHours(start: any, end: any, customDateFormat?: string | DateFormatOptions): Array<Slot>;
68
73
  /**
69
74
  *
70
75
  * @param start - The tasks' range start date
71
76
  * @param end - The tasks' range end date
72
77
  * @returns {Array<Object>} - A collection containing the day slots
73
78
  */
74
- protected getDays(start: any, end: any): Array<Slot>;
75
- protected getWeeks(start: any, end: any): Array<Slot>;
76
- protected getMonths(start: any, end: any, isMainViewType?: boolean): Array<Slot>;
77
- protected getYears(start: any, end: any): Array<Slot>;
79
+ protected getDays(start: any, end: any, customDateFormat?: string | DateFormatOptions): Array<Slot>;
80
+ protected getWeeks(start: any, end: any, customDateFormat?: string | DateFormatOptions): Array<Slot>;
81
+ protected getMonths(start: any, end: any, isMainViewType?: boolean, customDateFormat?: string | DateFormatOptions): Array<Slot>;
82
+ protected getYears(start: any, end: any, customDateFormat?: any): Array<Slot>;
78
83
  }
@@ -11,7 +11,8 @@ import * as i0 from "@angular/core";
11
11
  * @hidden
12
12
  */
13
13
  export declare class TimelineDayViewService extends TimelineBaseViewService {
14
- constructor(intlService: IntlService, mapper: MappingService);
14
+ localeId: string;
15
+ constructor(intlService: IntlService, mapper: MappingService, localeId: string);
15
16
  /**
16
17
  * Gets a date an hour before the first task start with minutes, seconds, milliseconds cleared.
17
18
  */
@@ -11,7 +11,8 @@ import * as i0 from "@angular/core";
11
11
  * @hidden
12
12
  */
13
13
  export declare class TimelineMonthViewService extends TimelineBaseViewService {
14
- constructor(intlService: IntlService, mapper: MappingService);
14
+ localeId: string;
15
+ constructor(intlService: IntlService, mapper: MappingService, localeId: string);
15
16
  /**
16
17
  * Gets a week before the first week in which a task starts.
17
18
  */
@@ -11,7 +11,8 @@ import * as i0 from "@angular/core";
11
11
  * @hidden
12
12
  */
13
13
  export declare class TimelineWeekViewService extends TimelineBaseViewService {
14
- constructor(intlService: IntlService, mapper: MappingService);
14
+ localeId: string;
15
+ constructor(intlService: IntlService, mapper: MappingService, localeId: string);
15
16
  /**
16
17
  * Gets a date a day before the first task start with hours, minutes, seconds, milliseconds cleared.
17
18
  */
@@ -11,7 +11,8 @@ import * as i0 from "@angular/core";
11
11
  * @hidden
12
12
  */
13
13
  export declare class TimeLineYearViewService extends TimelineBaseViewService {
14
- constructor(intlService: IntlService, mapper: MappingService);
14
+ localeId: string;
15
+ constructor(intlService: IntlService, mapper: MappingService, localeId: string);
15
16
  getTableWidth(tasks: any[]): number;
16
17
  getStartOffset(rangeStart: Date): Date;
17
18
  /**