@progress/kendo-angular-layout 6.5.2-dev.202203111452 → 6.6.0
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/dist/cdn/js/kendo-angular-layout.js +2 -2
- package/dist/cdn/main.js +1 -1
- package/dist/es/main.js +1 -0
- package/dist/es/package-metadata.js +1 -1
- package/dist/es/panelbar/events/collapse-event.js +17 -0
- package/dist/es/panelbar/events/expand-event.js +17 -0
- package/dist/es/panelbar/events/select-event.js +17 -0
- package/dist/es/panelbar/events.js +7 -0
- package/dist/es/panelbar/panelbar-item.component.js +1 -1
- package/dist/es/panelbar/panelbar.component.js +120 -30
- package/dist/es2015/index.metadata.json +1 -1
- package/dist/es2015/main.d.ts +1 -0
- package/dist/es2015/main.js +1 -0
- package/dist/es2015/package-metadata.js +1 -1
- package/dist/es2015/panelbar/events/collapse-event.d.ts +15 -0
- package/dist/es2015/panelbar/events/collapse-event.js +10 -0
- package/dist/es2015/panelbar/events/expand-event.d.ts +15 -0
- package/dist/es2015/panelbar/events/expand-event.js +10 -0
- package/dist/es2015/panelbar/events/select-event.d.ts +15 -0
- package/dist/es2015/panelbar/events/select-event.js +10 -0
- package/dist/es2015/panelbar/events.d.ts +7 -0
- package/dist/es2015/panelbar/events.js +7 -0
- package/dist/es2015/panelbar/panelbar-item.component.js +16 -1
- package/dist/es2015/panelbar/panelbar.component.d.ts +23 -0
- package/dist/es2015/panelbar/panelbar.component.js +132 -40
- package/dist/fesm2015/index.js +198 -74
- package/dist/fesm5/index.js +187 -65
- package/dist/npm/main.js +1 -0
- package/dist/npm/package-metadata.js +1 -1
- package/dist/npm/panelbar/events/collapse-event.js +19 -0
- package/dist/npm/panelbar/events/expand-event.js +19 -0
- package/dist/npm/panelbar/events/select-event.js +19 -0
- package/dist/npm/panelbar/events.js +12 -0
- package/dist/npm/panelbar/panelbar-item.component.js +1 -1
- package/dist/npm/panelbar/panelbar.component.js +120 -30
- package/dist/systemjs/kendo-angular-layout.js +1 -1
- package/package.json +1 -1
package/dist/es2015/main.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export { PanelBarItemTemplateDirective } from './panelbar/panelbar-item-template
|
|
|
10
10
|
export { PanelBarItemTitleDirective } from './panelbar/panelbar-item-title.directive';
|
|
11
11
|
export { PanelBarExpandMode } from './panelbar/panelbar-expand-mode';
|
|
12
12
|
export { PanelBarItemModel } from './panelbar/panelbar-item-model';
|
|
13
|
+
export * from './panelbar/events';
|
|
13
14
|
export { SplitterComponent } from './splitter/splitter.component';
|
|
14
15
|
export { SplitterPaneComponent } from './splitter/splitter-pane.component';
|
|
15
16
|
export { TabStripComponent } from './tabstrip/tabstrip.component';
|
package/dist/es2015/main.js
CHANGED
|
@@ -8,6 +8,7 @@ export { PanelBarContentDirective } from './panelbar/panelbar-content.directive'
|
|
|
8
8
|
export { PanelBarItemTemplateDirective } from './panelbar/panelbar-item-template.directive';
|
|
9
9
|
export { PanelBarItemTitleDirective } from './panelbar/panelbar-item-title.directive';
|
|
10
10
|
export { PanelBarExpandMode } from './panelbar/panelbar-expand-mode';
|
|
11
|
+
export * from './panelbar/events';
|
|
11
12
|
export { SplitterComponent } from './splitter/splitter.component';
|
|
12
13
|
export { SplitterPaneComponent } from './splitter/splitter-pane.component';
|
|
13
14
|
export { TabStripComponent } from './tabstrip/tabstrip.component';
|
|
@@ -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: 1649340417,
|
|
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
|
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { PreventableEvent } from '../../common/preventable-event';
|
|
6
|
+
import { PanelBarItemModel } from '../panelbar-item-model';
|
|
7
|
+
/**
|
|
8
|
+
* Arguments for the `collapse` event of the PanelBar.
|
|
9
|
+
*/
|
|
10
|
+
export declare class PanelBarCollapseEvent extends PreventableEvent {
|
|
11
|
+
/**
|
|
12
|
+
* The item that will be collapsed.
|
|
13
|
+
*/
|
|
14
|
+
item: PanelBarItemModel;
|
|
15
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { PreventableEvent } from '../../common/preventable-event';
|
|
6
|
+
/**
|
|
7
|
+
* Arguments for the `collapse` event of the PanelBar.
|
|
8
|
+
*/
|
|
9
|
+
export class PanelBarCollapseEvent extends PreventableEvent {
|
|
10
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { PreventableEvent } from '../../common/preventable-event';
|
|
6
|
+
import { PanelBarItemModel } from '../panelbar-item-model';
|
|
7
|
+
/**
|
|
8
|
+
* Arguments for the `expand` event of the PanelBar.
|
|
9
|
+
*/
|
|
10
|
+
export declare class PanelBarExpandEvent extends PreventableEvent {
|
|
11
|
+
/**
|
|
12
|
+
* The item that will be expanded.
|
|
13
|
+
*/
|
|
14
|
+
item: PanelBarItemModel;
|
|
15
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { PreventableEvent } from '../../common/preventable-event';
|
|
6
|
+
/**
|
|
7
|
+
* Arguments for the `expand` event of the PanelBar.
|
|
8
|
+
*/
|
|
9
|
+
export class PanelBarExpandEvent extends PreventableEvent {
|
|
10
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { PreventableEvent } from '../../common/preventable-event';
|
|
6
|
+
import { PanelBarItemModel } from '../panelbar-item-model';
|
|
7
|
+
/**
|
|
8
|
+
* Arguments for the `select` event of the PanelBar.
|
|
9
|
+
*/
|
|
10
|
+
export declare class PanelBarSelectEvent extends PreventableEvent {
|
|
11
|
+
/**
|
|
12
|
+
* The item that will be selected.
|
|
13
|
+
*/
|
|
14
|
+
item: PanelBarItemModel;
|
|
15
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { PreventableEvent } from '../../common/preventable-event';
|
|
6
|
+
/**
|
|
7
|
+
* Arguments for the `select` event of the PanelBar.
|
|
8
|
+
*/
|
|
9
|
+
export class PanelBarSelectEvent extends PreventableEvent {
|
|
10
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
export { PanelBarCollapseEvent } from './events/collapse-event';
|
|
6
|
+
export { PanelBarExpandEvent } from './events/expand-event';
|
|
7
|
+
export { PanelBarSelectEvent } from './events/select-event';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
export { PanelBarCollapseEvent } from './events/collapse-event';
|
|
6
|
+
export { PanelBarExpandEvent } from './events/expand-event';
|
|
7
|
+
export { PanelBarSelectEvent } from './events/select-event';
|
|
@@ -404,7 +404,22 @@ PanelBarItemComponent = PanelBarItemComponent_1 = tslib_1.__decorate([
|
|
|
404
404
|
[src]="imageUrl"
|
|
405
405
|
alt="">
|
|
406
406
|
<ng-container *ngIf="!titleTemplate"><span class="k-panelbar-item-text">{{title}}</span></ng-container>
|
|
407
|
-
<ng-template *ngIf="titleTemplate"
|
|
407
|
+
<ng-template *ngIf="titleTemplate"
|
|
408
|
+
[ngTemplateOutlet]="titleTemplate"
|
|
409
|
+
[ngTemplateOutletContext]="{
|
|
410
|
+
item: {
|
|
411
|
+
title: title,
|
|
412
|
+
id: id,
|
|
413
|
+
icon: icon,
|
|
414
|
+
iconClass: iconClass,
|
|
415
|
+
imageUrl: imageUrl,
|
|
416
|
+
selected: selected,
|
|
417
|
+
expanded: expanded,
|
|
418
|
+
disabled: disabled,
|
|
419
|
+
focused: focused,
|
|
420
|
+
content: content
|
|
421
|
+
}
|
|
422
|
+
}"></ng-template>
|
|
408
423
|
<span *ngIf="hasChildItems || hasContent"
|
|
409
424
|
class="k-icon k-panelbar-toggle"
|
|
410
425
|
[ngClass]="{'k-i-arrow-chevron-up k-panelbar-collapse': expanded, 'k-i-arrow-chevron-down k-panelbar-expand': !expanded}">
|
|
@@ -9,6 +9,7 @@ import { PanelBarItemComponent } from './panelbar-item.component';
|
|
|
9
9
|
import { PanelBarItemModel } from './panelbar-item-model';
|
|
10
10
|
import { PanelBarService } from "./panelbar.service";
|
|
11
11
|
import { PanelBarItemTemplateDirective } from "./panelbar-item-template.directive";
|
|
12
|
+
import { PanelBarSelectEvent, PanelBarExpandEvent, PanelBarCollapseEvent } from './events';
|
|
12
13
|
/**
|
|
13
14
|
* Represents the [Kendo UI PanelBar component for Angular]({% slug overview_panelbar %}).
|
|
14
15
|
*/
|
|
@@ -55,6 +56,24 @@ export declare class PanelBarComponent implements AfterViewChecked, OnChanges, O
|
|
|
55
56
|
* The event data contains all items that are modified.
|
|
56
57
|
*/
|
|
57
58
|
stateChange: EventEmitter<any>;
|
|
59
|
+
/**
|
|
60
|
+
* Fires when an item is about to be selected.
|
|
61
|
+
* ([see example]({% slug events_panelbar %}))
|
|
62
|
+
* This event is preventable. If you cancel it, the item will not be selected.
|
|
63
|
+
*/
|
|
64
|
+
select: EventEmitter<PanelBarSelectEvent>;
|
|
65
|
+
/**
|
|
66
|
+
* Fires when an item is about to be expanded.
|
|
67
|
+
* ([see example]({% slug events_panelbar %}))
|
|
68
|
+
* This event is preventable. If you cancel it, the item will remain collapsed.
|
|
69
|
+
*/
|
|
70
|
+
expand: EventEmitter<PanelBarExpandEvent>;
|
|
71
|
+
/**
|
|
72
|
+
* Fires when an item is about to be collapsed.
|
|
73
|
+
* ([see example]({% slug events_panelbar %}))
|
|
74
|
+
* This event is preventable. If you cancel it, the item will remain expanded.
|
|
75
|
+
*/
|
|
76
|
+
collapse: EventEmitter<PanelBarCollapseEvent>;
|
|
58
77
|
tabIndex: number;
|
|
59
78
|
role: string;
|
|
60
79
|
hostClass: boolean;
|
|
@@ -105,6 +124,10 @@ export declare class PanelBarComponent implements AfterViewChecked, OnChanges, O
|
|
|
105
124
|
* @hidden
|
|
106
125
|
*/
|
|
107
126
|
onComponentKeyDown(event: any): void;
|
|
127
|
+
/**
|
|
128
|
+
* @hidden
|
|
129
|
+
*/
|
|
130
|
+
emitEvent(event: string, item: PanelBarItemComponent): any;
|
|
108
131
|
private readonly viewItems;
|
|
109
132
|
private validateConfiguration;
|
|
110
133
|
private updateChildrenHeight;
|
|
@@ -14,6 +14,7 @@ import { PanelBarService } from "./panelbar.service";
|
|
|
14
14
|
import { PanelBarItemTemplateDirective } from "./panelbar-item-template.directive";
|
|
15
15
|
import util from "../common/util";
|
|
16
16
|
import { isFocusable } from './../common/dom-queries';
|
|
17
|
+
import { PanelBarSelectEvent, PanelBarExpandEvent, PanelBarCollapseEvent } from './events';
|
|
17
18
|
/**
|
|
18
19
|
* Represents the [Kendo UI PanelBar component for Angular]({% slug overview_panelbar %}).
|
|
19
20
|
*/
|
|
@@ -45,17 +46,35 @@ class PanelBarComponent {
|
|
|
45
46
|
* Sets the height of the component when the `"full"` expand mode is used.
|
|
46
47
|
* This option is ignored in the `"multiple"` and `"single"` expand modes.
|
|
47
48
|
*/
|
|
48
|
-
this.height =
|
|
49
|
+
this.height = '400px';
|
|
49
50
|
/**
|
|
50
51
|
* Fires each time the user interacts with a PanelBar item
|
|
51
52
|
* ([see example]({% slug routing_panelbar %}#toc-getting-the-selected-item)).
|
|
52
53
|
* The event data contains all items that are modified.
|
|
53
54
|
*/
|
|
54
55
|
this.stateChange = new EventEmitter();
|
|
56
|
+
/**
|
|
57
|
+
* Fires when an item is about to be selected.
|
|
58
|
+
* ([see example]({% slug events_panelbar %}))
|
|
59
|
+
* This event is preventable. If you cancel it, the item will not be selected.
|
|
60
|
+
*/
|
|
61
|
+
this.select = new EventEmitter();
|
|
62
|
+
/**
|
|
63
|
+
* Fires when an item is about to be expanded.
|
|
64
|
+
* ([see example]({% slug events_panelbar %}))
|
|
65
|
+
* This event is preventable. If you cancel it, the item will remain collapsed.
|
|
66
|
+
*/
|
|
67
|
+
this.expand = new EventEmitter();
|
|
68
|
+
/**
|
|
69
|
+
* Fires when an item is about to be collapsed.
|
|
70
|
+
* ([see example]({% slug events_panelbar %}))
|
|
71
|
+
* This event is preventable. If you cancel it, the item will remain expanded.
|
|
72
|
+
*/
|
|
73
|
+
this.collapse = new EventEmitter();
|
|
55
74
|
this.tabIndex = 0;
|
|
56
|
-
this.role =
|
|
75
|
+
this.role = 'tree';
|
|
57
76
|
this.hostClass = true;
|
|
58
|
-
this.activeDescendant =
|
|
77
|
+
this.activeDescendant = '';
|
|
59
78
|
this.isViewInit = true;
|
|
60
79
|
this.focused = false;
|
|
61
80
|
this._keepItemContent = false;
|
|
@@ -67,7 +86,7 @@ class PanelBarComponent {
|
|
|
67
86
|
childrenHeight += item.headerHeight();
|
|
68
87
|
});
|
|
69
88
|
this.childrenItems.forEach(item => {
|
|
70
|
-
item.contentHeight = PanelBarExpandMode.Full === this.expandMode ? (panelbarHeight - childrenHeight) +
|
|
89
|
+
item.contentHeight = PanelBarExpandMode.Full === this.expandMode ? (panelbarHeight - childrenHeight) + 'px' : 'auto';
|
|
71
90
|
item.contentOverflow = contentOverflow;
|
|
72
91
|
});
|
|
73
92
|
};
|
|
@@ -106,7 +125,7 @@ class PanelBarComponent {
|
|
|
106
125
|
return this.expandMode === PanelBarExpandMode.Full ? this.height : 'auto';
|
|
107
126
|
}
|
|
108
127
|
get overflow() {
|
|
109
|
-
return this.expandMode === PanelBarExpandMode.Full ?
|
|
128
|
+
return this.expandMode === PanelBarExpandMode.Full ? 'hidden' : 'visible';
|
|
110
129
|
}
|
|
111
130
|
get dir() {
|
|
112
131
|
return this.localization.rtl ? 'rtl' : 'ltr';
|
|
@@ -156,7 +175,7 @@ class PanelBarComponent {
|
|
|
156
175
|
this.validateConfiguration();
|
|
157
176
|
}
|
|
158
177
|
ngOnChanges(changes) {
|
|
159
|
-
if (changes['height'] || changes['expandMode'] || changes[
|
|
178
|
+
if (changes['height'] || changes['expandMode'] || changes['items']) { // tslint:disable-line
|
|
160
179
|
if (this.childrenItems) {
|
|
161
180
|
setTimeout(this.updateChildrenHeight);
|
|
162
181
|
}
|
|
@@ -203,7 +222,7 @@ class PanelBarComponent {
|
|
|
203
222
|
onComponentBlur() {
|
|
204
223
|
this.eventService.onBlur();
|
|
205
224
|
this.focused = false;
|
|
206
|
-
this.activeDescendant =
|
|
225
|
+
this.activeDescendant = '';
|
|
207
226
|
}
|
|
208
227
|
/**
|
|
209
228
|
* @hidden
|
|
@@ -222,6 +241,26 @@ class PanelBarComponent {
|
|
|
222
241
|
}
|
|
223
242
|
}
|
|
224
243
|
}
|
|
244
|
+
/**
|
|
245
|
+
* @hidden
|
|
246
|
+
*/
|
|
247
|
+
emitEvent(event, item) {
|
|
248
|
+
let eventArgs;
|
|
249
|
+
switch (event) {
|
|
250
|
+
case 'select':
|
|
251
|
+
eventArgs = new PanelBarSelectEvent();
|
|
252
|
+
break;
|
|
253
|
+
case 'collapse':
|
|
254
|
+
eventArgs = new PanelBarCollapseEvent();
|
|
255
|
+
break;
|
|
256
|
+
default:
|
|
257
|
+
eventArgs = new PanelBarExpandEvent();
|
|
258
|
+
break;
|
|
259
|
+
}
|
|
260
|
+
eventArgs.item = item.serialize();
|
|
261
|
+
this[event].emit(eventArgs);
|
|
262
|
+
return eventArgs;
|
|
263
|
+
}
|
|
225
264
|
get viewItems() {
|
|
226
265
|
let treeItems = [];
|
|
227
266
|
this.viewChildItems.toArray().forEach(item => {
|
|
@@ -233,7 +272,7 @@ class PanelBarComponent {
|
|
|
233
272
|
validateConfiguration() {
|
|
234
273
|
if (isDevMode()) {
|
|
235
274
|
if (this.items && (this.contentItems && this.contentItems.length > 0)) {
|
|
236
|
-
throw new Error(
|
|
275
|
+
throw new Error('Invalid configuration: mixed template components and items property.');
|
|
237
276
|
}
|
|
238
277
|
}
|
|
239
278
|
}
|
|
@@ -248,30 +287,71 @@ class PanelBarComponent {
|
|
|
248
287
|
let focusedState = selectedState;
|
|
249
288
|
selectedState = this.selectable ? selectedState : currentItem.selected;
|
|
250
289
|
if (currentItem.selected !== selectedState || currentItem.focused !== focusedState) {
|
|
251
|
-
currentItem.
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
290
|
+
const isSelectPrevented = selectedState ? this.emitEvent('select', currentItem).isDefaultPrevented() : false;
|
|
291
|
+
if (!isSelectPrevented) {
|
|
292
|
+
currentItem.selected = selectedState;
|
|
293
|
+
currentItem.focused = focusedState;
|
|
294
|
+
this.activeDescendant = focusedState ? currentItem.itemId : '';
|
|
295
|
+
modifiedItems.push(currentItem);
|
|
296
|
+
}
|
|
255
297
|
}
|
|
256
298
|
});
|
|
257
299
|
if (this.expandMode === PanelBarExpandMode.Multiple) {
|
|
258
|
-
if (item.hasChildItems || item.hasContent) {
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
300
|
+
if ((item.hasChildItems || item.hasContent) && item.selected) {
|
|
301
|
+
const isEventPrevented = item.expanded ?
|
|
302
|
+
this.emitEvent('collapse', item).isDefaultPrevented() :
|
|
303
|
+
this.emitEvent('expand', item).isDefaultPrevented();
|
|
304
|
+
if (!isEventPrevented) {
|
|
305
|
+
item.expanded = !item.expanded;
|
|
306
|
+
if (modifiedItems.indexOf(item) < 0) {
|
|
307
|
+
modifiedItems.push(item);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
263
310
|
}
|
|
264
311
|
}
|
|
265
312
|
else {
|
|
266
313
|
let siblings = item.parent ? item.parent.childrenItems : this.childrenItems;
|
|
267
|
-
|
|
314
|
+
let preventedCollapseItem;
|
|
315
|
+
let expandedItems = [];
|
|
316
|
+
if ((item.hasChildItems || item.hasContent) && item.selected) {
|
|
268
317
|
siblings
|
|
269
318
|
.forEach((currentItem) => {
|
|
270
319
|
let expandedState = currentItem === item;
|
|
271
320
|
if (currentItem.expanded !== expandedState) {
|
|
272
|
-
currentItem.expanded
|
|
273
|
-
|
|
274
|
-
|
|
321
|
+
const isEventPrevented = currentItem.expanded ?
|
|
322
|
+
this.emitEvent('collapse', currentItem).isDefaultPrevented() :
|
|
323
|
+
this.emitEvent('expand', currentItem).isDefaultPrevented();
|
|
324
|
+
if (!isEventPrevented) {
|
|
325
|
+
currentItem.expanded = expandedState;
|
|
326
|
+
if (currentItem.expanded) {
|
|
327
|
+
expandedItems.push(currentItem);
|
|
328
|
+
}
|
|
329
|
+
if (modifiedItems.indexOf(currentItem) < 0) {
|
|
330
|
+
modifiedItems.push(currentItem);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
else if (isEventPrevented && currentItem.expanded) {
|
|
334
|
+
preventedCollapseItem = currentItem;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
else if (currentItem.expanded === expandedState && expandedState) {
|
|
338
|
+
const isCollapsePrevented = this.emitEvent('collapse', currentItem).isDefaultPrevented();
|
|
339
|
+
if (!isCollapsePrevented) {
|
|
340
|
+
currentItem.expanded = !currentItem.expanded;
|
|
341
|
+
if (modifiedItems.indexOf(currentItem) < 0) {
|
|
342
|
+
modifiedItems.push(currentItem);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
});
|
|
347
|
+
expandedItems.forEach(item => {
|
|
348
|
+
if (preventedCollapseItem && item.id !== preventedCollapseItem.id) {
|
|
349
|
+
item.expanded = false;
|
|
350
|
+
if (isDevMode()) {
|
|
351
|
+
const expandMode = PanelBarExpandMode[this.expandMode].toLowerCase();
|
|
352
|
+
console.warn(`
|
|
353
|
+
The ${expandMode} expandMode allows the expansion of only one item at a time.
|
|
354
|
+
See https://www.telerik.com/kendo-angular-ui-develop/components/layout/panelbar/expand-modes/`);
|
|
275
355
|
}
|
|
276
356
|
}
|
|
277
357
|
});
|
|
@@ -304,16 +384,16 @@ class PanelBarComponent {
|
|
|
304
384
|
currentIndex = visibleItems.findIndex(item => item === currentItem);
|
|
305
385
|
}
|
|
306
386
|
switch (action) {
|
|
307
|
-
case
|
|
387
|
+
case 'lastItem':
|
|
308
388
|
nextItem = visibleItems[visibleItems.length - 1];
|
|
309
389
|
break;
|
|
310
|
-
case
|
|
390
|
+
case 'firstItem':
|
|
311
391
|
nextItem = visibleItems[0];
|
|
312
392
|
break;
|
|
313
|
-
case
|
|
393
|
+
case 'nextItem':
|
|
314
394
|
nextItem = visibleItems[currentIndex < visibleItems.length - 1 ? currentIndex + 1 : 0];
|
|
315
395
|
break;
|
|
316
|
-
case
|
|
396
|
+
case 'previousItem':
|
|
317
397
|
nextItem = visibleItems[currentIndex > 0 ? currentIndex - 1 : visibleItems.length - 1];
|
|
318
398
|
break;
|
|
319
399
|
default:
|
|
@@ -330,16 +410,16 @@ class PanelBarComponent {
|
|
|
330
410
|
this.stateChange.emit(modifiedItems);
|
|
331
411
|
}
|
|
332
412
|
focusLastItem() {
|
|
333
|
-
this.focusItem(
|
|
413
|
+
this.focusItem('lastItem');
|
|
334
414
|
}
|
|
335
415
|
focusFirstItem() {
|
|
336
|
-
this.focusItem(
|
|
416
|
+
this.focusItem('firstItem');
|
|
337
417
|
}
|
|
338
418
|
focusNextItem() {
|
|
339
|
-
this.focusItem(
|
|
419
|
+
this.focusItem('nextItem');
|
|
340
420
|
}
|
|
341
421
|
focusPreviousItem() {
|
|
342
|
-
this.focusItem(
|
|
422
|
+
this.focusItem('previousItem');
|
|
343
423
|
}
|
|
344
424
|
expandItem() {
|
|
345
425
|
let currentItem = this.allItems.filter(item => item.focused)[0];
|
|
@@ -421,6 +501,18 @@ tslib_1.__decorate([
|
|
|
421
501
|
Output(),
|
|
422
502
|
tslib_1.__metadata("design:type", EventEmitter)
|
|
423
503
|
], PanelBarComponent.prototype, "stateChange", void 0);
|
|
504
|
+
tslib_1.__decorate([
|
|
505
|
+
Output(),
|
|
506
|
+
tslib_1.__metadata("design:type", EventEmitter)
|
|
507
|
+
], PanelBarComponent.prototype, "select", void 0);
|
|
508
|
+
tslib_1.__decorate([
|
|
509
|
+
Output(),
|
|
510
|
+
tslib_1.__metadata("design:type", EventEmitter)
|
|
511
|
+
], PanelBarComponent.prototype, "expand", void 0);
|
|
512
|
+
tslib_1.__decorate([
|
|
513
|
+
Output(),
|
|
514
|
+
tslib_1.__metadata("design:type", EventEmitter)
|
|
515
|
+
], PanelBarComponent.prototype, "collapse", void 0);
|
|
424
516
|
tslib_1.__decorate([
|
|
425
517
|
HostBinding('attr.tabIndex'),
|
|
426
518
|
tslib_1.__metadata("design:type", Number)
|
|
@@ -509,17 +601,17 @@ PanelBarComponent = tslib_1.__decorate([
|
|
|
509
601
|
<ng-template [ngIf]="items?.length">
|
|
510
602
|
<ng-container *ngFor="let item of items">
|
|
511
603
|
<kendo-panelbar-item *ngIf="!item.hidden"
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
604
|
+
[title]="item.title"
|
|
605
|
+
[id]="item.id"
|
|
606
|
+
[icon]="item.icon"
|
|
607
|
+
[iconClass]="item.iconClass"
|
|
608
|
+
[imageUrl]="item.imageUrl"
|
|
609
|
+
[selected]="!!item.selected"
|
|
610
|
+
[expanded]="!!item.expanded"
|
|
611
|
+
[disabled]="!!item.disabled"
|
|
612
|
+
[template]="templateRef"
|
|
613
|
+
[items]="item.children"
|
|
614
|
+
[content]="item.content"
|
|
523
615
|
>
|
|
524
616
|
</kendo-panelbar-item>
|
|
525
617
|
</ng-container>
|