@progress/kendo-angular-layout 6.5.2 → 6.6.0-dev.202204071221
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
|
@@ -16,6 +16,7 @@ var panelbar_service_1 = require("./panelbar.service");
|
|
|
16
16
|
var panelbar_item_template_directive_1 = require("./panelbar-item-template.directive");
|
|
17
17
|
var util_1 = require("../common/util");
|
|
18
18
|
var dom_queries_1 = require("./../common/dom-queries");
|
|
19
|
+
var events_1 = require("./events");
|
|
19
20
|
/**
|
|
20
21
|
* Represents the [Kendo UI PanelBar component for Angular]({% slug overview_panelbar %}).
|
|
21
22
|
*/
|
|
@@ -46,17 +47,35 @@ var PanelBarComponent = /** @class */ (function () {
|
|
|
46
47
|
* Sets the height of the component when the `"full"` expand mode is used.
|
|
47
48
|
* This option is ignored in the `"multiple"` and `"single"` expand modes.
|
|
48
49
|
*/
|
|
49
|
-
this.height =
|
|
50
|
+
this.height = '400px';
|
|
50
51
|
/**
|
|
51
52
|
* Fires each time the user interacts with a PanelBar item
|
|
52
53
|
* ([see example]({% slug routing_panelbar %}#toc-getting-the-selected-item)).
|
|
53
54
|
* The event data contains all items that are modified.
|
|
54
55
|
*/
|
|
55
56
|
this.stateChange = new core_1.EventEmitter();
|
|
57
|
+
/**
|
|
58
|
+
* Fires when an item is about to be selected.
|
|
59
|
+
* ([see example]({% slug events_panelbar %}))
|
|
60
|
+
* This event is preventable. If you cancel it, the item will not be selected.
|
|
61
|
+
*/
|
|
62
|
+
this.select = new core_1.EventEmitter();
|
|
63
|
+
/**
|
|
64
|
+
* Fires when an item is about to be expanded.
|
|
65
|
+
* ([see example]({% slug events_panelbar %}))
|
|
66
|
+
* This event is preventable. If you cancel it, the item will remain collapsed.
|
|
67
|
+
*/
|
|
68
|
+
this.expand = new core_1.EventEmitter();
|
|
69
|
+
/**
|
|
70
|
+
* Fires when an item is about to be collapsed.
|
|
71
|
+
* ([see example]({% slug events_panelbar %}))
|
|
72
|
+
* This event is preventable. If you cancel it, the item will remain expanded.
|
|
73
|
+
*/
|
|
74
|
+
this.collapse = new core_1.EventEmitter();
|
|
56
75
|
this.tabIndex = 0;
|
|
57
|
-
this.role =
|
|
76
|
+
this.role = 'tree';
|
|
58
77
|
this.hostClass = true;
|
|
59
|
-
this.activeDescendant =
|
|
78
|
+
this.activeDescendant = '';
|
|
60
79
|
this.isViewInit = true;
|
|
61
80
|
this.focused = false;
|
|
62
81
|
this._keepItemContent = false;
|
|
@@ -68,7 +87,7 @@ var PanelBarComponent = /** @class */ (function () {
|
|
|
68
87
|
childrenHeight += item.headerHeight();
|
|
69
88
|
});
|
|
70
89
|
_this.childrenItems.forEach(function (item) {
|
|
71
|
-
item.contentHeight = panelbar_expand_mode_1.PanelBarExpandMode.Full === _this.expandMode ? (panelbarHeight - childrenHeight) +
|
|
90
|
+
item.contentHeight = panelbar_expand_mode_1.PanelBarExpandMode.Full === _this.expandMode ? (panelbarHeight - childrenHeight) + 'px' : 'auto';
|
|
72
91
|
item.contentOverflow = contentOverflow;
|
|
73
92
|
});
|
|
74
93
|
};
|
|
@@ -120,7 +139,7 @@ var PanelBarComponent = /** @class */ (function () {
|
|
|
120
139
|
});
|
|
121
140
|
Object.defineProperty(PanelBarComponent.prototype, "overflow", {
|
|
122
141
|
get: function () {
|
|
123
|
-
return this.expandMode === panelbar_expand_mode_1.PanelBarExpandMode.Full ?
|
|
142
|
+
return this.expandMode === panelbar_expand_mode_1.PanelBarExpandMode.Full ? 'hidden' : 'visible';
|
|
124
143
|
},
|
|
125
144
|
enumerable: true,
|
|
126
145
|
configurable: true
|
|
@@ -187,7 +206,7 @@ var PanelBarComponent = /** @class */ (function () {
|
|
|
187
206
|
this.validateConfiguration();
|
|
188
207
|
};
|
|
189
208
|
PanelBarComponent.prototype.ngOnChanges = function (changes) {
|
|
190
|
-
if (changes['height'] || changes['expandMode'] || changes[
|
|
209
|
+
if (changes['height'] || changes['expandMode'] || changes['items']) { // tslint:disable-line
|
|
191
210
|
if (this.childrenItems) {
|
|
192
211
|
setTimeout(this.updateChildrenHeight);
|
|
193
212
|
}
|
|
@@ -238,7 +257,7 @@ var PanelBarComponent = /** @class */ (function () {
|
|
|
238
257
|
PanelBarComponent.prototype.onComponentBlur = function () {
|
|
239
258
|
this.eventService.onBlur();
|
|
240
259
|
this.focused = false;
|
|
241
|
-
this.activeDescendant =
|
|
260
|
+
this.activeDescendant = '';
|
|
242
261
|
};
|
|
243
262
|
/**
|
|
244
263
|
* @hidden
|
|
@@ -257,6 +276,26 @@ var PanelBarComponent = /** @class */ (function () {
|
|
|
257
276
|
}
|
|
258
277
|
}
|
|
259
278
|
};
|
|
279
|
+
/**
|
|
280
|
+
* @hidden
|
|
281
|
+
*/
|
|
282
|
+
PanelBarComponent.prototype.emitEvent = function (event, item) {
|
|
283
|
+
var eventArgs;
|
|
284
|
+
switch (event) {
|
|
285
|
+
case 'select':
|
|
286
|
+
eventArgs = new events_1.PanelBarSelectEvent();
|
|
287
|
+
break;
|
|
288
|
+
case 'collapse':
|
|
289
|
+
eventArgs = new events_1.PanelBarCollapseEvent();
|
|
290
|
+
break;
|
|
291
|
+
default:
|
|
292
|
+
eventArgs = new events_1.PanelBarExpandEvent();
|
|
293
|
+
break;
|
|
294
|
+
}
|
|
295
|
+
eventArgs.item = item.serialize();
|
|
296
|
+
this[event].emit(eventArgs);
|
|
297
|
+
return eventArgs;
|
|
298
|
+
};
|
|
260
299
|
Object.defineProperty(PanelBarComponent.prototype, "viewItems", {
|
|
261
300
|
get: function () {
|
|
262
301
|
var treeItems = [];
|
|
@@ -272,7 +311,7 @@ var PanelBarComponent = /** @class */ (function () {
|
|
|
272
311
|
PanelBarComponent.prototype.validateConfiguration = function () {
|
|
273
312
|
if (core_1.isDevMode()) {
|
|
274
313
|
if (this.items && (this.contentItems && this.contentItems.length > 0)) {
|
|
275
|
-
throw new Error(
|
|
314
|
+
throw new Error('Invalid configuration: mixed template components and items property.');
|
|
276
315
|
}
|
|
277
316
|
}
|
|
278
317
|
};
|
|
@@ -288,30 +327,69 @@ var PanelBarComponent = /** @class */ (function () {
|
|
|
288
327
|
var focusedState = selectedState;
|
|
289
328
|
selectedState = _this.selectable ? selectedState : currentItem.selected;
|
|
290
329
|
if (currentItem.selected !== selectedState || currentItem.focused !== focusedState) {
|
|
291
|
-
currentItem.
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
330
|
+
var isSelectPrevented = selectedState ? _this.emitEvent('select', currentItem).isDefaultPrevented() : false;
|
|
331
|
+
if (!isSelectPrevented) {
|
|
332
|
+
currentItem.selected = selectedState;
|
|
333
|
+
currentItem.focused = focusedState;
|
|
334
|
+
_this.activeDescendant = focusedState ? currentItem.itemId : '';
|
|
335
|
+
modifiedItems.push(currentItem);
|
|
336
|
+
}
|
|
295
337
|
}
|
|
296
338
|
});
|
|
297
339
|
if (this.expandMode === panelbar_expand_mode_1.PanelBarExpandMode.Multiple) {
|
|
298
|
-
if (item.hasChildItems || item.hasContent) {
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
340
|
+
if ((item.hasChildItems || item.hasContent) && item.selected) {
|
|
341
|
+
var isEventPrevented = item.expanded ?
|
|
342
|
+
this.emitEvent('collapse', item).isDefaultPrevented() :
|
|
343
|
+
this.emitEvent('expand', item).isDefaultPrevented();
|
|
344
|
+
if (!isEventPrevented) {
|
|
345
|
+
item.expanded = !item.expanded;
|
|
346
|
+
if (modifiedItems.indexOf(item) < 0) {
|
|
347
|
+
modifiedItems.push(item);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
303
350
|
}
|
|
304
351
|
}
|
|
305
352
|
else {
|
|
306
353
|
var siblings = item.parent ? item.parent.childrenItems : this.childrenItems;
|
|
307
|
-
|
|
354
|
+
var preventedCollapseItem_1;
|
|
355
|
+
var expandedItems_1 = [];
|
|
356
|
+
if ((item.hasChildItems || item.hasContent) && item.selected) {
|
|
308
357
|
siblings
|
|
309
358
|
.forEach(function (currentItem) {
|
|
310
359
|
var expandedState = currentItem === item;
|
|
311
360
|
if (currentItem.expanded !== expandedState) {
|
|
312
|
-
currentItem.expanded
|
|
313
|
-
|
|
314
|
-
|
|
361
|
+
var isEventPrevented = currentItem.expanded ?
|
|
362
|
+
_this.emitEvent('collapse', currentItem).isDefaultPrevented() :
|
|
363
|
+
_this.emitEvent('expand', currentItem).isDefaultPrevented();
|
|
364
|
+
if (!isEventPrevented) {
|
|
365
|
+
currentItem.expanded = expandedState;
|
|
366
|
+
if (currentItem.expanded) {
|
|
367
|
+
expandedItems_1.push(currentItem);
|
|
368
|
+
}
|
|
369
|
+
if (modifiedItems.indexOf(currentItem) < 0) {
|
|
370
|
+
modifiedItems.push(currentItem);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
else if (isEventPrevented && currentItem.expanded) {
|
|
374
|
+
preventedCollapseItem_1 = currentItem;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
else if (currentItem.expanded === expandedState && expandedState) {
|
|
378
|
+
var isCollapsePrevented = _this.emitEvent('collapse', currentItem).isDefaultPrevented();
|
|
379
|
+
if (!isCollapsePrevented) {
|
|
380
|
+
currentItem.expanded = !currentItem.expanded;
|
|
381
|
+
if (modifiedItems.indexOf(currentItem) < 0) {
|
|
382
|
+
modifiedItems.push(currentItem);
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
});
|
|
387
|
+
expandedItems_1.forEach(function (item) {
|
|
388
|
+
if (preventedCollapseItem_1 && item.id !== preventedCollapseItem_1.id) {
|
|
389
|
+
item.expanded = false;
|
|
390
|
+
if (core_1.isDevMode()) {
|
|
391
|
+
var expandMode = panelbar_expand_mode_1.PanelBarExpandMode[_this.expandMode].toLowerCase();
|
|
392
|
+
console.warn("\n The " + expandMode + " expandMode allows the expansion of only one item at a time.\n See https://www.telerik.com/kendo-angular-ui-develop/components/layout/panelbar/expand-modes/");
|
|
315
393
|
}
|
|
316
394
|
}
|
|
317
395
|
});
|
|
@@ -344,16 +422,16 @@ var PanelBarComponent = /** @class */ (function () {
|
|
|
344
422
|
currentIndex = visibleItems.findIndex(function (item) { return item === currentItem; });
|
|
345
423
|
}
|
|
346
424
|
switch (action) {
|
|
347
|
-
case
|
|
425
|
+
case 'lastItem':
|
|
348
426
|
nextItem = visibleItems[visibleItems.length - 1];
|
|
349
427
|
break;
|
|
350
|
-
case
|
|
428
|
+
case 'firstItem':
|
|
351
429
|
nextItem = visibleItems[0];
|
|
352
430
|
break;
|
|
353
|
-
case
|
|
431
|
+
case 'nextItem':
|
|
354
432
|
nextItem = visibleItems[currentIndex < visibleItems.length - 1 ? currentIndex + 1 : 0];
|
|
355
433
|
break;
|
|
356
|
-
case
|
|
434
|
+
case 'previousItem':
|
|
357
435
|
nextItem = visibleItems[currentIndex > 0 ? currentIndex - 1 : visibleItems.length - 1];
|
|
358
436
|
break;
|
|
359
437
|
default:
|
|
@@ -370,16 +448,16 @@ var PanelBarComponent = /** @class */ (function () {
|
|
|
370
448
|
this.stateChange.emit(modifiedItems);
|
|
371
449
|
};
|
|
372
450
|
PanelBarComponent.prototype.focusLastItem = function () {
|
|
373
|
-
this.focusItem(
|
|
451
|
+
this.focusItem('lastItem');
|
|
374
452
|
};
|
|
375
453
|
PanelBarComponent.prototype.focusFirstItem = function () {
|
|
376
|
-
this.focusItem(
|
|
454
|
+
this.focusItem('firstItem');
|
|
377
455
|
};
|
|
378
456
|
PanelBarComponent.prototype.focusNextItem = function () {
|
|
379
|
-
this.focusItem(
|
|
457
|
+
this.focusItem('nextItem');
|
|
380
458
|
};
|
|
381
459
|
PanelBarComponent.prototype.focusPreviousItem = function () {
|
|
382
|
-
this.focusItem(
|
|
460
|
+
this.focusItem('previousItem');
|
|
383
461
|
};
|
|
384
462
|
PanelBarComponent.prototype.expandItem = function () {
|
|
385
463
|
var currentItem = this.allItems.filter(function (item) { return item.focused; })[0];
|
|
@@ -463,6 +541,18 @@ var PanelBarComponent = /** @class */ (function () {
|
|
|
463
541
|
core_1.Output(),
|
|
464
542
|
tslib_1.__metadata("design:type", core_1.EventEmitter)
|
|
465
543
|
], PanelBarComponent.prototype, "stateChange", void 0);
|
|
544
|
+
tslib_1.__decorate([
|
|
545
|
+
core_1.Output(),
|
|
546
|
+
tslib_1.__metadata("design:type", core_1.EventEmitter)
|
|
547
|
+
], PanelBarComponent.prototype, "select", void 0);
|
|
548
|
+
tslib_1.__decorate([
|
|
549
|
+
core_1.Output(),
|
|
550
|
+
tslib_1.__metadata("design:type", core_1.EventEmitter)
|
|
551
|
+
], PanelBarComponent.prototype, "expand", void 0);
|
|
552
|
+
tslib_1.__decorate([
|
|
553
|
+
core_1.Output(),
|
|
554
|
+
tslib_1.__metadata("design:type", core_1.EventEmitter)
|
|
555
|
+
], PanelBarComponent.prototype, "collapse", void 0);
|
|
466
556
|
tslib_1.__decorate([
|
|
467
557
|
core_1.HostBinding('attr.tabIndex'),
|
|
468
558
|
tslib_1.__metadata("design:type", Number)
|
|
@@ -546,7 +636,7 @@ var PanelBarComponent = /** @class */ (function () {
|
|
|
546
636
|
}
|
|
547
637
|
],
|
|
548
638
|
selector: 'kendo-panelbar',
|
|
549
|
-
template: "\n <ng-content *ngIf=\"contentChildItems && !items\" select=\"kendo-panelbar-item\"></ng-content>\n <ng-template [ngIf]=\"items?.length\">\n <ng-container *ngFor=\"let item of items\">\n <kendo-panelbar-item *ngIf=\"!item.hidden\"\n
|
|
639
|
+
template: "\n <ng-content *ngIf=\"contentChildItems && !items\" select=\"kendo-panelbar-item\"></ng-content>\n <ng-template [ngIf]=\"items?.length\">\n <ng-container *ngFor=\"let item of items\">\n <kendo-panelbar-item *ngIf=\"!item.hidden\"\n [title]=\"item.title\"\n [id]=\"item.id\"\n [icon]=\"item.icon\"\n [iconClass]=\"item.iconClass\"\n [imageUrl]=\"item.imageUrl\"\n [selected]=\"!!item.selected\"\n [expanded]=\"!!item.expanded\"\n [disabled]=\"!!item.disabled\"\n [template]=\"templateRef\"\n [items]=\"item.children\"\n [content]=\"item.content\"\n >\n </kendo-panelbar-item>\n </ng-container>\n </ng-template>\n "
|
|
550
640
|
})
|
|
551
641
|
// TODO: add styles as input prop
|
|
552
642
|
,
|