@progress/kendo-angular-scheduler 4.3.1-dev.202208101208 → 4.3.1-dev.202208291508
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/bundles/kendo-angular-scheduler.umd.js +1 -1
- package/editing-directives/editing-directive-base.d.ts +3 -1
- package/editing-directives/reactive-editing.directive.d.ts +2 -1
- package/esm2015/editing-directives/editing-directive-base.js +7 -3
- package/esm2015/editing-directives/reactive-editing.directive.js +5 -4
- package/esm2015/navigation/focus.service.js +29 -4
- package/esm2015/navigation/focusable.directive.js +6 -1
- package/esm2015/package-metadata.js +1 -1
- package/esm2015/toolbar/navigation.component.js +43 -19
- package/esm2015/views/common/view-footer.component.js +12 -8
- package/esm2015/views/month/month-view-item.component.js +3 -0
- package/esm2015/views/month/month-view-renderer.component.js +2 -2
- package/esm2015/views/view-items/base-view-item.js +1 -3
- package/fesm2015/kendo-angular-scheduler.js +105 -45
- package/navigation/focus.service.d.ts +6 -3
- package/package.json +1 -1
- package/toolbar/navigation.component.d.ts +19 -1
|
@@ -10,6 +10,7 @@ import { EditService } from './edit-service.interface';
|
|
|
10
10
|
import { DialogsService } from '../editing/dialogs.service';
|
|
11
11
|
import { EditMode } from '../types';
|
|
12
12
|
import { AddEvent, EditEvent } from '../events';
|
|
13
|
+
import { FocusService } from '../navigation';
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
15
|
/**
|
|
15
16
|
* @hidden
|
|
@@ -18,6 +19,7 @@ export declare abstract class EditingDirectiveBase implements OnInit, OnDestroy
|
|
|
18
19
|
protected scheduler: SchedulerComponent;
|
|
19
20
|
protected localDataChangesService: LocalDataChangesService;
|
|
20
21
|
protected dialogsService: DialogsService;
|
|
22
|
+
private focusService;
|
|
21
23
|
/**
|
|
22
24
|
* Fires before the editing directive renders the **Add** dialog.
|
|
23
25
|
*/
|
|
@@ -36,7 +38,7 @@ export declare abstract class EditingDirectiveBase implements OnInit, OnDestroy
|
|
|
36
38
|
protected defaultEditService: EditService<any>;
|
|
37
39
|
protected userEditService: EditService<any>;
|
|
38
40
|
protected abstract createModel(args: any): any;
|
|
39
|
-
constructor(scheduler: SchedulerComponent, localDataChangesService: LocalDataChangesService, dialogsService: DialogsService);
|
|
41
|
+
constructor(scheduler: SchedulerComponent, localDataChangesService: LocalDataChangesService, dialogsService: DialogsService, focusService: FocusService);
|
|
40
42
|
/**
|
|
41
43
|
* @hidden
|
|
42
44
|
*/
|
|
@@ -8,6 +8,7 @@ import { EditingDirectiveBase } from './editing-directive-base';
|
|
|
8
8
|
import { CreateFormGroupArgs } from '../types/create-form-group-args.interface';
|
|
9
9
|
import { LocalDataChangesService } from '../editing/local-data-changes.service';
|
|
10
10
|
import { DialogsService } from '../editing/dialogs.service';
|
|
11
|
+
import { FocusService } from "../navigation";
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
/**
|
|
13
14
|
* A directive which encapsulates the editing operations when the Scheduler
|
|
@@ -21,7 +22,7 @@ export declare class ReactiveEditingDirective extends EditingDirectiveBase {
|
|
|
21
22
|
* The function that creates the `FormGroup` for the edited model.
|
|
22
23
|
*/
|
|
23
24
|
createFormGroup: (args: CreateFormGroupArgs) => FormGroup;
|
|
24
|
-
constructor(scheduler: SchedulerComponent, localDataChangesService: LocalDataChangesService, dialogsService: DialogsService);
|
|
25
|
+
constructor(scheduler: SchedulerComponent, localDataChangesService: LocalDataChangesService, dialogsService: DialogsService, focusService: FocusService);
|
|
25
26
|
ngOnInit(): void;
|
|
26
27
|
protected editHandler(args: any): void;
|
|
27
28
|
protected saveHandler(args: any): void;
|
|
@@ -12,14 +12,16 @@ import * as i0 from "@angular/core";
|
|
|
12
12
|
import * as i1 from "../scheduler.component";
|
|
13
13
|
import * as i2 from "../editing/local-data-changes.service";
|
|
14
14
|
import * as i3 from "../editing/dialogs.service";
|
|
15
|
+
import * as i4 from "../navigation";
|
|
15
16
|
/**
|
|
16
17
|
* @hidden
|
|
17
18
|
*/
|
|
18
19
|
export class EditingDirectiveBase {
|
|
19
|
-
constructor(scheduler, localDataChangesService, dialogsService) {
|
|
20
|
+
constructor(scheduler, localDataChangesService, dialogsService, focusService) {
|
|
20
21
|
this.scheduler = scheduler;
|
|
21
22
|
this.localDataChangesService = localDataChangesService;
|
|
22
23
|
this.dialogsService = dialogsService;
|
|
24
|
+
this.focusService = focusService;
|
|
23
25
|
/**
|
|
24
26
|
* Fires before the editing directive renders the **Add** dialog.
|
|
25
27
|
*/
|
|
@@ -97,6 +99,7 @@ export class EditingDirectiveBase {
|
|
|
97
99
|
.subscribe((editMode) => {
|
|
98
100
|
if (editMode !== undefined) {
|
|
99
101
|
this.handleRemove(dataItem, editMode);
|
|
102
|
+
this.focusService.focusFirst();
|
|
100
103
|
}
|
|
101
104
|
});
|
|
102
105
|
}
|
|
@@ -105,6 +108,7 @@ export class EditingDirectiveBase {
|
|
|
105
108
|
.subscribe((shouldRemove) => {
|
|
106
109
|
if (shouldRemove) {
|
|
107
110
|
this.handleRemove(dataItem, 0 /* Event */);
|
|
111
|
+
this.focusService.focusFirst();
|
|
108
112
|
}
|
|
109
113
|
});
|
|
110
114
|
}
|
|
@@ -205,11 +209,11 @@ export class EditingDirectiveBase {
|
|
|
205
209
|
return editable && editable[action] !== false;
|
|
206
210
|
}
|
|
207
211
|
}
|
|
208
|
-
EditingDirectiveBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EditingDirectiveBase, deps: [{ token: i1.SchedulerComponent }, { token: i2.LocalDataChangesService }, { token: i3.DialogsService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
212
|
+
EditingDirectiveBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EditingDirectiveBase, deps: [{ token: i1.SchedulerComponent }, { token: i2.LocalDataChangesService }, { token: i3.DialogsService }, { token: i4.FocusService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
209
213
|
EditingDirectiveBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: EditingDirectiveBase, inputs: { editService: "editService" }, outputs: { add: "add", edit: "edit" }, ngImport: i0 });
|
|
210
214
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EditingDirectiveBase, decorators: [{
|
|
211
215
|
type: Directive
|
|
212
|
-
}], ctorParameters: function () { return [{ type: i1.SchedulerComponent }, { type: i2.LocalDataChangesService }, { type: i3.DialogsService }]; }, propDecorators: { add: [{
|
|
216
|
+
}], ctorParameters: function () { return [{ type: i1.SchedulerComponent }, { type: i2.LocalDataChangesService }, { type: i3.DialogsService }, { type: i4.FocusService }]; }, propDecorators: { add: [{
|
|
213
217
|
type: Output
|
|
214
218
|
}], edit: [{
|
|
215
219
|
type: Output
|
|
@@ -11,13 +11,14 @@ import * as i0 from "@angular/core";
|
|
|
11
11
|
import * as i1 from "../scheduler.component";
|
|
12
12
|
import * as i2 from "../editing/local-data-changes.service";
|
|
13
13
|
import * as i3 from "../editing/dialogs.service";
|
|
14
|
+
import * as i4 from "../navigation";
|
|
14
15
|
/**
|
|
15
16
|
* A directive which encapsulates the editing operations when the Scheduler
|
|
16
17
|
* uses the [Reactive Angular Forms]({{ site.data.urls.angular['reactiveforms'] }}).
|
|
17
18
|
*/
|
|
18
19
|
export class ReactiveEditingDirective extends EditingDirectiveBase {
|
|
19
|
-
constructor(scheduler, localDataChangesService, dialogsService) {
|
|
20
|
-
super(scheduler, localDataChangesService, dialogsService);
|
|
20
|
+
constructor(scheduler, localDataChangesService, dialogsService, focusService) {
|
|
21
|
+
super(scheduler, localDataChangesService, dialogsService, focusService);
|
|
21
22
|
this.scheduler = scheduler;
|
|
22
23
|
this.localDataChangesService = localDataChangesService;
|
|
23
24
|
this.dialogsService = dialogsService;
|
|
@@ -91,14 +92,14 @@ export class ReactiveEditingDirective extends EditingDirectiveBase {
|
|
|
91
92
|
return false;
|
|
92
93
|
}
|
|
93
94
|
}
|
|
94
|
-
ReactiveEditingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReactiveEditingDirective, deps: [{ token: i1.SchedulerComponent }, { token: i2.LocalDataChangesService }, { token: i3.DialogsService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
95
|
+
ReactiveEditingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReactiveEditingDirective, deps: [{ token: i1.SchedulerComponent }, { token: i2.LocalDataChangesService }, { token: i3.DialogsService }, { token: i4.FocusService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
95
96
|
ReactiveEditingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: ReactiveEditingDirective, selector: "[kendoSchedulerReactiveEditing]", inputs: { createFormGroup: ["kendoSchedulerReactiveEditing", "createFormGroup"] }, usesInheritance: true, ngImport: i0 });
|
|
96
97
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReactiveEditingDirective, decorators: [{
|
|
97
98
|
type: Directive,
|
|
98
99
|
args: [{
|
|
99
100
|
selector: '[kendoSchedulerReactiveEditing]'
|
|
100
101
|
}]
|
|
101
|
-
}], ctorParameters: function () { return [{ type: i1.SchedulerComponent }, { type: i2.LocalDataChangesService }, { type: i3.DialogsService }]; }, propDecorators: { createFormGroup: [{
|
|
102
|
+
}], ctorParameters: function () { return [{ type: i1.SchedulerComponent }, { type: i2.LocalDataChangesService }, { type: i3.DialogsService }, { type: i4.FocusService }]; }, propDecorators: { createFormGroup: [{
|
|
102
103
|
type: Input,
|
|
103
104
|
args: ['kendoSchedulerReactiveEditing']
|
|
104
105
|
}] } });
|
|
@@ -4,16 +4,18 @@
|
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { Injectable, Optional, EventEmitter } from '@angular/core';
|
|
6
6
|
import { Subscription } from 'rxjs';
|
|
7
|
+
import { take } from 'rxjs/operators';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
import * as i1 from "../views/common/dom-events.service";
|
|
9
10
|
/**
|
|
10
11
|
* @hidden
|
|
11
12
|
*/
|
|
12
13
|
export class FocusService {
|
|
13
|
-
constructor(renderer, wrapper, domEvents) {
|
|
14
|
+
constructor(renderer, wrapper, domEvents, zone) {
|
|
14
15
|
this.renderer = renderer;
|
|
15
16
|
this.wrapper = wrapper;
|
|
16
17
|
this.domEvents = domEvents;
|
|
18
|
+
this.zone = zone;
|
|
17
19
|
this.ariaActiveDescendant = new EventEmitter();
|
|
18
20
|
this.items = new Set();
|
|
19
21
|
this.elementMap = new WeakMap();
|
|
@@ -62,6 +64,24 @@ export class FocusService {
|
|
|
62
64
|
}
|
|
63
65
|
return this.activeItem !== currentItem;
|
|
64
66
|
}
|
|
67
|
+
focusFirst() {
|
|
68
|
+
const firstEvent = Array.from(this.items.values())[0];
|
|
69
|
+
if (!firstEvent) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
this.activate(firstEvent.element.nativeElement);
|
|
73
|
+
this.focus();
|
|
74
|
+
this.zone.onStable.pipe(take(1)).subscribe(() => {
|
|
75
|
+
const first = Array.from(this.items.values())[0];
|
|
76
|
+
if (!first) {
|
|
77
|
+
this.clearActiveDescendant();
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const id = first.element.nativeElement.getAttribute('id');
|
|
81
|
+
this.ariaActiveDescendant.next(id);
|
|
82
|
+
this.lastActiveDescendantId = id;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
65
85
|
clearActiveDescendant() {
|
|
66
86
|
this.ariaActiveDescendant.next(null);
|
|
67
87
|
}
|
|
@@ -72,6 +92,7 @@ export class FocusService {
|
|
|
72
92
|
if (item === next) {
|
|
73
93
|
const id = item.element.nativeElement.getAttribute('id');
|
|
74
94
|
this.ariaActiveDescendant.next(id);
|
|
95
|
+
this.lastActiveDescendantId = id;
|
|
75
96
|
}
|
|
76
97
|
});
|
|
77
98
|
this.activeItem = next;
|
|
@@ -110,6 +131,10 @@ export class FocusService {
|
|
|
110
131
|
}
|
|
111
132
|
onFocusIn(e) {
|
|
112
133
|
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
|
+
}
|
|
113
138
|
if (!item || item === this.focusedItem) {
|
|
114
139
|
return;
|
|
115
140
|
}
|
|
@@ -126,10 +151,10 @@ export class FocusService {
|
|
|
126
151
|
}
|
|
127
152
|
this.focusedItem.toggleFocus(false);
|
|
128
153
|
this.focusedItem = null;
|
|
129
|
-
this.
|
|
154
|
+
this.clearActiveDescendant();
|
|
130
155
|
}
|
|
131
156
|
}
|
|
132
|
-
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 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
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 });
|
|
133
158
|
FocusService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FocusService });
|
|
134
159
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FocusService, decorators: [{
|
|
135
160
|
type: Injectable
|
|
@@ -137,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
137
162
|
type: Optional
|
|
138
163
|
}] }, { type: i0.ElementRef, decorators: [{
|
|
139
164
|
type: Optional
|
|
140
|
-
}] }, { type: i1.DomEventsService }]; } });
|
|
165
|
+
}] }, { type: i1.DomEventsService }, { type: i0.NgZone }]; } });
|
|
@@ -44,6 +44,7 @@ export class FocusableDirective {
|
|
|
44
44
|
this.element.nativeElement.focus();
|
|
45
45
|
}
|
|
46
46
|
toggleFocus(value) {
|
|
47
|
+
var _a;
|
|
47
48
|
const focusedClass = 'k-selected';
|
|
48
49
|
const element = this.element.nativeElement;
|
|
49
50
|
if (value) {
|
|
@@ -52,7 +53,11 @@ export class FocusableDirective {
|
|
|
52
53
|
else {
|
|
53
54
|
this.renderer.removeClass(element, focusedClass);
|
|
54
55
|
}
|
|
55
|
-
|
|
56
|
+
const selectable = element.matches('.k-scheduler-agendaview .k-scheduler-content .k-selected');
|
|
57
|
+
if (selectable) {
|
|
58
|
+
(_a = element.closest('.k-scheduler-agendaview').querySelector('[aria-selected="true"]')) === null || _a === void 0 ? void 0 : _a.removeAttribute('aria-selected');
|
|
59
|
+
this.renderer.setAttribute(element, 'aria-selected', value.toString());
|
|
60
|
+
}
|
|
56
61
|
}
|
|
57
62
|
}
|
|
58
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 });
|
|
@@ -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: 1661785631,
|
|
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
|
};
|
|
@@ -8,9 +8,10 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
import * as i1 from "@progress/kendo-angular-popup";
|
|
9
9
|
import * as i2 from "./toolbar.service";
|
|
10
10
|
import * as i3 from "@progress/kendo-angular-l10n";
|
|
11
|
-
import * as i4 from "
|
|
12
|
-
import * as i5 from "@progress/kendo-angular-
|
|
13
|
-
import * as i6 from "@angular
|
|
11
|
+
import * as i4 from "../views/view-context.service";
|
|
12
|
+
import * as i5 from "@progress/kendo-angular-dateinputs";
|
|
13
|
+
import * as i6 from "@progress/kendo-angular-buttons";
|
|
14
|
+
import * as i7 from "@angular/common";
|
|
14
15
|
/**
|
|
15
16
|
* A toolbar component which contains the controls for date navigation
|
|
16
17
|
* ([see example]({% slug toolbar_scheduler %}#toc-including-the-built-in-components)).
|
|
@@ -28,10 +29,12 @@ import * as i6 from "@angular/common";
|
|
|
28
29
|
* {% endmeta %}
|
|
29
30
|
*/
|
|
30
31
|
export class ToolbarNavigationComponent {
|
|
31
|
-
constructor(popupService, toolbarService, localization, cd) {
|
|
32
|
+
constructor(popupService, toolbarService, localization, cd, viewContext) {
|
|
32
33
|
this.popupService = popupService;
|
|
33
34
|
this.toolbarService = toolbarService;
|
|
34
35
|
this.localization = localization;
|
|
36
|
+
this.cd = cd;
|
|
37
|
+
this.viewContext = viewContext;
|
|
35
38
|
/**
|
|
36
39
|
* @hidden
|
|
37
40
|
* TODO: Drop in next MAJOR version
|
|
@@ -47,6 +50,10 @@ export class ToolbarNavigationComponent {
|
|
|
47
50
|
* TODO: Drop in next MAJOR version
|
|
48
51
|
*/
|
|
49
52
|
this.inlineGapStyle = 'inherit';
|
|
53
|
+
/**
|
|
54
|
+
* @hidden
|
|
55
|
+
*/
|
|
56
|
+
this.dateRangeText = { short: '', long: '', current: '' };
|
|
50
57
|
this.subs = this.localization.changes.subscribe(() => {
|
|
51
58
|
cd.markForCheck();
|
|
52
59
|
});
|
|
@@ -92,6 +99,16 @@ export class ToolbarNavigationComponent {
|
|
|
92
99
|
onBlur() {
|
|
93
100
|
this.closePopup();
|
|
94
101
|
}
|
|
102
|
+
ngOnInit() {
|
|
103
|
+
this.subs.add(this.ctx.dateRange.subscribe(res => {
|
|
104
|
+
this.dateRangeText.short = res === null || res === void 0 ? void 0 : res.shortText;
|
|
105
|
+
this.dateRangeText.long = res === null || res === void 0 ? void 0 : res.text;
|
|
106
|
+
this.setDateRangeText();
|
|
107
|
+
}));
|
|
108
|
+
this.subs.add(this.viewContext.resize.subscribe(() => {
|
|
109
|
+
this.setDateRangeText();
|
|
110
|
+
}));
|
|
111
|
+
}
|
|
95
112
|
ngOnDestroy() {
|
|
96
113
|
this.subs.unsubscribe();
|
|
97
114
|
this.closePopup();
|
|
@@ -158,8 +175,13 @@ export class ToolbarNavigationComponent {
|
|
|
158
175
|
this.popupRef = null;
|
|
159
176
|
}
|
|
160
177
|
}
|
|
178
|
+
setDateRangeText() {
|
|
179
|
+
const isDesktop = window.matchMedia('(min-width: 1024px)').matches;
|
|
180
|
+
this.dateRangeText.current = isDesktop ? this.dateRangeText.long : this.dateRangeText.short;
|
|
181
|
+
this.cd.detectChanges();
|
|
182
|
+
}
|
|
161
183
|
}
|
|
162
|
-
ToolbarNavigationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ToolbarNavigationComponent, deps: [{ token: i1.PopupService }, { token: i2.ToolbarService }, { token: i3.LocalizationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
184
|
+
ToolbarNavigationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ToolbarNavigationComponent, deps: [{ token: i1.PopupService }, { token: i2.ToolbarService }, { token: i3.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i4.ViewContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
163
185
|
ToolbarNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ToolbarNavigationComponent, selector: "[kendoSchedulerToolbarNavigation]", inputs: { min: "min", max: "max" }, host: { properties: { "style.display": "this.inlineDisplayStyle", "style.flex-flow": "this.inlineFlexFlowStyle", "style.gap": "this.inlineGapStyle" } }, providers: [
|
|
164
186
|
PopupService
|
|
165
187
|
], viewQueries: [{ propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true }], ngImport: i0, template: `
|
|
@@ -190,18 +212,19 @@ ToolbarNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
190
212
|
</button>
|
|
191
213
|
</span>
|
|
192
214
|
|
|
193
|
-
<
|
|
215
|
+
<button
|
|
216
|
+
#anchor
|
|
217
|
+
kendoButton
|
|
218
|
+
icon="calendar"
|
|
219
|
+
fillMode="flat"
|
|
194
220
|
(click)="toggleSelectedDate({ nativeElement: anchor }, template)"
|
|
195
221
|
role="button"
|
|
196
|
-
href="#"
|
|
197
222
|
class="k-nav-current"
|
|
198
223
|
tabindex="-1"
|
|
199
224
|
[attr.aria-live]="'polite'"
|
|
200
225
|
>
|
|
201
|
-
<span
|
|
202
|
-
|
|
203
|
-
<span class="k-lg-date-format">{{ (ctx.dateRange | async)?.text }}</span>
|
|
204
|
-
</a>
|
|
226
|
+
<span>{{ dateRangeText?.current }}</span>
|
|
227
|
+
</button>
|
|
205
228
|
|
|
206
229
|
<ng-template #template>
|
|
207
230
|
<kendo-calendar #calendar (blur)="onBlur()" (valueChange)="selectDate($event)" [value]="ctx.selectedDate | async" [min]="min" [max]="max">
|
|
@@ -209,7 +232,7 @@ ToolbarNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
209
232
|
</kendo-calendar-messages>
|
|
210
233
|
</kendo-calendar>
|
|
211
234
|
</ng-template>
|
|
212
|
-
`, isInline: true, components: [{ type:
|
|
235
|
+
`, isInline: true, components: [{ type: i5.CalendarComponent, selector: "kendo-calendar", inputs: ["id", "focusedDate", "min", "max", "rangeValidation", "selection", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "valueChange"], exportAs: ["kendo-calendar"] }, { type: i5.CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }], directives: [{ type: i6.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], pipes: { "async": i7.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
213
236
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ToolbarNavigationComponent, decorators: [{
|
|
214
237
|
type: Component,
|
|
215
238
|
args: [{
|
|
@@ -247,18 +270,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
247
270
|
</button>
|
|
248
271
|
</span>
|
|
249
272
|
|
|
250
|
-
<
|
|
273
|
+
<button
|
|
274
|
+
#anchor
|
|
275
|
+
kendoButton
|
|
276
|
+
icon="calendar"
|
|
277
|
+
fillMode="flat"
|
|
251
278
|
(click)="toggleSelectedDate({ nativeElement: anchor }, template)"
|
|
252
279
|
role="button"
|
|
253
|
-
href="#"
|
|
254
280
|
class="k-nav-current"
|
|
255
281
|
tabindex="-1"
|
|
256
282
|
[attr.aria-live]="'polite'"
|
|
257
283
|
>
|
|
258
|
-
<span
|
|
259
|
-
|
|
260
|
-
<span class="k-lg-date-format">{{ (ctx.dateRange | async)?.text }}</span>
|
|
261
|
-
</a>
|
|
284
|
+
<span>{{ dateRangeText?.current }}</span>
|
|
285
|
+
</button>
|
|
262
286
|
|
|
263
287
|
<ng-template #template>
|
|
264
288
|
<kendo-calendar #calendar (blur)="onBlur()" (valueChange)="selectDate($event)" [value]="ctx.selectedDate | async" [min]="min" [max]="max">
|
|
@@ -268,7 +292,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
268
292
|
</ng-template>
|
|
269
293
|
`
|
|
270
294
|
}]
|
|
271
|
-
}], ctorParameters: function () { return [{ type: i1.PopupService }, { type: i2.ToolbarService }, { type: i3.LocalizationService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { calendar: [{
|
|
295
|
+
}], ctorParameters: function () { return [{ type: i1.PopupService }, { type: i2.ToolbarService }, { type: i3.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i4.ViewContextService }]; }, propDecorators: { calendar: [{
|
|
272
296
|
type: ViewChild,
|
|
273
297
|
args: ['calendar', { static: false }]
|
|
274
298
|
}], inlineDisplayStyle: [{
|
|
@@ -26,10 +26,12 @@ export class ViewFooterComponent {
|
|
|
26
26
|
}
|
|
27
27
|
ViewFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ViewFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
28
28
|
ViewFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ViewFooterComponent, selector: "[viewFooter]", inputs: { items: "items" }, outputs: { itemClick: "itemClick" }, host: { properties: { "class.k-scheduler-footer": "this.hostClasses", "class.k-toolbar": "this.hostClasses", "style.justify-content": "this.inlineJustifyContentStyle" } }, ngImport: i0, template: `
|
|
29
|
-
<
|
|
30
|
-
<
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
<span class="k-scheduler-navigation">
|
|
30
|
+
<button type="button" kendoButton *ngFor="let item of items" [ngClass]="item.cssClass" (click)="onItemClick($event, item)">
|
|
31
|
+
<span class="k-button-icon k-icon" [ngClass]="item.iconClass"></span>
|
|
32
|
+
<span class="k-button-text">{{ item.text }}</span>
|
|
33
|
+
</button>
|
|
34
|
+
</span>
|
|
33
35
|
`, isInline: true, directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
34
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ViewFooterComponent, decorators: [{
|
|
35
37
|
type: Component,
|
|
@@ -37,10 +39,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
37
39
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
38
40
|
selector: '[viewFooter]',
|
|
39
41
|
template: `
|
|
40
|
-
<
|
|
41
|
-
<
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
<span class="k-scheduler-navigation">
|
|
43
|
+
<button type="button" kendoButton *ngFor="let item of items" [ngClass]="item.cssClass" (click)="onItemClick($event, item)">
|
|
44
|
+
<span class="k-button-icon k-icon" [ngClass]="item.iconClass"></span>
|
|
45
|
+
<span class="k-button-text">{{ item.text }}</span>
|
|
46
|
+
</button>
|
|
47
|
+
</span>
|
|
44
48
|
`
|
|
45
49
|
}]
|
|
46
50
|
}], propDecorators: { hostClasses: [{
|
|
@@ -276,7 +276,7 @@ MonthViewRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
276
276
|
</ng-container>
|
|
277
277
|
</table>
|
|
278
278
|
</div>
|
|
279
|
-
<div class="k-scheduler-content" #content>
|
|
279
|
+
<div class="k-scheduler-content" tabindex="0" #content>
|
|
280
280
|
<table class="k-scheduler-table k-user-select-none" #contentTable role="presentation">
|
|
281
281
|
<ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex">
|
|
282
282
|
<tr *ngFor="let week of weeks; let rangeIndex = index; trackBy: itemIndex">
|
|
@@ -404,7 +404,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
404
404
|
</ng-container>
|
|
405
405
|
</table>
|
|
406
406
|
</div>
|
|
407
|
-
<div class="k-scheduler-content" #content>
|
|
407
|
+
<div class="k-scheduler-content" tabindex="0" #content>
|
|
408
408
|
<table class="k-scheduler-table k-user-select-none" #contentTable role="presentation">
|
|
409
409
|
<ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex">
|
|
410
410
|
<tr *ngFor="let week of weeks; let rangeIndex = index; trackBy: itemIndex">
|
|
@@ -78,8 +78,7 @@ export class BaseViewItem {
|
|
|
78
78
|
right: this.localization.rtl ? `${rect.left}px` : '',
|
|
79
79
|
top: `${rect.top}px`,
|
|
80
80
|
width: `${rect.width}px`,
|
|
81
|
-
height: `${rect.height}px
|
|
82
|
-
display: 'block'
|
|
81
|
+
height: `${rect.height}px`
|
|
83
82
|
});
|
|
84
83
|
}
|
|
85
84
|
}
|
|
@@ -90,7 +89,6 @@ export class BaseViewItem {
|
|
|
90
89
|
this.subs.add(this.slotService.slotsChange.subscribe(() => {
|
|
91
90
|
this.rect = null;
|
|
92
91
|
this.setStyles({
|
|
93
|
-
display: 'none',
|
|
94
92
|
width: 0,
|
|
95
93
|
left: 0
|
|
96
94
|
});
|