@progress/kendo-angular-scheduler 4.3.5 → 4.3.6

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 (130) hide show
  1. package/README.md +14 -12
  2. package/bundles/kendo-angular-scheduler.umd.js +1 -1
  3. package/esm2015/data-binding.directive.js +3 -3
  4. package/esm2015/editing/date-time-picker.component.js +3 -3
  5. package/esm2015/editing/dialogs.service.js +3 -3
  6. package/esm2015/editing/edit-dialog-template.directive.js +3 -3
  7. package/esm2015/editing/edit-dialog.component.js +3 -3
  8. package/esm2015/editing/edit.service.js +3 -3
  9. package/esm2015/editing/local-data-changes.service.js +3 -3
  10. package/esm2015/editing/recurrence/end-rule-radio-button.directive.js +3 -3
  11. package/esm2015/editing/recurrence/localization/custom-messages.component.js +3 -3
  12. package/esm2015/editing/recurrence/localization/localized-messages.directive.js +3 -3
  13. package/esm2015/editing/recurrence/localization/messages.js +3 -3
  14. package/esm2015/editing/recurrence/localization/recurrence-localization.service.js +3 -3
  15. package/esm2015/editing/recurrence/recurrence-editor.component.js +3 -3
  16. package/esm2015/editing/recurrence/recurrence-end-rule-editor.component.js +3 -3
  17. package/esm2015/editing/recurrence/recurrence-frequency-editor.component.js +3 -3
  18. package/esm2015/editing/recurrence/recurrence-interval-editor.component.js +3 -3
  19. package/esm2015/editing/recurrence/recurrence-monthly-yearly-editor.component.js +3 -3
  20. package/esm2015/editing/recurrence/recurrence-weekday-rule-editor.component.js +3 -3
  21. package/esm2015/editing/recurrence/recurrence.service.js +3 -3
  22. package/esm2015/editing/recurrence/repeat-on-radio-button.directive.js +3 -3
  23. package/esm2015/editing/resource-editor-base.js +3 -3
  24. package/esm2015/editing/resource-multiple-editor.component.js +3 -3
  25. package/esm2015/editing/resource-single-editor.component.js +3 -3
  26. package/esm2015/editing/timezone-editor.component.js +3 -3
  27. package/esm2015/editing-directives/editing-directive-base.js +6 -5
  28. package/esm2015/editing-directives/reactive-editing.directive.js +3 -3
  29. package/esm2015/loading.component.js +3 -3
  30. package/esm2015/localization/custom-messages.component.js +3 -3
  31. package/esm2015/localization/localized-messages.directive.js +3 -3
  32. package/esm2015/localization/messages.js +3 -3
  33. package/esm2015/localization/scheduler-localization.service.js +3 -3
  34. package/esm2015/main.js +1 -0
  35. package/esm2015/navigation/focus.service.js +35 -31
  36. package/esm2015/navigation/focusable.directive.js +17 -4
  37. package/esm2015/navigation/shortcuts.directive.js +36 -5
  38. package/esm2015/package-metadata.js +1 -1
  39. package/esm2015/pdf/pdf-command.directive.js +3 -3
  40. package/esm2015/pdf/pdf.component.js +3 -3
  41. package/esm2015/pdf/pdf.module.js +4 -4
  42. package/esm2015/pdf/pdf.service.js +3 -3
  43. package/esm2015/scheduler.component.js +20 -13
  44. package/esm2015/scheduler.module.js +4 -4
  45. package/esm2015/shared.module.js +13 -7
  46. package/esm2015/toolbar/navigation.component.js +40 -19
  47. package/esm2015/toolbar/toolbar-template.directive.js +3 -3
  48. package/esm2015/toolbar/toolbar.component.js +3 -3
  49. package/esm2015/toolbar/toolbar.module.js +11 -7
  50. package/esm2015/toolbar/toolbar.service.js +3 -3
  51. package/esm2015/toolbar/view-selector.component.js +16 -11
  52. package/esm2015/types/focusable-container.js +5 -0
  53. package/esm2015/views/agenda/agenda-header-item.component.js +3 -3
  54. package/esm2015/views/agenda/agenda-header.component.js +7 -7
  55. package/esm2015/views/agenda/agenda-task-item.component.js +3 -3
  56. package/esm2015/views/agenda/agenda-view-internal.component.js +3 -3
  57. package/esm2015/views/agenda/agenda-view-list.component.js +4 -4
  58. package/esm2015/views/agenda/agenda-view.component.js +3 -3
  59. package/esm2015/views/agenda/agenda-view.module.js +4 -4
  60. package/esm2015/views/common/base-view.js +12 -4
  61. package/esm2015/views/common/configuration-view-base.js +3 -3
  62. package/esm2015/views/common/dom-events.service.js +3 -3
  63. package/esm2015/views/common/hint-container.component.js +3 -3
  64. package/esm2015/views/common/repeat.pipe.js +3 -3
  65. package/esm2015/views/common/resize-hint.component.js +3 -3
  66. package/esm2015/views/common/resource-iterator.pipe.js +3 -3
  67. package/esm2015/views/common/slot-selectable.directive.js +3 -3
  68. package/esm2015/views/common/view-footer.component.js +31 -10
  69. package/esm2015/views/common/views-shared.module.js +4 -4
  70. package/esm2015/views/common/work-hours-footer.directive.js +3 -3
  71. package/esm2015/views/day-time/day-time-slot.service.js +17 -11
  72. package/esm2015/views/day-time/day-time-view-base.js +3 -3
  73. package/esm2015/views/day-time/day-time-view-item.component.js +3 -3
  74. package/esm2015/views/day-time/day-time-view.component.js +6 -9
  75. package/esm2015/views/day-time/day-time.module.js +4 -4
  76. package/esm2015/views/day-time/event-slot.directive.js +6 -6
  77. package/esm2015/views/month/month-slot.directive.js +3 -3
  78. package/esm2015/views/month/month-view-item.component.js +3 -3
  79. package/esm2015/views/month/month-view-renderer.component.js +27 -20
  80. package/esm2015/views/month/month-view.component.js +3 -3
  81. package/esm2015/views/month/month-view.module.js +4 -4
  82. package/esm2015/views/multi-day/day-view.component.js +3 -3
  83. package/esm2015/views/multi-day/multi-day-view-base.js +3 -3
  84. package/esm2015/views/multi-day/multi-day-view-renderer.component.js +27 -18
  85. package/esm2015/views/multi-day/multi-day-view.component.js +3 -3
  86. package/esm2015/views/multi-day/multi-day-view.module.js +4 -4
  87. package/esm2015/views/multi-day/week-view.component.js +3 -3
  88. package/esm2015/views/multi-day/work-week-view.component.js +3 -3
  89. package/esm2015/views/scheduler-view.directive.js +3 -3
  90. package/esm2015/views/templates/agenda-date-template.directive.js +3 -3
  91. package/esm2015/views/templates/agenda-time-template.directive.js +3 -3
  92. package/esm2015/views/templates/all-day-event-template.directive.js +3 -3
  93. package/esm2015/views/templates/all-day-slot-template.directive.js +3 -3
  94. package/esm2015/views/templates/date-header-template.directive.js +3 -3
  95. package/esm2015/views/templates/event-template.directive.js +3 -3
  96. package/esm2015/views/templates/group-header-template.directive.js +3 -3
  97. package/esm2015/views/templates/major-time-header-template.directive.js +3 -3
  98. package/esm2015/views/templates/minor-time-header-template.directive.js +3 -3
  99. package/esm2015/views/templates/month-day-slot-template.directive.js +3 -3
  100. package/esm2015/views/templates/time-slot-template.directive.js +3 -3
  101. package/esm2015/views/timeline/timeline-base.js +3 -3
  102. package/esm2015/views/timeline/timeline-month-view.component.js +3 -3
  103. package/esm2015/views/timeline/timeline-multi-day-view.component.js +31 -21
  104. package/esm2015/views/timeline/timeline-view.component.js +3 -3
  105. package/esm2015/views/timeline/timeline-view.module.js +4 -4
  106. package/esm2015/views/timeline/timeline-week-view.component.js +3 -3
  107. package/esm2015/views/timeline/utils.js +19 -0
  108. package/esm2015/views/view-context.service.js +3 -3
  109. package/esm2015/views/view-items/base-slot.directive.js +3 -3
  110. package/esm2015/views/view-items/base-view-item.js +3 -3
  111. package/esm2015/views/view-state.service.js +7 -3
  112. package/fesm2015/kendo-angular-scheduler.js +691 -525
  113. package/main.d.ts +1 -0
  114. package/navigation/focus.service.d.ts +6 -6
  115. package/navigation/focusable-element.interface.d.ts +5 -0
  116. package/navigation/focusable.directive.d.ts +4 -1
  117. package/package.json +2 -2
  118. package/scheduler.component.d.ts +1 -1
  119. package/shared.module.d.ts +2 -1
  120. package/toolbar/toolbar.module.d.ts +2 -1
  121. package/types/actions.d.ts +15 -8
  122. package/types/focusable-container.d.ts +8 -0
  123. package/views/common/base-view.d.ts +5 -0
  124. package/views/common/view-footer.component.d.ts +4 -0
  125. package/views/day-time/day-time-view.component.d.ts +1 -3
  126. package/views/month/month-view-renderer.component.d.ts +1 -3
  127. package/views/multi-day/multi-day-view-renderer.component.d.ts +1 -2
  128. package/views/timeline/timeline-multi-day-view.component.d.ts +1 -2
  129. package/views/timeline/utils.d.ts +11 -0
  130. package/views/view-state.service.d.ts +5 -1
@@ -18,14 +18,14 @@ export class SchedulerCustomMessagesComponent extends Messages {
18
18
  return true;
19
19
  }
20
20
  }
21
- SchedulerCustomMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SchedulerCustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
22
- SchedulerCustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SchedulerCustomMessagesComponent, selector: "kendo-scheduler-messages", providers: [
21
+ SchedulerCustomMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SchedulerCustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
22
+ SchedulerCustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SchedulerCustomMessagesComponent, selector: "kendo-scheduler-messages", providers: [
23
23
  {
24
24
  provide: Messages,
25
25
  useExisting: forwardRef(() => SchedulerCustomMessagesComponent)
26
26
  }
27
27
  ], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SchedulerCustomMessagesComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SchedulerCustomMessagesComponent, decorators: [{
29
29
  type: Component,
30
30
  args: [{
31
31
  providers: [
@@ -15,14 +15,14 @@ export class LocalizedMessagesDirective extends Messages {
15
15
  this.service = service;
16
16
  }
17
17
  }
18
- LocalizedMessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
19
- LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: LocalizedMessagesDirective, selector: "[kendoSchedulerLocalizedMessages]", providers: [
18
+ LocalizedMessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
19
+ LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: LocalizedMessagesDirective, selector: "[kendoSchedulerLocalizedMessages]", providers: [
20
20
  {
21
21
  provide: Messages,
22
22
  useExisting: forwardRef(() => LocalizedMessagesDirective)
23
23
  }
24
24
  ], usesInheritance: true, ngImport: i0 });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
26
26
  type: Directive,
27
27
  args: [{
28
28
  providers: [
@@ -10,9 +10,9 @@ import * as i0 from "@angular/core";
10
10
  */
11
11
  export class Messages extends ComponentMessages {
12
12
  }
13
- Messages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
14
- Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: Messages, inputs: { allEvents: "allEvents", allDay: "allDay", dateHeader: "dateHeader", timeHeader: "timeHeader", eventHeader: "eventHeader", deleteTitle: "deleteTitle", nextTitle: "nextTitle", previousTitle: "previousTitle", today: "today", calendarToday: "calendarToday", showFullDay: "showFullDay", showWorkDay: "showWorkDay", dayViewTitle: "dayViewTitle", multiDayViewTitle: "multiDayViewTitle", weekViewTitle: "weekViewTitle", workWeekViewTitle: "workWeekViewTitle", monthViewTitle: "monthViewTitle", timelineViewTitle: "timelineViewTitle", timelineWeekViewTitle: "timelineWeekViewTitle", timelineMonthViewTitle: "timelineMonthViewTitle", agendaViewTitle: "agendaViewTitle", cancel: "cancel", save: "save", editorEventTitle: "editorEventTitle", editorEventStart: "editorEventStart", editorEventStartTimeZone: "editorEventStartTimeZone", editorEventEnd: "editorEventEnd", editorEventEndTimeZone: "editorEventEndTimeZone", editorEventAllDay: "editorEventAllDay", editorEventDescription: "editorEventDescription", editorEventSeparateTimeZones: "editorEventSeparateTimeZones", editorEventTimeZone: "editorEventTimeZone", recurrenceEditorRepeat: "recurrenceEditorRepeat", recurrenceEditorDailyInterval: "recurrenceEditorDailyInterval", recurrenceEditorDailyRepeatEvery: "recurrenceEditorDailyRepeatEvery", recurrenceEditorWeeklyInterval: "recurrenceEditorWeeklyInterval", recurrenceEditorWeeklyRepeatEvery: "recurrenceEditorWeeklyRepeatEvery", recurrenceEditorWeeklyRepeatOn: "recurrenceEditorWeeklyRepeatOn", recurrenceEditorMonthlyDay: "recurrenceEditorMonthlyDay", recurrenceEditorMonthlyInterval: "recurrenceEditorMonthlyInterval", recurrenceEditorMonthlyRepeatEvery: "recurrenceEditorMonthlyRepeatEvery", recurrenceEditorMonthlyRepeatOn: "recurrenceEditorMonthlyRepeatOn", recurrenceEditorYearlyOf: "recurrenceEditorYearlyOf", recurrenceEditorYearlyRepeatEvery: "recurrenceEditorYearlyRepeatEvery", recurrenceEditorYearlyRepeatOn: "recurrenceEditorYearlyRepeatOn", recurrenceEditorYearlyInterval: "recurrenceEditorYearlyInterval", recurrenceEditorFrequenciesDaily: "recurrenceEditorFrequenciesDaily", recurrenceEditorFrequenciesMonthly: "recurrenceEditorFrequenciesMonthly", recurrenceEditorFrequenciesNever: "recurrenceEditorFrequenciesNever", recurrenceEditorFrequenciesWeekly: "recurrenceEditorFrequenciesWeekly", recurrenceEditorFrequenciesYearly: "recurrenceEditorFrequenciesYearly", recurrenceEditorOffsetPositionsFirst: "recurrenceEditorOffsetPositionsFirst", recurrenceEditorOffsetPositionsSecond: "recurrenceEditorOffsetPositionsSecond", recurrenceEditorOffsetPositionsThird: "recurrenceEditorOffsetPositionsThird", recurrenceEditorOffsetPositionsFourth: "recurrenceEditorOffsetPositionsFourth", recurrenceEditorOffsetPositionsLast: "recurrenceEditorOffsetPositionsLast", recurrenceEditorWeekdaysDay: "recurrenceEditorWeekdaysDay", recurrenceEditorWeekdaysWeekday: "recurrenceEditorWeekdaysWeekday", recurrenceEditorWeekdaysWeekendday: "recurrenceEditorWeekdaysWeekendday", recurrenceEditorEndAfter: "recurrenceEditorEndAfter", recurrenceEditorEndOccurrence: "recurrenceEditorEndOccurrence", recurrenceEditorEndLabel: "recurrenceEditorEndLabel", recurrenceEditorEndNever: "recurrenceEditorEndNever", recurrenceEditorEndOn: "recurrenceEditorEndOn", editorTitle: "editorTitle", destroy: "destroy", deleteConfirmation: "deleteConfirmation", editRecurringConfirmation: "editRecurringConfirmation", editOccurrence: "editOccurrence", editSeries: "editSeries", deleteRecurringConfirmation: "deleteRecurringConfirmation", deleteOccurrence: "deleteOccurrence", deleteSeries: "deleteSeries", deleteDialogTitle: "deleteDialogTitle", deleteRecurringDialogTitle: "deleteRecurringDialogTitle", editRecurringDialogTitle: "editRecurringDialogTitle", selectView: "selectView" }, usesInheritance: true, ngImport: i0 });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Messages, decorators: [{
13
+ Messages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
14
+ Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: Messages, inputs: { allEvents: "allEvents", allDay: "allDay", dateHeader: "dateHeader", timeHeader: "timeHeader", eventHeader: "eventHeader", deleteTitle: "deleteTitle", nextTitle: "nextTitle", previousTitle: "previousTitle", today: "today", calendarToday: "calendarToday", showFullDay: "showFullDay", showWorkDay: "showWorkDay", dayViewTitle: "dayViewTitle", multiDayViewTitle: "multiDayViewTitle", weekViewTitle: "weekViewTitle", workWeekViewTitle: "workWeekViewTitle", monthViewTitle: "monthViewTitle", timelineViewTitle: "timelineViewTitle", timelineWeekViewTitle: "timelineWeekViewTitle", timelineMonthViewTitle: "timelineMonthViewTitle", agendaViewTitle: "agendaViewTitle", cancel: "cancel", save: "save", editorEventTitle: "editorEventTitle", editorEventStart: "editorEventStart", editorEventStartTimeZone: "editorEventStartTimeZone", editorEventEnd: "editorEventEnd", editorEventEndTimeZone: "editorEventEndTimeZone", editorEventAllDay: "editorEventAllDay", editorEventDescription: "editorEventDescription", editorEventSeparateTimeZones: "editorEventSeparateTimeZones", editorEventTimeZone: "editorEventTimeZone", recurrenceEditorRepeat: "recurrenceEditorRepeat", recurrenceEditorDailyInterval: "recurrenceEditorDailyInterval", recurrenceEditorDailyRepeatEvery: "recurrenceEditorDailyRepeatEvery", recurrenceEditorWeeklyInterval: "recurrenceEditorWeeklyInterval", recurrenceEditorWeeklyRepeatEvery: "recurrenceEditorWeeklyRepeatEvery", recurrenceEditorWeeklyRepeatOn: "recurrenceEditorWeeklyRepeatOn", recurrenceEditorMonthlyDay: "recurrenceEditorMonthlyDay", recurrenceEditorMonthlyInterval: "recurrenceEditorMonthlyInterval", recurrenceEditorMonthlyRepeatEvery: "recurrenceEditorMonthlyRepeatEvery", recurrenceEditorMonthlyRepeatOn: "recurrenceEditorMonthlyRepeatOn", recurrenceEditorYearlyOf: "recurrenceEditorYearlyOf", recurrenceEditorYearlyRepeatEvery: "recurrenceEditorYearlyRepeatEvery", recurrenceEditorYearlyRepeatOn: "recurrenceEditorYearlyRepeatOn", recurrenceEditorYearlyInterval: "recurrenceEditorYearlyInterval", recurrenceEditorFrequenciesDaily: "recurrenceEditorFrequenciesDaily", recurrenceEditorFrequenciesMonthly: "recurrenceEditorFrequenciesMonthly", recurrenceEditorFrequenciesNever: "recurrenceEditorFrequenciesNever", recurrenceEditorFrequenciesWeekly: "recurrenceEditorFrequenciesWeekly", recurrenceEditorFrequenciesYearly: "recurrenceEditorFrequenciesYearly", recurrenceEditorOffsetPositionsFirst: "recurrenceEditorOffsetPositionsFirst", recurrenceEditorOffsetPositionsSecond: "recurrenceEditorOffsetPositionsSecond", recurrenceEditorOffsetPositionsThird: "recurrenceEditorOffsetPositionsThird", recurrenceEditorOffsetPositionsFourth: "recurrenceEditorOffsetPositionsFourth", recurrenceEditorOffsetPositionsLast: "recurrenceEditorOffsetPositionsLast", recurrenceEditorWeekdaysDay: "recurrenceEditorWeekdaysDay", recurrenceEditorWeekdaysWeekday: "recurrenceEditorWeekdaysWeekday", recurrenceEditorWeekdaysWeekendday: "recurrenceEditorWeekdaysWeekendday", recurrenceEditorEndAfter: "recurrenceEditorEndAfter", recurrenceEditorEndOccurrence: "recurrenceEditorEndOccurrence", recurrenceEditorEndLabel: "recurrenceEditorEndLabel", recurrenceEditorEndNever: "recurrenceEditorEndNever", recurrenceEditorEndOn: "recurrenceEditorEndOn", editorTitle: "editorTitle", destroy: "destroy", deleteConfirmation: "deleteConfirmation", editRecurringConfirmation: "editRecurringConfirmation", editOccurrence: "editOccurrence", editSeries: "editSeries", deleteRecurringConfirmation: "deleteRecurringConfirmation", deleteOccurrence: "deleteOccurrence", deleteSeries: "deleteSeries", deleteDialogTitle: "deleteDialogTitle", deleteRecurringDialogTitle: "deleteRecurringDialogTitle", editRecurringDialogTitle: "editRecurringDialogTitle", selectView: "selectView" }, usesInheritance: true, ngImport: i0 });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: Messages, decorators: [{
16
16
  type: Directive
17
17
  }], propDecorators: { allEvents: [{
18
18
  type: Input
@@ -14,9 +14,9 @@ export class SchedulerLocalizationService extends LocalizationService {
14
14
  super(prefix, messageService, _rtl);
15
15
  }
16
16
  }
17
- SchedulerLocalizationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SchedulerLocalizationService, deps: [{ token: L10N_PREFIX }, { token: i1.MessageService, optional: true }, { token: RTL, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
18
- SchedulerLocalizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SchedulerLocalizationService });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SchedulerLocalizationService, decorators: [{
17
+ SchedulerLocalizationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SchedulerLocalizationService, deps: [{ token: L10N_PREFIX }, { token: i1.MessageService, optional: true }, { token: RTL, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
18
+ SchedulerLocalizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SchedulerLocalizationService });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SchedulerLocalizationService, decorators: [{
20
20
  type: Injectable
21
21
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
22
22
  type: Inject,
package/esm2015/main.js CHANGED
@@ -79,5 +79,6 @@ export { DayTimeSlotService } from './views/day-time/day-time-slot.service';
79
79
  export { DayTimeViewItemComponent } from './views/day-time/day-time-view-item.component';
80
80
  export { TimeSlotDirective, DaySlotDirective } from './views/day-time/event-slot.directive';
81
81
  export { DayTimeModule } from './views/day-time/day-time.module';
82
+ export { SortPipe } from './views/timeline/utils';
82
83
  export * from './types';
83
84
  export * from './events';
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { Injectable, Optional, EventEmitter } from '@angular/core';
5
+ import { Injectable, Optional } from '@angular/core';
6
6
  import { Subscription } from 'rxjs';
7
7
  import { take } from 'rxjs/operators';
8
8
  import * as i0 from "@angular/core";
@@ -16,7 +16,6 @@ export class FocusService {
16
16
  this.wrapper = wrapper;
17
17
  this.domEvents = domEvents;
18
18
  this.zone = zone;
19
- this.ariaActiveDescendant = new EventEmitter();
20
19
  this.items = new Set();
21
20
  this.elementMap = new WeakMap();
22
21
  this.subs = new Subscription();
@@ -28,6 +27,9 @@ export class FocusService {
28
27
  return this.activeItem.element;
29
28
  }
30
29
  }
30
+ get focusableItems() {
31
+ return this.items;
32
+ }
31
33
  ngOnDestroy() {
32
34
  this.subs.unsubscribe();
33
35
  }
@@ -53,9 +55,26 @@ export class FocusService {
53
55
  this.activeItem.focus();
54
56
  }
55
57
  else {
56
- this.wrapper.nativeElement.focus();
58
+ this.focusContent();
57
59
  }
58
60
  }
61
+ focusContent() {
62
+ var _a;
63
+ const items = Array.from(this.focusableItems);
64
+ const activeItemContainer = (_a = this.activeItem) === null || _a === void 0 ? void 0 : _a.containerType;
65
+ const focusableContent = activeItemContainer === 'content' ? this.activeItem : items.find(item => item.containerType === 'content');
66
+ const focusableTool = activeItemContainer === 'toolbar' ? this.activeItem : items.find(item => item.containerType === 'toolbar');
67
+ const itemToFocus = focusableContent || focusableTool;
68
+ itemToFocus.focus();
69
+ this.activeItem = itemToFocus;
70
+ }
71
+ focusToolbar() {
72
+ const items = Array.from(this.focusableItems);
73
+ const firstFocusableTool = items.find(item => item.containerType === 'toolbar');
74
+ // eslint-disable-next-line no-unused-expressions
75
+ firstFocusableTool && firstFocusableTool.focus();
76
+ this.activeItem = firstFocusableTool;
77
+ }
59
78
  focusNext(options) {
60
79
  const currentItem = this.activeItem;
61
80
  this.activateNext(options);
@@ -64,41 +83,31 @@ export class FocusService {
64
83
  }
65
84
  return this.activeItem !== currentItem;
66
85
  }
67
- focusFirst() {
68
- const firstEvent = Array.from(this.items.values())[0];
69
- if (!firstEvent) {
86
+ focusByIndex(index) {
87
+ const item = Array.from(this.items.values())[index];
88
+ if (!item) {
70
89
  return;
71
90
  }
72
- this.activate(firstEvent.element.nativeElement);
91
+ this.activate(item);
73
92
  this.focus();
74
93
  this.zone.onStable.pipe(take(1)).subscribe(() => {
75
- const first = Array.from(this.items.values())[0];
76
- if (!first) {
77
- this.clearActiveDescendant();
94
+ const itemToFocus = Array.from(this.items.values())[index];
95
+ if (!itemToFocus) {
78
96
  return;
79
97
  }
80
- const id = first.element.nativeElement.getAttribute('id');
81
- this.ariaActiveDescendant.next(id);
82
- this.lastActiveDescendantId = id;
83
98
  });
84
99
  }
85
- clearActiveDescendant() {
86
- this.ariaActiveDescendant.next(null);
87
- }
88
- ;
89
100
  activate(next) {
90
101
  this.items.forEach(item => {
91
102
  item.toggle(item === next);
92
- if (item === next) {
93
- const id = item.element.nativeElement.getAttribute('id');
94
- this.ariaActiveDescendant.next(id);
95
- this.lastActiveDescendantId = id;
96
- }
97
103
  });
98
104
  this.activeItem = next;
99
105
  }
100
106
  activateNext(position) {
101
- this.activeItem = this.findNext(position);
107
+ var _a;
108
+ const next = this.findNext(position);
109
+ this.activeItem = next;
110
+ (_a = this.activeItem) === null || _a === void 0 ? void 0 : _a.focus();
102
111
  }
103
112
  findNext(position) {
104
113
  const { offset, nowrap } = Object.assign({ nowrap: false, offset: 1 }, position);
@@ -131,10 +140,6 @@ export class FocusService {
131
140
  }
132
141
  onFocusIn(e) {
133
142
  const item = this.elementMap.get(e.target);
134
- const shouldRestoreActiveDescendant = this.lastActiveDescendantId && this.lastActiveDescendantId !== (item === null || item === void 0 ? void 0 : item.element.nativeElement.getAttribute('id'));
135
- if (shouldRestoreActiveDescendant) {
136
- this.ariaActiveDescendant.next(this.lastActiveDescendantId);
137
- }
138
143
  if (!item || item === this.focusedItem) {
139
144
  return;
140
145
  }
@@ -151,12 +156,11 @@ export class FocusService {
151
156
  }
152
157
  this.focusedItem.toggleFocus(false);
153
158
  this.focusedItem = null;
154
- this.clearActiveDescendant();
155
159
  }
156
160
  }
157
- FocusService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FocusService, deps: [{ token: i0.Renderer2, optional: true }, { token: i0.ElementRef, optional: true }, { token: i1.DomEventsService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
158
- FocusService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FocusService });
159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FocusService, decorators: [{
161
+ FocusService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FocusService, deps: [{ token: i0.Renderer2, optional: true }, { token: i0.ElementRef, optional: true }, { token: i1.DomEventsService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
162
+ FocusService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FocusService });
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FocusService, decorators: [{
160
164
  type: Injectable
161
165
  }], ctorParameters: function () { return [{ type: i0.Renderer2, decorators: [{
162
166
  type: Optional
@@ -3,6 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive, Input } from '@angular/core';
6
+ import { isVisible } from '@progress/kendo-angular-common';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "./focus.service";
8
9
  /**
@@ -18,6 +19,7 @@ export class FocusableDirective {
18
19
  * If multiple elements share the same value, their relative to each other order follows their position in the component tree.
19
20
  */
20
21
  this.focusIndex = 0;
22
+ this.containerType = 'content';
21
23
  this.toggle(false);
22
24
  this.focusService.register(this);
23
25
  }
@@ -27,6 +29,15 @@ export class FocusableDirective {
27
29
  get enabled() {
28
30
  return !this.element.nativeElement.disabled;
29
31
  }
32
+ ngAfterViewChecked() {
33
+ const element = this.element.nativeElement;
34
+ const isViewSelector = element.closest('.k-scheduler-views-wrapper');
35
+ if (!isViewSelector) {
36
+ return;
37
+ }
38
+ // eslint-disable-next-line no-unused-expressions
39
+ isVisible(element) ? this.focusService.register(this) : this.focusService.unregister(this);
40
+ }
30
41
  ngOnDestroy() {
31
42
  this.focusService.unregister(this);
32
43
  }
@@ -45,8 +56,8 @@ export class FocusableDirective {
45
56
  }
46
57
  toggleFocus(value) {
47
58
  var _a;
48
- const focusedClass = 'k-selected';
49
59
  const element = this.element.nativeElement;
60
+ const focusedClass = element.matches('.k-button-group .k-button') ? 'k-focus' : 'k-selected';
50
61
  if (value) {
51
62
  this.renderer.addClass(element, focusedClass);
52
63
  }
@@ -60,9 +71,9 @@ export class FocusableDirective {
60
71
  }
61
72
  }
62
73
  }
63
- FocusableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FocusableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.FocusService }], target: i0.ɵɵFactoryTarget.Directive });
64
- FocusableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: { focusIndex: ["kendoSchedulerFocusIndex", "focusIndex"] }, ngImport: i0 });
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FocusableDirective, decorators: [{
74
+ FocusableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FocusableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.FocusService }], target: i0.ɵɵFactoryTarget.Directive });
75
+ FocusableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: { focusIndex: ["kendoSchedulerFocusIndex", "focusIndex"], containerType: "containerType" }, ngImport: i0 });
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FocusableDirective, decorators: [{
66
77
  type: Directive,
67
78
  args: [{
68
79
  selector: '[kendoSchedulerFocusIndex]'
@@ -70,4 +81,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
70
81
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.FocusService }]; }, propDecorators: { focusIndex: [{
71
82
  type: Input,
72
83
  args: ['kendoSchedulerFocusIndex']
84
+ }], containerType: [{
85
+ type: Input
73
86
  }] } });
@@ -72,6 +72,14 @@ export class ShortcutsDirective {
72
72
  });
73
73
  }
74
74
  }
75
+ }, {
76
+ match: e => e.keyCode === Keys.F10 && noModifiers(e),
77
+ action: () => {
78
+ this.zone.run(() => {
79
+ this.scheduler.onNavigationAction({ type: 'focus-toolbar' });
80
+ this.focusWait();
81
+ });
82
+ }
75
83
  }, {
76
84
  match: e => e.keyCode === Keys.KeyT && noModifiers(e),
77
85
  action: () => {
@@ -80,6 +88,14 @@ export class ShortcutsDirective {
80
88
  this.focusWait();
81
89
  });
82
90
  }
91
+ }, {
92
+ match: e => e.keyCode === Keys.KeyB && noModifiers(e),
93
+ action: () => {
94
+ this.zone.run(() => {
95
+ this.scheduler.onNavigationAction({ type: 'toggle-business-hours' });
96
+ this.focusWait();
97
+ });
98
+ }
83
99
  }, {
84
100
  match: (e) => (e.keyCode === Keys.ArrowLeft || e.keyCode === Keys.ArrowRight) && withModifiers(e, Modifiers.ShiftKey),
85
101
  action: (e) => {
@@ -94,7 +110,11 @@ export class ShortcutsDirective {
94
110
  action: e => {
95
111
  const prevented = this.scheduler.onNavigationAction({ type: 'focus-prev' });
96
112
  if (!prevented) {
97
- this.focusService.focusNext({ offset: -1 });
113
+ const item = this.focusService.activeItem;
114
+ const isFirstEvent = item.containerType === 'content' && item.element.nativeElement.matches(':first-of-type');
115
+ const isUpArrow = e.keyCode === Keys.ArrowUp;
116
+ // eslint-disable-next-line no-unused-expressions
117
+ isFirstEvent && isUpArrow ? this.focusService.focusToolbar() : this.focusService.focusNext({ offset: -1 });
98
118
  e.preventDefault();
99
119
  }
100
120
  }
@@ -103,7 +123,18 @@ export class ShortcutsDirective {
103
123
  action: e => {
104
124
  const prevented = this.scheduler.onNavigationAction({ type: 'focus-next' });
105
125
  if (!prevented) {
106
- this.focusService.focusNext({ offset: 1 });
126
+ const isInToolbar = this.focusService.activeItem.containerType === 'toolbar';
127
+ let offset = 1;
128
+ if (e.keyCode === Keys.ArrowDown && isInToolbar) {
129
+ const focusableElementsArray = Array.from(this.focusService.focusableItems);
130
+ const firstFocusableContentElementIndex = focusableElementsArray.findIndex(item => item.containerType === 'content');
131
+ if (firstFocusableContentElementIndex > -1) {
132
+ this.focusService.focusByIndex(firstFocusableContentElementIndex);
133
+ e.preventDefault();
134
+ return;
135
+ }
136
+ }
137
+ this.focusService.focusNext({ offset });
107
138
  e.preventDefault();
108
139
  }
109
140
  }
@@ -141,9 +172,9 @@ export class ShortcutsDirective {
141
172
  this.viewState.layoutEnd.pipe(take(1)).subscribe(() => this.focusService.focus());
142
173
  }
143
174
  }
144
- ShortcutsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ShortcutsDirective, deps: [{ token: i1.SchedulerComponent }, { token: i2.DomEventsService }, { token: i3.FocusService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i4.ViewStateService }, { token: i5.DialogsService }], target: i0.ɵɵFactoryTarget.Directive });
145
- ShortcutsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: ShortcutsDirective, selector: "kendo-scheduler", ngImport: i0 });
146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ShortcutsDirective, decorators: [{
175
+ ShortcutsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ShortcutsDirective, deps: [{ token: i1.SchedulerComponent }, { token: i2.DomEventsService }, { token: i3.FocusService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i4.ViewStateService }, { token: i5.DialogsService }], target: i0.ɵɵFactoryTarget.Directive });
176
+ ShortcutsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: ShortcutsDirective, selector: "kendo-scheduler", ngImport: i0 });
177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ShortcutsDirective, decorators: [{
147
178
  type: Directive,
148
179
  args: [{
149
180
  selector: 'kendo-scheduler'
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-scheduler',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1668698925,
12
+ publishDate: 1669797527,
13
13
  version: '',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
15
15
  };
@@ -45,9 +45,9 @@ export class PDFCommandDirective extends Button {
45
45
  this.icon = 'pdf';
46
46
  }
47
47
  }
48
- PDFCommandDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PDFCommandDirective, deps: [{ token: i1.PDFService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i2.LocalizationService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
49
- PDFCommandDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: PDFCommandDirective, selector: "[kendoSchedulerPDFCommand]", host: { listeners: { "click": "onClick($event)" } }, usesInheritance: true, ngImport: i0 });
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PDFCommandDirective, decorators: [{
48
+ PDFCommandDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PDFCommandDirective, deps: [{ token: i1.PDFService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i2.LocalizationService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
49
+ PDFCommandDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: PDFCommandDirective, selector: "[kendoSchedulerPDFCommand]", host: { listeners: { "click": "onClick($event)" } }, usesInheritance: true, ngImport: i0 });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PDFCommandDirective, decorators: [{
51
51
  type: Directive,
52
52
  args: [{
53
53
  selector: '[kendoSchedulerPDFCommand]'
@@ -100,9 +100,9 @@ export class PDFComponent {
100
100
  this.pdfService.done.emit();
101
101
  }
102
102
  }
103
- PDFComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PDFComponent, deps: [{ token: i1.PDFService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
104
- PDFComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: PDFComponent, selector: "kendo-scheduler-pdf", inputs: { author: "author", avoidLinks: "avoidLinks", creator: "creator", date: "date", imageResolution: "imageResolution", fileName: "fileName", forceProxy: "forceProxy", keywords: "keywords", margin: "margin", scale: "scale", proxyData: "proxyData", proxyURL: "proxyURL", proxyTarget: "proxyTarget", producer: "producer", subject: "subject", title: "title" }, ngImport: i0, template: '', isInline: true });
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PDFComponent, decorators: [{
103
+ PDFComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PDFComponent, deps: [{ token: i1.PDFService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
104
+ PDFComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PDFComponent, selector: "kendo-scheduler-pdf", inputs: { author: "author", avoidLinks: "avoidLinks", creator: "creator", date: "date", imageResolution: "imageResolution", fileName: "fileName", forceProxy: "forceProxy", keywords: "keywords", margin: "margin", scale: "scale", proxyData: "proxyData", proxyURL: "proxyURL", proxyTarget: "proxyTarget", producer: "producer", subject: "subject", title: "title" }, ngImport: i0, template: '', isInline: true });
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PDFComponent, decorators: [{
106
106
  type: Component,
107
107
  args: [{
108
108
  selector: 'kendo-scheduler-pdf',
@@ -43,12 +43,12 @@ const declarations = [
43
43
  */
44
44
  export class PDFModule {
45
45
  }
46
- PDFModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PDFModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
47
- PDFModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PDFModule, declarations: [PDFComponent,
46
+ PDFModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PDFModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
47
+ PDFModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PDFModule, declarations: [PDFComponent,
48
48
  PDFCommandDirective], exports: [PDFComponent,
49
49
  PDFCommandDirective] });
50
- PDFModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PDFModule });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PDFModule, decorators: [{
50
+ PDFModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PDFModule });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PDFModule, decorators: [{
52
52
  type: NgModule,
53
53
  args: [{
54
54
  declarations: [declarations],
@@ -31,8 +31,8 @@ export class PDFService {
31
31
  this.createElement.emit();
32
32
  }
33
33
  }
34
- PDFService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PDFService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
35
- PDFService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PDFService });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PDFService, decorators: [{
34
+ PDFService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PDFService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
35
+ PDFService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PDFService });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PDFService, decorators: [{
37
37
  type: Injectable
38
38
  }] });
@@ -7,6 +7,7 @@ import { L10N_PREFIX, LocalizationService } from '@progress/kendo-angular-l10n';
7
7
  import { ResizeSensorComponent, isDocumentAvailable } from '@progress/kendo-angular-common';
8
8
  import { anyChanged, isChanged, hasObservers } from '@progress/kendo-angular-common';
9
9
  import { getDate, ZonedDate, Day } from '@progress/kendo-date-math';
10
+ import { take } from 'rxjs/operators';
10
11
  import { validatePackage } from '@progress/kendo-licensing';
11
12
  import { packageMetadata } from './package-metadata';
12
13
  import { DateChangeEvent, NavigateEvent, VIEW_EVENT_MAP } from './events';
@@ -435,10 +436,6 @@ export class SchedulerComponent {
435
436
  });
436
437
  }
437
438
  }));
438
- this.subs.add(this.focusService.ariaActiveDescendant.subscribe((id) => {
439
- const method = id ? 'setAttribute' : 'removeAttribute';
440
- this.renderer[method](this.wrapper.nativeElement, 'aria-activedescendant', id);
441
- }));
442
439
  this.onViewIndexChange();
443
440
  this.notifyOptionsChange = this.notifyOptionsChange.bind(this);
444
441
  this.subs.add(this.allDayEventTemplate.changes.subscribe(this.notifyOptionsChange));
@@ -516,7 +513,6 @@ export class SchedulerComponent {
516
513
  if (args.isDefaultPrevented()) {
517
514
  return true;
518
515
  }
519
- this.focusService.clearActiveDescendant();
520
516
  if (action.type === 'view-change') {
521
517
  const views = this.views.toArray();
522
518
  const index = views.indexOf(action.view);
@@ -534,6 +530,12 @@ export class SchedulerComponent {
534
530
  this.selectedDate = date;
535
531
  }
536
532
  }
533
+ else if (action.type === 'toggle-business-hours') {
534
+ this.viewState.toggleWorkHours.next(null);
535
+ }
536
+ else if (action.type === 'focus-toolbar') {
537
+ this.focusService.focusToolbar();
538
+ }
537
539
  else {
538
540
  this.viewContext.notifyAction(action);
539
541
  }
@@ -653,7 +655,7 @@ export class SchedulerComponent {
653
655
  */
654
656
  get activeEvent() {
655
657
  const activeElement = this.focusService.activeElement;
656
- if (activeElement) {
658
+ if (activeElement && activeElement.nativeElement.matches('.k-event, [data-task-index]')) {
657
659
  return this.eventFromElement(activeElement.nativeElement);
658
660
  }
659
661
  }
@@ -675,7 +677,9 @@ export class SchedulerComponent {
675
677
  * @returns `true` if the focused event changed. Otherwise, returns `false`.
676
678
  */
677
679
  focusNext(position) {
678
- return this.focusService.focusNext(position);
680
+ const changed = this.focusService.focusNext(position);
681
+ this.zone.onStable.pipe(take(1)).subscribe(() => this.focusService.focus());
682
+ return changed;
679
683
  }
680
684
  /**
681
685
  * Focuses the previous event or an event at a specified relative position.
@@ -694,13 +698,16 @@ export class SchedulerComponent {
694
698
  */
695
699
  focusPrev(position) {
696
700
  const prevPosition = Object.assign({ offset: -1 }, position);
697
- return this.focusService.focusNext(prevPosition);
701
+ const changed = this.focusService.focusNext(prevPosition);
702
+ ;
703
+ this.zone.onStable.pipe(take(1)).subscribe(() => this.focusService.focus());
704
+ return changed;
698
705
  }
699
706
  /**
700
- * Focuses the last focused event or the Scheduler element, if no events are available.
707
+ * Focuses the last focused scheduler element or the Scheduler element, if no events are available.
701
708
  */
702
709
  focus() {
703
- return this.focusService.focus();
710
+ this.zone.onStable.pipe(take(1)).subscribe(() => this.focusService.focus());
704
711
  }
705
712
  isInRange(date) {
706
713
  return (!this.min || this.min <= date) && (!this.max || date <= this.max);
@@ -870,8 +877,8 @@ export class SchedulerComponent {
870
877
  });
871
878
  }
872
879
  }
873
- SchedulerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", 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 });
874
- SchedulerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SchedulerComponent, 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", scrollTime: "scrollTime", group: "group", resources: "resources", loading: "loading", timezone: "timezone", events: "events", selectedDate: "selectedDate", modelFields: "modelFields", currentTimeMarker: "currentTimeMarker", highlightOngoingEvents: "highlightOngoingEvents", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", 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" }, host: { properties: { "class.k-widget": "this.hostClasses", "class.k-scheduler": "this.hostClasses", "class.k-floatwrap": "this.hostClasses", "attr.role": "this.ariaRole", "class.k-rtl": "this.rtl", "attr.dir": "this.dir" } }, providers: [
880
+ SchedulerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", 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 });
881
+ SchedulerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SchedulerComponent, 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", scrollTime: "scrollTime", group: "group", resources: "resources", loading: "loading", timezone: "timezone", events: "events", selectedDate: "selectedDate", modelFields: "modelFields", currentTimeMarker: "currentTimeMarker", highlightOngoingEvents: "highlightOngoingEvents", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", 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" }, host: { properties: { "class.k-widget": "this.hostClasses", "class.k-scheduler": "this.hostClasses", "class.k-floatwrap": "this.hostClasses", "attr.role": "this.ariaRole", "class.k-rtl": "this.rtl", "attr.dir": "this.dir" } }, providers: [
875
882
  EditService,
876
883
  DialogsService,
877
884
  DomEventsService,
@@ -1155,7 +1162,7 @@ SchedulerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
1155
1162
  <div [loading]="loading" kendoSchedulerLoading>
1156
1163
  </div>
1157
1164
  `, isInline: true, styles: [".k-scheduler.k-focus { box-shadow: 0 0.5px 0.5px 0.5px rgba(0, 0, 0, .12); }"], components: [{ type: i10.ToolbarComponent, selector: "kendo-scheduler-toolbar", inputs: ["selectedView", "views", "dateRange", "selectedDate", "template", "min", "max"], outputs: ["navigate"] }, { type: i11.EditDialogComponent, selector: "kendo-scheduler-edit-dialog", inputs: ["resources", "timezone", "weekStart", "fields", "editTemplate"] }, { type: i12.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: i13.LoadingComponent, selector: "[kendoSchedulerLoading]", inputs: ["loading"] }], directives: [{ type: i14.LocalizedMessagesDirective, selector: "[kendoSchedulerLocalizedMessages]" }, { type: i15.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1158
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SchedulerComponent, decorators: [{
1165
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SchedulerComponent, decorators: [{
1159
1166
  type: Component,
1160
1167
  args: [{
1161
1168
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -154,8 +154,8 @@ const importedKendoModules = [
154
154
  */
155
155
  export class SchedulerModule {
156
156
  }
157
- SchedulerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SchedulerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
158
- SchedulerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SchedulerModule, declarations: [SchedulerComponent,
157
+ SchedulerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SchedulerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
158
+ SchedulerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SchedulerModule, declarations: [SchedulerComponent,
159
159
  SchedulerViewDirective,
160
160
  DataBindingDirective,
161
161
  ShortcutsDirective,
@@ -243,7 +243,7 @@ SchedulerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
243
243
  MinorTimeHeaderTemplateDirective,
244
244
  MonthDaySlotTemplateDirective,
245
245
  TimeSlotTemplateDirective] });
246
- SchedulerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SchedulerModule, providers: [{
246
+ SchedulerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SchedulerModule, providers: [{
247
247
  provide: IntlService,
248
248
  useClass: CldrIntlService
249
249
  }], imports: [[
@@ -258,7 +258,7 @@ SchedulerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
258
258
  ], MonthViewModule,
259
259
  MultiDayViewModule,
260
260
  TimelineViewModule] });
261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SchedulerModule, decorators: [{
261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SchedulerModule, decorators: [{
262
262
  type: NgModule,
263
263
  args: [{
264
264
  imports: [
@@ -4,6 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { NgModule } from '@angular/core';
6
6
  import { FocusableDirective } from './navigation';
7
+ import { SortPipe } from './views/timeline/utils';
7
8
  import * as i0 from "@angular/core";
8
9
  /**
9
10
  * @hidden
@@ -11,21 +12,26 @@ import * as i0 from "@angular/core";
11
12
  export class SharedModule {
12
13
  static exports() {
13
14
  return [
14
- FocusableDirective
15
+ FocusableDirective,
16
+ SortPipe
15
17
  ];
16
18
  }
17
19
  }
18
- SharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
- SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SharedModule, declarations: [FocusableDirective], exports: [FocusableDirective] });
20
- SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SharedModule });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SharedModule, decorators: [{
20
+ SharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
+ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SharedModule, declarations: [FocusableDirective,
22
+ SortPipe], exports: [FocusableDirective,
23
+ SortPipe] });
24
+ SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SharedModule });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SharedModule, decorators: [{
22
26
  type: NgModule,
23
27
  args: [{
24
28
  declarations: [
25
- FocusableDirective
29
+ FocusableDirective,
30
+ SortPipe
26
31
  ],
27
32
  exports: [
28
- FocusableDirective
33
+ FocusableDirective,
34
+ SortPipe
29
35
  ]
30
36
  }]
31
37
  }] });