@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,1981 +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, ContentChildren, EventEmitter, HostBinding, Input, isDevMode, NgZone, Output, QueryList, ViewChild, ViewContainerRef, ChangeDetectorRef, ChangeDetectionStrategy, ElementRef, Renderer2 } from '@angular/core';
6
- import { L10N_PREFIX, LocalizationService } from '@progress/kendo-angular-l10n';
7
- import { ResizeSensorComponent, isDocumentAvailable, shouldShowValidationUI, getLicenseMessage, anyChanged, isChanged, hasObservers, WatermarkOverlayComponent } from '@progress/kendo-angular-common';
8
- import { getDate, ZonedDate, Day } from '@progress/kendo-date-math';
9
- import { take } from 'rxjs/operators';
10
- import { validatePackage } from '@progress/kendo-licensing';
11
- import { packageMetadata } from './package-metadata';
12
- import { DateChangeEvent, NavigateEvent, VIEW_EVENT_MAP } from './events';
13
- import { ToolbarTemplateDirective } from './toolbar/toolbar-template.directive';
14
- import { ToolbarService } from './toolbar/toolbar.service';
15
- import { SchedulerView } from './types';
16
- import { AgendaDateTemplateDirective } from './views/templates/agenda-date-template.directive';
17
- import { AgendaTimeTemplateDirective } from './views/templates/agenda-time-template.directive';
18
- import { AllDayEventTemplateDirective } from './views/templates/all-day-event-template.directive';
19
- import { AllDaySlotTemplateDirective } from './views/templates/all-day-slot-template.directive';
20
- import { DateHeaderTemplateDirective } from './views/templates/date-header-template.directive';
21
- import { EventTemplateDirective } from './views/templates/event-template.directive';
22
- import { GroupHeaderTemplateDirective } from './views/templates/group-header-template.directive';
23
- import { MajorTimeHeaderTemplateDirective } from './views/templates/major-time-header-template.directive';
24
- import { MinorTimeHeaderTemplateDirective } from './views/templates/minor-time-header-template.directive';
25
- import { MonthDaySlotTemplateDirective } from './views/templates/month-day-slot-template.directive';
26
- import { MultiWeekDaySlotTemplateDirective } from './views/templates/multi-week-day-slot-template.directive';
27
- import { TimeSlotTemplateDirective } from './views/templates/time-slot-template.directive';
28
- import { ViewContextService } from './views/view-context.service';
29
- import { ViewStateService } from './views/view-state.service';
30
- import { EditService } from './editing/edit.service';
31
- import { EditDialogTemplateDirective } from './editing/edit-dialog-template.directive';
32
- import { FormGroup, FormControl } from '@angular/forms';
33
- import { LocalDataChangesService } from './editing/local-data-changes.service';
34
- import { DialogsService } from './editing/dialogs.service';
35
- import { SchedulerLocalizationService } from './localization/scheduler-localization.service';
36
- import { defaultModelFields } from './common/default-model-fields';
37
- import { readEvent, isRecurrenceMaster, copyResources, isPresent } from './common/util';
38
- import { IntlService } from '@progress/kendo-angular-intl';
39
- import { PDFService } from './pdf/pdf.service';
40
- import { PDFExportEvent } from './pdf/pdf-export-event';
41
- import { LoadingComponent } from './loading.component';
42
- import { FocusService } from './navigation';
43
- import { DomEventsService } from './views/common/dom-events.service';
44
- import { closest } from './common/dom-queries';
45
- import { alwaysFalse } from './views/utils';
46
- import { SlotDragEvent } from './events/slot-drag-event';
47
- import { SlotDragEndEvent } from './events/slot-drag-end-event';
48
- import { EditDialogComponent } from './editing/edit-dialog.component';
49
- import { NgTemplateOutlet } from '@angular/common';
50
- import { ToolbarComponent } from './toolbar/toolbar.component';
51
- import { LocalizedMessagesDirective } from './localization/localized-messages.directive';
52
- import * as i0 from "@angular/core";
53
- import * as i1 from "./views/view-context.service";
54
- import * as i2 from "./views/view-state.service";
55
- import * as i3 from "./editing/edit.service";
56
- import * as i4 from "./editing/dialogs.service";
57
- import * as i5 from "@progress/kendo-angular-intl";
58
- import * as i6 from "./pdf/pdf.service";
59
- import * as i7 from "@progress/kendo-angular-l10n";
60
- import * as i8 from "./views/common/dom-events.service";
61
- import * as i9 from "./navigation";
62
- const todayDate = () => getDate(new Date());
63
- const DAYS_IN_WEEK = 7;
64
- /**
65
- * Represents the [Kendo UI Scheduler component for Angular](slug:overview_scheduler).
66
- *
67
- * @example
68
- * ```html
69
- * <kendo-scheduler [kendoSchedulerBinding]="events" [selectedDate]="selectedDate">
70
- * <kendo-scheduler-day-view></kendo-scheduler-day-view>
71
- * </kendo-scheduler>
72
- * ```
73
- *
74
- * @remarks
75
- * Supported children components are: {@link AgendaViewComponent},
76
- * {@link WeekViewComponent}, {@link WorkWeekViewComponent}, {@link YearViewComponent},
77
- * {@link SchedulerCustomMessagesComponent}, {@link TimelineMonthViewComponent},
78
- * {@link TimelineViewComponent}, {@link TimelineWeekViewComponent}, {@link DayViewComponent},
79
- * {@link MonthViewComponent}, {@link MultiDayViewComponent}, {@link MultiWeekViewComponent},
80
- * {@link PDFComponent}, {@link TimeZoneEditorComponent}, {@link RecurrenceEditorComponent}
81
- */
82
- export class SchedulerComponent {
83
- wrapper;
84
- viewContext;
85
- viewState;
86
- editService;
87
- dialogsService;
88
- intlService;
89
- changeDetector;
90
- zone;
91
- pdfService;
92
- localization;
93
- domEvents;
94
- renderer;
95
- focusService;
96
- hostClasses = true;
97
- ariaRole = 'application';
98
- rtl = false;
99
- get dir() {
100
- return this.direction;
101
- }
102
- /**
103
- * Sets the index of the currently selected view. The default value is `0`, which shows the first declared view.
104
- * @default 0
105
- */
106
- set selectedViewIndex(index) {
107
- this.viewIndex = index;
108
- this.onViewIndexChange();
109
- }
110
- get selectedViewIndex() {
111
- return this.viewIndex;
112
- }
113
- /**
114
- * Specifies whether the Scheduler is editable.
115
- * When you use an `EditableSettings` object, you can control which actions are enabled, such as adding, editing, dragging, removing, or resizing events.
116
- * @default false
117
- */
118
- editable = false;
119
- /**
120
- * Specifies whether the Scheduler's day or time slots are selectable ([see example](slug:slotselection_scheduler#custom-callback)).
121
- * When set to `true`, the Scheduler emits [`slotDragStart`]({% slug api_scheduler_schedulercomponent %}#toc-slotdragstart), [`slotDrag`]({% slug api_scheduler_schedulercomponent %}#toc-slotdrag), and [`slotDragEnd`]({% slug api_scheduler_schedulercomponent %}#toc-slotdragend) events on user interaction.
122
- * @default false
123
- */
124
- selectable = false;
125
- /**
126
- * Sets the minimum date that you can select using the Scheduler navigation.
127
- */
128
- min;
129
- /**
130
- * Sets the maximum date that you can select using the Scheduler navigation.
131
- */
132
- max;
133
- /**
134
- * Sets the height of events in the **Month** and **Timeline** views, and the height of **All day** events in the **Day** and **Week** views.
135
- * @default 25
136
- */
137
- eventHeight = 25;
138
- /**
139
- * Sets the column width for **Timeline** views.
140
- * @default 100
141
- */
142
- columnWidth = 100;
143
- /**
144
- * Sets whether the view shows business hours on initialization. By default, the view shows full-day hours. Applies to **Day**, **Week**, and **Timeline** views.
145
- * @default false
146
- */
147
- showWorkHours;
148
- /**
149
- * Sets the start time of the view. Accepts a string in `HH:mm` format. Applies to **Day**, **Week**, and **Timeline** views.
150
- * @default '00:00'
151
- */
152
- startTime = '00:00';
153
- /**
154
- * Sets the end time of the view. Accepts a string in `HH:mm` format. Applies to **Day**, **Week**, and **Timeline** views.
155
- * @default '00:00'
156
- */
157
- endTime = '00:00';
158
- /**
159
- * Sets the start time of the view when `showWorkHours` is `true`. Accepts a string in `HH:mm` format. Applies to **Day**, **Week**, and **Timeline** views.
160
- * @default '08:00'
161
- */
162
- workDayStart = '08:00';
163
- /**
164
- * Sets the end time of the view when `showWorkHours` is `true`. Accepts a string in `HH:mm` format. Applies to **Day**, **Week**, and **Timeline** views.
165
- * @default '17:00'
166
- */
167
- workDayEnd = '17:00';
168
- /**
169
- * Sets the start of the work week. Applies to **Day**, **Week**, and **Timeline** views.
170
- * @default 1
171
- */
172
- workWeekStart;
173
- /**
174
- * Sets the end of the work week. Applies to **Day**, **Week**, and **Timeline** views.
175
- * @default 5
176
- */
177
- workWeekEnd;
178
- /**
179
- * Sets the first day of the week. Applies to **Week**, **Month**, and **TimelineWeek** views. Defaults to the locale settings.
180
- */
181
- set weekStart(value) {
182
- this._weekStart = value;
183
- }
184
- get weekStart() {
185
- if (isPresent(this._weekStart)) {
186
- return this._weekStart;
187
- }
188
- return this.intlService.firstDay();
189
- }
190
- /**
191
- * Sets the duration (in minutes) of the time slots. Applies to **Day**, **Week**, and **Timeline** views.
192
- * @default 60
193
- */
194
- slotDuration = 60;
195
- /**
196
- * Sets the number of divisions for the time slots. Applies to **Day**, **Week**, and **Timeline** views.
197
- * @default 2
198
- */
199
- slotDivisions = 2;
200
- /**
201
- * Sets the percentage of the slot filled by events. Accepts a value between 0 and 1. Applies to **Day** and **Week** views.
202
- * @default 0.9
203
- */
204
- slotFill = 0.9;
205
- /**
206
- * Toggles the visibility of the all-day slot. Applies to **Day**, **Multi-Day**, **Week**, and **Work-Week** views.
207
- * @default true
208
- */
209
- allDaySlot = true;
210
- /**
211
- * Sets the time to which the view initially scrolls. Accepts a string in `HH:mm` format or a JavaScript `Date` object. Applies to **Day**, **Week**, and **Timeline** views.
212
- * @default '08:00'
213
- */
214
- scrollTime = this.workDayStart;
215
- /**
216
- * Configures resource-based grouping in the Scheduler. When set, the Scheduler arranges events into separate lanes or columns according to the resources defined in the `resources` property. Use to enable visual separation and hierarchical organization of events by resource type.
217
- */
218
- group;
219
- /**
220
- * Specifies the collection of resources available for event assignment in the Scheduler. Each resource describes a category and provides metadata.
221
- */
222
- resources;
223
- /**
224
- * Specifies whether the Scheduler displays a loading indicator.
225
- * @default false
226
- */
227
- loading;
228
- /**
229
- * Sets the timezone ID displayed in the Scheduler. For example, `Europe/Sofia`.
230
- * @default 'Etc/UTC'
231
- */
232
- set timezone(value) {
233
- this._timezone = value;
234
- this.events = this.events || [];
235
- }
236
- get timezone() {
237
- return this._timezone;
238
- }
239
- /**
240
- * The currently selected view.
241
- */
242
- selectedView;
243
- /**
244
- * Sets the array of event instances shown by the Scheduler.
245
- *
246
- * Provide an array of [`SchedulerEvent`](slug:api_scheduler_schedulerevent) objects to display events in the Scheduler.
247
- * To bind data from custom object schemas, configure the [`modelFields`](slug:api_scheduler_schedulercomponent#modelfields) property to map your custom fields to the Scheduler event fields.
248
- */
249
- set events(value) {
250
- this._events = value;
251
- this.processEvents(value);
252
- }
253
- get events() {
254
- return this._events;
255
- }
256
- /**
257
- * Sets the currently selected date of the Scheduler. Determines the displayed period.
258
- */
259
- set selectedDate(value) {
260
- if (!value) {
261
- return;
262
- }
263
- this._selectedDate = value;
264
- this.viewContext.notifySelectedDate(value);
265
- }
266
- get selectedDate() {
267
- return this._selectedDate;
268
- }
269
- /**
270
- * Sets the names of the model fields from which the Scheduler reads its data ([see example])(slug:databinding_scheduler#binding-to-custom-object-schemas).
271
- *
272
- * Use `modelFields` when you want to bind custom event objects with property names that differ from the default [`SchedulerEvent`](slug:api_scheduler_schedulerevent) fields. This lets you map your data to the Scheduler's expected fields.
273
- */
274
- set modelFields(value) {
275
- this._modelFields = { ...defaultModelFields, ...value };
276
- }
277
- get modelFields() {
278
- return this._modelFields;
279
- }
280
- /**
281
- * Sets the Scheduler current time marker settings.
282
- * @default true
283
- */
284
- currentTimeMarker = true;
285
- /**
286
- * Defines the settings for highlighting ongoing events in the Scheduler.
287
- * @default true
288
- */
289
- highlightOngoingEvents = true;
290
- /**
291
- * Specifies whether to display the Scheduler toolbar.
292
- * @default true
293
- */
294
- showToolbar = true;
295
- /**
296
- * Specifies whether to display the Scheduler footer.
297
- * @default true
298
- */
299
- showFooter = true;
300
- /**
301
- * Defines a function that is executed for every slot in the view.
302
- * The function returns a value supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
303
- */
304
- slotClass;
305
- /**
306
- * Defines a function that is executed for every event in the view.
307
- * The function returns a value supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
308
- */
309
- eventClass;
310
- /**
311
- * Defines a function that is executed for every event in the view.
312
- * The function returns a value supported by [`ngStyle`](link:site.data.urls.angular['ngstyleapi']).
313
- */
314
- eventStyles;
315
- /**
316
- * Specifies the days that will be hidden from the view.
317
- * Applies to **Week**, **MultiWeek**, **WorkWeek**, **Month**, **MultiDay**, **TimeLineWeek**, **TimeLineMonth**, and **Agenda** views.
318
- * Accepts an array of `Day` enum values.
319
- *
320
- */
321
- hiddenDays;
322
- /**
323
- * A callback that is executed for each slot of the Scheduler view.
324
- * If it returns `true`, the `k-selected` CSS class will be added to the cell, making it visibly selected.
325
- * @default () => false
326
- */
327
- isSlotSelected = alwaysFalse;
328
- /**
329
- * @hidden
330
- */
331
- selectedViewIndexChange = new EventEmitter();
332
- /**
333
- * Emits when the Scheduler is about to perform a navigation action, such as changing the view, date, or focus.
334
- */
335
- navigate = new EventEmitter();
336
- /**
337
- * Emits when the displayed date range in the Scheduler changes.
338
- */
339
- dateChange = new EventEmitter();
340
- /**
341
- * Emits when a Scheduler view slot is clicked.
342
- */
343
- slotClick = new EventEmitter();
344
- /**
345
- * Fires when a Scheduler view slot is double-clicked.
346
- */
347
- slotDblClick = new EventEmitter();
348
- /**
349
- * Emits when the user creates a new event using the `'c'` key ([see example](slug:keyboard_navigation_scheduler)).
350
- */
351
- create = new EventEmitter();
352
- /**
353
- * Fires when a Scheduler event is clicked.
354
- */
355
- eventClick = new EventEmitter();
356
- /**
357
- * Fires when a Scheduler event is double-clicked.
358
- */
359
- eventDblClick = new EventEmitter();
360
- /**
361
- * Emits when you press a key on a focused Scheduler event.
362
- */
363
- eventKeydown = new EventEmitter();
364
- /**
365
- * Fires when the user cancels the editing by clicking the **Cancel** command button.
366
- */
367
- cancel = new EventEmitter();
368
- /**
369
- * Fires when the user clicks the **Save** command button to save the changes of the edited event.
370
- */
371
- save = new EventEmitter();
372
- /**
373
- * Fires when the user clicks the **Remove** icon of a Scheduler event.
374
- */
375
- remove = new EventEmitter();
376
- /**
377
- * Fires when the user starts resizing a Scheduler event.
378
- */
379
- resizeStart = new EventEmitter();
380
- /**
381
- * Emits while the user is resizing a Scheduler event.
382
- */
383
- resize = new EventEmitter();
384
- /**
385
- * Fires when the user stops resizing a Scheduler event.
386
- */
387
- resizeEnd = new EventEmitter();
388
- /**
389
- * Fires when the user starts dragging a Scheduler event.
390
- */
391
- dragStart = new EventEmitter();
392
- /**
393
- * Fires while the user is dragging a Scheduler event.
394
- */
395
- drag = new EventEmitter();
396
- /**
397
- * Fires when the user stops dragging a Scheduler event.
398
- */
399
- dragEnd = new EventEmitter();
400
- /**
401
- * Fires when the user starts drag-selecting a Scheduler slot range.
402
- */
403
- slotDragStart = new EventEmitter();
404
- /**
405
- * Fires while the user is drag-selecting a Scheduler slot range.
406
- */
407
- slotDrag = new EventEmitter();
408
- /**
409
- * Fires when the user stops drag-selecting a Scheduler slot range.
410
- */
411
- slotDragEnd = new EventEmitter();
412
- /**
413
- * Fires when the user clicks the **PDF export** command button.
414
- */
415
- pdfExport = new EventEmitter();
416
- /**
417
- * Fires when the Scheduler is resized horizontally.
418
- */
419
- schedulerResize = new EventEmitter();
420
- /**
421
- * @hidden
422
- */
423
- dragEndConfirmed = new EventEmitter();
424
- /**
425
- * @hidden
426
- */
427
- resizeEndConfirmed = new EventEmitter();
428
- /**
429
- * @hidden
430
- */
431
- removeConfirmed = new EventEmitter();
432
- /**
433
- * @hidden
434
- */
435
- editDialogTemplate;
436
- /**
437
- * @hidden
438
- */
439
- toolbarTemplate;
440
- /**
441
- * @hidden
442
- */
443
- dateRangeStream;
444
- /**
445
- * @hidden
446
- */
447
- selectedDateStream;
448
- /**
449
- * @hidden
450
- */
451
- views;
452
- /**
453
- * @hidden
454
- */
455
- resizeSensor;
456
- /**
457
- * @hidden
458
- */
459
- confirmationDialogContainerRef;
460
- /**
461
- * @hidden
462
- */
463
- loadingComponent;
464
- /**
465
- * @hidden
466
- */
467
- allDayEventTemplate;
468
- /**
469
- * @hidden
470
- */
471
- eventTemplate;
472
- /**
473
- * @hidden
474
- */
475
- timeSlotTemplate;
476
- /**
477
- * @hidden
478
- */
479
- minorTimeHeaderTemplate;
480
- /**
481
- * @hidden
482
- */
483
- majorTimeHeaderTemplate;
484
- /**
485
- * @hidden
486
- */
487
- monthDaySlotTemplate;
488
- /**
489
- * @hidden
490
- */
491
- multiWeekDaySlotTemplate;
492
- /**
493
- * @hidden
494
- */
495
- dateHeaderTemplate;
496
- /**
497
- * @hidden
498
- */
499
- allDaySlotTemplate;
500
- /**
501
- * @hidden
502
- */
503
- groupHeaderTemplate;
504
- /**
505
- * @hidden
506
- */
507
- agendaDateTemplate;
508
- /**
509
- * @hidden
510
- */
511
- agendaTimeTemplate;
512
- /**
513
- * @hidden
514
- */
515
- showLicenseWatermark = false;
516
- /**
517
- * @hidden
518
- */
519
- licenseMessage;
520
- /**
521
- * @hidden
522
- */
523
- get viewToolbar() {
524
- return this.viewState?.toolbarVisibilityByView.get(this.selectedView);
525
- }
526
- direction;
527
- subs;
528
- viewIndex = 0;
529
- _selectedDate;
530
- _events;
531
- _timezone = '';
532
- _modelFields = defaultModelFields;
533
- viewItems;
534
- detachElementEventHandlers;
535
- _weekStart;
536
- constructor(wrapper, viewContext, viewState, editService, dialogsService, intlService, changeDetector, zone, pdfService, localization, domEvents, renderer, focusService) {
537
- this.wrapper = wrapper;
538
- this.viewContext = viewContext;
539
- this.viewState = viewState;
540
- this.editService = editService;
541
- this.dialogsService = dialogsService;
542
- this.intlService = intlService;
543
- this.changeDetector = changeDetector;
544
- this.zone = zone;
545
- this.pdfService = pdfService;
546
- this.localization = localization;
547
- this.domEvents = domEvents;
548
- this.renderer = renderer;
549
- this.focusService = focusService;
550
- const isValid = validatePackage(packageMetadata);
551
- this.licenseMessage = getLicenseMessage(packageMetadata);
552
- this.showLicenseWatermark = shouldShowValidationUI(isValid);
553
- this.dateRangeStream = viewState.dateRange;
554
- this.selectedDateStream = viewContext.selectedDate;
555
- }
556
- ngOnInit() {
557
- if (!this.selectedDate) {
558
- this.selectedDate = todayDate();
559
- }
560
- }
561
- ngAfterContentInit() {
562
- if (isDevMode() && this.views.length === 0) {
563
- throw new Error('No views declared for <kendo-scheduler>. Please, declare at least one view.');
564
- }
565
- this.subs = this.views.changes.subscribe(() => this.resetViewIndex());
566
- this.subs.add(this.intlService.changes.subscribe(this.intlChange.bind(this)));
567
- this.subs.add(this.viewState.nextDate.subscribe(nextDate => {
568
- this.selectedDate = nextDate;
569
- }));
570
- this.subs.add(this.viewState.dateRange.subscribe(dateRange => {
571
- const isEmpty = dateRange.start.getTime() === 0;
572
- if (!isEmpty) {
573
- const args = new DateChangeEvent(this, this.selectedDate, dateRange);
574
- this.dateChange.emit(args);
575
- }
576
- }));
577
- this.subs.add(this.viewState.navigate.subscribe(({ viewName, date }) => {
578
- const views = this.views.toArray();
579
- const view = views.find(v => v.name === viewName);
580
- const args = new NavigateEvent(this, {
581
- type: 'show-date',
582
- view: view || {
583
- name: viewName,
584
- title: viewName
585
- },
586
- date: date
587
- });
588
- this.navigate.next(args);
589
- if (view && !args.isDefaultPrevented()) {
590
- const index = views.indexOf(view);
591
- this.selectedView = view;
592
- this.setViewIndex(index);
593
- this.selectedDate = date;
594
- }
595
- }));
596
- this.subs.add(this.viewState.viewEvent.subscribe(({ name, args }) => {
597
- const emitter = this[name];
598
- const confirmedEmitter = this[`${name}Confirmed`];
599
- if (hasObservers(emitter) || (confirmedEmitter && hasObservers(confirmedEmitter))) {
600
- this.zone.run(() => {
601
- const eventInstance = new VIEW_EVENT_MAP[name](this, args);
602
- emitter.emit(eventInstance);
603
- args.prevented = eventInstance.prevented;
604
- if (confirmedEmitter && !args.prevented) {
605
- confirmedEmitter.emit(eventInstance);
606
- }
607
- });
608
- }
609
- }));
610
- this.subs.add(this.viewState.layoutEnd.subscribe(() => {
611
- if (this.resizeSensor) {
612
- this.resizeSensor.acceptSize();
613
- }
614
- }));
615
- this.subs.add(this.viewState.slotSelectionStart
616
- .subscribe((e) => {
617
- if (hasObservers(this.slotDragStart)) {
618
- this.zone.run(() => {
619
- this.slotDragStart.emit(Object.assign(e, { sender: this }));
620
- });
621
- }
622
- }));
623
- this.subs.add(this.viewState.slotSelectionDrag
624
- .subscribe((value) => {
625
- if (hasObservers(this.slotDrag)) {
626
- this.zone.run(() => {
627
- this.slotDrag.emit(new SlotDragEvent(this, value));
628
- });
629
- }
630
- }));
631
- this.subs.add(this.viewState.slotSelectionEnd
632
- .subscribe((value) => {
633
- if (hasObservers(this.slotDragEnd)) {
634
- this.zone.run(() => {
635
- this.slotDragEnd.emit(new SlotDragEndEvent(this, value));
636
- });
637
- }
638
- }));
639
- this.onViewIndexChange();
640
- this.notifyOptionsChange = this.notifyOptionsChange.bind(this);
641
- this.subs.add(this.allDayEventTemplate.changes.subscribe(this.notifyOptionsChange));
642
- this.subs.add(this.eventTemplate.changes.subscribe(this.notifyOptionsChange));
643
- this.subs.add(this.timeSlotTemplate.changes.subscribe(this.notifyOptionsChange));
644
- this.subs.add(this.timeSlotTemplate.changes.subscribe(this.notifyOptionsChange));
645
- this.subs.add(this.minorTimeHeaderTemplate.changes.subscribe(this.notifyOptionsChange));
646
- this.subs.add(this.majorTimeHeaderTemplate.changes.subscribe(this.notifyOptionsChange));
647
- this.subs.add(this.monthDaySlotTemplate.changes.subscribe(this.notifyOptionsChange));
648
- this.subs.add(this.multiWeekDaySlotTemplate.changes.subscribe(this.notifyOptionsChange));
649
- this.subs.add(this.dateHeaderTemplate.changes.subscribe(this.notifyOptionsChange));
650
- this.subs.add(this.allDaySlotTemplate.changes.subscribe(this.notifyOptionsChange));
651
- this.subs.add(this.groupHeaderTemplate.changes.subscribe(this.notifyOptionsChange));
652
- this.subs.add(this.agendaDateTemplate.changes.subscribe(this.notifyOptionsChange));
653
- this.subs.add(this.agendaTimeTemplate.changes.subscribe(this.notifyOptionsChange));
654
- this.subs.add(this.views.changes.subscribe(() => {
655
- this.changeDetector.markForCheck();
656
- }));
657
- //this.editService.timezone = this.timezone;
658
- this.attachEditHandlers();
659
- this.dialogsService.container = this.confirmationDialogContainerRef;
660
- this.notifyOptionsChange();
661
- this.subs.add(this.pdfService.exportClick.subscribe(() => {
662
- const args = new PDFExportEvent();
663
- this.pdfExport.emit(args);
664
- if (!args.isDefaultPrevented()) {
665
- this.saveAsPDF();
666
- }
667
- }));
668
- this.subs.add(this.pdfService.done.subscribe(() => {
669
- this.loadingComponent.toggle(false);
670
- }));
671
- this.subs.add(this.localization.changes.subscribe(({ rtl }) => {
672
- this.rtl = rtl;
673
- this.direction = this.rtl ? 'rtl' : 'ltr';
674
- }));
675
- this.subs.add(this.viewState.optionsChange.subscribe(() => {
676
- this.changeDetector.markForCheck();
677
- }));
678
- this.attachElementEventHandlers();
679
- }
680
- ngOnChanges(changes) {
681
- if (isChanged('resources', changes) && !isChanged('events', changes) && this.viewItems) {
682
- this.viewItems.forEach(item => {
683
- copyResources(item.event, this.resources);
684
- });
685
- }
686
- if (anyChanged([
687
- 'group', 'resources', 'min', 'max', 'showWorkHours', 'startTime', 'scrollTime', 'endTime', 'eventHeight',
688
- 'workDayStart', 'workDayEnd', 'workWeekStart', 'workWeekEnd', 'weekStart', 'slotDuration', 'slotDivisions',
689
- 'editable', 'timezone', 'slotClass', 'slotFill', 'columnWidth', 'eventClass', 'eventStyles', 'isSlotSelected',
690
- 'selectable', 'allDaySlot', 'showToolbar', 'showFooter', 'hiddenDays'
691
- ], changes)) {
692
- this.notifyOptionsChange(changes);
693
- }
694
- }
695
- ngOnDestroy() {
696
- if (this.subs) {
697
- this.subs.unsubscribe();
698
- }
699
- if (this.detachElementEventHandlers) {
700
- this.detachElementEventHandlers();
701
- }
702
- }
703
- /**
704
- * @hidden
705
- */
706
- onResize(_event) {
707
- this.viewContext.notifyResize();
708
- }
709
- /**
710
- * @hidden
711
- */
712
- onNavigationAction(action) {
713
- const args = new NavigateEvent(this, action);
714
- this.navigate.next(args);
715
- if (args.isDefaultPrevented()) {
716
- return true;
717
- }
718
- if (action.type === 'view-change') {
719
- const views = this.views.toArray();
720
- const index = views.indexOf(action.view);
721
- this.selectedView = action.view;
722
- this.setViewIndex(index);
723
- }
724
- else if (action.type === 'select-date') {
725
- if (this.isInRange(action.date)) {
726
- this.selectedDate = action.date;
727
- }
728
- }
729
- else if (action.type === 'today') {
730
- const date = new Date();
731
- if (this.isInRange(date)) {
732
- this.selectedDate = date;
733
- }
734
- }
735
- else if (action.type === 'toggle-business-hours') {
736
- this.viewState.toggleWorkHours.next(null);
737
- }
738
- else if (action.type === 'focus-toolbar') {
739
- this.focusService.focusToolbar();
740
- }
741
- else {
742
- this.viewContext.notifyAction(action);
743
- }
744
- }
745
- /**
746
- * @hidden
747
- */
748
- onToolbarWidthChange(width) {
749
- this.schedulerResize.emit(width);
750
- }
751
- /**
752
- * Creates a popup editor for the new event.
753
- *
754
- * @param group - The [`FormGroup`](https://angular.io/docs/ts/latest/api/forms/index/FormGroup-class.html) that describes
755
- * the edit form. If called with a data item, the parameter will build the `FormGroup` from the data item fields.
756
- */
757
- addEvent(group) {
758
- const isFormGroup = group instanceof FormGroup;
759
- if (!isFormGroup) {
760
- const createControl = (source) => (acc, key) => {
761
- acc[key] = new FormControl(source[key]);
762
- return acc;
763
- };
764
- const fields = Object.keys(group).reduce(createControl(group), {});
765
- group = new FormGroup(fields);
766
- }
767
- this.editService.addEvent(group);
768
- }
769
- /**
770
- * Switches the specified event in edit mode.
771
- *
772
- * @param dataItem - The event that will be switched to edit mode.
773
- * @param options - An object which contains the form `group` that will be bound in the edit dialog and the current edit `mode`.
774
- *
775
- */
776
- editEvent(dataItem, options = {}) {
777
- const { group, mode } = options;
778
- this.editService.editEvent(dataItem, group, mode);
779
- }
780
- /**
781
- * Closes the event editor, if open.
782
- */
783
- closeEvent() {
784
- this.editService.close();
785
- }
786
- /**
787
- * Returns a flag which indicates if an event is currently edited.
788
- *
789
- * @return {boolean} - A flag which indicates if an event is currently edited.
790
- */
791
- isEditing() {
792
- return this.editService.isEditing();
793
- }
794
- /**
795
- * Opens the built-in confirmation dialog for defining the edit mode
796
- * that will be used when the user edits or removes a recurring event.
797
- *
798
- * @param operation - The type of operation that will be confirmed. Has to be either **Edit** or **Remove**.
799
- *
800
- * @returns the result from the confirmation dialog.
801
- */
802
- openRecurringConfirmationDialog(operation) {
803
- return this.dialogsService.openRecurringConfirmationDialog(operation);
804
- }
805
- /**
806
- * Opens the built-in removal confirmation dialog.
807
- *
808
- * @return the result from the confirmation dialog.
809
- */
810
- openRemoveConfirmationDialog() {
811
- return this.dialogsService.openRemoveConfirmationDialog();
812
- }
813
- /**
814
- * Saves the current view as PDF.
815
- */
816
- saveAsPDF() {
817
- this.loadingComponent.toggle(true);
818
- this.zone.runOutsideAngular(() => {
819
- // wait a tick in order for the loading element style to be updated by the browser.
820
- // if the export is synchronous, the browser will not update the element before the export is finished.
821
- setTimeout(() => {
822
- this.pdfService.save();
823
- }, 0);
824
- });
825
- }
826
- /**
827
- * Scrolls the view to the specified time.
828
- */
829
- scrollToTime(time) {
830
- this.viewContext.notifyAction({
831
- type: 'scroll-time',
832
- time: time
833
- });
834
- }
835
- /**
836
- * Returns the current view slot that matches the passed document position.
837
- *
838
- * @param x - The x document position.
839
- * @param y - The y document position.
840
- *
841
- * @return {SchedulerSlot} - The slot.
842
- */
843
- slotByPosition(x, y) {
844
- return this.viewContext.executeMethod('slotByPosition', { x, y });
845
- }
846
- /**
847
- * Returns the event associated with the specified DOM element, if any.
848
- *
849
- * @param element - The DOM element document position.
850
- * @return the event instance, if found.
851
- */
852
- eventFromElement(element) {
853
- return this.viewContext.executeMethod('eventFromElement', { element });
854
- }
855
- /**
856
- * Gets the currently active event, if any.
857
- * The active event is the event that can currently receive focus.
858
- */
859
- get activeEvent() {
860
- const activeElement = this.focusService.activeElement;
861
- if (activeElement && activeElement.nativeElement.matches('.k-event, [data-task-index]')) {
862
- return this.eventFromElement(activeElement.nativeElement);
863
- }
864
- }
865
- /**
866
- * Focuses the next event or an event at a specified relative position.
867
- * The `options` parameter can be used to set a positive or negative offset
868
- * that is relative to the currently focused event ([see example](slug:keyboard_navigation_scheduler#toc-event-navigation-with-the-tab-key)).
869
- * A `nowrap` flag toggles the wrapping to the first or to the last item.
870
- *
871
- * @param position The relative position of the event to focus.
872
- * @returns `true` if the focused event changed. Otherwise, returns `false`.
873
- */
874
- focusNext(position) {
875
- const changed = this.focusService.focusNext(position);
876
- this.zone.onStable.pipe(take(1)).subscribe(() => this.focusService.focus());
877
- return changed;
878
- }
879
- /**
880
- * Focuses the previous event or an event at a specified relative position.
881
- * The `options` parameter can be used to set a positive or negative offset
882
- * that is relative to the currently focused event ([see example](slug:keyboard_navigation_scheduler#toc-event-navigation-with-the-tab-key)).
883
- * A `nowrap` flag toggles the wrapping to the first or to the last item.
884
- *
885
- * @param position The relative position of the event to focus.
886
- * @returns `true` if the focused event changed. Otherwise, returns `false`.
887
- */
888
- focusPrev(position) {
889
- const prevPosition = { offset: -1, ...position };
890
- const changed = this.focusService.focusNext(prevPosition);
891
- this.zone.onStable.pipe(take(1)).subscribe(() => this.focusService.focus());
892
- return changed;
893
- }
894
- /**
895
- * Focuses the last focused scheduler element or the Scheduler element, if no events are available.
896
- */
897
- focus() {
898
- this.zone.onStable.pipe(take(1)).subscribe(() => this.focusService.focus());
899
- }
900
- /**
901
- * @hidden
902
- */
903
- get toolbarVisibilityState() {
904
- return isPresent(this.viewToolbar) ? this.viewToolbar : this.showToolbar;
905
- }
906
- isInRange(date) {
907
- return (!this.min || this.min <= date) && (!this.max || date <= this.max);
908
- }
909
- notifyOptionsChange(changes) {
910
- const workweek = this.workWeek;
911
- this.viewContext.notifyOptionsChange({
912
- group: this.group,
913
- resources: this.resources,
914
- allDayEventTemplate: this.allDayEventTemplate ? this.allDayEventTemplate.first : null,
915
- eventTemplate: this.eventTemplate ? this.eventTemplate.first : null,
916
- timeSlotTemplate: this.timeSlotTemplate ? this.timeSlotTemplate.first : null,
917
- minorTimeHeaderTemplate: this.minorTimeHeaderTemplate ? this.minorTimeHeaderTemplate.first : null,
918
- majorTimeHeaderTemplate: this.majorTimeHeaderTemplate ? this.majorTimeHeaderTemplate.first : null,
919
- monthDaySlotTemplate: this.monthDaySlotTemplate ? this.monthDaySlotTemplate.first : null,
920
- multiWeekDaySlotTemplate: this.multiWeekDaySlotTemplate ? this.multiWeekDaySlotTemplate.first : null,
921
- dateHeaderTemplate: this.dateHeaderTemplate ? this.dateHeaderTemplate.first : null,
922
- allDaySlotTemplate: this.allDaySlotTemplate ? this.allDaySlotTemplate.first : null,
923
- groupHeaderTemplate: this.groupHeaderTemplate ? this.groupHeaderTemplate.first : null,
924
- agendaDateTemplate: this.agendaDateTemplate ? this.agendaDateTemplate.first : null,
925
- agendaTimeTemplate: this.agendaTimeTemplate ? this.agendaTimeTemplate.first : null,
926
- min: this.min,
927
- max: this.max,
928
- showWorkHours: this.showWorkHours,
929
- startTime: this.startTime,
930
- scrollTime: this.scrollTime,
931
- endTime: this.endTime,
932
- workDayStart: this.workDayStart,
933
- workDayEnd: this.workDayEnd,
934
- workWeekStart: workweek.start,
935
- workWeekEnd: workweek.end,
936
- weekStart: this.weekStart,
937
- allDaySlot: this.allDaySlot,
938
- slotDuration: this.slotDuration,
939
- slotDivisions: this.slotDivisions,
940
- eventHeight: this.eventHeight,
941
- editable: this.editable,
942
- selectable: this.selectable,
943
- timezone: this.timezone,
944
- currentTimeMarker: this.currentTimeMarker,
945
- highlightOngoingEvents: this.highlightOngoingEvents,
946
- showToolbar: this.showToolbar,
947
- showFooter: this.showFooter,
948
- slotClass: this.slotClass,
949
- slotFill: this.slotFill,
950
- columnWidth: this.columnWidth,
951
- eventClass: this.eventClass,
952
- eventStyles: this.eventStyles,
953
- hiddenDays: this.hiddenDays,
954
- isSlotSelected: this.isSlotSelected,
955
- changes: changes
956
- });
957
- }
958
- get workWeek() {
959
- const { start, end } = this.intlService.weekendRange();
960
- const workWeekStart = isPresent(this.workWeekStart) ? this.workWeekStart : (end + 1) % DAYS_IN_WEEK;
961
- const weekEnd = start > 0 ? start - 1 : Day.Saturday;
962
- const workWeekEnd = isPresent(this.workWeekEnd) ? this.workWeekEnd : weekEnd;
963
- return { start: workWeekStart, end: workWeekEnd };
964
- }
965
- resetViewIndex() {
966
- const index = this.selectedViewIndex;
967
- const newIndex = Math.max(0, Math.min(index, this.views.length - 1));
968
- this.setViewIndex(newIndex);
969
- this.onViewIndexChange();
970
- }
971
- onViewIndexChange() {
972
- if (!this.views) {
973
- return;
974
- }
975
- const views = this.views.toArray();
976
- const selectedView = views[this.viewIndex];
977
- if (selectedView) {
978
- this.selectedView = selectedView;
979
- }
980
- }
981
- setViewIndex(newIndex) {
982
- const changed = this.selectedViewIndex !== newIndex;
983
- if (changed) {
984
- this.selectedViewIndex = newIndex;
985
- this.selectedViewIndexChange.emit(newIndex);
986
- }
987
- return changed;
988
- }
989
- processEvents(dataItems) {
990
- const timezone = this.timezone;
991
- const fields = this.modelFields;
992
- const items = dataItems
993
- .map(dataItem => readEvent(dataItem, fields, this.resources))
994
- .filter(event => !isRecurrenceMaster(event))
995
- .map(event => {
996
- const start = ZonedDate.fromLocalDate(event.start, timezone);
997
- const end = ZonedDate.fromLocalDate(event.end, timezone);
998
- return { start, end, event };
999
- });
1000
- this.viewItems = items;
1001
- this.viewContext.notifyItems(items);
1002
- }
1003
- attachEditHandlers() {
1004
- if (!this.editService) {
1005
- return;
1006
- }
1007
- this.subs.add(this.editService.changes.subscribe(this.emitCRUDEvent.bind(this)));
1008
- }
1009
- emitCRUDEvent(args) {
1010
- Object.assign(args, { sender: this });
1011
- switch (args.action) {
1012
- case 'cancel':
1013
- this.cancel.emit(args);
1014
- break;
1015
- case 'save':
1016
- this.save.emit(args);
1017
- break;
1018
- default: break;
1019
- }
1020
- }
1021
- intlChange() {
1022
- const currentView = this.selectedView;
1023
- this.selectedView = null;
1024
- if (!isPresent(this.workWeekStart) || !isPresent(this.workWeekEnd)) {
1025
- this.notifyOptionsChange();
1026
- }
1027
- this.changeDetector.detectChanges();
1028
- this.selectedView = currentView;
1029
- if (NgZone.isInAngularZone()) {
1030
- this.changeDetector.markForCheck();
1031
- }
1032
- else {
1033
- this.changeDetector.detectChanges();
1034
- }
1035
- }
1036
- attachElementEventHandlers() {
1037
- if (!isDocumentAvailable()) {
1038
- return;
1039
- }
1040
- const wrapper = this.wrapper.nativeElement;
1041
- this.zone.runOutsideAngular(() => {
1042
- const windowBlurSubscription = this.renderer.listen('window', 'blur', (args) => {
1043
- this.domEvents.windowBlur.emit(args);
1044
- });
1045
- const clickSubscription = this.renderer.listen(wrapper, 'click', (args) => {
1046
- this.domEvents.click.emit(args);
1047
- });
1048
- const keydownSubscription = this.renderer.listen(wrapper, 'keydown', args => {
1049
- this.domEvents.keydown.emit(args);
1050
- });
1051
- let focused = false;
1052
- const focusInSubscription = this.renderer.listen(wrapper, 'focusin', (args) => {
1053
- this.domEvents.focus.emit(args);
1054
- if (!focused) {
1055
- this.domEvents.focusIn.emit(args);
1056
- this.renderer.addClass(this.wrapper.nativeElement, 'k-focus');
1057
- focused = true;
1058
- }
1059
- });
1060
- const focusOutSubscription = this.renderer.listen(wrapper, 'focusout', (args) => {
1061
- const next = args.relatedTarget || document.activeElement;
1062
- const outside = !closest(next, (node) => node === wrapper);
1063
- if (outside) {
1064
- this.domEvents.focusOut.emit(args);
1065
- this.renderer.removeClass(this.wrapper.nativeElement, 'k-focus');
1066
- focused = false;
1067
- }
1068
- });
1069
- this.detachElementEventHandlers = () => {
1070
- windowBlurSubscription();
1071
- clickSubscription();
1072
- keydownSubscription();
1073
- focusInSubscription();
1074
- focusOutSubscription();
1075
- };
1076
- });
1077
- }
1078
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SchedulerComponent, deps: [{ token: i0.ElementRef }, { token: i1.ViewContextService }, { token: i2.ViewStateService }, { token: i3.EditService }, { token: i4.DialogsService }, { token: i5.IntlService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i6.PDFService }, { token: i7.LocalizationService }, { token: i8.DomEventsService }, { token: i0.Renderer2 }, { token: i9.FocusService }], target: i0.ɵɵFactoryTarget.Component });
1079
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SchedulerComponent, isStandalone: true, selector: "kendo-scheduler", inputs: { selectedViewIndex: "selectedViewIndex", editable: "editable", selectable: "selectable", min: "min", max: "max", eventHeight: "eventHeight", columnWidth: "columnWidth", showWorkHours: "showWorkHours", startTime: "startTime", endTime: "endTime", workDayStart: "workDayStart", workDayEnd: "workDayEnd", workWeekStart: "workWeekStart", workWeekEnd: "workWeekEnd", weekStart: "weekStart", slotDuration: "slotDuration", slotDivisions: "slotDivisions", slotFill: "slotFill", allDaySlot: "allDaySlot", scrollTime: "scrollTime", group: "group", resources: "resources", loading: "loading", timezone: "timezone", events: "events", selectedDate: "selectedDate", modelFields: "modelFields", currentTimeMarker: "currentTimeMarker", highlightOngoingEvents: "highlightOngoingEvents", showToolbar: "showToolbar", showFooter: "showFooter", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", hiddenDays: "hiddenDays", isSlotSelected: "isSlotSelected" }, outputs: { selectedViewIndexChange: "selectedViewIndexChange", navigate: "navigate", dateChange: "dateChange", slotClick: "slotClick", slotDblClick: "slotDblClick", create: "create", eventClick: "eventClick", eventDblClick: "eventDblClick", eventKeydown: "eventKeydown", cancel: "cancel", save: "save", remove: "remove", resizeStart: "resizeStart", resize: "resize", resizeEnd: "resizeEnd", dragStart: "dragStart", drag: "drag", dragEnd: "dragEnd", slotDragStart: "slotDragStart", slotDrag: "slotDrag", slotDragEnd: "slotDragEnd", pdfExport: "pdfExport", schedulerResize: "schedulerResize" }, host: { properties: { "class.k-scheduler": "this.hostClasses", "attr.role": "this.ariaRole", "class.k-rtl": "this.rtl", "attr.dir": "this.dir" } }, providers: [
1080
- EditService,
1081
- DialogsService,
1082
- DomEventsService,
1083
- LocalDataChangesService,
1084
- FocusService,
1085
- SchedulerLocalizationService,
1086
- {
1087
- provide: LocalizationService,
1088
- useExisting: SchedulerLocalizationService
1089
- },
1090
- {
1091
- provide: L10N_PREFIX,
1092
- useValue: 'kendo.scheduler'
1093
- },
1094
- ToolbarService,
1095
- ViewContextService,
1096
- ViewStateService,
1097
- PDFService
1098
- ], queries: [{ propertyName: "editDialogTemplate", first: true, predicate: EditDialogTemplateDirective, descendants: true }, { propertyName: "toolbarTemplate", first: true, predicate: ToolbarTemplateDirective, descendants: true }, { propertyName: "views", predicate: SchedulerView }, { propertyName: "allDayEventTemplate", predicate: AllDayEventTemplateDirective }, { propertyName: "eventTemplate", predicate: EventTemplateDirective }, { propertyName: "timeSlotTemplate", predicate: TimeSlotTemplateDirective }, { propertyName: "minorTimeHeaderTemplate", predicate: MinorTimeHeaderTemplateDirective }, { propertyName: "majorTimeHeaderTemplate", predicate: MajorTimeHeaderTemplateDirective }, { propertyName: "monthDaySlotTemplate", predicate: MonthDaySlotTemplateDirective }, { propertyName: "multiWeekDaySlotTemplate", predicate: MultiWeekDaySlotTemplateDirective }, { propertyName: "dateHeaderTemplate", predicate: DateHeaderTemplateDirective }, { propertyName: "allDaySlotTemplate", predicate: AllDaySlotTemplateDirective }, { propertyName: "groupHeaderTemplate", predicate: GroupHeaderTemplateDirective }, { propertyName: "agendaDateTemplate", predicate: AgendaDateTemplateDirective }, { propertyName: "agendaTimeTemplate", predicate: AgendaTimeTemplateDirective }], viewQueries: [{ propertyName: "resizeSensor", first: true, predicate: ResizeSensorComponent, descendants: true, static: true }, { propertyName: "confirmationDialogContainerRef", first: true, predicate: ["confirmationDialogContainer"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "loadingComponent", first: true, predicate: LoadingComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
1099
- <ng-container kendoSchedulerLocalizedMessages
1100
- i18n-allEvents="kendo.scheduler.allEvents|The All events text displayed in the timeline views when there is no vertical grouping."
1101
- allEvents="All events"
1102
-
1103
- i18n-allDay="kendo.scheduler.allDay|The all day text displayed in the day and week views."
1104
- allDay="all day"
1105
-
1106
- i18n-dateHeader="kendo.scheduler.dateHeader|The date header text displayed in the agenda view."
1107
- dateHeader="Date"
1108
-
1109
- i18n-timeHeader="kendo.scheduler.timeHeader|The time header text displayed in the agenda view."
1110
- timeHeader="Time"
1111
-
1112
- i18n-deleteTitle="kendo.scheduler.deleteTitle|The delete icon title."
1113
- deleteTitle="Delete"
1114
-
1115
- i18n-eventHeader="kendo.scheduler.eventHeader|The event header text displayed in the agenda view."
1116
- eventHeader="Event"
1117
-
1118
- i18n-nextTitle="kendo.scheduler.nextTitle|The title of the navigation next button."
1119
- nextTitle="Next"
1120
-
1121
- i18n-previousTitle="kendo.scheduler.previousTitle|The title of the navigation previous button."
1122
- previousTitle="Previous"
1123
-
1124
- i18n-showFullDay="kendo.scheduler.showFullDay|The text of the show full day button displayed in the footer of the day, week and timeline views."
1125
- showFullDay="Show full day"
1126
-
1127
- i18n-showWorkDay="kendo.scheduler.showWorkDay|The text of the show work day button displayed in the footer of the day, week and timeline views."
1128
- showWorkDay="Show business hours"
1129
-
1130
- i18n-today="kendo.scheduler.today|The today button text displayed in the navigation."
1131
- today="Today"
1132
-
1133
- i18n-calendarToday="kendo.scheduler.calendarToday|The text of today's date in the header of the Calendar."
1134
- calendarToday="TODAY"
1135
-
1136
- i18n-dayViewTitle="kendo.scheduler.dayViewTitle|The day view title."
1137
- dayViewTitle="Day"
1138
-
1139
- i18n-multiDayViewTitle="kendo.scheduler.multiDayViewTitle|The multi day view title."
1140
- multiDayViewTitle="Multi-Day"
1141
-
1142
- i18n-weekViewTitle="kendo.scheduler.weekViewTitle|The week view title."
1143
- weekViewTitle="Week"
1144
-
1145
- i18n-workWeekViewTitle="kendo.scheduler.workWeekViewTitle|The work week view title."
1146
- workWeekViewTitle="Work Week"
1147
-
1148
- i18n-monthViewTitle="kendo.scheduler.monthViewTitle|The month view title."
1149
- monthViewTitle="Month"
1150
-
1151
- i18n-multiWeekViewTitle="kendo.scheduler.multiWeekViewTitle|The multi week view title."
1152
- multiWeekViewTitle="Multi-Week"
1153
-
1154
- i18n-timelineViewTitle="kendo.scheduler.timelineViewTitle|The timeline view title."
1155
- timelineViewTitle="Timeline"
1156
-
1157
- i18n-timelineWeekViewTitle="kendo.scheduler.timelineWeekViewTitle|The timeline week view title."
1158
- timelineWeekViewTitle="Timeline Week"
1159
-
1160
- i18n-timelineMonthViewTitle="kendo.scheduler.timelineMonthViewTitle|The timeline month view title."
1161
- timelineMonthViewTitle="Timeline Month"
1162
-
1163
- i18n-agendaViewTitle="kendo.scheduler.agendaViewTitle|The agenda view title."
1164
- agendaViewTitle="Agenda"
1165
-
1166
- i18n-yearViewTitle="kendo.scheduler.yearViewTitle|The year view title."
1167
- yearViewTitle="Year"
1168
-
1169
- i18n-yearViewNoEvents="kendo.scheduler.yearViewNoEvents|The year view no events message."
1170
- yearViewNoEvents="No events on this date."
1171
-
1172
- i18n-cancel="kendo.scheduler.cancel|The text similar to 'Cancel' displayed in the Scheduler."
1173
- cancel="Cancel"
1174
-
1175
- i18n-save="kendo.scheduler.save|The text similar to 'Save' displayed in the Scheduler."
1176
- save="Save"
1177
-
1178
- i18n-editorEventTitle="kendo.scheduler.editorEventTitle|The text similar to 'Title' displayed in the Scheduler event editor."
1179
- editorEventTitle='Title'
1180
-
1181
- i18n-editorEventStart="kendo.scheduler.editorEventStart|The text similar to 'Start' displayed in the Scheduler event editor."
1182
- editorEventStart="Start"
1183
-
1184
- i18n-editorEventStartTimeZone="kendo.scheduler.editorEventStartTimeZone|The text similar to 'Start Time Zone' displayed in the Scheduler event editor."
1185
- editorEventStartTimeZone="Start Time Zone"
1186
-
1187
- i18n-editorEventEnd="kendo.scheduler.editorEventEnd|The text similar to 'End' displayed in the Scheduler event editor."
1188
- editorEventEnd="End"
1189
-
1190
- i18n-editorEventEndTimeZone="kendo.scheduler.editorEventEndTimeZone|The text similar to 'End Time Zone' displayed in the Scheduler event editor."
1191
- editorEventEndTimeZone="End Time Zone"
1192
-
1193
- i18n-editorEventAllDay="kendo.scheduler.editorEventAllDay|The text similar to 'All Day event' displayed in the Scheduler event editor."
1194
- editorEventAllDay="All Day Event"
1195
-
1196
- i18n-editorEventDescription="kendo.scheduler.editorEventDescription|The text similar to 'Description' displayed in the Scheduler event editor."
1197
- editorEventDescription="Description"
1198
-
1199
- i18n-editorEventSeparateTimeZones="kendo.scheduler.editorEventSeparateTimeZones|The text similar to 'Use separate Start and End Time Zones' displayed in the Scheduler event editor."
1200
- editorEventSeparateTimeZones="End in different Time Zone"
1201
-
1202
- i18n-editorEventTimeZone="kendo.scheduler.editorEventTimeZone|The text similar to 'Time Zone' displayed in the Scheduler event editor."
1203
- editorEventTimeZone='Specify Time Zone'
1204
-
1205
- i18n-editorTitle="kendo.scheduler.editorTitle|The text similar to 'Event' displayed as title of the Scheduler event editor."
1206
- editorTitle='Event'
1207
-
1208
- i18n-editorDateInputsToday="kendo.scheduler.editorDateInputsToday|The Today button text in the popup of the DateTimePickers and DatePickers in the Scheduler event editor."
1209
- editorDateInputsToday='Today'
1210
-
1211
- i18n-editorDateInputsToggle="kendo.scheduler.editorDateInputsToggle|The title of the Toggle button of the DateTimePickers and DatePickers in the Scheduler event editor."
1212
- editorDateInputsToggle='Toggle calendar'
1213
-
1214
- i18n-editorDateInputsParentViewButton="kendo.scheduler.editorDateInputsParentViewButton|The title of the Parent View button in the popup of the DateTimePickers and DatePickers in the Scheduler event editor."
1215
- editorDateInputsParentViewButton='Navigate to parent view'
1216
-
1217
- i18n-editorDateInputsNow="kendo.scheduler.editorDateInputsAccept|The text of the Now button in the popup footer of the DateTimePickers and DatePickers in the Scheduler event editor."
1218
- editorDateInputsAccept='Now'
1219
-
1220
- i18n-editorDateInputsNowLabel="kendo.scheduler.editorDateInputsAcceptLabel|The label of the Now button in the popup footer of the DateTimePickers and DatePickers in the Scheduler event editor."
1221
- editorDateInputsAcceptLabel='Select now'
1222
-
1223
- i18n-editorDateInputsAccept="kendo.scheduler.editorDateInputsAccept|The text of the Accept button in the popup footer of the DateTimePickers and DatePickers in the Scheduler event editor."
1224
- editorDateInputsAccept='Set'
1225
-
1226
- i18n-editorDateInputsAcceptLabel="kendo.scheduler.editorDateInputsAcceptLabel|The label of the Accept button in the popup footer of the DateTimePickers and DatePickers in the Scheduler event editor."
1227
- editorDateInputsAcceptLabel='Set'
1228
-
1229
- i18n-editorDateInputsCancel="kendo.scheduler.editorDateInputsCancel|The text of the Cancel button in the popup footer of the DateTimePickers and DatePickers in the Scheduler event editor."
1230
- editorDateInputsCancel='Cancel'
1231
-
1232
- i18n-editorDateInputsCancelLabel="kendo.scheduler.editorDateInputsCancelLabel|The label of the Cancel button in the popup footer of the DateTimePickers and DatePickers in the Scheduler event editor."
1233
- editorDateInputsCancelLabel='Cancel'
1234
-
1235
- i18n-editorDateInputsDateTab="kendo.scheduler.editorDateInputsDateTab|The text of the Date tab in the popup header of the DateTimePickers and DatePickers in the Scheduler event editor."
1236
- editorDateInputsDateTab='Date'
1237
-
1238
- i18n-editorDateInputsDateTabLabel="kendo.scheduler.editorDateInputsDateTabLabel|The label of the Date tab in the popup header of the DateTimePickers and DatePickers in the Scheduler event editor."
1239
- editorDateInputsDateTabLabel='Date tab'
1240
-
1241
- i18n-editorDateInputsTimeTab="kendo.scheduler.editorDateInputsTimeTab|The text of the Time tab in the popup header of the DateTimePickers and DatePickers in the Scheduler event editor."
1242
- editorDateInputsTimeTab='Time'
1243
-
1244
- i18n-editorDateInputsTimeTabLabel="kendo.scheduler.editorDateInputsTimeTabLabel|The label of the Time tab in the popup header of the DateTimePickers and DatePickers in the Scheduler event editor."
1245
- editorDateInputsTimeTabLabel='Time tab'
1246
-
1247
- i18n-recurrenceEditorDateInputsToday="kendo.scheduler.recurrenceEditorDateInputsToday|The Today button text in the popup of the DatePickers in the Scheduler recurrence editor."
1248
- recurrenceEditorDateInputsToday='Today'
1249
-
1250
- i18n-recurrenceEditorDateInputsToggle="kendo.scheduler.recurrenceEditorDateInputsToggle|The title of the Toggle button of the DatePickers in the Scheduler recurrence editor."
1251
- recurrenceEditorDateInputsToggle='Toggle calendar'
1252
-
1253
- i18n-recurrenceEditorDateInputsParentViewButton="kendo.scheduler.recurrenceEditorDateInputsParentViewButton|The title of the Parent View button in the popup of the DatePickers in the Scheduler recurrence editor."
1254
- recurrenceEditorDateInputsParentViewButton='Navigate to parent view'
1255
-
1256
- i18n-recurrenceEditorNumericIncrement="kendo.scheduler.recurrenceEditorNumericIncrement|The title of the Increment button of the NumericTextBox in the Scheduler recurrence editor."
1257
- recurrenceEditorNumericIncrement='Increase value'
1258
-
1259
- i18n-recurrenceEditorNumericDecrement="kendo.scheduler.recurrenceEditorNumericDecrement|The title of the Decrement button of the NumericTextBox in the Scheduler recurrence editor."
1260
- recurrenceEditorNumericDecrement='Decrease value'
1261
-
1262
- i18n-recurrenceEditorRepeat="kendo.scheduler.recurrenceEditorRepeat|The text similar to 'Repeat' displayed in the Scheduler recurrence editor."
1263
- recurrenceEditorRepeat='Repeat'
1264
-
1265
- i18n-recurrenceEditorDailyInterval="kendo.scheduler.recurrenceEditorDailyInterval|The text similar to 'day(s)' displayed in the Scheduler recurrence editor."
1266
- recurrenceEditorDailyInterval='day(s)'
1267
-
1268
- i18n-recurrenceEditorDailyRepeatEvery="kendo.scheduler.recurrenceEditorDailyRepeatEvery|The text similar to 'Repeat every' displayed in the Scheduler recurrence editor."
1269
- recurrenceEditorDailyRepeatEvery='Repeat every'
1270
-
1271
- i18n-recurrenceEditorWeeklyInterval="kendo.scheduler.recurrenceEditorWeeklyInterval|The text similar to 'week(s)' displayed in the Scheduler recurrence editor."
1272
- recurrenceEditorWeeklyInterval='week(s)'
1273
-
1274
- i18n-recurrenceEditorWeeklyRepeatEvery="kendo.scheduler.recurrenceEditorWeeklyRepeatEvery|The text similar to 'Repeat every' displayed in the Scheduler recurrence editor."
1275
- recurrenceEditorWeeklyRepeatEvery='Repeat every'
1276
-
1277
- i18n-recurrenceEditorWeeklyRepeatOn="kendo.scheduler.recurrenceEditorWeeklyRepeatOn|The text similar to 'Repeat on' displayed in the Scheduler recurrence editor."
1278
- recurrenceEditorWeeklyRepeatOn='Repeat on'
1279
-
1280
- i18n-recurrenceEditorMonthlyDay="kendo.scheduler.recurrenceEditorMonthlyDay|The text similar to 'Day' displayed in the Scheduler recurrence editor."
1281
- recurrenceEditorMonthlyDay='Day'
1282
-
1283
- i18n-recurrenceEditorMonthlyInterval="kendo.scheduler.recurrenceEditorMonthlyInterval|The text similar to 'month(s)' displayed in the Scheduler recurrence editor."
1284
- recurrenceEditorMonthlyInterval='month(s)'
1285
-
1286
- i18n-recurrenceEditorMonthlyRepeatEvery="kendo.scheduler.recurrenceEditorMonthlyRepeatEvery|The text similar to 'Repeat every' displayed in the Scheduler recurrence editor."
1287
- recurrenceEditorMonthlyRepeatEvery='Repeat every'
1288
-
1289
- i18n-recurrenceEditorMonthlyRepeatOn="kendo.scheduler.recurrenceEditorMonthlyRepeatOn|The text similar to 'Repeat on' displayed in the Scheduler recurrence editor."
1290
- recurrenceEditorMonthlyRepeatOn='Repeat on'
1291
-
1292
- i18n-recurrenceEditorYearlyOf="kendo.scheduler.recurrenceEditorYearlyOf|The text similar to 'of' displayed in the Scheduler recurrence editor."
1293
- recurrenceEditorYearlyOf='of'
1294
-
1295
- i18n-recurrenceEditorYearlyRepeatEvery="kendo.scheduler.recurrenceEditorYearlyRepeatEvery|The text similar to 'Repeat every' displayed in the Scheduler recurrence editor."
1296
- recurrenceEditorYearlyRepeatEvery='Repeat every'
1297
-
1298
- i18n-recurrenceEditorYearlyRepeatOn="kendo.scheduler.recurrenceEditorYearlyRepeatOn|The text similar to 'Repeat on' displayed in the Scheduler recurrence editor."
1299
- recurrenceEditorYearlyRepeatOn='Repeat on'
1300
-
1301
- i18n-recurrenceEditorYearlyInterval="kendo.scheduler.recurrenceEditorYearlyInterval|The text similar to 'year(s)' displayed in the Scheduler recurrence editor."
1302
- recurrenceEditorYearlyInterval='year(s)'
1303
-
1304
- i18n-recurrenceEditorFrequenciesDaily="kendo.scheduler.recurrenceEditorFrequenciesDaily|The text similar to 'Daily' displayed in the Scheduler recurrence editor."
1305
- recurrenceEditorFrequenciesDaily='Daily'
1306
-
1307
- i18n-recurrenceEditorFrequenciesMonthly="kendo.scheduler.recurrenceEditorFrequenciesMonthly|The text similar to 'Monthly' displayed in the Scheduler recurrence editor."
1308
- recurrenceEditorFrequenciesMonthly='Monthly'
1309
-
1310
- i18n-recurrenceEditorFrequenciesNever="kendo.scheduler.recurrenceEditorFrequenciesNever|The text similar to 'Never' displayed in the Scheduler recurrence editor."
1311
- recurrenceEditorFrequenciesNever='Never'
1312
-
1313
- i18n-recurrenceEditorFrequenciesWeekly="kendo.scheduler.recurrenceEditorFrequenciesWeekly|The text similar to 'Weekly' displayed in the Scheduler recurrence editor."
1314
- recurrenceEditorFrequenciesWeekly='Weekly'
1315
-
1316
- i18n-recurrenceEditorFrequenciesYearly="kendo.scheduler.recurrenceEditorFrequenciesYearly|The text similar to 'Yearly' displayed in the Scheduler recurrence editor."
1317
- recurrenceEditorFrequenciesYearly='Yearly'
1318
-
1319
- i18n-recurrenceEditorOffsetPositionsFirst="kendo.scheduler.recurrenceEditorOffsetPositionsFirst|The text similar to 'First' displayed in the Scheduler recurrence editor."
1320
- recurrenceEditorOffsetPositionsFirst='First'
1321
-
1322
- i18n-recurrenceEditorOffsetPositionsSecond="kendo.scheduler.recurrenceEditorOffsetPositionsSecond|The text similar to 'Second' displayed in the Scheduler recurrence editor."
1323
- recurrenceEditorOffsetPositionsSecond='Second'
1324
-
1325
- i18n-recurrenceEditorOffsetPositionsThird="kendo.scheduler.recurrenceEditorOffsetPositionsThird|The text similar to 'Third' displayed in the Scheduler recurrence editor."
1326
- recurrenceEditorOffsetPositionsThird='Third'
1327
-
1328
- i18n-recurrenceEditorOffsetPositionsFourth="kendo.scheduler.recurrenceEditorOffsetPositionsFourth|The text similar to 'Fourth' displayed in the Scheduler recurrence editor."
1329
- recurrenceEditorOffsetPositionsFourth='Fourth'
1330
-
1331
- i18n-recurrenceEditorOffsetPositionsLast="kendo.scheduler.recurrenceEditorOffsetPositionsLast|The text similar to 'Last' displayed in the Scheduler recurrence editor."
1332
- recurrenceEditorOffsetPositionsLast='Last'
1333
-
1334
- i18n-recurrenceEditorWeekdaysDay="kendo.scheduler.recurrenceEditorWeekdaysDay|The text similar to 'Day' displayed in the repeat by section of the monthly recurrence pattern."
1335
- recurrenceEditorWeekdaysDay='Day'
1336
-
1337
- i18n-recurrenceEditorWeekdaysWeekday="kendo.scheduler.recurrenceEditorWeekdaysWeekday|The text similar to 'Weekday' displayed in the repeat by section of the monthly recurrence pattern."
1338
- recurrenceEditorWeekdaysWeekday='Weekday'
1339
-
1340
- i18n-recurrenceEditorWeekdaysWeekendday="kendo.scheduler.recurrenceEditorWeekdaysWeekendday|The text similar to 'Weekend Day' displayed in the repeat by section of the monthly recurrence pattern."
1341
- recurrenceEditorWeekdaysWeekendday='Weekend Day'
1342
-
1343
- i18n-recurrenceEditorEndAfter="kendo.scheduler.recurrenceEditorEndAfter|The text similar to 'After' displayed in the Scheduler recurrence editor."
1344
- recurrenceEditorEndAfter='After'
1345
-
1346
- i18n-recurrenceEditorEndOccurrence="kendo.scheduler.recurrenceEditorEndOccurrence|The text similar to 'occurrence(s)' displayed in the Scheduler recurrence editor."
1347
- recurrenceEditorEndOccurrence='occurrence(s)'
1348
-
1349
- i18n-recurrenceEditorEndLabel="kendo.scheduler.recurrenceEditorEndLabel|The text similar to 'End' displayed in the Scheduler recurrence editor."
1350
- recurrenceEditorEndLabel='End'
1351
-
1352
- i18n-recurrenceEditorEndNever="kendo.scheduler.recurrenceEditorEndNever|The text similar to 'Never' displayed in the Scheduler recurrence editor."
1353
- recurrenceEditorEndNever='Never'
1354
-
1355
- i18n-recurrenceEditorEndOn="kendo.scheduler.recurrenceEditorEndOn|The text similar to 'On' displayed in the Scheduler recurrence editor."
1356
- recurrenceEditorEndOn='On'
1357
-
1358
- i18n-destroy="kendo.scheduler.destroy|The text of the 'Delete' button displayed in the Scheduler remove confirmation dialog."
1359
- destroy='Delete'
1360
-
1361
- i18n-deleteConfirmation="kendo.scheduler.deleteConfirmation|The text similar to 'Are you sure you want to delete this event?' displayed in Scheduler remove confirmation dialog."
1362
- deleteConfirmation='Are you sure you want to delete this event?'
1363
-
1364
- i18n-editRecurringConfirmation="kendo.scheduler.editRecurringConfirmation|The text similar to 'Do you want to edit only this event occurrence or the whole series?' displayed in the Scheduler recurring confirmation dialog."
1365
- editRecurringConfirmation='Do you want to edit only this event occurrence or the whole series?'
1366
-
1367
- i18n-editOccurrence="kendo.scheduler.editOccurrence|The text of the 'Edit current occurrence' button displayed in the Scheduler recurring confirmation dialog."
1368
- editOccurrence='Edit current occurrence'
1369
-
1370
- i18n-editSeries="kendo.scheduler.editSeries|The text of the 'Edit the series' button displayed in the Scheduler recurring confirmation dialog."
1371
- editSeries='Edit the series'
1372
-
1373
- i18n-deleteRecurringConfirmation="kendo.scheduler.deleteRecurringConfirmation|The text similar to 'Do you want to delete only this event occurrence or the whole series?' displayed in the Scheduler recurring confirmation dialog."
1374
- deleteRecurringConfirmation='Do you want to delete only this event occurrence or the whole series?'
1375
-
1376
- i18n-deleteOccurrence="kendo.scheduler.deleteOccurrence|The text of the 'Delete current occurrence' button displayed in the Scheduler recurring confirmation dialog."
1377
- deleteOccurrence='Delete current occurrence'
1378
-
1379
- i18n-deleteSeries="kendo.scheduler.deleteSeries|The text similar of the 'Delete the series' button displayed in the Scheduler recurring confirmation dialog."
1380
- deleteSeries='Delete the series'
1381
-
1382
- i18n-deleteDialogTitle="kendo.scheduler.deleteDialogTitle|The title of the remove confirmation dialog, similar to 'Delete Event'."
1383
- deleteDialogTitle='Delete Event'
1384
-
1385
- i18n-deleteRecurringDialogTitle="kendo.scheduler.deleteRecurringDialogTitle|The title of the recurring remove confirmation dialog, similar to 'Delete Recurring Item'"
1386
- deleteRecurringDialogTitle='Delete Recurring Item'
1387
-
1388
- i18n-editRecurringDialogTitle="kendo.scheduler.editRecurringDialogTitle|The title of the recurring edit confirmation dialog, similar to 'Edit Recurring Item'"
1389
- editRecurringDialogTitle='Edit Recurring Item'
1390
-
1391
- i18n-selectView="kendo.scheduler.selectView|The value of the aria-label attribute of the <select> element used for switching the Scheduler views."
1392
- selectView='Select View'
1393
- >
1394
- </ng-container>
1395
-
1396
- @if (toolbarVisibilityState) {
1397
- <kendo-scheduler-toolbar
1398
- [dateRange]="dateRangeStream"
1399
- [selectedDate]="selectedDateStream"
1400
- [views]="$any(views)"
1401
- [selectedView]="selectedView"
1402
- [template]="toolbarTemplate"
1403
- [min]="min"
1404
- [max]="max"
1405
- (navigate)="onNavigationAction($event)"
1406
- (toolbarWidthChange)="onToolbarWidthChange($event)"
1407
- ></kendo-scheduler-toolbar>
1408
- }
1409
-
1410
- <ng-container *ngTemplateOutlet="selectedView?.template">
1411
- </ng-container>
1412
-
1413
- <ng-container #confirmationDialogContainer>
1414
- </ng-container>
1415
-
1416
- <kendo-scheduler-edit-dialog
1417
- [resources]="resources"
1418
- [editTemplate]="editDialogTemplate"
1419
- [timezone]="timezone"
1420
- [weekStart]="weekStart"
1421
- [fields]="modelFields"
1422
- ></kendo-scheduler-edit-dialog>
1423
-
1424
- <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
1425
-
1426
- <div [loading]="loading" kendoSchedulerLoading>
1427
- </div>
1428
-
1429
- @if (showLicenseWatermark) {
1430
- <div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
1431
- }
1432
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoSchedulerLocalizedMessages]" }, { kind: "component", type: ToolbarComponent, selector: "kendo-scheduler-toolbar", inputs: ["selectedView", "views", "dateRange", "selectedDate", "template", "min", "max"], outputs: ["navigate", "toolbarWidthChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EditDialogComponent, selector: "kendo-scheduler-edit-dialog", inputs: ["resources", "timezone", "weekStart", "fields", "editTemplate"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: LoadingComponent, selector: "[kendoSchedulerLoading]", inputs: ["loading"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1433
- }
1434
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SchedulerComponent, decorators: [{
1435
- type: Component,
1436
- args: [{
1437
- changeDetection: ChangeDetectionStrategy.OnPush,
1438
- selector: 'kendo-scheduler',
1439
- providers: [
1440
- EditService,
1441
- DialogsService,
1442
- DomEventsService,
1443
- LocalDataChangesService,
1444
- FocusService,
1445
- SchedulerLocalizationService,
1446
- {
1447
- provide: LocalizationService,
1448
- useExisting: SchedulerLocalizationService
1449
- },
1450
- {
1451
- provide: L10N_PREFIX,
1452
- useValue: 'kendo.scheduler'
1453
- },
1454
- ToolbarService,
1455
- ViewContextService,
1456
- ViewStateService,
1457
- PDFService
1458
- ],
1459
- template: `
1460
- <ng-container kendoSchedulerLocalizedMessages
1461
- i18n-allEvents="kendo.scheduler.allEvents|The All events text displayed in the timeline views when there is no vertical grouping."
1462
- allEvents="All events"
1463
-
1464
- i18n-allDay="kendo.scheduler.allDay|The all day text displayed in the day and week views."
1465
- allDay="all day"
1466
-
1467
- i18n-dateHeader="kendo.scheduler.dateHeader|The date header text displayed in the agenda view."
1468
- dateHeader="Date"
1469
-
1470
- i18n-timeHeader="kendo.scheduler.timeHeader|The time header text displayed in the agenda view."
1471
- timeHeader="Time"
1472
-
1473
- i18n-deleteTitle="kendo.scheduler.deleteTitle|The delete icon title."
1474
- deleteTitle="Delete"
1475
-
1476
- i18n-eventHeader="kendo.scheduler.eventHeader|The event header text displayed in the agenda view."
1477
- eventHeader="Event"
1478
-
1479
- i18n-nextTitle="kendo.scheduler.nextTitle|The title of the navigation next button."
1480
- nextTitle="Next"
1481
-
1482
- i18n-previousTitle="kendo.scheduler.previousTitle|The title of the navigation previous button."
1483
- previousTitle="Previous"
1484
-
1485
- i18n-showFullDay="kendo.scheduler.showFullDay|The text of the show full day button displayed in the footer of the day, week and timeline views."
1486
- showFullDay="Show full day"
1487
-
1488
- i18n-showWorkDay="kendo.scheduler.showWorkDay|The text of the show work day button displayed in the footer of the day, week and timeline views."
1489
- showWorkDay="Show business hours"
1490
-
1491
- i18n-today="kendo.scheduler.today|The today button text displayed in the navigation."
1492
- today="Today"
1493
-
1494
- i18n-calendarToday="kendo.scheduler.calendarToday|The text of today's date in the header of the Calendar."
1495
- calendarToday="TODAY"
1496
-
1497
- i18n-dayViewTitle="kendo.scheduler.dayViewTitle|The day view title."
1498
- dayViewTitle="Day"
1499
-
1500
- i18n-multiDayViewTitle="kendo.scheduler.multiDayViewTitle|The multi day view title."
1501
- multiDayViewTitle="Multi-Day"
1502
-
1503
- i18n-weekViewTitle="kendo.scheduler.weekViewTitle|The week view title."
1504
- weekViewTitle="Week"
1505
-
1506
- i18n-workWeekViewTitle="kendo.scheduler.workWeekViewTitle|The work week view title."
1507
- workWeekViewTitle="Work Week"
1508
-
1509
- i18n-monthViewTitle="kendo.scheduler.monthViewTitle|The month view title."
1510
- monthViewTitle="Month"
1511
-
1512
- i18n-multiWeekViewTitle="kendo.scheduler.multiWeekViewTitle|The multi week view title."
1513
- multiWeekViewTitle="Multi-Week"
1514
-
1515
- i18n-timelineViewTitle="kendo.scheduler.timelineViewTitle|The timeline view title."
1516
- timelineViewTitle="Timeline"
1517
-
1518
- i18n-timelineWeekViewTitle="kendo.scheduler.timelineWeekViewTitle|The timeline week view title."
1519
- timelineWeekViewTitle="Timeline Week"
1520
-
1521
- i18n-timelineMonthViewTitle="kendo.scheduler.timelineMonthViewTitle|The timeline month view title."
1522
- timelineMonthViewTitle="Timeline Month"
1523
-
1524
- i18n-agendaViewTitle="kendo.scheduler.agendaViewTitle|The agenda view title."
1525
- agendaViewTitle="Agenda"
1526
-
1527
- i18n-yearViewTitle="kendo.scheduler.yearViewTitle|The year view title."
1528
- yearViewTitle="Year"
1529
-
1530
- i18n-yearViewNoEvents="kendo.scheduler.yearViewNoEvents|The year view no events message."
1531
- yearViewNoEvents="No events on this date."
1532
-
1533
- i18n-cancel="kendo.scheduler.cancel|The text similar to 'Cancel' displayed in the Scheduler."
1534
- cancel="Cancel"
1535
-
1536
- i18n-save="kendo.scheduler.save|The text similar to 'Save' displayed in the Scheduler."
1537
- save="Save"
1538
-
1539
- i18n-editorEventTitle="kendo.scheduler.editorEventTitle|The text similar to 'Title' displayed in the Scheduler event editor."
1540
- editorEventTitle='Title'
1541
-
1542
- i18n-editorEventStart="kendo.scheduler.editorEventStart|The text similar to 'Start' displayed in the Scheduler event editor."
1543
- editorEventStart="Start"
1544
-
1545
- i18n-editorEventStartTimeZone="kendo.scheduler.editorEventStartTimeZone|The text similar to 'Start Time Zone' displayed in the Scheduler event editor."
1546
- editorEventStartTimeZone="Start Time Zone"
1547
-
1548
- i18n-editorEventEnd="kendo.scheduler.editorEventEnd|The text similar to 'End' displayed in the Scheduler event editor."
1549
- editorEventEnd="End"
1550
-
1551
- i18n-editorEventEndTimeZone="kendo.scheduler.editorEventEndTimeZone|The text similar to 'End Time Zone' displayed in the Scheduler event editor."
1552
- editorEventEndTimeZone="End Time Zone"
1553
-
1554
- i18n-editorEventAllDay="kendo.scheduler.editorEventAllDay|The text similar to 'All Day event' displayed in the Scheduler event editor."
1555
- editorEventAllDay="All Day Event"
1556
-
1557
- i18n-editorEventDescription="kendo.scheduler.editorEventDescription|The text similar to 'Description' displayed in the Scheduler event editor."
1558
- editorEventDescription="Description"
1559
-
1560
- i18n-editorEventSeparateTimeZones="kendo.scheduler.editorEventSeparateTimeZones|The text similar to 'Use separate Start and End Time Zones' displayed in the Scheduler event editor."
1561
- editorEventSeparateTimeZones="End in different Time Zone"
1562
-
1563
- i18n-editorEventTimeZone="kendo.scheduler.editorEventTimeZone|The text similar to 'Time Zone' displayed in the Scheduler event editor."
1564
- editorEventTimeZone='Specify Time Zone'
1565
-
1566
- i18n-editorTitle="kendo.scheduler.editorTitle|The text similar to 'Event' displayed as title of the Scheduler event editor."
1567
- editorTitle='Event'
1568
-
1569
- i18n-editorDateInputsToday="kendo.scheduler.editorDateInputsToday|The Today button text in the popup of the DateTimePickers and DatePickers in the Scheduler event editor."
1570
- editorDateInputsToday='Today'
1571
-
1572
- i18n-editorDateInputsToggle="kendo.scheduler.editorDateInputsToggle|The title of the Toggle button of the DateTimePickers and DatePickers in the Scheduler event editor."
1573
- editorDateInputsToggle='Toggle calendar'
1574
-
1575
- i18n-editorDateInputsParentViewButton="kendo.scheduler.editorDateInputsParentViewButton|The title of the Parent View button in the popup of the DateTimePickers and DatePickers in the Scheduler event editor."
1576
- editorDateInputsParentViewButton='Navigate to parent view'
1577
-
1578
- i18n-editorDateInputsNow="kendo.scheduler.editorDateInputsAccept|The text of the Now button in the popup footer of the DateTimePickers and DatePickers in the Scheduler event editor."
1579
- editorDateInputsAccept='Now'
1580
-
1581
- i18n-editorDateInputsNowLabel="kendo.scheduler.editorDateInputsAcceptLabel|The label of the Now button in the popup footer of the DateTimePickers and DatePickers in the Scheduler event editor."
1582
- editorDateInputsAcceptLabel='Select now'
1583
-
1584
- i18n-editorDateInputsAccept="kendo.scheduler.editorDateInputsAccept|The text of the Accept button in the popup footer of the DateTimePickers and DatePickers in the Scheduler event editor."
1585
- editorDateInputsAccept='Set'
1586
-
1587
- i18n-editorDateInputsAcceptLabel="kendo.scheduler.editorDateInputsAcceptLabel|The label of the Accept button in the popup footer of the DateTimePickers and DatePickers in the Scheduler event editor."
1588
- editorDateInputsAcceptLabel='Set'
1589
-
1590
- i18n-editorDateInputsCancel="kendo.scheduler.editorDateInputsCancel|The text of the Cancel button in the popup footer of the DateTimePickers and DatePickers in the Scheduler event editor."
1591
- editorDateInputsCancel='Cancel'
1592
-
1593
- i18n-editorDateInputsCancelLabel="kendo.scheduler.editorDateInputsCancelLabel|The label of the Cancel button in the popup footer of the DateTimePickers and DatePickers in the Scheduler event editor."
1594
- editorDateInputsCancelLabel='Cancel'
1595
-
1596
- i18n-editorDateInputsDateTab="kendo.scheduler.editorDateInputsDateTab|The text of the Date tab in the popup header of the DateTimePickers and DatePickers in the Scheduler event editor."
1597
- editorDateInputsDateTab='Date'
1598
-
1599
- i18n-editorDateInputsDateTabLabel="kendo.scheduler.editorDateInputsDateTabLabel|The label of the Date tab in the popup header of the DateTimePickers and DatePickers in the Scheduler event editor."
1600
- editorDateInputsDateTabLabel='Date tab'
1601
-
1602
- i18n-editorDateInputsTimeTab="kendo.scheduler.editorDateInputsTimeTab|The text of the Time tab in the popup header of the DateTimePickers and DatePickers in the Scheduler event editor."
1603
- editorDateInputsTimeTab='Time'
1604
-
1605
- i18n-editorDateInputsTimeTabLabel="kendo.scheduler.editorDateInputsTimeTabLabel|The label of the Time tab in the popup header of the DateTimePickers and DatePickers in the Scheduler event editor."
1606
- editorDateInputsTimeTabLabel='Time tab'
1607
-
1608
- i18n-recurrenceEditorDateInputsToday="kendo.scheduler.recurrenceEditorDateInputsToday|The Today button text in the popup of the DatePickers in the Scheduler recurrence editor."
1609
- recurrenceEditorDateInputsToday='Today'
1610
-
1611
- i18n-recurrenceEditorDateInputsToggle="kendo.scheduler.recurrenceEditorDateInputsToggle|The title of the Toggle button of the DatePickers in the Scheduler recurrence editor."
1612
- recurrenceEditorDateInputsToggle='Toggle calendar'
1613
-
1614
- i18n-recurrenceEditorDateInputsParentViewButton="kendo.scheduler.recurrenceEditorDateInputsParentViewButton|The title of the Parent View button in the popup of the DatePickers in the Scheduler recurrence editor."
1615
- recurrenceEditorDateInputsParentViewButton='Navigate to parent view'
1616
-
1617
- i18n-recurrenceEditorNumericIncrement="kendo.scheduler.recurrenceEditorNumericIncrement|The title of the Increment button of the NumericTextBox in the Scheduler recurrence editor."
1618
- recurrenceEditorNumericIncrement='Increase value'
1619
-
1620
- i18n-recurrenceEditorNumericDecrement="kendo.scheduler.recurrenceEditorNumericDecrement|The title of the Decrement button of the NumericTextBox in the Scheduler recurrence editor."
1621
- recurrenceEditorNumericDecrement='Decrease value'
1622
-
1623
- i18n-recurrenceEditorRepeat="kendo.scheduler.recurrenceEditorRepeat|The text similar to 'Repeat' displayed in the Scheduler recurrence editor."
1624
- recurrenceEditorRepeat='Repeat'
1625
-
1626
- i18n-recurrenceEditorDailyInterval="kendo.scheduler.recurrenceEditorDailyInterval|The text similar to 'day(s)' displayed in the Scheduler recurrence editor."
1627
- recurrenceEditorDailyInterval='day(s)'
1628
-
1629
- i18n-recurrenceEditorDailyRepeatEvery="kendo.scheduler.recurrenceEditorDailyRepeatEvery|The text similar to 'Repeat every' displayed in the Scheduler recurrence editor."
1630
- recurrenceEditorDailyRepeatEvery='Repeat every'
1631
-
1632
- i18n-recurrenceEditorWeeklyInterval="kendo.scheduler.recurrenceEditorWeeklyInterval|The text similar to 'week(s)' displayed in the Scheduler recurrence editor."
1633
- recurrenceEditorWeeklyInterval='week(s)'
1634
-
1635
- i18n-recurrenceEditorWeeklyRepeatEvery="kendo.scheduler.recurrenceEditorWeeklyRepeatEvery|The text similar to 'Repeat every' displayed in the Scheduler recurrence editor."
1636
- recurrenceEditorWeeklyRepeatEvery='Repeat every'
1637
-
1638
- i18n-recurrenceEditorWeeklyRepeatOn="kendo.scheduler.recurrenceEditorWeeklyRepeatOn|The text similar to 'Repeat on' displayed in the Scheduler recurrence editor."
1639
- recurrenceEditorWeeklyRepeatOn='Repeat on'
1640
-
1641
- i18n-recurrenceEditorMonthlyDay="kendo.scheduler.recurrenceEditorMonthlyDay|The text similar to 'Day' displayed in the Scheduler recurrence editor."
1642
- recurrenceEditorMonthlyDay='Day'
1643
-
1644
- i18n-recurrenceEditorMonthlyInterval="kendo.scheduler.recurrenceEditorMonthlyInterval|The text similar to 'month(s)' displayed in the Scheduler recurrence editor."
1645
- recurrenceEditorMonthlyInterval='month(s)'
1646
-
1647
- i18n-recurrenceEditorMonthlyRepeatEvery="kendo.scheduler.recurrenceEditorMonthlyRepeatEvery|The text similar to 'Repeat every' displayed in the Scheduler recurrence editor."
1648
- recurrenceEditorMonthlyRepeatEvery='Repeat every'
1649
-
1650
- i18n-recurrenceEditorMonthlyRepeatOn="kendo.scheduler.recurrenceEditorMonthlyRepeatOn|The text similar to 'Repeat on' displayed in the Scheduler recurrence editor."
1651
- recurrenceEditorMonthlyRepeatOn='Repeat on'
1652
-
1653
- i18n-recurrenceEditorYearlyOf="kendo.scheduler.recurrenceEditorYearlyOf|The text similar to 'of' displayed in the Scheduler recurrence editor."
1654
- recurrenceEditorYearlyOf='of'
1655
-
1656
- i18n-recurrenceEditorYearlyRepeatEvery="kendo.scheduler.recurrenceEditorYearlyRepeatEvery|The text similar to 'Repeat every' displayed in the Scheduler recurrence editor."
1657
- recurrenceEditorYearlyRepeatEvery='Repeat every'
1658
-
1659
- i18n-recurrenceEditorYearlyRepeatOn="kendo.scheduler.recurrenceEditorYearlyRepeatOn|The text similar to 'Repeat on' displayed in the Scheduler recurrence editor."
1660
- recurrenceEditorYearlyRepeatOn='Repeat on'
1661
-
1662
- i18n-recurrenceEditorYearlyInterval="kendo.scheduler.recurrenceEditorYearlyInterval|The text similar to 'year(s)' displayed in the Scheduler recurrence editor."
1663
- recurrenceEditorYearlyInterval='year(s)'
1664
-
1665
- i18n-recurrenceEditorFrequenciesDaily="kendo.scheduler.recurrenceEditorFrequenciesDaily|The text similar to 'Daily' displayed in the Scheduler recurrence editor."
1666
- recurrenceEditorFrequenciesDaily='Daily'
1667
-
1668
- i18n-recurrenceEditorFrequenciesMonthly="kendo.scheduler.recurrenceEditorFrequenciesMonthly|The text similar to 'Monthly' displayed in the Scheduler recurrence editor."
1669
- recurrenceEditorFrequenciesMonthly='Monthly'
1670
-
1671
- i18n-recurrenceEditorFrequenciesNever="kendo.scheduler.recurrenceEditorFrequenciesNever|The text similar to 'Never' displayed in the Scheduler recurrence editor."
1672
- recurrenceEditorFrequenciesNever='Never'
1673
-
1674
- i18n-recurrenceEditorFrequenciesWeekly="kendo.scheduler.recurrenceEditorFrequenciesWeekly|The text similar to 'Weekly' displayed in the Scheduler recurrence editor."
1675
- recurrenceEditorFrequenciesWeekly='Weekly'
1676
-
1677
- i18n-recurrenceEditorFrequenciesYearly="kendo.scheduler.recurrenceEditorFrequenciesYearly|The text similar to 'Yearly' displayed in the Scheduler recurrence editor."
1678
- recurrenceEditorFrequenciesYearly='Yearly'
1679
-
1680
- i18n-recurrenceEditorOffsetPositionsFirst="kendo.scheduler.recurrenceEditorOffsetPositionsFirst|The text similar to 'First' displayed in the Scheduler recurrence editor."
1681
- recurrenceEditorOffsetPositionsFirst='First'
1682
-
1683
- i18n-recurrenceEditorOffsetPositionsSecond="kendo.scheduler.recurrenceEditorOffsetPositionsSecond|The text similar to 'Second' displayed in the Scheduler recurrence editor."
1684
- recurrenceEditorOffsetPositionsSecond='Second'
1685
-
1686
- i18n-recurrenceEditorOffsetPositionsThird="kendo.scheduler.recurrenceEditorOffsetPositionsThird|The text similar to 'Third' displayed in the Scheduler recurrence editor."
1687
- recurrenceEditorOffsetPositionsThird='Third'
1688
-
1689
- i18n-recurrenceEditorOffsetPositionsFourth="kendo.scheduler.recurrenceEditorOffsetPositionsFourth|The text similar to 'Fourth' displayed in the Scheduler recurrence editor."
1690
- recurrenceEditorOffsetPositionsFourth='Fourth'
1691
-
1692
- i18n-recurrenceEditorOffsetPositionsLast="kendo.scheduler.recurrenceEditorOffsetPositionsLast|The text similar to 'Last' displayed in the Scheduler recurrence editor."
1693
- recurrenceEditorOffsetPositionsLast='Last'
1694
-
1695
- i18n-recurrenceEditorWeekdaysDay="kendo.scheduler.recurrenceEditorWeekdaysDay|The text similar to 'Day' displayed in the repeat by section of the monthly recurrence pattern."
1696
- recurrenceEditorWeekdaysDay='Day'
1697
-
1698
- i18n-recurrenceEditorWeekdaysWeekday="kendo.scheduler.recurrenceEditorWeekdaysWeekday|The text similar to 'Weekday' displayed in the repeat by section of the monthly recurrence pattern."
1699
- recurrenceEditorWeekdaysWeekday='Weekday'
1700
-
1701
- i18n-recurrenceEditorWeekdaysWeekendday="kendo.scheduler.recurrenceEditorWeekdaysWeekendday|The text similar to 'Weekend Day' displayed in the repeat by section of the monthly recurrence pattern."
1702
- recurrenceEditorWeekdaysWeekendday='Weekend Day'
1703
-
1704
- i18n-recurrenceEditorEndAfter="kendo.scheduler.recurrenceEditorEndAfter|The text similar to 'After' displayed in the Scheduler recurrence editor."
1705
- recurrenceEditorEndAfter='After'
1706
-
1707
- i18n-recurrenceEditorEndOccurrence="kendo.scheduler.recurrenceEditorEndOccurrence|The text similar to 'occurrence(s)' displayed in the Scheduler recurrence editor."
1708
- recurrenceEditorEndOccurrence='occurrence(s)'
1709
-
1710
- i18n-recurrenceEditorEndLabel="kendo.scheduler.recurrenceEditorEndLabel|The text similar to 'End' displayed in the Scheduler recurrence editor."
1711
- recurrenceEditorEndLabel='End'
1712
-
1713
- i18n-recurrenceEditorEndNever="kendo.scheduler.recurrenceEditorEndNever|The text similar to 'Never' displayed in the Scheduler recurrence editor."
1714
- recurrenceEditorEndNever='Never'
1715
-
1716
- i18n-recurrenceEditorEndOn="kendo.scheduler.recurrenceEditorEndOn|The text similar to 'On' displayed in the Scheduler recurrence editor."
1717
- recurrenceEditorEndOn='On'
1718
-
1719
- i18n-destroy="kendo.scheduler.destroy|The text of the 'Delete' button displayed in the Scheduler remove confirmation dialog."
1720
- destroy='Delete'
1721
-
1722
- i18n-deleteConfirmation="kendo.scheduler.deleteConfirmation|The text similar to 'Are you sure you want to delete this event?' displayed in Scheduler remove confirmation dialog."
1723
- deleteConfirmation='Are you sure you want to delete this event?'
1724
-
1725
- i18n-editRecurringConfirmation="kendo.scheduler.editRecurringConfirmation|The text similar to 'Do you want to edit only this event occurrence or the whole series?' displayed in the Scheduler recurring confirmation dialog."
1726
- editRecurringConfirmation='Do you want to edit only this event occurrence or the whole series?'
1727
-
1728
- i18n-editOccurrence="kendo.scheduler.editOccurrence|The text of the 'Edit current occurrence' button displayed in the Scheduler recurring confirmation dialog."
1729
- editOccurrence='Edit current occurrence'
1730
-
1731
- i18n-editSeries="kendo.scheduler.editSeries|The text of the 'Edit the series' button displayed in the Scheduler recurring confirmation dialog."
1732
- editSeries='Edit the series'
1733
-
1734
- i18n-deleteRecurringConfirmation="kendo.scheduler.deleteRecurringConfirmation|The text similar to 'Do you want to delete only this event occurrence or the whole series?' displayed in the Scheduler recurring confirmation dialog."
1735
- deleteRecurringConfirmation='Do you want to delete only this event occurrence or the whole series?'
1736
-
1737
- i18n-deleteOccurrence="kendo.scheduler.deleteOccurrence|The text of the 'Delete current occurrence' button displayed in the Scheduler recurring confirmation dialog."
1738
- deleteOccurrence='Delete current occurrence'
1739
-
1740
- i18n-deleteSeries="kendo.scheduler.deleteSeries|The text similar of the 'Delete the series' button displayed in the Scheduler recurring confirmation dialog."
1741
- deleteSeries='Delete the series'
1742
-
1743
- i18n-deleteDialogTitle="kendo.scheduler.deleteDialogTitle|The title of the remove confirmation dialog, similar to 'Delete Event'."
1744
- deleteDialogTitle='Delete Event'
1745
-
1746
- i18n-deleteRecurringDialogTitle="kendo.scheduler.deleteRecurringDialogTitle|The title of the recurring remove confirmation dialog, similar to 'Delete Recurring Item'"
1747
- deleteRecurringDialogTitle='Delete Recurring Item'
1748
-
1749
- i18n-editRecurringDialogTitle="kendo.scheduler.editRecurringDialogTitle|The title of the recurring edit confirmation dialog, similar to 'Edit Recurring Item'"
1750
- editRecurringDialogTitle='Edit Recurring Item'
1751
-
1752
- i18n-selectView="kendo.scheduler.selectView|The value of the aria-label attribute of the <select> element used for switching the Scheduler views."
1753
- selectView='Select View'
1754
- >
1755
- </ng-container>
1756
-
1757
- @if (toolbarVisibilityState) {
1758
- <kendo-scheduler-toolbar
1759
- [dateRange]="dateRangeStream"
1760
- [selectedDate]="selectedDateStream"
1761
- [views]="$any(views)"
1762
- [selectedView]="selectedView"
1763
- [template]="toolbarTemplate"
1764
- [min]="min"
1765
- [max]="max"
1766
- (navigate)="onNavigationAction($event)"
1767
- (toolbarWidthChange)="onToolbarWidthChange($event)"
1768
- ></kendo-scheduler-toolbar>
1769
- }
1770
-
1771
- <ng-container *ngTemplateOutlet="selectedView?.template">
1772
- </ng-container>
1773
-
1774
- <ng-container #confirmationDialogContainer>
1775
- </ng-container>
1776
-
1777
- <kendo-scheduler-edit-dialog
1778
- [resources]="resources"
1779
- [editTemplate]="editDialogTemplate"
1780
- [timezone]="timezone"
1781
- [weekStart]="weekStart"
1782
- [fields]="modelFields"
1783
- ></kendo-scheduler-edit-dialog>
1784
-
1785
- <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
1786
-
1787
- <div [loading]="loading" kendoSchedulerLoading>
1788
- </div>
1789
-
1790
- @if (showLicenseWatermark) {
1791
- <div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
1792
- }
1793
- `,
1794
- standalone: true,
1795
- imports: [LocalizedMessagesDirective, ToolbarComponent, NgTemplateOutlet, EditDialogComponent, ResizeSensorComponent, LoadingComponent, WatermarkOverlayComponent]
1796
- }]
1797
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ViewContextService }, { type: i2.ViewStateService }, { type: i3.EditService }, { type: i4.DialogsService }, { type: i5.IntlService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i6.PDFService }, { type: i7.LocalizationService }, { type: i8.DomEventsService }, { type: i0.Renderer2 }, { type: i9.FocusService }], propDecorators: { hostClasses: [{
1798
- type: HostBinding,
1799
- args: ['class.k-scheduler']
1800
- }], ariaRole: [{
1801
- type: HostBinding,
1802
- args: ['attr.role']
1803
- }], rtl: [{
1804
- type: HostBinding,
1805
- args: ['class.k-rtl']
1806
- }], dir: [{
1807
- type: HostBinding,
1808
- args: ['attr.dir']
1809
- }], selectedViewIndex: [{
1810
- type: Input
1811
- }], editable: [{
1812
- type: Input
1813
- }], selectable: [{
1814
- type: Input
1815
- }], min: [{
1816
- type: Input
1817
- }], max: [{
1818
- type: Input
1819
- }], eventHeight: [{
1820
- type: Input
1821
- }], columnWidth: [{
1822
- type: Input
1823
- }], showWorkHours: [{
1824
- type: Input
1825
- }], startTime: [{
1826
- type: Input
1827
- }], endTime: [{
1828
- type: Input
1829
- }], workDayStart: [{
1830
- type: Input
1831
- }], workDayEnd: [{
1832
- type: Input
1833
- }], workWeekStart: [{
1834
- type: Input
1835
- }], workWeekEnd: [{
1836
- type: Input
1837
- }], weekStart: [{
1838
- type: Input
1839
- }], slotDuration: [{
1840
- type: Input
1841
- }], slotDivisions: [{
1842
- type: Input
1843
- }], slotFill: [{
1844
- type: Input
1845
- }], allDaySlot: [{
1846
- type: Input
1847
- }], scrollTime: [{
1848
- type: Input
1849
- }], group: [{
1850
- type: Input
1851
- }], resources: [{
1852
- type: Input
1853
- }], loading: [{
1854
- type: Input
1855
- }], timezone: [{
1856
- type: Input
1857
- }], events: [{
1858
- type: Input
1859
- }], selectedDate: [{
1860
- type: Input
1861
- }], modelFields: [{
1862
- type: Input
1863
- }], currentTimeMarker: [{
1864
- type: Input
1865
- }], highlightOngoingEvents: [{
1866
- type: Input
1867
- }], showToolbar: [{
1868
- type: Input
1869
- }], showFooter: [{
1870
- type: Input
1871
- }], slotClass: [{
1872
- type: Input
1873
- }], eventClass: [{
1874
- type: Input
1875
- }], eventStyles: [{
1876
- type: Input
1877
- }], hiddenDays: [{
1878
- type: Input
1879
- }], isSlotSelected: [{
1880
- type: Input
1881
- }], selectedViewIndexChange: [{
1882
- type: Output
1883
- }], navigate: [{
1884
- type: Output
1885
- }], dateChange: [{
1886
- type: Output
1887
- }], slotClick: [{
1888
- type: Output
1889
- }], slotDblClick: [{
1890
- type: Output
1891
- }], create: [{
1892
- type: Output
1893
- }], eventClick: [{
1894
- type: Output
1895
- }], eventDblClick: [{
1896
- type: Output
1897
- }], eventKeydown: [{
1898
- type: Output
1899
- }], cancel: [{
1900
- type: Output
1901
- }], save: [{
1902
- type: Output
1903
- }], remove: [{
1904
- type: Output
1905
- }], resizeStart: [{
1906
- type: Output
1907
- }], resize: [{
1908
- type: Output
1909
- }], resizeEnd: [{
1910
- type: Output
1911
- }], dragStart: [{
1912
- type: Output
1913
- }], drag: [{
1914
- type: Output
1915
- }], dragEnd: [{
1916
- type: Output
1917
- }], slotDragStart: [{
1918
- type: Output
1919
- }], slotDrag: [{
1920
- type: Output
1921
- }], slotDragEnd: [{
1922
- type: Output
1923
- }], pdfExport: [{
1924
- type: Output
1925
- }], schedulerResize: [{
1926
- type: Output
1927
- }], editDialogTemplate: [{
1928
- type: ContentChild,
1929
- args: [EditDialogTemplateDirective, { static: false }]
1930
- }], toolbarTemplate: [{
1931
- type: ContentChild,
1932
- args: [ToolbarTemplateDirective, { static: false }]
1933
- }], views: [{
1934
- type: ContentChildren,
1935
- args: [SchedulerView]
1936
- }], resizeSensor: [{
1937
- type: ViewChild,
1938
- args: [ResizeSensorComponent, { static: true }]
1939
- }], confirmationDialogContainerRef: [{
1940
- type: ViewChild,
1941
- args: ["confirmationDialogContainer", { read: ViewContainerRef, static: true }]
1942
- }], loadingComponent: [{
1943
- type: ViewChild,
1944
- args: [LoadingComponent, { static: true }]
1945
- }], allDayEventTemplate: [{
1946
- type: ContentChildren,
1947
- args: [AllDayEventTemplateDirective]
1948
- }], eventTemplate: [{
1949
- type: ContentChildren,
1950
- args: [EventTemplateDirective]
1951
- }], timeSlotTemplate: [{
1952
- type: ContentChildren,
1953
- args: [TimeSlotTemplateDirective]
1954
- }], minorTimeHeaderTemplate: [{
1955
- type: ContentChildren,
1956
- args: [MinorTimeHeaderTemplateDirective]
1957
- }], majorTimeHeaderTemplate: [{
1958
- type: ContentChildren,
1959
- args: [MajorTimeHeaderTemplateDirective]
1960
- }], monthDaySlotTemplate: [{
1961
- type: ContentChildren,
1962
- args: [MonthDaySlotTemplateDirective]
1963
- }], multiWeekDaySlotTemplate: [{
1964
- type: ContentChildren,
1965
- args: [MultiWeekDaySlotTemplateDirective]
1966
- }], dateHeaderTemplate: [{
1967
- type: ContentChildren,
1968
- args: [DateHeaderTemplateDirective]
1969
- }], allDaySlotTemplate: [{
1970
- type: ContentChildren,
1971
- args: [AllDaySlotTemplateDirective]
1972
- }], groupHeaderTemplate: [{
1973
- type: ContentChildren,
1974
- args: [GroupHeaderTemplateDirective]
1975
- }], agendaDateTemplate: [{
1976
- type: ContentChildren,
1977
- args: [AgendaDateTemplateDirective]
1978
- }], agendaTimeTemplate: [{
1979
- type: ContentChildren,
1980
- args: [AgendaTimeTemplateDirective]
1981
- }] } });