@progress/kendo-angular-layout 7.1.5-dev.202210210934 → 7.1.5
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-layout.umd.js +1 -1
- package/drawer/drawer.service.d.ts +2 -0
- package/drawer/item.component.d.ts +2 -2
- package/drawer/list.component.d.ts +4 -2
- package/esm2015/drawer/drawer-container.component.js +1 -1
- package/esm2015/drawer/drawer.component.js +9 -8
- package/esm2015/drawer/drawer.service.js +28 -0
- package/esm2015/drawer/item.component.js +3 -3
- package/esm2015/drawer/list.component.js +26 -9
- package/esm2015/package-metadata.js +1 -1
- package/fesm2015/kendo-angular-layout.js +66 -21
- package/package.json +1 -1
|
@@ -16,10 +16,12 @@ export declare class DrawerService {
|
|
|
16
16
|
owner: any;
|
|
17
17
|
selectedIndices: Array<number>;
|
|
18
18
|
viewData: Set<DrawerViewItem>;
|
|
19
|
+
focusIndex: number;
|
|
19
20
|
private originalItems;
|
|
20
21
|
private idxCounter;
|
|
21
22
|
init(): void;
|
|
22
23
|
get view(): Array<DrawerViewItem>;
|
|
24
|
+
changeFocusedItem(items: any, keyName: any, renderer: any): void;
|
|
23
25
|
private populateViewData;
|
|
24
26
|
private resetViewData;
|
|
25
27
|
private loadChildren;
|
|
@@ -10,7 +10,7 @@ import * as i0 from "@angular/core";
|
|
|
10
10
|
* @hidden
|
|
11
11
|
*/
|
|
12
12
|
export declare class DrawerItemComponent implements AfterViewInit {
|
|
13
|
-
|
|
13
|
+
drawerService: DrawerService;
|
|
14
14
|
private element;
|
|
15
15
|
private renderer;
|
|
16
16
|
viewItem: DrawerViewItem;
|
|
@@ -24,7 +24,7 @@ export declare class DrawerItemComponent implements AfterViewInit {
|
|
|
24
24
|
get disabledClass(): boolean;
|
|
25
25
|
get selectedClass(): boolean;
|
|
26
26
|
get label(): boolean;
|
|
27
|
-
constructor(
|
|
27
|
+
constructor(drawerService: DrawerService, element: ElementRef, renderer: Renderer2);
|
|
28
28
|
ngAfterViewInit(): void;
|
|
29
29
|
get iconClasses(): string[];
|
|
30
30
|
get item(): any;
|
|
@@ -2,10 +2,11 @@
|
|
|
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 { ElementRef, NgZone, OnDestroy, OnInit, Renderer2, TemplateRef, EventEmitter } from "@angular/core";
|
|
5
|
+
import { ElementRef, NgZone, OnDestroy, OnInit, Renderer2, TemplateRef, EventEmitter, QueryList } from "@angular/core";
|
|
6
6
|
import { DrawerService } from './drawer.service';
|
|
7
7
|
import { DrawerListSelectEvent } from './events/drawer-list-select.event';
|
|
8
8
|
import { DrawerViewItem } from './models/drawer-view-item.interface';
|
|
9
|
+
import { DrawerItemComponent } from './item.component';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
/**
|
|
11
12
|
* @hidden
|
|
@@ -20,6 +21,7 @@ export declare class DrawerListComponent implements OnInit, OnDestroy {
|
|
|
20
21
|
expanded: boolean;
|
|
21
22
|
view: DrawerViewItem[];
|
|
22
23
|
select: EventEmitter<DrawerListSelectEvent>;
|
|
24
|
+
items: QueryList<DrawerItemComponent>;
|
|
23
25
|
private subscriptions;
|
|
24
26
|
constructor(drawerService: DrawerService, renderer: Renderer2, ngZone: NgZone, element: ElementRef);
|
|
25
27
|
ngOnInit(): void;
|
|
@@ -27,7 +29,7 @@ export declare class DrawerListComponent implements OnInit, OnDestroy {
|
|
|
27
29
|
identifyItem(_index: number, viewItem: DrawerViewItem): any;
|
|
28
30
|
private initDomEvents;
|
|
29
31
|
private clickHandler;
|
|
30
|
-
private
|
|
32
|
+
private onEnterOrSpaceKeyDown;
|
|
31
33
|
private getDrawerItemIndex;
|
|
32
34
|
static ɵfac: i0.ɵɵFactoryDeclaration<DrawerListComponent, never>;
|
|
33
35
|
static ɵcmp: i0.ɵɵComponentDeclaration<DrawerListComponent, "[kendoDrawerList]", never, { "itemTemplate": "itemTemplate"; "mini": "mini"; "expanded": "expanded"; "view": "view"; }, { "select": "select"; }, never, never>;
|
|
@@ -273,7 +273,7 @@ export class DrawerComponent {
|
|
|
273
273
|
}
|
|
274
274
|
}
|
|
275
275
|
DrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DrawerComponent, deps: [{ token: i0.ElementRef }, { token: i1.AnimationBuilder }, { token: i2.LocalizationService }, { token: i3.DrawerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
276
|
-
DrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DrawerComponent, selector: "kendo-drawer", inputs: { mode: "mode", position: "position", mini: "mini", expanded: "expanded", width: "width", miniWidth: "miniWidth", autoCollapse: "autoCollapse", items: "items", isItemExpanded: "isItemExpanded", animation: "animation" }, outputs: { expand: "expand", collapse: "collapse", select: "select", expandedChange: "expandedChange" }, host: { properties: { "class.k-
|
|
276
|
+
DrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DrawerComponent, selector: "kendo-drawer", inputs: { mode: "mode", position: "position", mini: "mini", expanded: "expanded", width: "width", miniWidth: "miniWidth", autoCollapse: "autoCollapse", items: "items", isItemExpanded: "isItemExpanded", animation: "animation" }, outputs: { expand: "expand", collapse: "collapse", select: "select", expandedChange: "expandedChange" }, host: { properties: { "class.k-drawer": "this.hostClasses", "class.k-drawer-start": "this.startPositionClass", "class.k-drawer-end": "this.endPositionClass", "style.transform": "this.overlayTransofrmStyles", "style.flexBasis.px": "this.flexStyles", "attr.dir": "this.direction" } }, providers: [
|
|
277
277
|
LocalizationService,
|
|
278
278
|
DrawerService,
|
|
279
279
|
{
|
|
@@ -288,6 +288,8 @@ DrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
288
288
|
</ng-template>
|
|
289
289
|
|
|
290
290
|
<ul kendoDrawerList
|
|
291
|
+
role="menubar"
|
|
292
|
+
orientation="vertical"
|
|
291
293
|
(select)="onSelect($event)"
|
|
292
294
|
[mini]="mini"
|
|
293
295
|
[expanded]="expanded"
|
|
@@ -327,6 +329,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
327
329
|
</ng-template>
|
|
328
330
|
|
|
329
331
|
<ul kendoDrawerList
|
|
332
|
+
role="menubar"
|
|
333
|
+
orientation="vertical"
|
|
330
334
|
(select)="onSelect($event)"
|
|
331
335
|
[mini]="mini"
|
|
332
336
|
[expanded]="expanded"
|
|
@@ -347,9 +351,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
347
351
|
`
|
|
348
352
|
}]
|
|
349
353
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.AnimationBuilder }, { type: i2.LocalizationService }, { type: i3.DrawerService }]; }, propDecorators: { hostClasses: [{
|
|
350
|
-
type: HostBinding,
|
|
351
|
-
args: ['class.k-widget']
|
|
352
|
-
}, {
|
|
353
354
|
type: HostBinding,
|
|
354
355
|
args: ['class.k-drawer']
|
|
355
356
|
}], startPositionClass: [{
|
|
@@ -397,14 +398,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
397
398
|
type: Output
|
|
398
399
|
}], drawerTemplate: [{
|
|
399
400
|
type: ContentChild,
|
|
400
|
-
args: [DrawerTemplateDirective
|
|
401
|
+
args: [DrawerTemplateDirective]
|
|
401
402
|
}], footerTemplate: [{
|
|
402
403
|
type: ContentChild,
|
|
403
|
-
args: [DrawerFooterTemplateDirective
|
|
404
|
+
args: [DrawerFooterTemplateDirective]
|
|
404
405
|
}], headerTemplate: [{
|
|
405
406
|
type: ContentChild,
|
|
406
|
-
args: [DrawerHeaderTemplateDirective
|
|
407
|
+
args: [DrawerHeaderTemplateDirective]
|
|
407
408
|
}], itemTemplate: [{
|
|
408
409
|
type: ContentChild,
|
|
409
|
-
args: [DrawerItemTemplateDirective
|
|
410
|
+
args: [DrawerItemTemplateDirective]
|
|
410
411
|
}] } });
|
|
@@ -15,6 +15,7 @@ export const defaultIsItemExpanded = (_item) => false;
|
|
|
15
15
|
export class DrawerService {
|
|
16
16
|
constructor() {
|
|
17
17
|
this.selectedIndices = [];
|
|
18
|
+
this.focusIndex = 0;
|
|
18
19
|
this.originalItems = [];
|
|
19
20
|
this.idxCounter = 0;
|
|
20
21
|
this.isItemExpanded = defaultIsItemExpanded;
|
|
@@ -28,6 +29,33 @@ export class DrawerService {
|
|
|
28
29
|
get view() {
|
|
29
30
|
return Array.from(this.viewData);
|
|
30
31
|
}
|
|
32
|
+
changeFocusedItem(items, keyName, renderer) {
|
|
33
|
+
const currentItem = items.get(this.focusIndex);
|
|
34
|
+
let nextItem;
|
|
35
|
+
if (keyName === 'arrowUp') {
|
|
36
|
+
if (this.focusIndex === 0) {
|
|
37
|
+
nextItem = items.get(items.length - 1);
|
|
38
|
+
this.focusIndex = items.length - 1;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
nextItem = items.get(this.focusIndex - 1);
|
|
42
|
+
this.focusIndex = this.focusIndex - 1;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else if (keyName === 'arrowDown') {
|
|
46
|
+
if (this.focusIndex === items.length - 1) {
|
|
47
|
+
nextItem = items.get(0);
|
|
48
|
+
this.focusIndex = 0;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
nextItem = items.get(this.focusIndex + 1);
|
|
52
|
+
this.focusIndex = this.focusIndex + 1;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
renderer.setAttribute(currentItem.nativeElement, 'tabindex', '-1');
|
|
56
|
+
renderer.setAttribute(nextItem.nativeElement, 'tabindex', '0');
|
|
57
|
+
nextItem.nativeElement.focus();
|
|
58
|
+
}
|
|
31
59
|
populateViewData(items, level = 0) {
|
|
32
60
|
items.forEach((item) => {
|
|
33
61
|
this.setSelection(item);
|
|
@@ -11,8 +11,8 @@ import * as i2 from "@angular/common";
|
|
|
11
11
|
* @hidden
|
|
12
12
|
*/
|
|
13
13
|
export class DrawerItemComponent {
|
|
14
|
-
constructor(
|
|
15
|
-
this.
|
|
14
|
+
constructor(drawerService, element, renderer) {
|
|
15
|
+
this.drawerService = drawerService;
|
|
16
16
|
this.element = element;
|
|
17
17
|
this.renderer = renderer;
|
|
18
18
|
}
|
|
@@ -20,7 +20,7 @@ export class DrawerItemComponent {
|
|
|
20
20
|
return this.item.disabled;
|
|
21
21
|
}
|
|
22
22
|
get selectedClass() {
|
|
23
|
-
return this.
|
|
23
|
+
return this.drawerService.selectedIndices.indexOf(this.index) >= 0;
|
|
24
24
|
}
|
|
25
25
|
get label() {
|
|
26
26
|
return this.item.text ? this.item.text : null;
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { Subscription } from 'rxjs';
|
|
6
|
-
import { Component, Input, Output, EventEmitter } from "@angular/core";
|
|
6
|
+
import { Component, ElementRef, Input, Output, EventEmitter, ViewChildren } from "@angular/core";
|
|
7
7
|
import { closestItem, itemIndex } from '../common/dom-queries';
|
|
8
8
|
import { DRAWER_ITEM_INDEX } from './models/constants';
|
|
9
9
|
import { Keys } from '@progress/kendo-angular-common';
|
|
10
10
|
import { ACTIVE_NESTED_LINK_SELECTOR, nestedLink } from './util';
|
|
11
11
|
import { DrawerListSelectEvent } from './events/drawer-list-select.event';
|
|
12
|
+
import { DrawerItemComponent } from './item.component';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
14
|
import * as i1 from "./drawer.service";
|
|
14
15
|
import * as i2 from "./item.component";
|
|
@@ -43,12 +44,26 @@ export class DrawerListComponent {
|
|
|
43
44
|
this.ngZone.runOutsideAngular(() => {
|
|
44
45
|
const nativeElement = this.element.nativeElement;
|
|
45
46
|
this.subscriptions.add(this.renderer.listen(nativeElement, 'click', this.clickHandler.bind(this)));
|
|
46
|
-
this.subscriptions.add(this.renderer.listen(nativeElement, 'keydown',
|
|
47
|
+
this.subscriptions.add(this.renderer.listen(nativeElement, 'keydown', (e) => {
|
|
48
|
+
const isEnterOrSpace = e.keyCode === Keys.Enter || e.keyCode === Keys.Space;
|
|
49
|
+
const isArrowUpOrDown = e.keyCode === Keys.ArrowUp || e.keyCode === Keys.ArrowDown;
|
|
50
|
+
if (isEnterOrSpace) {
|
|
51
|
+
this.onEnterOrSpaceKeyDown(e);
|
|
52
|
+
}
|
|
53
|
+
else if (isArrowUpOrDown) {
|
|
54
|
+
if (e.target.classList.contains('k-drawer-item')) {
|
|
55
|
+
const keyName = e.keyCode === Keys.ArrowUp ? 'arrowUp' : 'arrowDown';
|
|
56
|
+
this.drawerService.changeFocusedItem(this.items, keyName, this.renderer);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}));
|
|
47
60
|
});
|
|
48
61
|
}
|
|
49
62
|
clickHandler(e) {
|
|
50
63
|
const viewItemIdx = this.getDrawerItemIndex(e.target);
|
|
51
64
|
const viewItem = this.view[viewItemIdx];
|
|
65
|
+
const filterItems = this.view.filter(items => !items.item.separator);
|
|
66
|
+
const selectedItemIndex = filterItems.findIndex(item => item.index === viewItemIdx);
|
|
52
67
|
if (!viewItem) {
|
|
53
68
|
return;
|
|
54
69
|
}
|
|
@@ -65,17 +80,14 @@ export class DrawerListComponent {
|
|
|
65
80
|
const event = new DrawerListSelectEvent(args);
|
|
66
81
|
this.select.emit(event);
|
|
67
82
|
if (!event.isDefaultPrevented()) {
|
|
83
|
+
this.drawerService.focusIndex = selectedItemIndex;
|
|
68
84
|
this.drawerService.onSelect(viewItemIdx);
|
|
69
85
|
this.drawerService.init();
|
|
70
86
|
this.view = this.drawerService.view;
|
|
71
87
|
}
|
|
72
88
|
});
|
|
73
89
|
}
|
|
74
|
-
|
|
75
|
-
const isEnterOrSpace = e.keyCode === Keys.Enter || e.keyCode === Keys.Space;
|
|
76
|
-
if (!isEnterOrSpace) {
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
90
|
+
onEnterOrSpaceKeyDown(e) {
|
|
79
91
|
this.clickHandler(e);
|
|
80
92
|
const link = nestedLink(this.element.nativeElement, ACTIVE_NESTED_LINK_SELECTOR);
|
|
81
93
|
if (link) {
|
|
@@ -91,7 +103,7 @@ export class DrawerListComponent {
|
|
|
91
103
|
}
|
|
92
104
|
}
|
|
93
105
|
DrawerListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DrawerListComponent, deps: [{ token: i1.DrawerService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
94
|
-
DrawerListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DrawerListComponent, selector: "[kendoDrawerList]", inputs: { itemTemplate: "itemTemplate", mini: "mini", expanded: "expanded", view: "view" }, outputs: { select: "select" }, ngImport: i0, template: "\n <ng-container *ngFor=\"let v of view; trackBy:identifyItem; let idx = index\">\n <li *ngIf=\"!v.item.separator\" kendoDrawerItem\n class=\"k-drawer-item {{expanded ? ' k-level-' + v.level : ''}}\"\n [viewItem]=\"v\"\n [index]=\"idx\"\n [mini]=\"mini\"\n [expanded]=\"expanded\"\n [itemTemplate]=\"itemTemplate\"\n [attr.data-kendo-drawer-index]=\"v.index\"\n [ngClass]=\"v.item.cssClass\"\n [ngStyle]=\"v.item.cssStyle\"\n tabindex=\"0\">\n </li>\n\n <li *ngIf=\"v.item.separator\"\n class=\"k-drawer-item k-drawer-separator\"\n [ngClass]=\"v.item.cssClass\"\n [ngStyle]=\"v.item.cssStyle\">\n \n </li>\n </ng-container>\n ", isInline: true, components: [{ type: i2.DrawerItemComponent, selector: "[kendoDrawerItem]", inputs: ["viewItem", "index", "itemTemplate", "mini", "expanded", "disabled", "cssClass", "cssStyle"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
106
|
+
DrawerListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DrawerListComponent, selector: "[kendoDrawerList]", inputs: { itemTemplate: "itemTemplate", mini: "mini", expanded: "expanded", view: "view" }, outputs: { select: "select" }, viewQueries: [{ propertyName: "items", predicate: DrawerItemComponent, descendants: true, read: ElementRef }], ngImport: i0, template: "\n <ng-container *ngFor=\"let v of view; trackBy:identifyItem; let idx = index\">\n <li *ngIf=\"!v.item.separator\" kendoDrawerItem\n class=\"k-drawer-item {{expanded ? ' k-level-' + v.level : ''}}\"\n role=\"menuitem\"\n [viewItem]=\"v\"\n [index]=\"idx\"\n [mini]=\"mini\"\n [expanded]=\"expanded\"\n [itemTemplate]=\"itemTemplate\"\n [attr.data-kendo-drawer-index]=\"v.index\"\n [ngClass]=\"v.item.cssClass\"\n [ngStyle]=\"v.item.cssStyle\"\n [tabindex]=\"v.item.id === 0 ? '0' : '-1'\">\n </li>\n\n <li *ngIf=\"v.item.separator\"\n role=\"separator\"\n class=\"k-drawer-item k-drawer-separator\"\n [ngClass]=\"v.item.cssClass\"\n [ngStyle]=\"v.item.cssStyle\">\n \n </li>\n </ng-container>\n ", isInline: true, components: [{ type: i2.DrawerItemComponent, selector: "[kendoDrawerItem]", inputs: ["viewItem", "index", "itemTemplate", "mini", "expanded", "disabled", "cssClass", "cssStyle"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
95
107
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DrawerListComponent, decorators: [{
|
|
96
108
|
type: Component,
|
|
97
109
|
args: [{
|
|
@@ -101,6 +113,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
101
113
|
<ng-container *ngFor="let v of view; trackBy:identifyItem; let idx = index">
|
|
102
114
|
<li *ngIf="!v.item.separator" kendoDrawerItem
|
|
103
115
|
class="k-drawer-item {{expanded ? ' k-level-' + v.level : ''}}"
|
|
116
|
+
role="menuitem"
|
|
104
117
|
[viewItem]="v"
|
|
105
118
|
[index]="idx"
|
|
106
119
|
[mini]="mini"
|
|
@@ -109,10 +122,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
109
122
|
[attr.${DRAWER_ITEM_INDEX}]="v.index"
|
|
110
123
|
[ngClass]="v.item.cssClass"
|
|
111
124
|
[ngStyle]="v.item.cssStyle"
|
|
112
|
-
tabindex="0">
|
|
125
|
+
[tabindex]="v.item.id === 0 ? '0' : '-1'">
|
|
113
126
|
</li>
|
|
114
127
|
|
|
115
128
|
<li *ngIf="v.item.separator"
|
|
129
|
+
role="separator"
|
|
116
130
|
class="k-drawer-item k-drawer-separator"
|
|
117
131
|
[ngClass]="v.item.cssClass"
|
|
118
132
|
[ngStyle]="v.item.cssStyle">
|
|
@@ -131,4 +145,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
131
145
|
type: Input
|
|
132
146
|
}], select: [{
|
|
133
147
|
type: Output
|
|
148
|
+
}], items: [{
|
|
149
|
+
type: ViewChildren,
|
|
150
|
+
args: [DrawerItemComponent, { read: ElementRef }]
|
|
134
151
|
}] } });
|
|
@@ -9,7 +9,7 @@ export const packageMetadata = {
|
|
|
9
9
|
name: '@progress/kendo-angular-layout',
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
|
11
11
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
12
|
-
publishDate:
|
|
12
|
+
publishDate: 1666769095,
|
|
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
|
};
|
|
@@ -26,7 +26,7 @@ const packageMetadata = {
|
|
|
26
26
|
name: '@progress/kendo-angular-layout',
|
|
27
27
|
productName: 'Kendo UI for Angular',
|
|
28
28
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
29
|
-
publishDate:
|
|
29
|
+
publishDate: 1666769095,
|
|
30
30
|
version: '',
|
|
31
31
|
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'
|
|
32
32
|
};
|
|
@@ -3997,6 +3997,7 @@ const defaultIsItemExpanded = (_item) => false;
|
|
|
3997
3997
|
class DrawerService {
|
|
3998
3998
|
constructor() {
|
|
3999
3999
|
this.selectedIndices = [];
|
|
4000
|
+
this.focusIndex = 0;
|
|
4000
4001
|
this.originalItems = [];
|
|
4001
4002
|
this.idxCounter = 0;
|
|
4002
4003
|
this.isItemExpanded = defaultIsItemExpanded;
|
|
@@ -4010,6 +4011,33 @@ class DrawerService {
|
|
|
4010
4011
|
get view() {
|
|
4011
4012
|
return Array.from(this.viewData);
|
|
4012
4013
|
}
|
|
4014
|
+
changeFocusedItem(items, keyName, renderer) {
|
|
4015
|
+
const currentItem = items.get(this.focusIndex);
|
|
4016
|
+
let nextItem;
|
|
4017
|
+
if (keyName === 'arrowUp') {
|
|
4018
|
+
if (this.focusIndex === 0) {
|
|
4019
|
+
nextItem = items.get(items.length - 1);
|
|
4020
|
+
this.focusIndex = items.length - 1;
|
|
4021
|
+
}
|
|
4022
|
+
else {
|
|
4023
|
+
nextItem = items.get(this.focusIndex - 1);
|
|
4024
|
+
this.focusIndex = this.focusIndex - 1;
|
|
4025
|
+
}
|
|
4026
|
+
}
|
|
4027
|
+
else if (keyName === 'arrowDown') {
|
|
4028
|
+
if (this.focusIndex === items.length - 1) {
|
|
4029
|
+
nextItem = items.get(0);
|
|
4030
|
+
this.focusIndex = 0;
|
|
4031
|
+
}
|
|
4032
|
+
else {
|
|
4033
|
+
nextItem = items.get(this.focusIndex + 1);
|
|
4034
|
+
this.focusIndex = this.focusIndex + 1;
|
|
4035
|
+
}
|
|
4036
|
+
}
|
|
4037
|
+
renderer.setAttribute(currentItem.nativeElement, 'tabindex', '-1');
|
|
4038
|
+
renderer.setAttribute(nextItem.nativeElement, 'tabindex', '0');
|
|
4039
|
+
nextItem.nativeElement.focus();
|
|
4040
|
+
}
|
|
4013
4041
|
populateViewData(items, level = 0) {
|
|
4014
4042
|
items.forEach((item) => {
|
|
4015
4043
|
this.setSelection(item);
|
|
@@ -4235,8 +4263,8 @@ class DrawerListSelectEvent extends PreventableEvent$1 {
|
|
|
4235
4263
|
* @hidden
|
|
4236
4264
|
*/
|
|
4237
4265
|
class DrawerItemComponent {
|
|
4238
|
-
constructor(
|
|
4239
|
-
this.
|
|
4266
|
+
constructor(drawerService, element, renderer) {
|
|
4267
|
+
this.drawerService = drawerService;
|
|
4240
4268
|
this.element = element;
|
|
4241
4269
|
this.renderer = renderer;
|
|
4242
4270
|
}
|
|
@@ -4244,7 +4272,7 @@ class DrawerItemComponent {
|
|
|
4244
4272
|
return this.item.disabled;
|
|
4245
4273
|
}
|
|
4246
4274
|
get selectedClass() {
|
|
4247
|
-
return this.
|
|
4275
|
+
return this.drawerService.selectedIndices.indexOf(this.index) >= 0;
|
|
4248
4276
|
}
|
|
4249
4277
|
get label() {
|
|
4250
4278
|
return this.item.text ? this.item.text : null;
|
|
@@ -4392,12 +4420,26 @@ class DrawerListComponent {
|
|
|
4392
4420
|
this.ngZone.runOutsideAngular(() => {
|
|
4393
4421
|
const nativeElement = this.element.nativeElement;
|
|
4394
4422
|
this.subscriptions.add(this.renderer.listen(nativeElement, 'click', this.clickHandler.bind(this)));
|
|
4395
|
-
this.subscriptions.add(this.renderer.listen(nativeElement, 'keydown',
|
|
4423
|
+
this.subscriptions.add(this.renderer.listen(nativeElement, 'keydown', (e) => {
|
|
4424
|
+
const isEnterOrSpace = e.keyCode === Keys.Enter || e.keyCode === Keys.Space;
|
|
4425
|
+
const isArrowUpOrDown = e.keyCode === Keys.ArrowUp || e.keyCode === Keys.ArrowDown;
|
|
4426
|
+
if (isEnterOrSpace) {
|
|
4427
|
+
this.onEnterOrSpaceKeyDown(e);
|
|
4428
|
+
}
|
|
4429
|
+
else if (isArrowUpOrDown) {
|
|
4430
|
+
if (e.target.classList.contains('k-drawer-item')) {
|
|
4431
|
+
const keyName = e.keyCode === Keys.ArrowUp ? 'arrowUp' : 'arrowDown';
|
|
4432
|
+
this.drawerService.changeFocusedItem(this.items, keyName, this.renderer);
|
|
4433
|
+
}
|
|
4434
|
+
}
|
|
4435
|
+
}));
|
|
4396
4436
|
});
|
|
4397
4437
|
}
|
|
4398
4438
|
clickHandler(e) {
|
|
4399
4439
|
const viewItemIdx = this.getDrawerItemIndex(e.target);
|
|
4400
4440
|
const viewItem = this.view[viewItemIdx];
|
|
4441
|
+
const filterItems = this.view.filter(items => !items.item.separator);
|
|
4442
|
+
const selectedItemIndex = filterItems.findIndex(item => item.index === viewItemIdx);
|
|
4401
4443
|
if (!viewItem) {
|
|
4402
4444
|
return;
|
|
4403
4445
|
}
|
|
@@ -4414,17 +4456,14 @@ class DrawerListComponent {
|
|
|
4414
4456
|
const event = new DrawerListSelectEvent(args);
|
|
4415
4457
|
this.select.emit(event);
|
|
4416
4458
|
if (!event.isDefaultPrevented()) {
|
|
4459
|
+
this.drawerService.focusIndex = selectedItemIndex;
|
|
4417
4460
|
this.drawerService.onSelect(viewItemIdx);
|
|
4418
4461
|
this.drawerService.init();
|
|
4419
4462
|
this.view = this.drawerService.view;
|
|
4420
4463
|
}
|
|
4421
4464
|
});
|
|
4422
4465
|
}
|
|
4423
|
-
|
|
4424
|
-
const isEnterOrSpace = e.keyCode === Keys.Enter || e.keyCode === Keys.Space;
|
|
4425
|
-
if (!isEnterOrSpace) {
|
|
4426
|
-
return;
|
|
4427
|
-
}
|
|
4466
|
+
onEnterOrSpaceKeyDown(e) {
|
|
4428
4467
|
this.clickHandler(e);
|
|
4429
4468
|
const link = nestedLink(this.element.nativeElement, ACTIVE_NESTED_LINK_SELECTOR);
|
|
4430
4469
|
if (link) {
|
|
@@ -4440,7 +4479,7 @@ class DrawerListComponent {
|
|
|
4440
4479
|
}
|
|
4441
4480
|
}
|
|
4442
4481
|
DrawerListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DrawerListComponent, deps: [{ token: DrawerService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
4443
|
-
DrawerListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DrawerListComponent, selector: "[kendoDrawerList]", inputs: { itemTemplate: "itemTemplate", mini: "mini", expanded: "expanded", view: "view" }, outputs: { select: "select" }, ngImport: i0, template: "\n <ng-container *ngFor=\"let v of view; trackBy:identifyItem; let idx = index\">\n <li *ngIf=\"!v.item.separator\" kendoDrawerItem\n class=\"k-drawer-item {{expanded ? ' k-level-' + v.level : ''}}\"\n [viewItem]=\"v\"\n [index]=\"idx\"\n [mini]=\"mini\"\n [expanded]=\"expanded\"\n [itemTemplate]=\"itemTemplate\"\n [attr.data-kendo-drawer-index]=\"v.index\"\n [ngClass]=\"v.item.cssClass\"\n [ngStyle]=\"v.item.cssStyle\"\n tabindex=\"0\">\n </li>\n\n <li *ngIf=\"v.item.separator\"\n class=\"k-drawer-item k-drawer-separator\"\n [ngClass]=\"v.item.cssClass\"\n [ngStyle]=\"v.item.cssStyle\">\n \n </li>\n </ng-container>\n ", isInline: true, components: [{ type: DrawerItemComponent, selector: "[kendoDrawerItem]", inputs: ["viewItem", "index", "itemTemplate", "mini", "expanded", "disabled", "cssClass", "cssStyle"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
4482
|
+
DrawerListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DrawerListComponent, selector: "[kendoDrawerList]", inputs: { itemTemplate: "itemTemplate", mini: "mini", expanded: "expanded", view: "view" }, outputs: { select: "select" }, viewQueries: [{ propertyName: "items", predicate: DrawerItemComponent, descendants: true, read: ElementRef }], ngImport: i0, template: "\n <ng-container *ngFor=\"let v of view; trackBy:identifyItem; let idx = index\">\n <li *ngIf=\"!v.item.separator\" kendoDrawerItem\n class=\"k-drawer-item {{expanded ? ' k-level-' + v.level : ''}}\"\n role=\"menuitem\"\n [viewItem]=\"v\"\n [index]=\"idx\"\n [mini]=\"mini\"\n [expanded]=\"expanded\"\n [itemTemplate]=\"itemTemplate\"\n [attr.data-kendo-drawer-index]=\"v.index\"\n [ngClass]=\"v.item.cssClass\"\n [ngStyle]=\"v.item.cssStyle\"\n [tabindex]=\"v.item.id === 0 ? '0' : '-1'\">\n </li>\n\n <li *ngIf=\"v.item.separator\"\n role=\"separator\"\n class=\"k-drawer-item k-drawer-separator\"\n [ngClass]=\"v.item.cssClass\"\n [ngStyle]=\"v.item.cssStyle\">\n \n </li>\n </ng-container>\n ", isInline: true, components: [{ type: DrawerItemComponent, selector: "[kendoDrawerItem]", inputs: ["viewItem", "index", "itemTemplate", "mini", "expanded", "disabled", "cssClass", "cssStyle"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
4444
4483
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DrawerListComponent, decorators: [{
|
|
4445
4484
|
type: Component,
|
|
4446
4485
|
args: [{
|
|
@@ -4450,6 +4489,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
4450
4489
|
<ng-container *ngFor="let v of view; trackBy:identifyItem; let idx = index">
|
|
4451
4490
|
<li *ngIf="!v.item.separator" kendoDrawerItem
|
|
4452
4491
|
class="k-drawer-item {{expanded ? ' k-level-' + v.level : ''}}"
|
|
4492
|
+
role="menuitem"
|
|
4453
4493
|
[viewItem]="v"
|
|
4454
4494
|
[index]="idx"
|
|
4455
4495
|
[mini]="mini"
|
|
@@ -4458,10 +4498,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
4458
4498
|
[attr.${DRAWER_ITEM_INDEX}]="v.index"
|
|
4459
4499
|
[ngClass]="v.item.cssClass"
|
|
4460
4500
|
[ngStyle]="v.item.cssStyle"
|
|
4461
|
-
tabindex="0">
|
|
4501
|
+
[tabindex]="v.item.id === 0 ? '0' : '-1'">
|
|
4462
4502
|
</li>
|
|
4463
4503
|
|
|
4464
4504
|
<li *ngIf="v.item.separator"
|
|
4505
|
+
role="separator"
|
|
4465
4506
|
class="k-drawer-item k-drawer-separator"
|
|
4466
4507
|
[ngClass]="v.item.cssClass"
|
|
4467
4508
|
[ngStyle]="v.item.cssStyle">
|
|
@@ -4480,6 +4521,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
4480
4521
|
type: Input
|
|
4481
4522
|
}], select: [{
|
|
4482
4523
|
type: Output
|
|
4524
|
+
}], items: [{
|
|
4525
|
+
type: ViewChildren,
|
|
4526
|
+
args: [DrawerItemComponent, { read: ElementRef }]
|
|
4483
4527
|
}] } });
|
|
4484
4528
|
|
|
4485
4529
|
const DEFAULT_ANIMATION = { type: 'slide', duration: 200 };
|
|
@@ -4738,7 +4782,7 @@ class DrawerComponent {
|
|
|
4738
4782
|
}
|
|
4739
4783
|
}
|
|
4740
4784
|
DrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DrawerComponent, deps: [{ token: i0.ElementRef }, { token: i1$2.AnimationBuilder }, { token: i1.LocalizationService }, { token: DrawerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4741
|
-
DrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DrawerComponent, selector: "kendo-drawer", inputs: { mode: "mode", position: "position", mini: "mini", expanded: "expanded", width: "width", miniWidth: "miniWidth", autoCollapse: "autoCollapse", items: "items", isItemExpanded: "isItemExpanded", animation: "animation" }, outputs: { expand: "expand", collapse: "collapse", select: "select", expandedChange: "expandedChange" }, host: { properties: { "class.k-
|
|
4785
|
+
DrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DrawerComponent, selector: "kendo-drawer", inputs: { mode: "mode", position: "position", mini: "mini", expanded: "expanded", width: "width", miniWidth: "miniWidth", autoCollapse: "autoCollapse", items: "items", isItemExpanded: "isItemExpanded", animation: "animation" }, outputs: { expand: "expand", collapse: "collapse", select: "select", expandedChange: "expandedChange" }, host: { properties: { "class.k-drawer": "this.hostClasses", "class.k-drawer-start": "this.startPositionClass", "class.k-drawer-end": "this.endPositionClass", "style.transform": "this.overlayTransofrmStyles", "style.flexBasis.px": "this.flexStyles", "attr.dir": "this.direction" } }, providers: [
|
|
4742
4786
|
LocalizationService,
|
|
4743
4787
|
DrawerService,
|
|
4744
4788
|
{
|
|
@@ -4753,6 +4797,8 @@ DrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
4753
4797
|
</ng-template>
|
|
4754
4798
|
|
|
4755
4799
|
<ul kendoDrawerList
|
|
4800
|
+
role="menubar"
|
|
4801
|
+
orientation="vertical"
|
|
4756
4802
|
(select)="onSelect($event)"
|
|
4757
4803
|
[mini]="mini"
|
|
4758
4804
|
[expanded]="expanded"
|
|
@@ -4792,6 +4838,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
4792
4838
|
</ng-template>
|
|
4793
4839
|
|
|
4794
4840
|
<ul kendoDrawerList
|
|
4841
|
+
role="menubar"
|
|
4842
|
+
orientation="vertical"
|
|
4795
4843
|
(select)="onSelect($event)"
|
|
4796
4844
|
[mini]="mini"
|
|
4797
4845
|
[expanded]="expanded"
|
|
@@ -4812,9 +4860,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
4812
4860
|
`
|
|
4813
4861
|
}]
|
|
4814
4862
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$2.AnimationBuilder }, { type: i1.LocalizationService }, { type: DrawerService }]; }, propDecorators: { hostClasses: [{
|
|
4815
|
-
type: HostBinding,
|
|
4816
|
-
args: ['class.k-widget']
|
|
4817
|
-
}, {
|
|
4818
4863
|
type: HostBinding,
|
|
4819
4864
|
args: ['class.k-drawer']
|
|
4820
4865
|
}], startPositionClass: [{
|
|
@@ -4862,16 +4907,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
4862
4907
|
type: Output
|
|
4863
4908
|
}], drawerTemplate: [{
|
|
4864
4909
|
type: ContentChild,
|
|
4865
|
-
args: [DrawerTemplateDirective
|
|
4910
|
+
args: [DrawerTemplateDirective]
|
|
4866
4911
|
}], footerTemplate: [{
|
|
4867
4912
|
type: ContentChild,
|
|
4868
|
-
args: [DrawerFooterTemplateDirective
|
|
4913
|
+
args: [DrawerFooterTemplateDirective]
|
|
4869
4914
|
}], headerTemplate: [{
|
|
4870
4915
|
type: ContentChild,
|
|
4871
|
-
args: [DrawerHeaderTemplateDirective
|
|
4916
|
+
args: [DrawerHeaderTemplateDirective]
|
|
4872
4917
|
}], itemTemplate: [{
|
|
4873
4918
|
type: ContentChild,
|
|
4874
|
-
args: [DrawerItemTemplateDirective
|
|
4919
|
+
args: [DrawerItemTemplateDirective]
|
|
4875
4920
|
}] } });
|
|
4876
4921
|
|
|
4877
4922
|
/**
|
|
@@ -4970,7 +5015,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
4970
5015
|
args: ['attr.dir']
|
|
4971
5016
|
}], drawer: [{
|
|
4972
5017
|
type: ContentChild,
|
|
4973
|
-
args: [DrawerComponent
|
|
5018
|
+
args: [DrawerComponent]
|
|
4974
5019
|
}] } });
|
|
4975
5020
|
|
|
4976
5021
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-layout",
|
|
3
|
-
"version": "7.1.5
|
|
3
|
+
"version": "7.1.5",
|
|
4
4
|
"description": "Kendo UI for Angular Layout Package - a collection of components to create professional application layoyts",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"author": "Progress",
|