@progress/kendo-angular-scheduler 21.4.1-develop.1 → 22.0.0-develop.1

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.
Files changed (197) hide show
  1. package/editing/recurrence/localization/messages.d.ts +1 -1
  2. package/editing/resource-editor-base.d.ts +1 -1
  3. package/editing-directives/editing-directive-base.d.ts +1 -1
  4. package/fesm2022/progress-kendo-angular-scheduler.mjs +313 -313
  5. package/localization/messages.d.ts +1 -1
  6. package/package.json +20 -28
  7. package/schematics/ngAdd/index.js +3 -3
  8. package/views/common/base-view.d.ts +1 -1
  9. package/views/common/configuration-view-base.d.ts +1 -1
  10. package/views/day-time/day-time-view-base.d.ts +1 -1
  11. package/views/day-time/day-time-view.component.d.ts +1 -1
  12. package/views/multi-day/multi-day-view-base.d.ts +1 -1
  13. package/views/timeline/timeline-base.d.ts +1 -1
  14. package/views/view-items/base-slot.directive.d.ts +1 -1
  15. package/views/view-items/base-view-item.d.ts +1 -1
  16. package/esm2022/common/constants.mjs +0 -8
  17. package/esm2022/common/default-model-fields.mjs +0 -20
  18. package/esm2022/common/dom-queries.mjs +0 -107
  19. package/esm2022/common/modifiers.mjs +0 -31
  20. package/esm2022/common/util.mjs +0 -227
  21. package/esm2022/data-binding.directive.mjs +0 -162
  22. package/esm2022/directives.mjs +0 -136
  23. package/esm2022/editing/date-time-picker.component.mjs +0 -190
  24. package/esm2022/editing/dialogs.service.mjs +0 -96
  25. package/esm2022/editing/edit-dialog-template.directive.mjs +0 -53
  26. package/esm2022/editing/edit-dialog.component.mjs +0 -679
  27. package/esm2022/editing/edit.service.mjs +0 -107
  28. package/esm2022/editing/local-data-changes.service.mjs +0 -18
  29. package/esm2022/editing/recurrence/end-rule-radio-button.directive.mjs +0 -77
  30. package/esm2022/editing/recurrence/localization/custom-messages.component.mjs +0 -44
  31. package/esm2022/editing/recurrence/localization/localized-messages.directive.mjs +0 -39
  32. package/esm2022/editing/recurrence/localization/messages.mjs +0 -239
  33. package/esm2022/editing/recurrence/localization/recurrence-localization.service.mjs +0 -47
  34. package/esm2022/editing/recurrence/recurrence-editor.component.mjs +0 -497
  35. package/esm2022/editing/recurrence/recurrence-end-rule-editor.component.mjs +0 -334
  36. package/esm2022/editing/recurrence/recurrence-frequency-editor.component.mjs +0 -105
  37. package/esm2022/editing/recurrence/recurrence-interval-editor.component.mjs +0 -169
  38. package/esm2022/editing/recurrence/recurrence-monthly-yearly-editor.component.mjs +0 -468
  39. package/esm2022/editing/recurrence/recurrence-weekday-rule-editor.component.mjs +0 -138
  40. package/esm2022/editing/recurrence/recurrence.service.mjs +0 -254
  41. package/esm2022/editing/recurrence/repeat-on-radio-button.directive.mjs +0 -81
  42. package/esm2022/editing/resource-editor-base.mjs +0 -59
  43. package/esm2022/editing/resource-multiple-editor.component.mjs +0 -101
  44. package/esm2022/editing/resource-single-editor.component.mjs +0 -82
  45. package/esm2022/editing/timezone-editor.component.mjs +0 -193
  46. package/esm2022/editing-directives/base-edit.service.mjs +0 -320
  47. package/esm2022/editing-directives/edit-service.interface.mjs +0 -5
  48. package/esm2022/editing-directives/editing-directive-base.mjs +0 -242
  49. package/esm2022/editing-directives/local-edit.service.mjs +0 -122
  50. package/esm2022/editing-directives/reactive-editing.directive.mjs +0 -132
  51. package/esm2022/editing-directives/utils.mjs +0 -107
  52. package/esm2022/events/add-event.mjs +0 -26
  53. package/esm2022/events/cancel-event.mjs +0 -14
  54. package/esm2022/events/create-event.mjs +0 -40
  55. package/esm2022/events/date-change-event.mjs +0 -29
  56. package/esm2022/events/drag-end-event.mjs +0 -46
  57. package/esm2022/events/drag-event.mjs +0 -54
  58. package/esm2022/events/drag-start-event.mjs +0 -30
  59. package/esm2022/events/edit-event-base.mjs +0 -32
  60. package/esm2022/events/edit-event.mjs +0 -30
  61. package/esm2022/events/event-click-event.mjs +0 -32
  62. package/esm2022/events/event-keydown-event.mjs +0 -28
  63. package/esm2022/events/more-events-click.mjs +0 -24
  64. package/esm2022/events/navigate-event.mjs +0 -26
  65. package/esm2022/events/preventable-event.mjs +0 -28
  66. package/esm2022/events/remove-event.mjs +0 -30
  67. package/esm2022/events/resize-end-event.mjs +0 -38
  68. package/esm2022/events/resize-event.mjs +0 -46
  69. package/esm2022/events/resize-start-event.mjs +0 -30
  70. package/esm2022/events/save-event.mjs +0 -18
  71. package/esm2022/events/slot-click-event.mjs +0 -44
  72. package/esm2022/events/slot-drag-end-event.mjs +0 -10
  73. package/esm2022/events/slot-drag-event.mjs +0 -40
  74. package/esm2022/events/slot-drag-start-event.mjs +0 -44
  75. package/esm2022/events/view-event-map.mjs +0 -35
  76. package/esm2022/events.mjs +0 -27
  77. package/esm2022/index.mjs +0 -83
  78. package/esm2022/loading.component.mjs +0 -52
  79. package/esm2022/localization/custom-messages.component.mjs +0 -56
  80. package/esm2022/localization/localized-messages.directive.mjs +0 -39
  81. package/esm2022/localization/messages.mjs +0 -614
  82. package/esm2022/localization/scheduler-localization.service.mjs +0 -31
  83. package/esm2022/navigation/focus-position.interface.mjs +0 -5
  84. package/esm2022/navigation/focus.service.mjs +0 -202
  85. package/esm2022/navigation/focusable-element.interface.mjs +0 -5
  86. package/esm2022/navigation/focusable.directive.mjs +0 -98
  87. package/esm2022/navigation/shortcuts.directive.mjs +0 -239
  88. package/esm2022/navigation.mjs +0 -6
  89. package/esm2022/package-metadata.mjs +0 -16
  90. package/esm2022/pdf/pdf-command.directive.mjs +0 -96
  91. package/esm2022/pdf/pdf-export-event.mjs +0 -10
  92. package/esm2022/pdf/pdf.component.mjs +0 -241
  93. package/esm2022/pdf/pdf.module.mjs +0 -42
  94. package/esm2022/pdf/pdf.service.mjs +0 -36
  95. package/esm2022/progress-kendo-angular-scheduler.mjs +0 -8
  96. package/esm2022/scheduler.component.mjs +0 -1981
  97. package/esm2022/scheduler.module.mjs +0 -138
  98. package/esm2022/toolbar/navigation.component.mjs +0 -391
  99. package/esm2022/toolbar/toolbar-context.mjs +0 -5
  100. package/esm2022/toolbar/toolbar-template.directive.mjs +0 -50
  101. package/esm2022/toolbar/toolbar.component.mjs +0 -168
  102. package/esm2022/toolbar/toolbar.service.mjs +0 -46
  103. package/esm2022/toolbar/view-selector.component.mjs +0 -181
  104. package/esm2022/types/actions.mjs +0 -5
  105. package/esm2022/types/create-form-group-args.interface.mjs +0 -5
  106. package/esm2022/types/crud-operation.enum.mjs +0 -18
  107. package/esm2022/types/current-time-settings.interface.mjs +0 -5
  108. package/esm2022/types/date-range.interface.mjs +0 -5
  109. package/esm2022/types/datepicker-options.interface.mjs +0 -5
  110. package/esm2022/types/edit-event-args.interface.mjs +0 -5
  111. package/esm2022/types/edit-mode.enum.mjs +0 -23
  112. package/esm2022/types/editable-settings.interface.mjs +0 -5
  113. package/esm2022/types/event-style-args.interface.mjs +0 -5
  114. package/esm2022/types/focusable-container.mjs +0 -5
  115. package/esm2022/types/group.interface.mjs +0 -5
  116. package/esm2022/types/numeric-options.interface.mjs +0 -5
  117. package/esm2022/types/ongoing-events-settings.interface.mjs +0 -5
  118. package/esm2022/types/resource.interface.mjs +0 -5
  119. package/esm2022/types/scheduler-event.mjs +0 -5
  120. package/esm2022/types/scheduler-model-fields.interface.mjs +0 -5
  121. package/esm2022/types/scheduler-slot.interface.mjs +0 -5
  122. package/esm2022/types/scheduler-view.mjs +0 -9
  123. package/esm2022/types/slot-class-args.interface.mjs +0 -5
  124. package/esm2022/types/slot-selection.mjs +0 -35
  125. package/esm2022/types/view-item.interface.mjs +0 -5
  126. package/esm2022/types.mjs +0 -12
  127. package/esm2022/views/agenda/agenda-header-item.component.mjs +0 -85
  128. package/esm2022/views/agenda/agenda-header.component.mjs +0 -75
  129. package/esm2022/views/agenda/agenda-task-item.component.mjs +0 -137
  130. package/esm2022/views/agenda/agenda-view-internal.component.mjs +0 -424
  131. package/esm2022/views/agenda/agenda-view-list.component.mjs +0 -256
  132. package/esm2022/views/agenda/agenda-view.component.mjs +0 -130
  133. package/esm2022/views/agenda/tasks.collection.mjs +0 -96
  134. package/esm2022/views/agenda/utils.mjs +0 -176
  135. package/esm2022/views/common/base-view.mjs +0 -1099
  136. package/esm2022/views/common/configuration-view-base.mjs +0 -164
  137. package/esm2022/views/common/dom-events.service.mjs +0 -22
  138. package/esm2022/views/common/hint-container.component.mjs +0 -41
  139. package/esm2022/views/common/repeat.pipe.mjs +0 -36
  140. package/esm2022/views/common/resize-hint.component.mjs +0 -97
  141. package/esm2022/views/common/resource-iterator.pipe.mjs +0 -49
  142. package/esm2022/views/common/scheduler-task.mjs +0 -5
  143. package/esm2022/views/common/slot-selectable.directive.mjs +0 -137
  144. package/esm2022/views/common/view-footer.component.mjs +0 -103
  145. package/esm2022/views/common/work-hours-footer.directive.mjs +0 -45
  146. package/esm2022/views/constants.mjs +0 -31
  147. package/esm2022/views/day-time/day-time-slot.service.mjs +0 -633
  148. package/esm2022/views/day-time/day-time-view-base.mjs +0 -244
  149. package/esm2022/views/day-time/day-time-view-item.component.mjs +0 -216
  150. package/esm2022/views/day-time/day-time-view.component.mjs +0 -437
  151. package/esm2022/views/day-time/event-slot.directive.mjs +0 -138
  152. package/esm2022/views/day-time/utils.mjs +0 -32
  153. package/esm2022/views/month/month-slot.component.mjs +0 -166
  154. package/esm2022/views/month/month-slot.service.mjs +0 -404
  155. package/esm2022/views/month/month-view-item.component.mjs +0 -161
  156. package/esm2022/views/month/month-view-renderer.component.mjs +0 -683
  157. package/esm2022/views/month/month-view.component.mjs +0 -203
  158. package/esm2022/views/month/multi-week-view.component.mjs +0 -202
  159. package/esm2022/views/month/utils.mjs +0 -107
  160. package/esm2022/views/multi-day/day-view.component.mjs +0 -186
  161. package/esm2022/views/multi-day/multi-day-view-base.mjs +0 -55
  162. package/esm2022/views/multi-day/multi-day-view-renderer.component.mjs +0 -1002
  163. package/esm2022/views/multi-day/multi-day-view.component.mjs +0 -197
  164. package/esm2022/views/multi-day/utils.mjs +0 -63
  165. package/esm2022/views/multi-day/week-view.component.mjs +0 -189
  166. package/esm2022/views/multi-day/work-week-view.component.mjs +0 -172
  167. package/esm2022/views/scheduler-view.directive.mjs +0 -65
  168. package/esm2022/views/templates/agenda-date-template.directive.mjs +0 -41
  169. package/esm2022/views/templates/agenda-time-template.directive.mjs +0 -46
  170. package/esm2022/views/templates/all-day-event-template.directive.mjs +0 -42
  171. package/esm2022/views/templates/all-day-slot-template.directive.mjs +0 -42
  172. package/esm2022/views/templates/date-header-template.directive.mjs +0 -42
  173. package/esm2022/views/templates/event-template.directive.mjs +0 -42
  174. package/esm2022/views/templates/group-header-template.directive.mjs +0 -42
  175. package/esm2022/views/templates/major-time-header-template.directive.mjs +0 -41
  176. package/esm2022/views/templates/minor-time-header-template.directive.mjs +0 -41
  177. package/esm2022/views/templates/month-day-slot-template.directive.mjs +0 -42
  178. package/esm2022/views/templates/multi-week-day-slot-template.directive.mjs +0 -42
  179. package/esm2022/views/templates/time-slot-template.directive.mjs +0 -43
  180. package/esm2022/views/templates.mjs +0 -16
  181. package/esm2022/views/timeline/timeline-base.mjs +0 -39
  182. package/esm2022/views/timeline/timeline-month-view.component.mjs +0 -211
  183. package/esm2022/views/timeline/timeline-multi-day-view.component.mjs +0 -649
  184. package/esm2022/views/timeline/timeline-view.component.mjs +0 -189
  185. package/esm2022/views/timeline/timeline-week-view.component.mjs +0 -181
  186. package/esm2022/views/timeline/utils.mjs +0 -60
  187. package/esm2022/views/utils.mjs +0 -373
  188. package/esm2022/views/view-context.service.mjs +0 -111
  189. package/esm2022/views/view-items/base-slot.directive.mjs +0 -104
  190. package/esm2022/views/view-items/base-slot.service.mjs +0 -82
  191. package/esm2022/views/view-items/base-view-item.mjs +0 -194
  192. package/esm2022/views/view-items/item-map.mjs +0 -38
  193. package/esm2022/views/view-items/types.mjs +0 -5
  194. package/esm2022/views/view-state.service.mjs +0 -144
  195. package/esm2022/views/year/utils.mjs +0 -60
  196. package/esm2022/views/year/year-view-internal.component.mjs +0 -471
  197. package/esm2022/views/year/year-view.component.mjs +0 -136
@@ -1,203 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { Component, ContentChild, forwardRef, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
6
- import { LocalizationService } from '@progress/kendo-angular-l10n';
7
- import { IntlService } from '@progress/kendo-angular-intl';
8
- import { SchedulerView } from '../../types';
9
- import { ConfigurationViewBase } from '../common/configuration-view-base';
10
- import { ViewContextService } from '../view-context.service';
11
- import { ViewStateService } from '../view-state.service';
12
- import { MonthDaySlotTemplateDirective } from '../templates';
13
- import { DAYS_IN_WEEK_COUNT, DEFAULT_EVENT_HEIGHT, WEEKS_COUNT } from '../constants';
14
- import { isPresent } from '../../common/util';
15
- import { addDays, addMonths, firstDayInWeek, firstDayOfMonth, getDate } from '@progress/kendo-date-math';
16
- import { MonthViewRendererComponent } from './month-view-renderer.component';
17
- import * as i0 from "@angular/core";
18
- import * as i1 from "@progress/kendo-angular-l10n";
19
- import * as i2 from "../view-context.service";
20
- import * as i3 from "../view-state.service";
21
- import * as i4 from "@progress/kendo-angular-intl";
22
- /**
23
- * Represents the component that renders the **Month** view in the Scheduler.
24
- *
25
- * @example
26
- * ```html
27
- * <kendo-scheduler>
28
- * <kendo-scheduler-month-view></kendo-scheduler-month-view>
29
- * </kendo-scheduler>
30
- * ```
31
- */
32
- export class MonthViewComponent extends ConfigurationViewBase {
33
- intl;
34
- /**
35
- * @hidden
36
- */
37
- get title() {
38
- return this.localization.get('monthViewTitle');
39
- }
40
- /**
41
- * Sets the number of events to render per day. If set to `'auto'`, all events display in the slot. If set to `0`, it normalizes to `1`
42
- * ([see example](slug:month_views_scheduler#setting-the-number-of-events-per-day)).
43
- * > When set to `'auto'`, it automatically sets the `adaptiveSlotHeight` property to `true`.
44
- * @default 2
45
- */
46
- set eventsPerDay(events) {
47
- this._eventsPerDay = !events ? 1 : events;
48
- }
49
- get eventsPerDay() {
50
- return this._eventsPerDay;
51
- }
52
- _eventsPerDay;
53
- /**
54
- * Sets the height of the rendered events. If set to `'auto'`, the height is based on the event content
55
- * ([see example](slug:month_views_scheduler#configuring-the-height-of-the-scheduler-events)).
56
- * > When set to `'auto'`, it automatically sets the `adaptiveSlotHeight` property to `true`.
57
- */
58
- eventHeight;
59
- /**
60
- * Enables adaptive slot height in the Scheduler. Increases the slot group (row) height when containing events up to the number of displayed events and reduces its height if there are fewer events for that slot group (row)
61
- * ([see example](slug:month_views_scheduler#enabling-the-adaptive-slot-height-of-the-scheduler)).
62
- * @default false
63
- */
64
- adaptiveSlotHeight;
65
- /**
66
- * Sets the long-date format for the selected date in the Scheduler toolbar.
67
- * For more information, see [Parsing and Formatting Dates and Numbers](slug:parsingandformatting_intl#date-formatting).
68
- * @default '{0:Y}'
69
- */
70
- selectedDateFormat = '{0:Y}';
71
- /**
72
- * Sets the short-date format for the selected date in the Scheduler toolbar.
73
- * For more information, see [Parsing and Formatting Dates and Numbers](slug:parsingandformatting_intl#date-formatting).
74
- * @default '{0:y}'
75
- */
76
- selectedShortDateFormat = '{0:y}';
77
- /**
78
- * Fires when the **more events** button in the Month view is clicked.
79
- * Allows you to prevent the default navigation to the Day view or provide custom handling.
80
- * The event provides arrays of `displayedEvents` and `moreEvents` for the clicked day.
81
- */
82
- moreEventsClick = new EventEmitter();
83
- monthDaySlotTemplate;
84
- /**
85
- * The invariant name for this view.
86
- * @default 'month'
87
- */
88
- name = 'month';
89
- get viewEventHeight() {
90
- return isPresent(this.eventHeight) ? this.eventHeight : (this.schedulerOptions.eventHeight || DEFAULT_EVENT_HEIGHT);
91
- }
92
- constructor(localization, changeDetector, viewContext, viewState, intl) {
93
- super(localization, changeDetector, viewContext, viewState);
94
- this.intl = intl;
95
- }
96
- ngOnChanges(changes) {
97
- if ((changes['eventHeight'] && changes['eventHeight'].currentValue === 'auto') ||
98
- (changes['eventsPerDay'] && changes['eventsPerDay'].currentValue === 'auto')) {
99
- this.adaptiveSlotHeight = true;
100
- }
101
- if ((changes['eventHeight'] && changes['eventHeight'].currentValue === 'auto' && !this.eventsPerDay) ||
102
- (changes['adaptiveSlotHeight'] && changes['adaptiveSlotHeight'].currentValue === true && !this.eventsPerDay)) {
103
- this.eventsPerDay = 2;
104
- }
105
- }
106
- /**
107
- * @hidden
108
- */
109
- dateRange(date, weekStart) {
110
- const monthStart = firstDayOfMonth(getDate(date));
111
- const start = firstDayInWeek(monthStart, weekStart);
112
- const end = addDays(start, DAYS_IN_WEEK_COUNT * WEEKS_COUNT);
113
- const text = this.intl.format(this.selectedDateFormat, monthStart);
114
- const shortText = this.intl.format(this.selectedShortDateFormat, monthStart);
115
- return { start, end, text, shortText };
116
- }
117
- /**
118
- * @hidden
119
- */
120
- newRange(date, direction = 1) {
121
- return firstDayOfMonth(addMonths(date, direction));
122
- }
123
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MonthViewComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i2.ViewContextService }, { token: i3.ViewStateService }, { token: i4.IntlService }], target: i0.ɵɵFactoryTarget.Component });
124
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MonthViewComponent, isStandalone: true, selector: "kendo-scheduler-month-view", inputs: { eventsPerDay: "eventsPerDay", eventHeight: "eventHeight", adaptiveSlotHeight: "adaptiveSlotHeight", selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat" }, outputs: { moreEventsClick: "moreEventsClick" }, providers: [{
125
- provide: SchedulerView,
126
- useExisting: forwardRef(() => MonthViewComponent)
127
- }], queries: [{ propertyName: "monthDaySlotTemplate", first: true, predicate: MonthDaySlotTemplateDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
128
- <ng-template #content>
129
- <month-view
130
- type="month"
131
- [eventHeight]="viewEventHeight"
132
- [hiddenDays]="viewHiddenDays"
133
- [adaptiveSlotHeight]="adaptiveSlotHeight"
134
- [eventsPerDay]="eventsPerDay"
135
- [eventTemplate]="eventTemplate?.templateRef"
136
- [slotClass]="viewSlotClass"
137
- [eventClass]="viewEventClass"
138
- [eventStyles]="viewEventStyles"
139
- [groupHeaderTemplate]="groupHeaderTemplate?.templateRef"
140
- [monthDaySlotTemplate]="monthDaySlotTemplate?.templateRef"
141
- [selectedDateFormat]="selectedDateFormat"
142
- [selectedShortDateFormat]="selectedShortDateFormat"
143
- [highlightOngoingEvents]="viewHighlightOngoingEvents"
144
- [weekStart]="viewWeekStart"
145
- [dateRangeFn]="dateRange"
146
- [newRange]="newRange"
147
- (moreEventsClick)="moreEventsClick.emit($event)">
148
- </month-view>
149
- </ng-template>
150
- `, isInline: true, dependencies: [{ kind: "component", type: MonthViewRendererComponent, selector: "month-view", inputs: ["hiddenDays", "monthDaySlotTemplate", "highlightOngoingEvents", "type", "eventsPerDay", "adaptiveSlotHeight", "numberOfWeeks", "newRange", "dateRangeFn"], outputs: ["moreEventsClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
151
- }
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MonthViewComponent, decorators: [{
153
- type: Component,
154
- args: [{
155
- changeDetection: ChangeDetectionStrategy.OnPush,
156
- selector: 'kendo-scheduler-month-view',
157
- providers: [{
158
- provide: SchedulerView,
159
- useExisting: forwardRef(() => MonthViewComponent)
160
- }],
161
- template: `
162
- <ng-template #content>
163
- <month-view
164
- type="month"
165
- [eventHeight]="viewEventHeight"
166
- [hiddenDays]="viewHiddenDays"
167
- [adaptiveSlotHeight]="adaptiveSlotHeight"
168
- [eventsPerDay]="eventsPerDay"
169
- [eventTemplate]="eventTemplate?.templateRef"
170
- [slotClass]="viewSlotClass"
171
- [eventClass]="viewEventClass"
172
- [eventStyles]="viewEventStyles"
173
- [groupHeaderTemplate]="groupHeaderTemplate?.templateRef"
174
- [monthDaySlotTemplate]="monthDaySlotTemplate?.templateRef"
175
- [selectedDateFormat]="selectedDateFormat"
176
- [selectedShortDateFormat]="selectedShortDateFormat"
177
- [highlightOngoingEvents]="viewHighlightOngoingEvents"
178
- [weekStart]="viewWeekStart"
179
- [dateRangeFn]="dateRange"
180
- [newRange]="newRange"
181
- (moreEventsClick)="moreEventsClick.emit($event)">
182
- </month-view>
183
- </ng-template>
184
- `,
185
- standalone: true,
186
- imports: [MonthViewRendererComponent]
187
- }]
188
- }], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i2.ViewContextService }, { type: i3.ViewStateService }, { type: i4.IntlService }], propDecorators: { eventsPerDay: [{
189
- type: Input
190
- }], eventHeight: [{
191
- type: Input
192
- }], adaptiveSlotHeight: [{
193
- type: Input
194
- }], selectedDateFormat: [{
195
- type: Input
196
- }], selectedShortDateFormat: [{
197
- type: Input
198
- }], moreEventsClick: [{
199
- type: Output
200
- }], monthDaySlotTemplate: [{
201
- type: ContentChild,
202
- args: [MonthDaySlotTemplateDirective, { static: false }]
203
- }] } });
@@ -1,202 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { Component, ContentChild, forwardRef, Input, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
6
- import { LocalizationService } from '@progress/kendo-angular-l10n';
7
- import { IntlService } from '@progress/kendo-angular-intl';
8
- import { addDays, addWeeks, firstDayInWeek, getDate } from '@progress/kendo-date-math';
9
- import { SchedulerView } from '../../types';
10
- import { ConfigurationViewBase } from '../common/configuration-view-base';
11
- import { ViewContextService } from '../view-context.service';
12
- import { ViewStateService } from '../view-state.service';
13
- import { MultiWeekDaySlotTemplateDirective } from '../templates';
14
- import { DAYS_IN_WEEK_COUNT, DEFAULT_EVENT_HEIGHT, WEEKS_COUNT } from '../constants';
15
- import { isPresent } from '../../common/util';
16
- import { MonthViewRendererComponent } from './month-view-renderer.component';
17
- import * as i0 from "@angular/core";
18
- import * as i1 from "@progress/kendo-angular-l10n";
19
- import * as i2 from "../view-context.service";
20
- import * as i3 from "../view-state.service";
21
- import * as i4 from "@progress/kendo-angular-intl";
22
- /**
23
- * Represents the component that renders the **Multi-Week** view in the Scheduler.
24
- *
25
- * @example
26
- * ```html
27
- * <kendo-scheduler>
28
- * <kendo-scheduler-multi-week-view></kendo-scheduler-multi-week-view>
29
- * </kendo-scheduler>
30
- * ```
31
- */
32
- export class MultiWeekViewComponent extends ConfigurationViewBase {
33
- intl;
34
- /**
35
- * @hidden
36
- */
37
- get title() {
38
- return this.localization.get('multiWeekViewTitle');
39
- }
40
- /**
41
- * Sets the height of the rendered events. If set to `'auto'`, the height is based on the event content
42
- * ([see example](slug:multiweek_views_scheduler#configuring-the-height-of-the-scheduler-events)).
43
- * > When set to `'auto'`, it automatically sets the `adaptiveSlotHeight` property to `true`.
44
- */
45
- eventHeight;
46
- /**
47
- * Sets the number of events to render per day. If set to `'auto'`, all events display in the slot. If set to `0`, it normalizes to `1`
48
- * ([see example](slug:multiweek_views_scheduler#setting-the-number-of-events-per-day)).
49
- * > When set to `'auto'`, it automatically sets the `adaptiveSlotHeight` property to `true`.
50
- * @default 2
51
- */
52
- set eventsPerDay(events) {
53
- this._eventsPerDay = !events ? 1 : events;
54
- }
55
- get eventsPerDay() {
56
- return this._eventsPerDay;
57
- }
58
- _eventsPerDay;
59
- /**
60
- * Enables adaptive slot height. Increases the slot group (row) height when containing events up to the number of displayed events and reduces its height if there are fewer events for that slot group (row)
61
- * ([see example](slug:multiweek_views_scheduler#enabling-the-adaptive-slot-height-of-the-scheduler)).
62
- * @default false
63
- */
64
- adaptiveSlotHeight;
65
- /**
66
- * Sets the number of weeks to render in the view.
67
- * @default 6
68
- */
69
- numberOfWeeks = WEEKS_COUNT;
70
- /**
71
- * Sets the long-date format for the selected date in the Scheduler toolbar.
72
- * For more information, see [Parsing and Formatting Dates and Numbers](slug:parsingandformatting_intl#date-formatting).
73
- * @default '{0:D} - {1:D}'
74
- */
75
- selectedDateFormat = '{0:D} - {1:D}';
76
- /**
77
- * Sets the short-date format for the selected date in the Scheduler toolbar.
78
- * For more information, see [Parsing and Formatting Dates and Numbers](slug:parsingandformatting_intl#date-formatting).
79
- * @default '{0:d} - {1:d}'
80
- */
81
- selectedShortDateFormat = '{0:d} - {1:d}';
82
- multiWeekDaySlotTemplate;
83
- /**
84
- * The invariant name for this view.
85
- * @default 'multiWeek'
86
- */
87
- name = 'multiWeek';
88
- get viewEventHeight() {
89
- return isPresent(this.eventHeight) ? this.eventHeight : (this.schedulerOptions.eventHeight || DEFAULT_EVENT_HEIGHT);
90
- }
91
- constructor(localization, changeDetector, viewContext, viewState, intl) {
92
- super(localization, changeDetector, viewContext, viewState);
93
- this.intl = intl;
94
- }
95
- ngOnChanges(changes) {
96
- if ((changes['eventHeight'] && changes['eventHeight'].currentValue === 'auto') ||
97
- (changes['eventsPerDay'] && changes['eventsPerDay'].currentValue === 'auto')) {
98
- this.adaptiveSlotHeight = true;
99
- }
100
- if ((changes['eventHeight'] && changes['eventHeight'].currentValue === 'auto' && !this.eventsPerDay) ||
101
- (changes['adaptiveSlotHeight'] && changes['adaptiveSlotHeight'].currentValue === true && !this.eventsPerDay)) {
102
- this.eventsPerDay = 2;
103
- }
104
- }
105
- /**
106
- * @hidden
107
- */
108
- dateRange(date, weekStart) {
109
- const periodStart = getDate(date);
110
- const start = firstDayInWeek(periodStart, weekStart);
111
- const end = addDays(start, (DAYS_IN_WEEK_COUNT * this.numberOfWeeks));
112
- const text = this.intl.format(this.selectedDateFormat, start, end);
113
- const shortText = this.intl.format(this.selectedShortDateFormat, start, end);
114
- return { start, end, text, shortText };
115
- }
116
- /**
117
- * @hidden
118
- */
119
- newRange(date, direction = 1) {
120
- return firstDayInWeek(addWeeks(date, this.numberOfWeeks * direction));
121
- }
122
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MultiWeekViewComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i2.ViewContextService }, { token: i3.ViewStateService }, { token: i4.IntlService }], target: i0.ɵɵFactoryTarget.Component });
123
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MultiWeekViewComponent, isStandalone: true, selector: "kendo-scheduler-multi-week-view", inputs: { eventHeight: "eventHeight", eventsPerDay: "eventsPerDay", adaptiveSlotHeight: "adaptiveSlotHeight", numberOfWeeks: "numberOfWeeks", selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat" }, providers: [{
124
- provide: SchedulerView,
125
- useExisting: forwardRef(() => MultiWeekViewComponent)
126
- }], queries: [{ propertyName: "multiWeekDaySlotTemplate", first: true, predicate: MultiWeekDaySlotTemplateDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
127
- <ng-template #content>
128
- <month-view
129
- type="multiWeek"
130
- [eventHeight]="viewEventHeight"
131
- [hiddenDays]="viewHiddenDays"
132
- [adaptiveSlotHeight]="adaptiveSlotHeight"
133
- [eventsPerDay]="eventsPerDay"
134
- [eventTemplate]="eventTemplate?.templateRef"
135
- [slotClass]="viewSlotClass"
136
- [eventClass]="viewEventClass"
137
- [eventStyles]="viewEventStyles"
138
- [groupHeaderTemplate]="groupHeaderTemplate?.templateRef"
139
- [monthDaySlotTemplate]="multiWeekDaySlotTemplate?.templateRef"
140
- [selectedDateFormat]="selectedDateFormat"
141
- [selectedShortDateFormat]="selectedShortDateFormat"
142
- [highlightOngoingEvents]="viewHighlightOngoingEvents"
143
- [weekStart]="viewWeekStart"
144
- [numberOfWeeks]="numberOfWeeks"
145
- [dateRangeFn]="dateRange"
146
- [newRange]="newRange">
147
- </month-view>
148
- </ng-template>
149
- `, isInline: true, dependencies: [{ kind: "component", type: MonthViewRendererComponent, selector: "month-view", inputs: ["hiddenDays", "monthDaySlotTemplate", "highlightOngoingEvents", "type", "eventsPerDay", "adaptiveSlotHeight", "numberOfWeeks", "newRange", "dateRangeFn"], outputs: ["moreEventsClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
150
- }
151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MultiWeekViewComponent, decorators: [{
152
- type: Component,
153
- args: [{
154
- changeDetection: ChangeDetectionStrategy.OnPush,
155
- selector: 'kendo-scheduler-multi-week-view',
156
- providers: [{
157
- provide: SchedulerView,
158
- useExisting: forwardRef(() => MultiWeekViewComponent)
159
- }],
160
- template: `
161
- <ng-template #content>
162
- <month-view
163
- type="multiWeek"
164
- [eventHeight]="viewEventHeight"
165
- [hiddenDays]="viewHiddenDays"
166
- [adaptiveSlotHeight]="adaptiveSlotHeight"
167
- [eventsPerDay]="eventsPerDay"
168
- [eventTemplate]="eventTemplate?.templateRef"
169
- [slotClass]="viewSlotClass"
170
- [eventClass]="viewEventClass"
171
- [eventStyles]="viewEventStyles"
172
- [groupHeaderTemplate]="groupHeaderTemplate?.templateRef"
173
- [monthDaySlotTemplate]="multiWeekDaySlotTemplate?.templateRef"
174
- [selectedDateFormat]="selectedDateFormat"
175
- [selectedShortDateFormat]="selectedShortDateFormat"
176
- [highlightOngoingEvents]="viewHighlightOngoingEvents"
177
- [weekStart]="viewWeekStart"
178
- [numberOfWeeks]="numberOfWeeks"
179
- [dateRangeFn]="dateRange"
180
- [newRange]="newRange">
181
- </month-view>
182
- </ng-template>
183
- `,
184
- standalone: true,
185
- imports: [MonthViewRendererComponent]
186
- }]
187
- }], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i2.ViewContextService }, { type: i3.ViewStateService }, { type: i4.IntlService }], propDecorators: { eventHeight: [{
188
- type: Input
189
- }], eventsPerDay: [{
190
- type: Input
191
- }], adaptiveSlotHeight: [{
192
- type: Input
193
- }], numberOfWeeks: [{
194
- type: Input
195
- }], selectedDateFormat: [{
196
- type: Input
197
- }], selectedShortDateFormat: [{
198
- type: Input
199
- }], multiWeekDaySlotTemplate: [{
200
- type: ContentChild,
201
- args: [MultiWeekDaySlotTemplateDirective]
202
- }] } });
@@ -1,107 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { intersects, toUTCDate, addUTCDays } from '../utils';
6
- import { sortTasksByTime } from '../../common/util';
7
- import { addDays } from '@progress/kendo-date-math';
8
- const last = (arr) => arr[arr.length - 1];
9
- /**
10
- * @hidden
11
- */
12
- export const createTasks = (periodStart, periodEnd, items, ranges, hiddenDays = []) => {
13
- const tasks = [];
14
- const utcStart = toUTCDate(periodStart);
15
- const utcEnd = toUTCDate(periodEnd);
16
- for (let index = 0; index < items.length; index++) {
17
- const item = items[index];
18
- const data = {};
19
- const startTime = item.start.toUTCDate();
20
- const end = item.end;
21
- const endTime = (item.end.getTime() !== end.getTime() ? end.addDays(1) : end).toUTCDate();
22
- if (intersects(startTime, endTime, utcStart, utcEnd)) {
23
- for (let rangeIdx = 0; rangeIdx < ranges.length; rangeIdx++) {
24
- const range = ranges[rangeIdx];
25
- if (!range[0]) {
26
- continue;
27
- }
28
- const rangeStart = toUTCDate(range[0]);
29
- const rangeEnd = addUTCDays(toUTCDate(last(range)), 1);
30
- if (intersects(startTime, endTime, rangeStart, rangeEnd)) {
31
- const task = {
32
- index,
33
- startTime,
34
- endTime,
35
- start: item.start,
36
- end: item.end,
37
- event: item.event,
38
- isAllDay: item.event.isAllDay,
39
- rangeIndex: rangeIdx,
40
- data: data
41
- };
42
- task.head = task.endTime > rangeEnd;
43
- task.tail = task.startTime < rangeStart;
44
- if (hiddenDays.includes(task.endTime.getDay())) {
45
- task.head = true;
46
- }
47
- if (hiddenDays.includes(task.startTime.getDay())) {
48
- task.tail = true;
49
- }
50
- let slotMatch;
51
- range.forEach(slot => {
52
- const slotStartTime = slot;
53
- const slotEndTime = addDays(slot, 1);
54
- if (task.event.start >= slotStartTime && task.event.start <= slotEndTime) {
55
- slotMatch = { start: slotStartTime, end: slotEndTime };
56
- }
57
- });
58
- task.isMultiDay = task.event.end > slotMatch?.end || task.head || task.tail;
59
- const eventStart = task.event.start;
60
- const eventEnd = task.event.end;
61
- let sameDate = eventStart.getFullYear() === eventEnd.getFullYear() &&
62
- eventStart.getMonth() === eventEnd.getMonth() &&
63
- eventStart.getDate() === eventEnd.getDate();
64
- // Also treat as same date if end is at 00:00:00 the following day
65
- if (!sameDate &&
66
- eventEnd.getHours() === 0 &&
67
- eventEnd.getMinutes() === 0 &&
68
- eventEnd.getSeconds() === 0 &&
69
- eventEnd.getMilliseconds() === 0) {
70
- const nextDay = new Date(eventStart);
71
- nextDay.setDate(nextDay.getDate() + 1);
72
- sameDate = nextDay.getFullYear() === eventEnd.getFullYear() &&
73
- nextDay.getMonth() === eventEnd.getMonth() &&
74
- nextDay.getDate() === eventEnd.getDate();
75
- }
76
- // Skip task if it starts and ends on the same date and that date is a hidden day
77
- if (hiddenDays?.length > 0 && sameDate && hiddenDays.includes(eventStart.getDay())) {
78
- continue;
79
- }
80
- tasks.push(task);
81
- }
82
- }
83
- }
84
- }
85
- return sortTasksByTime(tasks);
86
- };
87
- function clearTaskData(task) {
88
- const data = task.data;
89
- for (const key in data) {
90
- if (data.hasOwnProperty(key)) {
91
- delete data[key];
92
- }
93
- }
94
- }
95
- /**
96
- * @hidden
97
- */
98
- export function updateTaskData(tasks) {
99
- for (let idx = 0; idx < tasks.length; idx++) {
100
- const task = tasks[idx];
101
- const resources = task.resources;
102
- clearTaskData(task);
103
- for (let resourceIdx = 0; resourceIdx < resources.length; resourceIdx++) {
104
- task.data[resources[resourceIdx].leafIdx] = {};
105
- }
106
- }
107
- }