@progress/kendo-angular-scheduler 14.3.1-develop.2 → 14.4.0-develop.2

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.
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-scheduler',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1703152353,
13
- version: '14.3.1-develop.2',
12
+ publishDate: 1703164645,
13
+ version: '14.4.0-develop.2',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
15
15
  };
@@ -113,7 +113,7 @@ AgendaListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
113
113
  <td class="k-scheduler-timecolumn" role="gridcell">
114
114
  <div *ngIf="!agendaTimeTemplate">
115
115
  <kendo-icon-wrapper
116
- *ngIf="extractDataItem(item).tail"
116
+ *ngIf="extractDataItem(item).tail || extractDataItem(item).mid"
117
117
  [name]="arrowIcons[0]"
118
118
  [svgIcon]="arrowSVGIcons[0]"
119
119
  >
@@ -121,7 +121,7 @@ AgendaListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
121
121
 
122
122
  {{ formatTime(extractDataItem(item)) }}
123
123
  <kendo-icon-wrapper
124
- *ngIf="extractDataItem(item).head"
124
+ *ngIf="extractDataItem(item).head || extractDataItem(item).mid"
125
125
  [name]="arrowIcons[1]"
126
126
  [svgIcon]="arrowSVGIcons[1]"
127
127
  >
@@ -166,7 +166,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
166
166
  <td class="k-scheduler-timecolumn" role="gridcell">
167
167
  <div *ngIf="!agendaTimeTemplate">
168
168
  <kendo-icon-wrapper
169
- *ngIf="extractDataItem(item).tail"
169
+ *ngIf="extractDataItem(item).tail || extractDataItem(item).mid"
170
170
  [name]="arrowIcons[0]"
171
171
  [svgIcon]="arrowSVGIcons[0]"
172
172
  >
@@ -174,7 +174,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
174
174
 
175
175
  {{ formatTime(extractDataItem(item)) }}
176
176
  <kendo-icon-wrapper
177
- *ngIf="extractDataItem(item).head"
177
+ *ngIf="extractDataItem(item).head || extractDataItem(item).mid"
178
178
  [name]="arrowIcons[1]"
179
179
  [svgIcon]="arrowSVGIcons[1]"
180
180
  >
@@ -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 { TaskCollection, compose } from './tasks.collection';
6
- import { MS_PER_DAY } from '@progress/kendo-date-math';
6
+ import { MS_PER_DAY, toLocalDate } from '@progress/kendo-date-math';
7
7
  import { intersects, eventResources, toUTCDate, addUTCDays, getUTCDate } from '../utils';
8
8
  import { getField } from '../../common/util';
9
9
  /**
@@ -48,11 +48,15 @@ function createTask(item, resourceIdx, resources, color) {
48
48
  const durationInDays = ({ start, end, isAllDay = false }) => {
49
49
  const eventEnd = isAllDay ? getUTCDate(end) : end;
50
50
  const duration = Math.ceil((eventEnd - +getUTCDate(start)) / MS_PER_DAY);
51
- if (isAllDay) {
51
+ if (isAllDay && duration > 0 && !endsAtMidnight(end)) {
52
52
  return duration + 1;
53
53
  }
54
54
  return duration;
55
55
  };
56
+ const endsAtMidnight = (end) => {
57
+ end = toLocalDate(end);
58
+ return (end.getHours() === 0 && end.getMinutes() === 0 && end.getSeconds() === 0 && end.getMilliseconds() === 0);
59
+ };
56
60
  const curry = fn => {
57
61
  const len = fn.length;
58
62
  return (...args) => len === args.length
@@ -3,7 +3,6 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { intersects, toUTCDate, roundAllDayEnd } from '../utils';
6
- import { MS_PER_DAY } from '@progress/kendo-date-math';
7
6
  import { sortTasksByTime } from '../../common/util';
8
7
  /** @hidden */
9
8
  export const isMultiDay = ({ start, end }) => {
@@ -21,8 +20,8 @@ export const createTasks = (periodStart, periodEnd, items, ranges) => {
21
20
  for (let index = 0; index < items.length; index++) {
22
21
  const item = items[index];
23
22
  const multiDay = isMultiDay(item);
24
- const multipleRanges = multiDay && !item.event.isAllDay && (item.end.getTime() - item.start.getTime()) < MS_PER_DAY;
25
- const isAllDay = item.event.isAllDay || (multiDay && !multipleRanges);
23
+ const multipleRanges = multiDay && !item.event.isAllDay;
24
+ const isAllDay = typeof item.event.isAllDay === 'boolean' ? item.event.isAllDay : (multiDay && !multipleRanges);
26
25
  const endTime = (isAllDay ? roundAllDayEnd(item) : item.end).toUTCDate();
27
26
  const startTime = (isAllDay ? item.start.stripTime() : item.start).toUTCDate();
28
27
  for (let rangeIndex = 0; rangeIndex < ranges.length; rangeIndex++) {
@@ -23,19 +23,10 @@ export class TimelineMonthViewComponent extends TimelineBase {
23
23
  constructor(localization, changeDetector, viewContext, viewState) {
24
24
  super(localization, changeDetector, viewContext, viewState);
25
25
  /**
26
- * The long-date format for displaying the
27
- * selected date in the Scheduler toolbar.
28
- * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
29
- * @default '{0:Y}'
26
+ * Specifies the number of months that the view will render.
27
+ * @default 1
30
28
  */
31
- this.selectedDateFormat = '{0:Y}';
32
- /**
33
- * The short-date format for displaying the
34
- * selected date in the Scheduler toolbar.
35
- * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
36
- * @default '{0:y}'
37
- */
38
- this.selectedShortDateFormat = '{0:y}';
29
+ this.numberOfMonths = 1;
39
30
  /**
40
31
  * The invariant name for this view.
41
32
  * @default 'timelineMonth'
@@ -51,7 +42,7 @@ export class TimelineMonthViewComponent extends TimelineBase {
51
42
  * @hidden
52
43
  */
53
44
  this.getEndDate = (selectedDate) => {
54
- return addMonths(this.getStartDate(selectedDate), 1);
45
+ return addMonths(this.getStartDate(selectedDate), this.numberOfMonths);
55
46
  };
56
47
  /**
57
48
  * @hidden
@@ -66,9 +57,41 @@ export class TimelineMonthViewComponent extends TimelineBase {
66
57
  get title() {
67
58
  return this.localization.get('timelineMonthViewTitle');
68
59
  }
60
+ /**
61
+ * The long-date format for displaying the
62
+ * selected date in the Scheduler toolbar.
63
+ * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
64
+ * > Note: If [numberOfMonths](#toc-numberofmonths) > 1, the default format value shows a range - `'{0:Y} - {1:Y}'`, where `0` is the start and `1` is the end date.
65
+ * @default '{0:Y}'
66
+ */
67
+ set selectedDateFormat(format) {
68
+ this._selectedDateFormat = format;
69
+ }
70
+ get selectedDateFormat() {
71
+ if (this._selectedDateFormat) {
72
+ return this._selectedDateFormat;
73
+ }
74
+ return this.numberOfMonths && this.numberOfMonths > 1 ? '{0:Y} - {1:Y}' : '{0:Y}';
75
+ }
76
+ /**
77
+ * The short-date format for displaying the
78
+ * selected date in the Scheduler toolbar.
79
+ * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
80
+ * > Note: If [numberOfMonths](#toc-numberofmonths) > 1, the default format value shows a range - `'{0:y} - {1:y}'`, where `0` is the start and `1` is the end date.
81
+ * @default '{0:y}'
82
+ */
83
+ set selectedShortDateFormat(format) {
84
+ this._selectedShortDateFormat = format;
85
+ }
86
+ get selectedShortDateFormat() {
87
+ if (this._selectedShortDateFormat) {
88
+ return this._selectedShortDateFormat;
89
+ }
90
+ return this.numberOfMonths && this.numberOfMonths > 1 ? '{0:y} - {1:y}' : '{0:y}';
91
+ }
69
92
  }
70
93
  TimelineMonthViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i2.ViewContextService }, { token: i3.ViewStateService }], target: i0.ɵɵFactoryTarget.Component });
71
- TimelineMonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineMonthViewComponent, selector: "kendo-scheduler-timeline-month-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat" }, providers: [{
94
+ TimelineMonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineMonthViewComponent, selector: "kendo-scheduler-timeline-month-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat", numberOfMonths: "numberOfMonths" }, providers: [{
72
95
  provide: SchedulerView,
73
96
  useExisting: forwardRef(() => TimelineMonthViewComponent)
74
97
  }], usesInheritance: true, ngImport: i0, template: `
@@ -159,4 +182,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
159
182
  type: Input
160
183
  }], selectedShortDateFormat: [{
161
184
  type: Input
185
+ }], numberOfMonths: [{
186
+ type: Input
162
187
  }] } });
@@ -22,19 +22,10 @@ export class TimelineViewComponent extends TimelineBase {
22
22
  constructor(localization, changeDetector, viewContext, viewState) {
23
23
  super(localization, changeDetector, viewContext, viewState);
24
24
  /**
25
- * The long-date format for displaying the
26
- * selected date in the Scheduler toolbar.
27
- * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
28
- * @default '{0:D}'
25
+ * Specifies the number of days that the view will render.
26
+ * @default 1
29
27
  */
30
- this.selectedDateFormat = '{0:D}';
31
- /**
32
- * The short-date format for displaying the
33
- * selected date in the Scheduler toolbar.
34
- * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
35
- * @default '{0:d}'
36
- */
37
- this.selectedShortDateFormat = '{0:d}';
28
+ this.numberOfDays = 1;
38
29
  /**
39
30
  * The invariant name for this view.
40
31
  * @default 'timeline'
@@ -47,15 +38,48 @@ export class TimelineViewComponent extends TimelineBase {
47
38
  get title() {
48
39
  return this.localization.get('timelineViewTitle');
49
40
  }
41
+ /**
42
+ * The long-date format for displaying the
43
+ * selected date in the Scheduler toolbar.
44
+ * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
45
+ * > Note: If [numberOfDays](#toc-numberofdays) > 1, the default format value shows a range - `'{0:D} - {1:D}'`, where `0` is the start and `1` is the end date.
46
+ * @default '{0:D}'
47
+ */
48
+ set selectedDateFormat(format) {
49
+ this._selectedDateFormat = format;
50
+ }
51
+ get selectedDateFormat() {
52
+ if (this._selectedDateFormat) {
53
+ return this._selectedDateFormat;
54
+ }
55
+ return this.numberOfDays && this.numberOfDays > 1 ? '{0:D} - {1:D}' : '{0:D}';
56
+ }
57
+ /**
58
+ * The short-date format for displaying the
59
+ * selected date in the Scheduler toolbar.
60
+ * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
61
+ * > Note: If [numberOfDays](#toc-numberofdays) > 1, the default format value shows a range - `'{0:d} - {1:d}'`, where `0` is the start and `1` is the end date.
62
+ * @default '{0:d}'
63
+ */
64
+ set selectedShortDateFormat(format) {
65
+ this._selectedShortDateFormat = format;
66
+ }
67
+ get selectedShortDateFormat() {
68
+ if (this._selectedShortDateFormat) {
69
+ return this._selectedShortDateFormat;
70
+ }
71
+ return this.numberOfDays && this.numberOfDays > 1 ? '{0:d} - {1:d}' : '{0:d}';
72
+ }
50
73
  }
51
74
  TimelineViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineViewComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i2.ViewContextService }, { token: i3.ViewStateService }], target: i0.ɵɵFactoryTarget.Component });
52
- TimelineViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineViewComponent, selector: "kendo-scheduler-timeline-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat" }, providers: [{
75
+ TimelineViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineViewComponent, selector: "kendo-scheduler-timeline-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat", numberOfDays: "numberOfDays" }, providers: [{
53
76
  provide: SchedulerView,
54
77
  useExisting: forwardRef(() => TimelineViewComponent)
55
78
  }], usesInheritance: true, ngImport: i0, template: `
56
79
  <ng-template #content>
57
80
  <timeline-multi-day-view
58
81
  [name]="name"
82
+ [numberOfDays]="numberOfDays"
59
83
  [eventHeight]="viewEventHeight"
60
84
  [columnWidth]="viewColumnWidth"
61
85
  [currentTimeMarker]="viewCurrentTimeMarker"
@@ -98,6 +122,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
98
122
  <ng-template #content>
99
123
  <timeline-multi-day-view
100
124
  [name]="name"
125
+ [numberOfDays]="numberOfDays"
101
126
  [eventHeight]="viewEventHeight"
102
127
  [columnWidth]="viewColumnWidth"
103
128
  [currentTimeMarker]="viewCurrentTimeMarker"
@@ -132,4 +157,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
132
157
  type: Input
133
158
  }], selectedShortDateFormat: [{
134
159
  type: Input
160
+ }], numberOfDays: [{
161
+ type: Input
135
162
  }] } });
@@ -42,6 +42,11 @@ export class TimelineWeekViewComponent extends TimelineBase {
42
42
  * @default '{0:d} - {1:d}'
43
43
  */
44
44
  this.selectedShortDateFormat = '{0:d} - {1:d}';
45
+ /**
46
+ * Specifies the number of weeks that the view will render.
47
+ * @default 1
48
+ */
49
+ this.numberOfWeeks = 1;
45
50
  /**
46
51
  * The invariant name for this view.
47
52
  * @default 'timelineWeek'
@@ -62,7 +67,7 @@ export class TimelineWeekViewComponent extends TimelineBase {
62
67
  }
63
68
  }
64
69
  TimelineWeekViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewComponent, deps: [{ token: i1.IntlService }, { token: i2.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i3.ViewContextService }, { token: i4.ViewStateService }], target: i0.ɵɵFactoryTarget.Component });
65
- TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineWeekViewComponent, selector: "kendo-scheduler-timeline-week-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat" }, providers: [{
70
+ TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineWeekViewComponent, selector: "kendo-scheduler-timeline-week-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat", numberOfWeeks: "numberOfWeeks" }, providers: [{
66
71
  provide: SchedulerView,
67
72
  useExisting: forwardRef(() => TimelineWeekViewComponent)
68
73
  }], usesInheritance: true, ngImport: i0, template: `
@@ -70,7 +75,7 @@ TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
70
75
  <timeline-multi-day-view
71
76
  viewName="timeline-week"
72
77
  [name]="name"
73
- [numberOfDays]="7"
78
+ [numberOfDays]="7 * numberOfWeeks"
74
79
  [getStartDate]="getStartDate"
75
80
  [eventHeight]="viewEventHeight"
76
81
  [columnWidth]="viewColumnWidth"
@@ -116,7 +121,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
116
121
  <timeline-multi-day-view
117
122
  viewName="timeline-week"
118
123
  [name]="name"
119
- [numberOfDays]="7"
124
+ [numberOfDays]="7 * numberOfWeeks"
120
125
  [getStartDate]="getStartDate"
121
126
  [eventHeight]="viewEventHeight"
122
127
  [columnWidth]="viewColumnWidth"
@@ -153,4 +158,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
153
158
  type: Input
154
159
  }], selectedShortDateFormat: [{
155
160
  type: Input
161
+ }], numberOfWeeks: [{
162
+ type: Input
156
163
  }] } });
@@ -48,8 +48,8 @@ const packageMetadata = {
48
48
  name: '@progress/kendo-angular-scheduler',
49
49
  productName: 'Kendo UI for Angular',
50
50
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
51
- publishDate: 1703152353,
52
- version: '14.3.1-develop.2',
51
+ publishDate: 1703164645,
52
+ version: '14.4.0-develop.2',
53
53
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
54
54
  };
55
55
 
@@ -8139,11 +8139,15 @@ function createTask(item, resourceIdx, resources, color) {
8139
8139
  const durationInDays = ({ start, end, isAllDay = false }) => {
8140
8140
  const eventEnd = isAllDay ? getUTCDate(end) : end;
8141
8141
  const duration = Math.ceil((eventEnd - +getUTCDate(start)) / MS_PER_DAY$1);
8142
- if (isAllDay) {
8142
+ if (isAllDay && duration > 0 && !endsAtMidnight(end)) {
8143
8143
  return duration + 1;
8144
8144
  }
8145
8145
  return duration;
8146
8146
  };
8147
+ const endsAtMidnight = (end) => {
8148
+ end = toLocalDate(end);
8149
+ return (end.getHours() === 0 && end.getMinutes() === 0 && end.getSeconds() === 0 && end.getMilliseconds() === 0);
8150
+ };
8147
8151
  const curry = fn => {
8148
8152
  const len = fn.length;
8149
8153
  return (...args) => len === args.length
@@ -8573,7 +8577,7 @@ AgendaListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
8573
8577
  <td class="k-scheduler-timecolumn" role="gridcell">
8574
8578
  <div *ngIf="!agendaTimeTemplate">
8575
8579
  <kendo-icon-wrapper
8576
- *ngIf="extractDataItem(item).tail"
8580
+ *ngIf="extractDataItem(item).tail || extractDataItem(item).mid"
8577
8581
  [name]="arrowIcons[0]"
8578
8582
  [svgIcon]="arrowSVGIcons[0]"
8579
8583
  >
@@ -8581,7 +8585,7 @@ AgendaListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
8581
8585
 
8582
8586
  {{ formatTime(extractDataItem(item)) }}
8583
8587
  <kendo-icon-wrapper
8584
- *ngIf="extractDataItem(item).head"
8588
+ *ngIf="extractDataItem(item).head || extractDataItem(item).mid"
8585
8589
  [name]="arrowIcons[1]"
8586
8590
  [svgIcon]="arrowSVGIcons[1]"
8587
8591
  >
@@ -8626,7 +8630,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8626
8630
  <td class="k-scheduler-timecolumn" role="gridcell">
8627
8631
  <div *ngIf="!agendaTimeTemplate">
8628
8632
  <kendo-icon-wrapper
8629
- *ngIf="extractDataItem(item).tail"
8633
+ *ngIf="extractDataItem(item).tail || extractDataItem(item).mid"
8630
8634
  [name]="arrowIcons[0]"
8631
8635
  [svgIcon]="arrowSVGIcons[0]"
8632
8636
  >
@@ -8634,7 +8638,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8634
8638
 
8635
8639
  {{ formatTime(extractDataItem(item)) }}
8636
8640
  <kendo-icon-wrapper
8637
- *ngIf="extractDataItem(item).head"
8641
+ *ngIf="extractDataItem(item).head || extractDataItem(item).mid"
8638
8642
  [name]="arrowIcons[1]"
8639
8643
  [svgIcon]="arrowSVGIcons[1]"
8640
8644
  >
@@ -13008,8 +13012,8 @@ const createTasks = (periodStart, periodEnd, items, ranges) => {
13008
13012
  for (let index = 0; index < items.length; index++) {
13009
13013
  const item = items[index];
13010
13014
  const multiDay = isMultiDay(item);
13011
- const multipleRanges = multiDay && !item.event.isAllDay && (item.end.getTime() - item.start.getTime()) < MS_PER_DAY$1;
13012
- const isAllDay = item.event.isAllDay || (multiDay && !multipleRanges);
13015
+ const multipleRanges = multiDay && !item.event.isAllDay;
13016
+ const isAllDay = typeof item.event.isAllDay === 'boolean' ? item.event.isAllDay : (multiDay && !multipleRanges);
13013
13017
  const endTime = (isAllDay ? roundAllDayEnd(item) : item.end).toUTCDate();
13014
13018
  const startTime = (isAllDay ? item.start.stripTime() : item.start).toUTCDate();
13015
13019
  for (let rangeIndex = 0; rangeIndex < ranges.length; rangeIndex++) {
@@ -15646,19 +15650,10 @@ class TimelineViewComponent extends TimelineBase {
15646
15650
  constructor(localization, changeDetector, viewContext, viewState) {
15647
15651
  super(localization, changeDetector, viewContext, viewState);
15648
15652
  /**
15649
- * The long-date format for displaying the
15650
- * selected date in the Scheduler toolbar.
15651
- * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
15652
- * @default '{0:D}'
15653
- */
15654
- this.selectedDateFormat = '{0:D}';
15655
- /**
15656
- * The short-date format for displaying the
15657
- * selected date in the Scheduler toolbar.
15658
- * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
15659
- * @default '{0:d}'
15653
+ * Specifies the number of days that the view will render.
15654
+ * @default 1
15660
15655
  */
15661
- this.selectedShortDateFormat = '{0:d}';
15656
+ this.numberOfDays = 1;
15662
15657
  /**
15663
15658
  * The invariant name for this view.
15664
15659
  * @default 'timeline'
@@ -15671,15 +15666,48 @@ class TimelineViewComponent extends TimelineBase {
15671
15666
  get title() {
15672
15667
  return this.localization.get('timelineViewTitle');
15673
15668
  }
15669
+ /**
15670
+ * The long-date format for displaying the
15671
+ * selected date in the Scheduler toolbar.
15672
+ * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
15673
+ * > Note: If [numberOfDays](#toc-numberofdays) > 1, the default format value shows a range - `'{0:D} - {1:D}'`, where `0` is the start and `1` is the end date.
15674
+ * @default '{0:D}'
15675
+ */
15676
+ set selectedDateFormat(format) {
15677
+ this._selectedDateFormat = format;
15678
+ }
15679
+ get selectedDateFormat() {
15680
+ if (this._selectedDateFormat) {
15681
+ return this._selectedDateFormat;
15682
+ }
15683
+ return this.numberOfDays && this.numberOfDays > 1 ? '{0:D} - {1:D}' : '{0:D}';
15684
+ }
15685
+ /**
15686
+ * The short-date format for displaying the
15687
+ * selected date in the Scheduler toolbar.
15688
+ * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
15689
+ * > Note: If [numberOfDays](#toc-numberofdays) > 1, the default format value shows a range - `'{0:d} - {1:d}'`, where `0` is the start and `1` is the end date.
15690
+ * @default '{0:d}'
15691
+ */
15692
+ set selectedShortDateFormat(format) {
15693
+ this._selectedShortDateFormat = format;
15694
+ }
15695
+ get selectedShortDateFormat() {
15696
+ if (this._selectedShortDateFormat) {
15697
+ return this._selectedShortDateFormat;
15698
+ }
15699
+ return this.numberOfDays && this.numberOfDays > 1 ? '{0:d} - {1:d}' : '{0:d}';
15700
+ }
15674
15701
  }
15675
15702
  TimelineViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineViewComponent, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }], target: i0.ɵɵFactoryTarget.Component });
15676
- TimelineViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineViewComponent, selector: "kendo-scheduler-timeline-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat" }, providers: [{
15703
+ TimelineViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineViewComponent, selector: "kendo-scheduler-timeline-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat", numberOfDays: "numberOfDays" }, providers: [{
15677
15704
  provide: SchedulerView,
15678
15705
  useExisting: forwardRef(() => TimelineViewComponent)
15679
15706
  }], usesInheritance: true, ngImport: i0, template: `
15680
15707
  <ng-template #content>
15681
15708
  <timeline-multi-day-view
15682
15709
  [name]="name"
15710
+ [numberOfDays]="numberOfDays"
15683
15711
  [eventHeight]="viewEventHeight"
15684
15712
  [columnWidth]="viewColumnWidth"
15685
15713
  [currentTimeMarker]="viewCurrentTimeMarker"
@@ -15722,6 +15750,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15722
15750
  <ng-template #content>
15723
15751
  <timeline-multi-day-view
15724
15752
  [name]="name"
15753
+ [numberOfDays]="numberOfDays"
15725
15754
  [eventHeight]="viewEventHeight"
15726
15755
  [columnWidth]="viewColumnWidth"
15727
15756
  [currentTimeMarker]="viewCurrentTimeMarker"
@@ -15756,6 +15785,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15756
15785
  type: Input
15757
15786
  }], selectedShortDateFormat: [{
15758
15787
  type: Input
15788
+ }], numberOfDays: [{
15789
+ type: Input
15759
15790
  }] } });
15760
15791
 
15761
15792
  /**
@@ -15782,6 +15813,11 @@ class TimelineWeekViewComponent extends TimelineBase {
15782
15813
  * @default '{0:d} - {1:d}'
15783
15814
  */
15784
15815
  this.selectedShortDateFormat = '{0:d} - {1:d}';
15816
+ /**
15817
+ * Specifies the number of weeks that the view will render.
15818
+ * @default 1
15819
+ */
15820
+ this.numberOfWeeks = 1;
15785
15821
  /**
15786
15822
  * The invariant name for this view.
15787
15823
  * @default 'timelineWeek'
@@ -15802,7 +15838,7 @@ class TimelineWeekViewComponent extends TimelineBase {
15802
15838
  }
15803
15839
  }
15804
15840
  TimelineWeekViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewComponent, deps: [{ token: i1$4.IntlService }, { token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }], target: i0.ɵɵFactoryTarget.Component });
15805
- TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineWeekViewComponent, selector: "kendo-scheduler-timeline-week-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat" }, providers: [{
15841
+ TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineWeekViewComponent, selector: "kendo-scheduler-timeline-week-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat", numberOfWeeks: "numberOfWeeks" }, providers: [{
15806
15842
  provide: SchedulerView,
15807
15843
  useExisting: forwardRef(() => TimelineWeekViewComponent)
15808
15844
  }], usesInheritance: true, ngImport: i0, template: `
@@ -15810,7 +15846,7 @@ TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
15810
15846
  <timeline-multi-day-view
15811
15847
  viewName="timeline-week"
15812
15848
  [name]="name"
15813
- [numberOfDays]="7"
15849
+ [numberOfDays]="7 * numberOfWeeks"
15814
15850
  [getStartDate]="getStartDate"
15815
15851
  [eventHeight]="viewEventHeight"
15816
15852
  [columnWidth]="viewColumnWidth"
@@ -15856,7 +15892,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15856
15892
  <timeline-multi-day-view
15857
15893
  viewName="timeline-week"
15858
15894
  [name]="name"
15859
- [numberOfDays]="7"
15895
+ [numberOfDays]="7 * numberOfWeeks"
15860
15896
  [getStartDate]="getStartDate"
15861
15897
  [eventHeight]="viewEventHeight"
15862
15898
  [columnWidth]="viewColumnWidth"
@@ -15893,6 +15929,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15893
15929
  type: Input
15894
15930
  }], selectedShortDateFormat: [{
15895
15931
  type: Input
15932
+ }], numberOfWeeks: [{
15933
+ type: Input
15896
15934
  }] } });
15897
15935
 
15898
15936
  /**
@@ -15902,19 +15940,10 @@ class TimelineMonthViewComponent extends TimelineBase {
15902
15940
  constructor(localization, changeDetector, viewContext, viewState) {
15903
15941
  super(localization, changeDetector, viewContext, viewState);
15904
15942
  /**
15905
- * The long-date format for displaying the
15906
- * selected date in the Scheduler toolbar.
15907
- * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
15908
- * @default '{0:Y}'
15909
- */
15910
- this.selectedDateFormat = '{0:Y}';
15911
- /**
15912
- * The short-date format for displaying the
15913
- * selected date in the Scheduler toolbar.
15914
- * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
15915
- * @default '{0:y}'
15943
+ * Specifies the number of months that the view will render.
15944
+ * @default 1
15916
15945
  */
15917
- this.selectedShortDateFormat = '{0:y}';
15946
+ this.numberOfMonths = 1;
15918
15947
  /**
15919
15948
  * The invariant name for this view.
15920
15949
  * @default 'timelineMonth'
@@ -15930,7 +15959,7 @@ class TimelineMonthViewComponent extends TimelineBase {
15930
15959
  * @hidden
15931
15960
  */
15932
15961
  this.getEndDate = (selectedDate) => {
15933
- return addMonths(this.getStartDate(selectedDate), 1);
15962
+ return addMonths(this.getStartDate(selectedDate), this.numberOfMonths);
15934
15963
  };
15935
15964
  /**
15936
15965
  * @hidden
@@ -15945,9 +15974,41 @@ class TimelineMonthViewComponent extends TimelineBase {
15945
15974
  get title() {
15946
15975
  return this.localization.get('timelineMonthViewTitle');
15947
15976
  }
15977
+ /**
15978
+ * The long-date format for displaying the
15979
+ * selected date in the Scheduler toolbar.
15980
+ * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
15981
+ * > Note: If [numberOfMonths](#toc-numberofmonths) > 1, the default format value shows a range - `'{0:Y} - {1:Y}'`, where `0` is the start and `1` is the end date.
15982
+ * @default '{0:Y}'
15983
+ */
15984
+ set selectedDateFormat(format) {
15985
+ this._selectedDateFormat = format;
15986
+ }
15987
+ get selectedDateFormat() {
15988
+ if (this._selectedDateFormat) {
15989
+ return this._selectedDateFormat;
15990
+ }
15991
+ return this.numberOfMonths && this.numberOfMonths > 1 ? '{0:Y} - {1:Y}' : '{0:Y}';
15992
+ }
15993
+ /**
15994
+ * The short-date format for displaying the
15995
+ * selected date in the Scheduler toolbar.
15996
+ * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
15997
+ * > Note: If [numberOfMonths](#toc-numberofmonths) > 1, the default format value shows a range - `'{0:y} - {1:y}'`, where `0` is the start and `1` is the end date.
15998
+ * @default '{0:y}'
15999
+ */
16000
+ set selectedShortDateFormat(format) {
16001
+ this._selectedShortDateFormat = format;
16002
+ }
16003
+ get selectedShortDateFormat() {
16004
+ if (this._selectedShortDateFormat) {
16005
+ return this._selectedShortDateFormat;
16006
+ }
16007
+ return this.numberOfMonths && this.numberOfMonths > 1 ? '{0:y} - {1:y}' : '{0:y}';
16008
+ }
15948
16009
  }
15949
16010
  TimelineMonthViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewComponent, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }], target: i0.ɵɵFactoryTarget.Component });
15950
- TimelineMonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineMonthViewComponent, selector: "kendo-scheduler-timeline-month-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat" }, providers: [{
16011
+ TimelineMonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineMonthViewComponent, selector: "kendo-scheduler-timeline-month-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat", numberOfMonths: "numberOfMonths" }, providers: [{
15951
16012
  provide: SchedulerView,
15952
16013
  useExisting: forwardRef(() => TimelineMonthViewComponent)
15953
16014
  }], usesInheritance: true, ngImport: i0, template: `
@@ -16038,6 +16099,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16038
16099
  type: Input
16039
16100
  }], selectedShortDateFormat: [{
16040
16101
  type: Input
16102
+ }], numberOfMonths: [{
16103
+ type: Input
16041
16104
  }] } });
16042
16105
 
16043
16106
  const PUBLIC_DIRECTIVES = [
@@ -48,8 +48,8 @@ const packageMetadata = {
48
48
  name: '@progress/kendo-angular-scheduler',
49
49
  productName: 'Kendo UI for Angular',
50
50
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
51
- publishDate: 1703152353,
52
- version: '14.3.1-develop.2',
51
+ publishDate: 1703164645,
52
+ version: '14.4.0-develop.2',
53
53
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
54
54
  };
55
55
 
@@ -8101,11 +8101,15 @@ function createTask(item, resourceIdx, resources, color) {
8101
8101
  const durationInDays = ({ start, end, isAllDay = false }) => {
8102
8102
  const eventEnd = isAllDay ? getUTCDate(end) : end;
8103
8103
  const duration = Math.ceil((eventEnd - +getUTCDate(start)) / MS_PER_DAY$1);
8104
- if (isAllDay) {
8104
+ if (isAllDay && duration > 0 && !endsAtMidnight(end)) {
8105
8105
  return duration + 1;
8106
8106
  }
8107
8107
  return duration;
8108
8108
  };
8109
+ const endsAtMidnight = (end) => {
8110
+ end = toLocalDate(end);
8111
+ return (end.getHours() === 0 && end.getMinutes() === 0 && end.getSeconds() === 0 && end.getMilliseconds() === 0);
8112
+ };
8109
8113
  const curry = fn => {
8110
8114
  const len = fn.length;
8111
8115
  return (...args) => len === args.length
@@ -8538,7 +8542,7 @@ AgendaListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
8538
8542
  <td class="k-scheduler-timecolumn" role="gridcell">
8539
8543
  <div *ngIf="!agendaTimeTemplate">
8540
8544
  <kendo-icon-wrapper
8541
- *ngIf="extractDataItem(item).tail"
8545
+ *ngIf="extractDataItem(item).tail || extractDataItem(item).mid"
8542
8546
  [name]="arrowIcons[0]"
8543
8547
  [svgIcon]="arrowSVGIcons[0]"
8544
8548
  >
@@ -8546,7 +8550,7 @@ AgendaListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
8546
8550
 
8547
8551
  {{ formatTime(extractDataItem(item)) }}
8548
8552
  <kendo-icon-wrapper
8549
- *ngIf="extractDataItem(item).head"
8553
+ *ngIf="extractDataItem(item).head || extractDataItem(item).mid"
8550
8554
  [name]="arrowIcons[1]"
8551
8555
  [svgIcon]="arrowSVGIcons[1]"
8552
8556
  >
@@ -8591,7 +8595,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8591
8595
  <td class="k-scheduler-timecolumn" role="gridcell">
8592
8596
  <div *ngIf="!agendaTimeTemplate">
8593
8597
  <kendo-icon-wrapper
8594
- *ngIf="extractDataItem(item).tail"
8598
+ *ngIf="extractDataItem(item).tail || extractDataItem(item).mid"
8595
8599
  [name]="arrowIcons[0]"
8596
8600
  [svgIcon]="arrowSVGIcons[0]"
8597
8601
  >
@@ -8599,7 +8603,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8599
8603
 
8600
8604
  {{ formatTime(extractDataItem(item)) }}
8601
8605
  <kendo-icon-wrapper
8602
- *ngIf="extractDataItem(item).head"
8606
+ *ngIf="extractDataItem(item).head || extractDataItem(item).mid"
8603
8607
  [name]="arrowIcons[1]"
8604
8608
  [svgIcon]="arrowSVGIcons[1]"
8605
8609
  >
@@ -12964,8 +12968,8 @@ const createTasks = (periodStart, periodEnd, items, ranges) => {
12964
12968
  for (let index = 0; index < items.length; index++) {
12965
12969
  const item = items[index];
12966
12970
  const multiDay = isMultiDay(item);
12967
- const multipleRanges = multiDay && !item.event.isAllDay && (item.end.getTime() - item.start.getTime()) < MS_PER_DAY$1;
12968
- const isAllDay = item.event.isAllDay || (multiDay && !multipleRanges);
12971
+ const multipleRanges = multiDay && !item.event.isAllDay;
12972
+ const isAllDay = typeof item.event.isAllDay === 'boolean' ? item.event.isAllDay : (multiDay && !multipleRanges);
12969
12973
  const endTime = (isAllDay ? roundAllDayEnd(item) : item.end).toUTCDate();
12970
12974
  const startTime = (isAllDay ? item.start.stripTime() : item.start).toUTCDate();
12971
12975
  for (let rangeIndex = 0; rangeIndex < ranges.length; rangeIndex++) {
@@ -15600,19 +15604,10 @@ class TimelineViewComponent extends TimelineBase {
15600
15604
  constructor(localization, changeDetector, viewContext, viewState) {
15601
15605
  super(localization, changeDetector, viewContext, viewState);
15602
15606
  /**
15603
- * The long-date format for displaying the
15604
- * selected date in the Scheduler toolbar.
15605
- * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
15606
- * @default '{0:D}'
15607
- */
15608
- this.selectedDateFormat = '{0:D}';
15609
- /**
15610
- * The short-date format for displaying the
15611
- * selected date in the Scheduler toolbar.
15612
- * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
15613
- * @default '{0:d}'
15607
+ * Specifies the number of days that the view will render.
15608
+ * @default 1
15614
15609
  */
15615
- this.selectedShortDateFormat = '{0:d}';
15610
+ this.numberOfDays = 1;
15616
15611
  /**
15617
15612
  * The invariant name for this view.
15618
15613
  * @default 'timeline'
@@ -15625,15 +15620,48 @@ class TimelineViewComponent extends TimelineBase {
15625
15620
  get title() {
15626
15621
  return this.localization.get('timelineViewTitle');
15627
15622
  }
15623
+ /**
15624
+ * The long-date format for displaying the
15625
+ * selected date in the Scheduler toolbar.
15626
+ * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
15627
+ * > Note: If [numberOfDays](#toc-numberofdays) > 1, the default format value shows a range - `'{0:D} - {1:D}'`, where `0` is the start and `1` is the end date.
15628
+ * @default '{0:D}'
15629
+ */
15630
+ set selectedDateFormat(format) {
15631
+ this._selectedDateFormat = format;
15632
+ }
15633
+ get selectedDateFormat() {
15634
+ if (this._selectedDateFormat) {
15635
+ return this._selectedDateFormat;
15636
+ }
15637
+ return this.numberOfDays && this.numberOfDays > 1 ? '{0:D} - {1:D}' : '{0:D}';
15638
+ }
15639
+ /**
15640
+ * The short-date format for displaying the
15641
+ * selected date in the Scheduler toolbar.
15642
+ * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
15643
+ * > Note: If [numberOfDays](#toc-numberofdays) > 1, the default format value shows a range - `'{0:d} - {1:d}'`, where `0` is the start and `1` is the end date.
15644
+ * @default '{0:d}'
15645
+ */
15646
+ set selectedShortDateFormat(format) {
15647
+ this._selectedShortDateFormat = format;
15648
+ }
15649
+ get selectedShortDateFormat() {
15650
+ if (this._selectedShortDateFormat) {
15651
+ return this._selectedShortDateFormat;
15652
+ }
15653
+ return this.numberOfDays && this.numberOfDays > 1 ? '{0:d} - {1:d}' : '{0:d}';
15654
+ }
15628
15655
  }
15629
15656
  TimelineViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineViewComponent, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }], target: i0.ɵɵFactoryTarget.Component });
15630
- TimelineViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineViewComponent, selector: "kendo-scheduler-timeline-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat" }, providers: [{
15657
+ TimelineViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineViewComponent, selector: "kendo-scheduler-timeline-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat", numberOfDays: "numberOfDays" }, providers: [{
15631
15658
  provide: SchedulerView,
15632
15659
  useExisting: forwardRef(() => TimelineViewComponent)
15633
15660
  }], usesInheritance: true, ngImport: i0, template: `
15634
15661
  <ng-template #content>
15635
15662
  <timeline-multi-day-view
15636
15663
  [name]="name"
15664
+ [numberOfDays]="numberOfDays"
15637
15665
  [eventHeight]="viewEventHeight"
15638
15666
  [columnWidth]="viewColumnWidth"
15639
15667
  [currentTimeMarker]="viewCurrentTimeMarker"
@@ -15676,6 +15704,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15676
15704
  <ng-template #content>
15677
15705
  <timeline-multi-day-view
15678
15706
  [name]="name"
15707
+ [numberOfDays]="numberOfDays"
15679
15708
  [eventHeight]="viewEventHeight"
15680
15709
  [columnWidth]="viewColumnWidth"
15681
15710
  [currentTimeMarker]="viewCurrentTimeMarker"
@@ -15710,6 +15739,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15710
15739
  type: Input
15711
15740
  }], selectedShortDateFormat: [{
15712
15741
  type: Input
15742
+ }], numberOfDays: [{
15743
+ type: Input
15713
15744
  }] } });
15714
15745
 
15715
15746
  /**
@@ -15736,6 +15767,11 @@ class TimelineWeekViewComponent extends TimelineBase {
15736
15767
  * @default '{0:d} - {1:d}'
15737
15768
  */
15738
15769
  this.selectedShortDateFormat = '{0:d} - {1:d}';
15770
+ /**
15771
+ * Specifies the number of weeks that the view will render.
15772
+ * @default 1
15773
+ */
15774
+ this.numberOfWeeks = 1;
15739
15775
  /**
15740
15776
  * The invariant name for this view.
15741
15777
  * @default 'timelineWeek'
@@ -15756,7 +15792,7 @@ class TimelineWeekViewComponent extends TimelineBase {
15756
15792
  }
15757
15793
  }
15758
15794
  TimelineWeekViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineWeekViewComponent, deps: [{ token: i1$4.IntlService }, { token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }], target: i0.ɵɵFactoryTarget.Component });
15759
- TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineWeekViewComponent, selector: "kendo-scheduler-timeline-week-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat" }, providers: [{
15795
+ TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineWeekViewComponent, selector: "kendo-scheduler-timeline-week-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat", numberOfWeeks: "numberOfWeeks" }, providers: [{
15760
15796
  provide: SchedulerView,
15761
15797
  useExisting: forwardRef(() => TimelineWeekViewComponent)
15762
15798
  }], usesInheritance: true, ngImport: i0, template: `
@@ -15764,7 +15800,7 @@ TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
15764
15800
  <timeline-multi-day-view
15765
15801
  viewName="timeline-week"
15766
15802
  [name]="name"
15767
- [numberOfDays]="7"
15803
+ [numberOfDays]="7 * numberOfWeeks"
15768
15804
  [getStartDate]="getStartDate"
15769
15805
  [eventHeight]="viewEventHeight"
15770
15806
  [columnWidth]="viewColumnWidth"
@@ -15810,7 +15846,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15810
15846
  <timeline-multi-day-view
15811
15847
  viewName="timeline-week"
15812
15848
  [name]="name"
15813
- [numberOfDays]="7"
15849
+ [numberOfDays]="7 * numberOfWeeks"
15814
15850
  [getStartDate]="getStartDate"
15815
15851
  [eventHeight]="viewEventHeight"
15816
15852
  [columnWidth]="viewColumnWidth"
@@ -15847,6 +15883,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15847
15883
  type: Input
15848
15884
  }], selectedShortDateFormat: [{
15849
15885
  type: Input
15886
+ }], numberOfWeeks: [{
15887
+ type: Input
15850
15888
  }] } });
15851
15889
 
15852
15890
  /**
@@ -15856,19 +15894,10 @@ class TimelineMonthViewComponent extends TimelineBase {
15856
15894
  constructor(localization, changeDetector, viewContext, viewState) {
15857
15895
  super(localization, changeDetector, viewContext, viewState);
15858
15896
  /**
15859
- * The long-date format for displaying the
15860
- * selected date in the Scheduler toolbar.
15861
- * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
15862
- * @default '{0:Y}'
15863
- */
15864
- this.selectedDateFormat = '{0:Y}';
15865
- /**
15866
- * The short-date format for displaying the
15867
- * selected date in the Scheduler toolbar.
15868
- * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
15869
- * @default '{0:y}'
15897
+ * Specifies the number of months that the view will render.
15898
+ * @default 1
15870
15899
  */
15871
- this.selectedShortDateFormat = '{0:y}';
15900
+ this.numberOfMonths = 1;
15872
15901
  /**
15873
15902
  * The invariant name for this view.
15874
15903
  * @default 'timelineMonth'
@@ -15884,7 +15913,7 @@ class TimelineMonthViewComponent extends TimelineBase {
15884
15913
  * @hidden
15885
15914
  */
15886
15915
  this.getEndDate = (selectedDate) => {
15887
- return addMonths(this.getStartDate(selectedDate), 1);
15916
+ return addMonths(this.getStartDate(selectedDate), this.numberOfMonths);
15888
15917
  };
15889
15918
  /**
15890
15919
  * @hidden
@@ -15899,9 +15928,41 @@ class TimelineMonthViewComponent extends TimelineBase {
15899
15928
  get title() {
15900
15929
  return this.localization.get('timelineMonthViewTitle');
15901
15930
  }
15931
+ /**
15932
+ * The long-date format for displaying the
15933
+ * selected date in the Scheduler toolbar.
15934
+ * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
15935
+ * > Note: If [numberOfMonths](#toc-numberofmonths) > 1, the default format value shows a range - `'{0:Y} - {1:Y}'`, where `0` is the start and `1` is the end date.
15936
+ * @default '{0:Y}'
15937
+ */
15938
+ set selectedDateFormat(format) {
15939
+ this._selectedDateFormat = format;
15940
+ }
15941
+ get selectedDateFormat() {
15942
+ if (this._selectedDateFormat) {
15943
+ return this._selectedDateFormat;
15944
+ }
15945
+ return this.numberOfMonths && this.numberOfMonths > 1 ? '{0:Y} - {1:Y}' : '{0:Y}';
15946
+ }
15947
+ /**
15948
+ * The short-date format for displaying the
15949
+ * selected date in the Scheduler toolbar.
15950
+ * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
15951
+ * > Note: If [numberOfMonths](#toc-numberofmonths) > 1, the default format value shows a range - `'{0:y} - {1:y}'`, where `0` is the start and `1` is the end date.
15952
+ * @default '{0:y}'
15953
+ */
15954
+ set selectedShortDateFormat(format) {
15955
+ this._selectedShortDateFormat = format;
15956
+ }
15957
+ get selectedShortDateFormat() {
15958
+ if (this._selectedShortDateFormat) {
15959
+ return this._selectedShortDateFormat;
15960
+ }
15961
+ return this.numberOfMonths && this.numberOfMonths > 1 ? '{0:y} - {1:y}' : '{0:y}';
15962
+ }
15902
15963
  }
15903
15964
  TimelineMonthViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimelineMonthViewComponent, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }], target: i0.ɵɵFactoryTarget.Component });
15904
- TimelineMonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineMonthViewComponent, selector: "kendo-scheduler-timeline-month-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat" }, providers: [{
15965
+ TimelineMonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimelineMonthViewComponent, selector: "kendo-scheduler-timeline-month-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat", numberOfMonths: "numberOfMonths" }, providers: [{
15905
15966
  provide: SchedulerView,
15906
15967
  useExisting: forwardRef(() => TimelineMonthViewComponent)
15907
15968
  }], usesInheritance: true, ngImport: i0, template: `
@@ -15992,6 +16053,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15992
16053
  type: Input
15993
16054
  }], selectedShortDateFormat: [{
15994
16055
  type: Input
16056
+ }], numberOfMonths: [{
16057
+ type: Input
15995
16058
  }] } });
15996
16059
 
15997
16060
  const PUBLIC_DIRECTIVES = [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-scheduler",
3
- "version": "14.3.1-develop.2",
3
+ "version": "14.4.0-develop.2",
4
4
  "description": "Kendo UI Scheduler Angular - Outlook or Google-style angular scheduler calendar. Full-featured and customizable embedded scheduling from the creator developers trust for professional UI components.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -26,21 +26,21 @@
26
26
  "@progress/kendo-data-query": "^1.0.0",
27
27
  "@progress/kendo-drawing": "^1.17.2",
28
28
  "@progress/kendo-licensing": "^1.0.2",
29
- "@progress/kendo-angular-buttons": "14.3.1-develop.2",
30
- "@progress/kendo-angular-common": "14.3.1-develop.2",
31
- "@progress/kendo-angular-dateinputs": "14.3.1-develop.2",
32
- "@progress/kendo-angular-dialog": "14.3.1-develop.2",
33
- "@progress/kendo-angular-dropdowns": "14.3.1-develop.2",
34
- "@progress/kendo-angular-icons": "14.3.1-develop.2",
35
- "@progress/kendo-angular-inputs": "14.3.1-develop.2",
36
- "@progress/kendo-angular-intl": "14.3.1-develop.2",
37
- "@progress/kendo-angular-l10n": "14.3.1-develop.2",
38
- "@progress/kendo-angular-popup": "14.3.1-develop.2",
29
+ "@progress/kendo-angular-buttons": "14.4.0-develop.2",
30
+ "@progress/kendo-angular-common": "14.4.0-develop.2",
31
+ "@progress/kendo-angular-dateinputs": "14.4.0-develop.2",
32
+ "@progress/kendo-angular-dialog": "14.4.0-develop.2",
33
+ "@progress/kendo-angular-dropdowns": "14.4.0-develop.2",
34
+ "@progress/kendo-angular-icons": "14.4.0-develop.2",
35
+ "@progress/kendo-angular-inputs": "14.4.0-develop.2",
36
+ "@progress/kendo-angular-intl": "14.4.0-develop.2",
37
+ "@progress/kendo-angular-l10n": "14.4.0-develop.2",
38
+ "@progress/kendo-angular-popup": "14.4.0-develop.2",
39
39
  "rxjs": "^6.5.3 || ^7.0.0"
40
40
  },
41
41
  "dependencies": {
42
42
  "tslib": "^2.3.1",
43
- "@progress/kendo-angular-schematics": "14.3.1-develop.2",
43
+ "@progress/kendo-angular-schematics": "14.4.0-develop.2",
44
44
  "@progress/kendo-date-math": "^1.3.2",
45
45
  "@progress/kendo-draggable": "^3.0.2",
46
46
  "@progress/kendo-file-saver": "^1.0.7",
@@ -4,9 +4,9 @@ const schematics_1 = require("@angular-devkit/schematics");
4
4
  function default_1(options) {
5
5
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'SchedulerModule', package: 'scheduler', peerDependencies: {
6
6
  // peer dep of the dropdowns
7
- '@progress/kendo-angular-treeview': '14.3.1-develop.2',
7
+ '@progress/kendo-angular-treeview': '14.4.0-develop.2',
8
8
  // peer dependency of kendo-angular-inputs
9
- '@progress/kendo-angular-dialog': '14.3.1-develop.2',
9
+ '@progress/kendo-angular-dialog': '14.4.0-develop.2',
10
10
  // peer dependency of kendo-angular-icons
11
11
  '@progress/kendo-svg-icons': '^2.0.0'
12
12
  } });
@@ -20,16 +20,27 @@ export declare class TimelineMonthViewComponent extends TimelineBase {
20
20
  * The long-date format for displaying the
21
21
  * selected date in the Scheduler toolbar.
22
22
  * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
23
+ * > Note: If [numberOfMonths](#toc-numberofmonths) > 1, the default format value shows a range - `'{0:Y} - {1:Y}'`, where `0` is the start and `1` is the end date.
23
24
  * @default '{0:Y}'
24
25
  */
25
- selectedDateFormat: string;
26
+ set selectedDateFormat(format: string);
27
+ get selectedDateFormat(): string;
28
+ private _selectedDateFormat;
26
29
  /**
27
30
  * The short-date format for displaying the
28
31
  * selected date in the Scheduler toolbar.
29
32
  * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
33
+ * > Note: If [numberOfMonths](#toc-numberofmonths) > 1, the default format value shows a range - `'{0:y} - {1:y}'`, where `0` is the start and `1` is the end date.
30
34
  * @default '{0:y}'
31
35
  */
32
- selectedShortDateFormat: string;
36
+ set selectedShortDateFormat(format: string);
37
+ get selectedShortDateFormat(): string;
38
+ private _selectedShortDateFormat;
39
+ /**
40
+ * Specifies the number of months that the view will render.
41
+ * @default 1
42
+ */
43
+ numberOfMonths: number;
33
44
  /**
34
45
  * The invariant name for this view.
35
46
  * @default 'timelineMonth'
@@ -49,5 +60,5 @@ export declare class TimelineMonthViewComponent extends TimelineBase {
49
60
  getNextDate: (date: Date, count: number) => Date;
50
61
  constructor(localization: LocalizationService, changeDetector: ChangeDetectorRef, viewContext: ViewContextService, viewState: ViewStateService);
51
62
  static ɵfac: i0.ɵɵFactoryDeclaration<TimelineMonthViewComponent, never>;
52
- static ɵcmp: i0.ɵɵComponentDeclaration<TimelineMonthViewComponent, "kendo-scheduler-timeline-month-view", never, { "selectedDateFormat": "selectedDateFormat"; "selectedShortDateFormat": "selectedShortDateFormat"; }, {}, never, never>;
63
+ static ɵcmp: i0.ɵɵComponentDeclaration<TimelineMonthViewComponent, "kendo-scheduler-timeline-month-view", never, { "selectedDateFormat": "selectedDateFormat"; "selectedShortDateFormat": "selectedShortDateFormat"; "numberOfMonths": "numberOfMonths"; }, {}, never, never>;
53
64
  }
@@ -20,16 +20,27 @@ export declare class TimelineViewComponent extends TimelineBase {
20
20
  * The long-date format for displaying the
21
21
  * selected date in the Scheduler toolbar.
22
22
  * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
23
+ * > Note: If [numberOfDays](#toc-numberofdays) > 1, the default format value shows a range - `'{0:D} - {1:D}'`, where `0` is the start and `1` is the end date.
23
24
  * @default '{0:D}'
24
25
  */
25
- selectedDateFormat: string;
26
+ set selectedDateFormat(format: string);
27
+ get selectedDateFormat(): string;
28
+ private _selectedDateFormat;
26
29
  /**
27
30
  * The short-date format for displaying the
28
31
  * selected date in the Scheduler toolbar.
29
32
  * ([more information]({% slug parsingandformatting_intl %}#toc-date-formatting)).
33
+ * > Note: If [numberOfDays](#toc-numberofdays) > 1, the default format value shows a range - `'{0:d} - {1:d}'`, where `0` is the start and `1` is the end date.
30
34
  * @default '{0:d}'
31
35
  */
32
- selectedShortDateFormat: string;
36
+ set selectedShortDateFormat(format: string);
37
+ get selectedShortDateFormat(): string;
38
+ private _selectedShortDateFormat;
39
+ /**
40
+ * Specifies the number of days that the view will render.
41
+ * @default 1
42
+ */
43
+ numberOfDays: number;
33
44
  /**
34
45
  * The invariant name for this view.
35
46
  * @default 'timeline'
@@ -37,5 +48,5 @@ export declare class TimelineViewComponent extends TimelineBase {
37
48
  readonly name: string;
38
49
  constructor(localization: LocalizationService, changeDetector: ChangeDetectorRef, viewContext: ViewContextService, viewState: ViewStateService);
39
50
  static ɵfac: i0.ɵɵFactoryDeclaration<TimelineViewComponent, never>;
40
- static ɵcmp: i0.ɵɵComponentDeclaration<TimelineViewComponent, "kendo-scheduler-timeline-view", never, { "selectedDateFormat": "selectedDateFormat"; "selectedShortDateFormat": "selectedShortDateFormat"; }, {}, never, never>;
51
+ static ɵcmp: i0.ɵɵComponentDeclaration<TimelineViewComponent, "kendo-scheduler-timeline-view", never, { "selectedDateFormat": "selectedDateFormat"; "selectedShortDateFormat": "selectedShortDateFormat"; "numberOfDays": "numberOfDays"; }, {}, never, never>;
41
52
  }
@@ -35,6 +35,11 @@ export declare class TimelineWeekViewComponent extends TimelineBase {
35
35
  * @default '{0:d} - {1:d}'
36
36
  */
37
37
  selectedShortDateFormat: string;
38
+ /**
39
+ * Specifies the number of weeks that the view will render.
40
+ * @default 1
41
+ */
42
+ numberOfWeeks: number;
38
43
  /**
39
44
  * The invariant name for this view.
40
45
  * @default 'timelineWeek'
@@ -46,5 +51,5 @@ export declare class TimelineWeekViewComponent extends TimelineBase {
46
51
  */
47
52
  getStartDate: (selectedDate: Date) => Date;
48
53
  static ɵfac: i0.ɵɵFactoryDeclaration<TimelineWeekViewComponent, never>;
49
- static ɵcmp: i0.ɵɵComponentDeclaration<TimelineWeekViewComponent, "kendo-scheduler-timeline-week-view", never, { "selectedDateFormat": "selectedDateFormat"; "selectedShortDateFormat": "selectedShortDateFormat"; }, {}, never, never>;
54
+ static ɵcmp: i0.ɵɵComponentDeclaration<TimelineWeekViewComponent, "kendo-scheduler-timeline-week-view", never, { "selectedDateFormat": "selectedDateFormat"; "selectedShortDateFormat": "selectedShortDateFormat"; "numberOfWeeks": "numberOfWeeks"; }, {}, never, never>;
50
55
  }