@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.
- package/README.md +14 -12
- package/bundles/kendo-angular-scheduler.umd.js +1 -1
- package/esm2015/data-binding.directive.js +3 -3
- package/esm2015/editing/date-time-picker.component.js +3 -3
- package/esm2015/editing/dialogs.service.js +3 -3
- package/esm2015/editing/edit-dialog-template.directive.js +3 -3
- package/esm2015/editing/edit-dialog.component.js +3 -3
- package/esm2015/editing/edit.service.js +3 -3
- package/esm2015/editing/local-data-changes.service.js +3 -3
- package/esm2015/editing/recurrence/end-rule-radio-button.directive.js +3 -3
- package/esm2015/editing/recurrence/localization/custom-messages.component.js +3 -3
- package/esm2015/editing/recurrence/localization/localized-messages.directive.js +3 -3
- package/esm2015/editing/recurrence/localization/messages.js +3 -3
- package/esm2015/editing/recurrence/localization/recurrence-localization.service.js +3 -3
- package/esm2015/editing/recurrence/recurrence-editor.component.js +3 -3
- package/esm2015/editing/recurrence/recurrence-end-rule-editor.component.js +3 -3
- package/esm2015/editing/recurrence/recurrence-frequency-editor.component.js +3 -3
- package/esm2015/editing/recurrence/recurrence-interval-editor.component.js +3 -3
- package/esm2015/editing/recurrence/recurrence-monthly-yearly-editor.component.js +3 -3
- package/esm2015/editing/recurrence/recurrence-weekday-rule-editor.component.js +3 -3
- package/esm2015/editing/recurrence/recurrence.service.js +3 -3
- package/esm2015/editing/recurrence/repeat-on-radio-button.directive.js +3 -3
- package/esm2015/editing/resource-editor-base.js +3 -3
- package/esm2015/editing/resource-multiple-editor.component.js +3 -3
- package/esm2015/editing/resource-single-editor.component.js +3 -3
- package/esm2015/editing/timezone-editor.component.js +3 -3
- package/esm2015/editing-directives/editing-directive-base.js +6 -5
- package/esm2015/editing-directives/reactive-editing.directive.js +3 -3
- package/esm2015/loading.component.js +3 -3
- package/esm2015/localization/custom-messages.component.js +3 -3
- package/esm2015/localization/localized-messages.directive.js +3 -3
- package/esm2015/localization/messages.js +3 -3
- package/esm2015/localization/scheduler-localization.service.js +3 -3
- package/esm2015/main.js +1 -0
- package/esm2015/navigation/focus.service.js +35 -31
- package/esm2015/navigation/focusable.directive.js +17 -4
- package/esm2015/navigation/shortcuts.directive.js +36 -5
- package/esm2015/package-metadata.js +1 -1
- package/esm2015/pdf/pdf-command.directive.js +3 -3
- package/esm2015/pdf/pdf.component.js +3 -3
- package/esm2015/pdf/pdf.module.js +4 -4
- package/esm2015/pdf/pdf.service.js +3 -3
- package/esm2015/scheduler.component.js +20 -13
- package/esm2015/scheduler.module.js +4 -4
- package/esm2015/shared.module.js +13 -7
- package/esm2015/toolbar/navigation.component.js +40 -19
- package/esm2015/toolbar/toolbar-template.directive.js +3 -3
- package/esm2015/toolbar/toolbar.component.js +3 -3
- package/esm2015/toolbar/toolbar.module.js +11 -7
- package/esm2015/toolbar/toolbar.service.js +3 -3
- package/esm2015/toolbar/view-selector.component.js +16 -11
- package/esm2015/types/focusable-container.js +5 -0
- package/esm2015/views/agenda/agenda-header-item.component.js +3 -3
- package/esm2015/views/agenda/agenda-header.component.js +7 -7
- package/esm2015/views/agenda/agenda-task-item.component.js +3 -3
- package/esm2015/views/agenda/agenda-view-internal.component.js +3 -3
- package/esm2015/views/agenda/agenda-view-list.component.js +4 -4
- package/esm2015/views/agenda/agenda-view.component.js +3 -3
- package/esm2015/views/agenda/agenda-view.module.js +4 -4
- package/esm2015/views/common/base-view.js +12 -4
- package/esm2015/views/common/configuration-view-base.js +3 -3
- package/esm2015/views/common/dom-events.service.js +3 -3
- package/esm2015/views/common/hint-container.component.js +3 -3
- package/esm2015/views/common/repeat.pipe.js +3 -3
- package/esm2015/views/common/resize-hint.component.js +3 -3
- package/esm2015/views/common/resource-iterator.pipe.js +3 -3
- package/esm2015/views/common/slot-selectable.directive.js +3 -3
- package/esm2015/views/common/view-footer.component.js +31 -10
- package/esm2015/views/common/views-shared.module.js +4 -4
- package/esm2015/views/common/work-hours-footer.directive.js +3 -3
- package/esm2015/views/day-time/day-time-slot.service.js +17 -11
- package/esm2015/views/day-time/day-time-view-base.js +3 -3
- package/esm2015/views/day-time/day-time-view-item.component.js +3 -3
- package/esm2015/views/day-time/day-time-view.component.js +6 -9
- package/esm2015/views/day-time/day-time.module.js +4 -4
- package/esm2015/views/day-time/event-slot.directive.js +6 -6
- package/esm2015/views/month/month-slot.directive.js +3 -3
- package/esm2015/views/month/month-view-item.component.js +3 -3
- package/esm2015/views/month/month-view-renderer.component.js +27 -20
- package/esm2015/views/month/month-view.component.js +3 -3
- package/esm2015/views/month/month-view.module.js +4 -4
- package/esm2015/views/multi-day/day-view.component.js +3 -3
- package/esm2015/views/multi-day/multi-day-view-base.js +3 -3
- package/esm2015/views/multi-day/multi-day-view-renderer.component.js +27 -18
- package/esm2015/views/multi-day/multi-day-view.component.js +3 -3
- package/esm2015/views/multi-day/multi-day-view.module.js +4 -4
- package/esm2015/views/multi-day/week-view.component.js +3 -3
- package/esm2015/views/multi-day/work-week-view.component.js +3 -3
- package/esm2015/views/scheduler-view.directive.js +3 -3
- package/esm2015/views/templates/agenda-date-template.directive.js +3 -3
- package/esm2015/views/templates/agenda-time-template.directive.js +3 -3
- package/esm2015/views/templates/all-day-event-template.directive.js +3 -3
- package/esm2015/views/templates/all-day-slot-template.directive.js +3 -3
- package/esm2015/views/templates/date-header-template.directive.js +3 -3
- package/esm2015/views/templates/event-template.directive.js +3 -3
- package/esm2015/views/templates/group-header-template.directive.js +3 -3
- package/esm2015/views/templates/major-time-header-template.directive.js +3 -3
- package/esm2015/views/templates/minor-time-header-template.directive.js +3 -3
- package/esm2015/views/templates/month-day-slot-template.directive.js +3 -3
- package/esm2015/views/templates/time-slot-template.directive.js +3 -3
- package/esm2015/views/timeline/timeline-base.js +3 -3
- package/esm2015/views/timeline/timeline-month-view.component.js +3 -3
- package/esm2015/views/timeline/timeline-multi-day-view.component.js +31 -21
- package/esm2015/views/timeline/timeline-view.component.js +3 -3
- package/esm2015/views/timeline/timeline-view.module.js +4 -4
- package/esm2015/views/timeline/timeline-week-view.component.js +3 -3
- package/esm2015/views/timeline/utils.js +19 -0
- package/esm2015/views/view-context.service.js +3 -3
- package/esm2015/views/view-items/base-slot.directive.js +3 -3
- package/esm2015/views/view-items/base-view-item.js +3 -3
- package/esm2015/views/view-state.service.js +7 -3
- package/fesm2015/kendo-angular-scheduler.js +691 -525
- package/main.d.ts +1 -0
- package/navigation/focus.service.d.ts +6 -6
- package/navigation/focusable-element.interface.d.ts +5 -0
- package/navigation/focusable.directive.d.ts +4 -1
- package/package.json +2 -2
- package/scheduler.component.d.ts +1 -1
- package/shared.module.d.ts +2 -1
- package/toolbar/toolbar.module.d.ts +2 -1
- package/types/actions.d.ts +15 -8
- package/types/focusable-container.d.ts +8 -0
- package/views/common/base-view.d.ts +5 -0
- package/views/common/view-footer.component.d.ts +4 -0
- package/views/day-time/day-time-view.component.d.ts +1 -3
- package/views/month/month-view-renderer.component.d.ts +1 -3
- package/views/multi-day/multi-day-view-renderer.component.d.ts +1 -2
- package/views/timeline/timeline-multi-day-view.component.d.ts +1 -2
- package/views/timeline/utils.d.ts +11 -0
- 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.
|
|
22
|
-
SchedulerCustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
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.
|
|
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.
|
|
19
|
-
LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
|
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.
|
|
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.
|
|
14
|
-
Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
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.
|
|
18
|
-
SchedulerLocalizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
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
|
|
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.
|
|
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
|
-
|
|
68
|
-
const
|
|
69
|
-
if (!
|
|
86
|
+
focusByIndex(index) {
|
|
87
|
+
const item = Array.from(this.items.values())[index];
|
|
88
|
+
if (!item) {
|
|
70
89
|
return;
|
|
71
90
|
}
|
|
72
|
-
this.activate(
|
|
91
|
+
this.activate(item);
|
|
73
92
|
this.focus();
|
|
74
93
|
this.zone.onStable.pipe(take(1)).subscribe(() => {
|
|
75
|
-
const
|
|
76
|
-
if (!
|
|
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
|
-
|
|
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.
|
|
158
|
-
FocusService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
159
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
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.
|
|
64
|
-
FocusableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
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.
|
|
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.
|
|
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.
|
|
145
|
-
ShortcutsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
|
146
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
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:
|
|
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.
|
|
49
|
-
PDFCommandDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
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.
|
|
104
|
-
PDFComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
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.
|
|
47
|
-
PDFModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
|
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.
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
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.
|
|
35
|
-
PDFService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
707
|
+
* Focuses the last focused scheduler element or the Scheduler element, if no events are available.
|
|
701
708
|
*/
|
|
702
709
|
focus() {
|
|
703
|
-
|
|
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.
|
|
874
|
-
SchedulerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
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.
|
|
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.
|
|
158
|
-
SchedulerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
|
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.
|
|
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.
|
|
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: [
|
package/esm2015/shared.module.js
CHANGED
|
@@ -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.
|
|
19
|
-
SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
|
20
|
-
|
|
21
|
-
|
|
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
|
}] });
|