@progress/kendo-angular-layout 14.4.0-develop.19 → 14.4.0-develop.20

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.
@@ -24,7 +24,7 @@ const SHAPE_TO_ROUNDED = {
24
24
  */
25
25
  export const parsePanelBarItems = (data) => {
26
26
  return data.map((item) => {
27
- if (!item.id) {
27
+ if (!isPresent(item.id)) {
28
28
  item.id = `default-${nextId++}`;
29
29
  }
30
30
  if (item.children) {
@@ -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: 1706287392,
13
- version: '14.4.0-develop.19',
12
+ publishDate: 1706519724,
13
+ version: '14.4.0-develop.20',
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,9 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ /**
6
+ * Arguments for the `itemClick` event of the PanelBar.
7
+ */
8
+ export class PanelBarItemClickEvent {
9
+ }
@@ -6,3 +6,4 @@ export { PanelBarCollapseEvent } from './events/collapse-event';
6
6
  export { PanelBarExpandEvent } from './events/expand-event';
7
7
  export { PanelBarSelectEvent } from './events/select-event';
8
8
  export { PanelBarStateChangeEvent } from './events/state-change-event';
9
+ export { PanelBarItemClickEvent } from './events/item-click-event';
@@ -170,6 +170,7 @@ export class PanelBarItemComponent {
170
170
  */
171
171
  onItemClick(e) {
172
172
  if (!isFocusable(e.target)) {
173
+ this.eventService.itemClick.next({ item: this.serialize(), originalEvent: e });
173
174
  this.onItemAction();
174
175
  }
175
176
  }
@@ -217,7 +218,8 @@ export class PanelBarItemComponent {
217
218
  id: this.id,
218
219
  imageUrl: this.imageUrl,
219
220
  selected: this.selected,
220
- title: this.title
221
+ title: this.title,
222
+ children: this.items
221
223
  };
222
224
  }
223
225
  /**
@@ -12,6 +12,7 @@ import { PanelBarItemComponent } from './panelbar-item.component';
12
12
  import { PanelBarService } from "./panelbar.service";
13
13
  import { PanelBarItemTemplateDirective } from "./panelbar-item-template.directive";
14
14
  import { parsePanelBarItems } from "../common/util";
15
+ import { Subscription } from 'rxjs';
15
16
  import { isFocusable } from './../common/dom-queries';
16
17
  import { PanelBarSelectEvent, PanelBarExpandEvent, PanelBarCollapseEvent, PanelBarStateChangeEvent } from './events';
17
18
  import * as i0 from "@angular/core";
@@ -75,6 +76,10 @@ export class PanelBarComponent {
75
76
  * This event is preventable. If you cancel it, the item will remain expanded.
76
77
  */
77
78
  this.collapse = new EventEmitter();
79
+ /**
80
+ * Fires when the user clicks an item ([see example]({% slug events_panelbar %})).
81
+ */
82
+ this.itemClick = new EventEmitter();
78
83
  this.hostClasses = true;
79
84
  this.tabIndex = 0;
80
85
  this.role = 'tree';
@@ -86,6 +91,7 @@ export class PanelBarComponent {
86
91
  this.isViewInit = true;
87
92
  this.focused = false;
88
93
  this._keepItemContent = false;
94
+ this.subs = new Subscription();
89
95
  this.updateChildrenHeight = () => {
90
96
  let childrenHeight = 0;
91
97
  const panelbarHeight = this.elementRef.nativeElement.offsetHeight;
@@ -104,7 +110,8 @@ export class PanelBarComponent {
104
110
  this.keyBindings = this.computedKeys;
105
111
  this.elementRef = elementRef;
106
112
  this.eventService = eventService;
107
- this.eventService.children$.subscribe(event => this.onItemAction(event));
113
+ this.subs.add(this.eventService.children$.subscribe(event => this.onItemAction(event)));
114
+ this.subs.add(this.eventService.itemClick.subscribe(ev => this.itemClick.emit(ev)));
108
115
  }
109
116
  /**
110
117
  * When set to `true`, the PanelBar renders the content of all items and they are persisted in the DOM
@@ -158,13 +165,10 @@ export class PanelBarComponent {
158
165
  };
159
166
  }
160
167
  ngOnDestroy() {
161
- if (this.localizationChangeSubscription) {
162
- this.localizationChangeSubscription.unsubscribe();
163
- }
168
+ this.subs.unsubscribe();
164
169
  }
165
170
  ngOnInit() {
166
- this.localizationChangeSubscription = this.localization
167
- .changes.subscribe(() => this.keyBindings = this.computedKeys);
171
+ this.subs.add(this.localization.changes.subscribe(() => this.keyBindings = this.computedKeys));
168
172
  this.eventService.animate = this.animate;
169
173
  this.eventService.expandMode = this.expandMode;
170
174
  }
@@ -489,7 +493,7 @@ export class PanelBarComponent {
489
493
  }
490
494
  }
491
495
  PanelBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PanelBarComponent, deps: [{ token: i0.ElementRef }, { token: i1.PanelBarService }, { token: i2.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
492
- PanelBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PanelBarComponent, selector: "kendo-panelbar", inputs: { expandMode: "expandMode", selectable: "selectable", animate: "animate", height: "height", keepItemContent: "keepItemContent", items: "items" }, outputs: { stateChange: "stateChange", select: "select", expand: "expand", collapse: "collapse" }, host: { listeners: { "click": "onComponentClick($event)", "focus": "onComponentFocus()", "blur": "onComponentBlur()", "keydown": "onComponentKeyDown($event)" }, properties: { "class.k-panelbar": "this.hostClasses", "class.k-pos-relative": "this.hostClasses", "attr.tabIndex": "this.tabIndex", "attr.role": "this.role", "attr.aria-activedescendant": "this.activeDescendant", "style.height": "this.hostHeight", "style.overflow": "this.overflow", "attr.dir": "this.dir" } }, providers: [
496
+ PanelBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PanelBarComponent, selector: "kendo-panelbar", inputs: { expandMode: "expandMode", selectable: "selectable", animate: "animate", height: "height", keepItemContent: "keepItemContent", items: "items" }, outputs: { stateChange: "stateChange", select: "select", expand: "expand", collapse: "collapse", itemClick: "itemClick" }, host: { listeners: { "click": "onComponentClick($event)", "focus": "onComponentFocus()", "blur": "onComponentBlur()", "keydown": "onComponentKeyDown($event)" }, properties: { "class.k-panelbar": "this.hostClasses", "class.k-pos-relative": "this.hostClasses", "attr.tabIndex": "this.tabIndex", "attr.role": "this.role", "attr.aria-activedescendant": "this.activeDescendant", "style.height": "this.hostHeight", "style.overflow": "this.overflow", "attr.dir": "this.dir" } }, providers: [
493
497
  PanelBarService,
494
498
  LocalizationService,
495
499
  {
@@ -578,6 +582,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
578
582
  type: Output
579
583
  }], collapse: [{
580
584
  type: Output
585
+ }], itemClick: [{
586
+ type: Output
581
587
  }], hostClasses: [{
582
588
  type: HostBinding,
583
589
  args: ['class.k-panelbar']
@@ -17,6 +17,7 @@ export class PanelBarService {
17
17
  this.parentSource = new Subject();
18
18
  this.keepContentSource = new BehaviorSubject(false);
19
19
  this.childSource = new Subject();
20
+ this.itemClick = new Subject();
20
21
  this.parent$ = this.parentSource.asObservable();
21
22
  this.children$ = this.childSource.asObservable();
22
23
  this.keepContent$ = this.keepContentSource.asObservable();
@@ -31,8 +31,8 @@ const packageMetadata = {
31
31
  name: '@progress/kendo-angular-layout',
32
32
  productName: 'Kendo UI for Angular',
33
33
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
34
- publishDate: 1706287392,
35
- version: '14.4.0-develop.19',
34
+ publishDate: 1706519724,
35
+ version: '14.4.0-develop.20',
36
36
  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'
37
37
  };
38
38
 
@@ -146,7 +146,7 @@ const SHAPE_TO_ROUNDED = {
146
146
  */
147
147
  const parsePanelBarItems = (data) => {
148
148
  return data.map((item) => {
149
- if (!item.id) {
149
+ if (!isPresent(item.id)) {
150
150
  item.id = `default-${nextId$1++}`;
151
151
  }
152
152
  if (item.children) {
@@ -261,6 +261,7 @@ class PanelBarService {
261
261
  this.parentSource = new Subject();
262
262
  this.keepContentSource = new BehaviorSubject(false);
263
263
  this.childSource = new Subject();
264
+ this.itemClick = new Subject();
264
265
  this.parent$ = this.parentSource.asObservable();
265
266
  this.children$ = this.childSource.asObservable();
266
267
  this.keepContent$ = this.keepContentSource.asObservable();
@@ -440,6 +441,7 @@ class PanelBarItemComponent {
440
441
  */
441
442
  onItemClick(e) {
442
443
  if (!isFocusable(e.target)) {
444
+ this.eventService.itemClick.next({ item: this.serialize(), originalEvent: e });
443
445
  this.onItemAction();
444
446
  }
445
447
  }
@@ -487,7 +489,8 @@ class PanelBarItemComponent {
487
489
  id: this.id,
488
490
  imageUrl: this.imageUrl,
489
491
  selected: this.selected,
490
- title: this.title
492
+ title: this.title,
493
+ children: this.items
491
494
  };
492
495
  }
493
496
  /**
@@ -981,6 +984,12 @@ class PanelBarSelectEvent extends PreventableEvent {
981
984
  class PanelBarStateChangeEvent {
982
985
  }
983
986
 
987
+ /**
988
+ * Arguments for the `itemClick` event of the PanelBar.
989
+ */
990
+ class PanelBarItemClickEvent {
991
+ }
992
+
984
993
  /**
985
994
  * Represents the [Kendo UI PanelBar component for Angular]({% slug overview_panelbar %}).
986
995
  */
@@ -1036,6 +1045,10 @@ class PanelBarComponent {
1036
1045
  * This event is preventable. If you cancel it, the item will remain expanded.
1037
1046
  */
1038
1047
  this.collapse = new EventEmitter();
1048
+ /**
1049
+ * Fires when the user clicks an item ([see example]({% slug events_panelbar %})).
1050
+ */
1051
+ this.itemClick = new EventEmitter();
1039
1052
  this.hostClasses = true;
1040
1053
  this.tabIndex = 0;
1041
1054
  this.role = 'tree';
@@ -1047,6 +1060,7 @@ class PanelBarComponent {
1047
1060
  this.isViewInit = true;
1048
1061
  this.focused = false;
1049
1062
  this._keepItemContent = false;
1063
+ this.subs = new Subscription();
1050
1064
  this.updateChildrenHeight = () => {
1051
1065
  let childrenHeight = 0;
1052
1066
  const panelbarHeight = this.elementRef.nativeElement.offsetHeight;
@@ -1065,7 +1079,8 @@ class PanelBarComponent {
1065
1079
  this.keyBindings = this.computedKeys;
1066
1080
  this.elementRef = elementRef;
1067
1081
  this.eventService = eventService;
1068
- this.eventService.children$.subscribe(event => this.onItemAction(event));
1082
+ this.subs.add(this.eventService.children$.subscribe(event => this.onItemAction(event)));
1083
+ this.subs.add(this.eventService.itemClick.subscribe(ev => this.itemClick.emit(ev)));
1069
1084
  }
1070
1085
  /**
1071
1086
  * When set to `true`, the PanelBar renders the content of all items and they are persisted in the DOM
@@ -1119,13 +1134,10 @@ class PanelBarComponent {
1119
1134
  };
1120
1135
  }
1121
1136
  ngOnDestroy() {
1122
- if (this.localizationChangeSubscription) {
1123
- this.localizationChangeSubscription.unsubscribe();
1124
- }
1137
+ this.subs.unsubscribe();
1125
1138
  }
1126
1139
  ngOnInit() {
1127
- this.localizationChangeSubscription = this.localization
1128
- .changes.subscribe(() => this.keyBindings = this.computedKeys);
1140
+ this.subs.add(this.localization.changes.subscribe(() => this.keyBindings = this.computedKeys));
1129
1141
  this.eventService.animate = this.animate;
1130
1142
  this.eventService.expandMode = this.expandMode;
1131
1143
  }
@@ -1450,7 +1462,7 @@ class PanelBarComponent {
1450
1462
  }
1451
1463
  }
1452
1464
  PanelBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PanelBarComponent, deps: [{ token: i0.ElementRef }, { token: PanelBarService }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
1453
- PanelBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PanelBarComponent, selector: "kendo-panelbar", inputs: { expandMode: "expandMode", selectable: "selectable", animate: "animate", height: "height", keepItemContent: "keepItemContent", items: "items" }, outputs: { stateChange: "stateChange", select: "select", expand: "expand", collapse: "collapse" }, host: { listeners: { "click": "onComponentClick($event)", "focus": "onComponentFocus()", "blur": "onComponentBlur()", "keydown": "onComponentKeyDown($event)" }, properties: { "class.k-panelbar": "this.hostClasses", "class.k-pos-relative": "this.hostClasses", "attr.tabIndex": "this.tabIndex", "attr.role": "this.role", "attr.aria-activedescendant": "this.activeDescendant", "style.height": "this.hostHeight", "style.overflow": "this.overflow", "attr.dir": "this.dir" } }, providers: [
1465
+ PanelBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PanelBarComponent, selector: "kendo-panelbar", inputs: { expandMode: "expandMode", selectable: "selectable", animate: "animate", height: "height", keepItemContent: "keepItemContent", items: "items" }, outputs: { stateChange: "stateChange", select: "select", expand: "expand", collapse: "collapse", itemClick: "itemClick" }, host: { listeners: { "click": "onComponentClick($event)", "focus": "onComponentFocus()", "blur": "onComponentBlur()", "keydown": "onComponentKeyDown($event)" }, properties: { "class.k-panelbar": "this.hostClasses", "class.k-pos-relative": "this.hostClasses", "attr.tabIndex": "this.tabIndex", "attr.role": "this.role", "attr.aria-activedescendant": "this.activeDescendant", "style.height": "this.hostHeight", "style.overflow": "this.overflow", "attr.dir": "this.dir" } }, providers: [
1454
1466
  PanelBarService,
1455
1467
  LocalizationService,
1456
1468
  {
@@ -1539,6 +1551,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1539
1551
  type: Output
1540
1552
  }], collapse: [{
1541
1553
  type: Output
1554
+ }], itemClick: [{
1555
+ type: Output
1542
1556
  }], hostClasses: [{
1543
1557
  type: HostBinding,
1544
1558
  args: ['class.k-panelbar']
@@ -10479,5 +10493,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
10479
10493
  * Generated bundle index. Do not edit.
10480
10494
  */
10481
10495
 
10482
- export { AvatarComponent, AvatarCustomMessagesComponent, AvatarModule, CardAction, CardActionsComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CardMediaDirective, CardModule, CardSeparatorDirective, CardSubtitleDirective, CardTitleDirective, DrawerComponent, DrawerContainerComponent, DrawerContentComponent, DrawerFooterTemplateDirective, DrawerHeaderTemplateDirective, DrawerItemTemplateDirective, DrawerModule, DrawerSelectEvent, DrawerTemplateDirective, ExpansionPanelActionEvent, ExpansionPanelComponent, ExpansionPanelModule, ExpansionPanelTitleDirective, GridLayoutComponent, GridLayoutItemComponent, GridLayoutModule, LayoutModule, LocalizedAvatarMessagesDirective, LocalizedStepperMessagesDirective, LocalizedTabStripMessagesDirective, PanelBarCollapseEvent, PanelBarComponent, PanelBarContentDirective, PanelBarExpandEvent, PanelBarExpandMode, PanelBarItemComponent, PanelBarItemTemplateDirective, PanelBarItemTitleDirective, PanelBarModule, PanelBarSelectEvent, PanelBarStateChangeEvent, SelectEvent, SplitterComponent, SplitterModule, SplitterPaneComponent, StackLayoutComponent, StackLayoutModule, StepperActivateEvent, StepperComponent, StepperCustomMessagesComponent, StepperIndicatorTemplateDirective, StepperLabelTemplateDirective, StepperModule, StepperStepTemplateDirective, TabCloseEvent, TabComponent, TabContentDirective, TabStripComponent, TabStripCustomMessagesComponent, TabStripModule, TabStripTabComponent, TabTemplateDirective, TabTitleDirective, TileLayoutComponent, TileLayoutItemBodyComponent, TileLayoutItemComponent, TileLayoutItemHeaderComponent, TileLayoutModule, TileLayoutReorderEvent, TileLayoutResizeEvent, TileLayoutResizeHandleDirective };
10496
+ export { AvatarComponent, AvatarCustomMessagesComponent, AvatarModule, CardAction, CardActionsComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CardMediaDirective, CardModule, CardSeparatorDirective, CardSubtitleDirective, CardTitleDirective, DrawerComponent, DrawerContainerComponent, DrawerContentComponent, DrawerFooterTemplateDirective, DrawerHeaderTemplateDirective, DrawerItemTemplateDirective, DrawerModule, DrawerSelectEvent, DrawerTemplateDirective, ExpansionPanelActionEvent, ExpansionPanelComponent, ExpansionPanelModule, ExpansionPanelTitleDirective, GridLayoutComponent, GridLayoutItemComponent, GridLayoutModule, LayoutModule, LocalizedAvatarMessagesDirective, LocalizedStepperMessagesDirective, LocalizedTabStripMessagesDirective, PanelBarCollapseEvent, PanelBarComponent, PanelBarContentDirective, PanelBarExpandEvent, PanelBarExpandMode, PanelBarItemClickEvent, PanelBarItemComponent, PanelBarItemTemplateDirective, PanelBarItemTitleDirective, PanelBarModule, PanelBarSelectEvent, PanelBarStateChangeEvent, SelectEvent, SplitterComponent, SplitterModule, SplitterPaneComponent, StackLayoutComponent, StackLayoutModule, StepperActivateEvent, StepperComponent, StepperCustomMessagesComponent, StepperIndicatorTemplateDirective, StepperLabelTemplateDirective, StepperModule, StepperStepTemplateDirective, TabCloseEvent, TabComponent, TabContentDirective, TabStripComponent, TabStripCustomMessagesComponent, TabStripModule, TabStripTabComponent, TabTemplateDirective, TabTitleDirective, TileLayoutComponent, TileLayoutItemBodyComponent, TileLayoutItemComponent, TileLayoutItemHeaderComponent, TileLayoutModule, TileLayoutReorderEvent, TileLayoutResizeEvent, TileLayoutResizeHandleDirective };
10483
10497
 
@@ -31,8 +31,8 @@ const packageMetadata = {
31
31
  name: '@progress/kendo-angular-layout',
32
32
  productName: 'Kendo UI for Angular',
33
33
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
34
- publishDate: 1706287392,
35
- version: '14.4.0-develop.19',
34
+ publishDate: 1706519724,
35
+ version: '14.4.0-develop.20',
36
36
  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'
37
37
  };
38
38
 
@@ -75,6 +75,7 @@ class PanelBarService {
75
75
  this.parentSource = new Subject();
76
76
  this.keepContentSource = new BehaviorSubject(false);
77
77
  this.childSource = new Subject();
78
+ this.itemClick = new Subject();
78
79
  this.parent$ = this.parentSource.asObservable();
79
80
  this.children$ = this.childSource.asObservable();
80
81
  this.keepContent$ = this.keepContentSource.asObservable();
@@ -180,7 +181,7 @@ const SHAPE_TO_ROUNDED = {
180
181
  */
181
182
  const parsePanelBarItems = (data) => {
182
183
  return data.map((item) => {
183
- if (!item.id) {
184
+ if (!isPresent(item.id)) {
184
185
  item.id = `default-${nextId$1++}`;
185
186
  }
186
187
  if (item.children) {
@@ -438,6 +439,7 @@ class PanelBarItemComponent {
438
439
  */
439
440
  onItemClick(e) {
440
441
  if (!isFocusable(e.target)) {
442
+ this.eventService.itemClick.next({ item: this.serialize(), originalEvent: e });
441
443
  this.onItemAction();
442
444
  }
443
445
  }
@@ -485,7 +487,8 @@ class PanelBarItemComponent {
485
487
  id: this.id,
486
488
  imageUrl: this.imageUrl,
487
489
  selected: this.selected,
488
- title: this.title
490
+ title: this.title,
491
+ children: this.items
489
492
  };
490
493
  }
491
494
  /**
@@ -975,6 +978,12 @@ class PanelBarSelectEvent extends PreventableEvent {
975
978
  class PanelBarStateChangeEvent {
976
979
  }
977
980
 
981
+ /**
982
+ * Arguments for the `itemClick` event of the PanelBar.
983
+ */
984
+ class PanelBarItemClickEvent {
985
+ }
986
+
978
987
  /**
979
988
  * Represents the [Kendo UI PanelBar component for Angular]({% slug overview_panelbar %}).
980
989
  */
@@ -1030,6 +1039,10 @@ class PanelBarComponent {
1030
1039
  * This event is preventable. If you cancel it, the item will remain expanded.
1031
1040
  */
1032
1041
  this.collapse = new EventEmitter();
1042
+ /**
1043
+ * Fires when the user clicks an item ([see example]({% slug events_panelbar %})).
1044
+ */
1045
+ this.itemClick = new EventEmitter();
1033
1046
  this.hostClasses = true;
1034
1047
  this.tabIndex = 0;
1035
1048
  this.role = 'tree';
@@ -1041,6 +1054,7 @@ class PanelBarComponent {
1041
1054
  this.isViewInit = true;
1042
1055
  this.focused = false;
1043
1056
  this._keepItemContent = false;
1057
+ this.subs = new Subscription();
1044
1058
  this.updateChildrenHeight = () => {
1045
1059
  let childrenHeight = 0;
1046
1060
  const panelbarHeight = this.elementRef.nativeElement.offsetHeight;
@@ -1059,7 +1073,8 @@ class PanelBarComponent {
1059
1073
  this.keyBindings = this.computedKeys;
1060
1074
  this.elementRef = elementRef;
1061
1075
  this.eventService = eventService;
1062
- this.eventService.children$.subscribe(event => this.onItemAction(event));
1076
+ this.subs.add(this.eventService.children$.subscribe(event => this.onItemAction(event)));
1077
+ this.subs.add(this.eventService.itemClick.subscribe(ev => this.itemClick.emit(ev)));
1063
1078
  }
1064
1079
  /**
1065
1080
  * When set to `true`, the PanelBar renders the content of all items and they are persisted in the DOM
@@ -1113,13 +1128,10 @@ class PanelBarComponent {
1113
1128
  };
1114
1129
  }
1115
1130
  ngOnDestroy() {
1116
- if (this.localizationChangeSubscription) {
1117
- this.localizationChangeSubscription.unsubscribe();
1118
- }
1131
+ this.subs.unsubscribe();
1119
1132
  }
1120
1133
  ngOnInit() {
1121
- this.localizationChangeSubscription = this.localization
1122
- .changes.subscribe(() => this.keyBindings = this.computedKeys);
1134
+ this.subs.add(this.localization.changes.subscribe(() => this.keyBindings = this.computedKeys));
1123
1135
  this.eventService.animate = this.animate;
1124
1136
  this.eventService.expandMode = this.expandMode;
1125
1137
  }
@@ -1444,7 +1456,7 @@ class PanelBarComponent {
1444
1456
  }
1445
1457
  }
1446
1458
  PanelBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PanelBarComponent, deps: [{ token: i0.ElementRef }, { token: PanelBarService }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
1447
- PanelBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PanelBarComponent, selector: "kendo-panelbar", inputs: { expandMode: "expandMode", selectable: "selectable", animate: "animate", height: "height", keepItemContent: "keepItemContent", items: "items" }, outputs: { stateChange: "stateChange", select: "select", expand: "expand", collapse: "collapse" }, host: { listeners: { "click": "onComponentClick($event)", "focus": "onComponentFocus()", "blur": "onComponentBlur()", "keydown": "onComponentKeyDown($event)" }, properties: { "class.k-panelbar": "this.hostClasses", "class.k-pos-relative": "this.hostClasses", "attr.tabIndex": "this.tabIndex", "attr.role": "this.role", "attr.aria-activedescendant": "this.activeDescendant", "style.height": "this.hostHeight", "style.overflow": "this.overflow", "attr.dir": "this.dir" } }, providers: [
1459
+ PanelBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PanelBarComponent, selector: "kendo-panelbar", inputs: { expandMode: "expandMode", selectable: "selectable", animate: "animate", height: "height", keepItemContent: "keepItemContent", items: "items" }, outputs: { stateChange: "stateChange", select: "select", expand: "expand", collapse: "collapse", itemClick: "itemClick" }, host: { listeners: { "click": "onComponentClick($event)", "focus": "onComponentFocus()", "blur": "onComponentBlur()", "keydown": "onComponentKeyDown($event)" }, properties: { "class.k-panelbar": "this.hostClasses", "class.k-pos-relative": "this.hostClasses", "attr.tabIndex": "this.tabIndex", "attr.role": "this.role", "attr.aria-activedescendant": "this.activeDescendant", "style.height": "this.hostHeight", "style.overflow": "this.overflow", "attr.dir": "this.dir" } }, providers: [
1448
1460
  PanelBarService,
1449
1461
  LocalizationService,
1450
1462
  {
@@ -1533,6 +1545,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1533
1545
  type: Output
1534
1546
  }], collapse: [{
1535
1547
  type: Output
1548
+ }], itemClick: [{
1549
+ type: Output
1536
1550
  }], hostClasses: [{
1537
1551
  type: HostBinding,
1538
1552
  args: ['class.k-panelbar']
@@ -10450,5 +10464,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
10450
10464
  * Generated bundle index. Do not edit.
10451
10465
  */
10452
10466
 
10453
- export { AvatarComponent, AvatarCustomMessagesComponent, AvatarModule, CardAction, CardActionsComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CardMediaDirective, CardModule, CardSeparatorDirective, CardSubtitleDirective, CardTitleDirective, DrawerComponent, DrawerContainerComponent, DrawerContentComponent, DrawerFooterTemplateDirective, DrawerHeaderTemplateDirective, DrawerItemTemplateDirective, DrawerModule, DrawerSelectEvent, DrawerTemplateDirective, ExpansionPanelActionEvent, ExpansionPanelComponent, ExpansionPanelModule, ExpansionPanelTitleDirective, GridLayoutComponent, GridLayoutItemComponent, GridLayoutModule, LayoutModule, LocalizedAvatarMessagesDirective, LocalizedStepperMessagesDirective, LocalizedTabStripMessagesDirective, PanelBarCollapseEvent, PanelBarComponent, PanelBarContentDirective, PanelBarExpandEvent, PanelBarExpandMode, PanelBarItemComponent, PanelBarItemTemplateDirective, PanelBarItemTitleDirective, PanelBarModule, PanelBarSelectEvent, PanelBarStateChangeEvent, SelectEvent, SplitterComponent, SplitterModule, SplitterPaneComponent, StackLayoutComponent, StackLayoutModule, StepperActivateEvent, StepperComponent, StepperCustomMessagesComponent, StepperIndicatorTemplateDirective, StepperLabelTemplateDirective, StepperModule, StepperStepTemplateDirective, TabCloseEvent, TabComponent, TabContentDirective, TabStripComponent, TabStripCustomMessagesComponent, TabStripModule, TabStripTabComponent, TabTemplateDirective, TabTitleDirective, TileLayoutComponent, TileLayoutItemBodyComponent, TileLayoutItemComponent, TileLayoutItemHeaderComponent, TileLayoutModule, TileLayoutReorderEvent, TileLayoutResizeEvent, TileLayoutResizeHandleDirective };
10467
+ export { AvatarComponent, AvatarCustomMessagesComponent, AvatarModule, CardAction, CardActionsComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CardMediaDirective, CardModule, CardSeparatorDirective, CardSubtitleDirective, CardTitleDirective, DrawerComponent, DrawerContainerComponent, DrawerContentComponent, DrawerFooterTemplateDirective, DrawerHeaderTemplateDirective, DrawerItemTemplateDirective, DrawerModule, DrawerSelectEvent, DrawerTemplateDirective, ExpansionPanelActionEvent, ExpansionPanelComponent, ExpansionPanelModule, ExpansionPanelTitleDirective, GridLayoutComponent, GridLayoutItemComponent, GridLayoutModule, LayoutModule, LocalizedAvatarMessagesDirective, LocalizedStepperMessagesDirective, LocalizedTabStripMessagesDirective, PanelBarCollapseEvent, PanelBarComponent, PanelBarContentDirective, PanelBarExpandEvent, PanelBarExpandMode, PanelBarItemClickEvent, PanelBarItemComponent, PanelBarItemTemplateDirective, PanelBarItemTitleDirective, PanelBarModule, PanelBarSelectEvent, PanelBarStateChangeEvent, SelectEvent, SplitterComponent, SplitterModule, SplitterPaneComponent, StackLayoutComponent, StackLayoutModule, StepperActivateEvent, StepperComponent, StepperCustomMessagesComponent, StepperIndicatorTemplateDirective, StepperLabelTemplateDirective, StepperModule, StepperStepTemplateDirective, TabCloseEvent, TabComponent, TabContentDirective, TabStripComponent, TabStripCustomMessagesComponent, TabStripModule, TabStripTabComponent, TabTemplateDirective, TabTitleDirective, TileLayoutComponent, TileLayoutItemBodyComponent, TileLayoutItemComponent, TileLayoutItemHeaderComponent, TileLayoutModule, TileLayoutReorderEvent, TileLayoutResizeEvent, TileLayoutResizeHandleDirective };
10454
10468
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-layout",
3
- "version": "14.4.0-develop.19",
3
+ "version": "14.4.0-develop.20",
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",
@@ -39,16 +39,16 @@
39
39
  "@angular/core": "13 - 17",
40
40
  "@angular/platform-browser": "13 - 17",
41
41
  "@progress/kendo-licensing": "^1.0.2",
42
- "@progress/kendo-angular-common": "14.4.0-develop.19",
43
- "@progress/kendo-angular-l10n": "14.4.0-develop.19",
44
- "@progress/kendo-angular-progressbar": "14.4.0-develop.19",
45
- "@progress/kendo-angular-icons": "14.4.0-develop.19",
46
- "@progress/kendo-angular-buttons": "14.4.0-develop.19",
42
+ "@progress/kendo-angular-common": "14.4.0-develop.20",
43
+ "@progress/kendo-angular-l10n": "14.4.0-develop.20",
44
+ "@progress/kendo-angular-progressbar": "14.4.0-develop.20",
45
+ "@progress/kendo-angular-icons": "14.4.0-develop.20",
46
+ "@progress/kendo-angular-buttons": "14.4.0-develop.20",
47
47
  "rxjs": "^6.5.3 || ^7.0.0"
48
48
  },
49
49
  "dependencies": {
50
50
  "tslib": "^2.3.1",
51
- "@progress/kendo-angular-schematics": "14.4.0-develop.19",
51
+ "@progress/kendo-angular-schematics": "14.4.0-develop.20",
52
52
  "@progress/kendo-draggable": "^3.0.2"
53
53
  },
54
54
  "schematics": "./schematics/collection.json",
@@ -0,0 +1,18 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { PanelBarItemModel } from '../panelbar-item-model';
6
+ /**
7
+ * Arguments for the `itemClick` event of the PanelBar.
8
+ */
9
+ export declare class PanelBarItemClickEvent {
10
+ /**
11
+ * The clicked item.
12
+ */
13
+ item: PanelBarItemModel;
14
+ /**
15
+ * The DOM event that triggered the `itemClick` event.
16
+ */
17
+ originalEvent: any;
18
+ }
@@ -6,3 +6,4 @@ export { PanelBarCollapseEvent } from './events/collapse-event';
6
6
  export { PanelBarExpandEvent } from './events/expand-event';
7
7
  export { PanelBarSelectEvent } from './events/select-event';
8
8
  export { PanelBarStateChangeEvent } from './events/state-change-event';
9
+ export { PanelBarItemClickEvent } from './events/item-click-event';
@@ -9,7 +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, PanelBarStateChangeEvent } from './events';
12
+ import { PanelBarSelectEvent, PanelBarExpandEvent, PanelBarCollapseEvent, PanelBarStateChangeEvent, PanelBarItemClickEvent } from './events';
13
13
  import * as i0 from "@angular/core";
14
14
  /**
15
15
  * Represents the [Kendo UI PanelBar component for Angular]({% slug overview_panelbar %}).
@@ -77,6 +77,10 @@ export declare class PanelBarComponent implements AfterViewChecked, OnChanges, O
77
77
  * This event is preventable. If you cancel it, the item will remain expanded.
78
78
  */
79
79
  collapse: EventEmitter<PanelBarCollapseEvent>;
80
+ /**
81
+ * Fires when the user clicks an item ([see example]({% slug events_panelbar %})).
82
+ */
83
+ itemClick: EventEmitter<PanelBarItemClickEvent>;
80
84
  hostClasses: boolean;
81
85
  tabIndex: number;
82
86
  role: string;
@@ -92,7 +96,6 @@ export declare class PanelBarComponent implements AfterViewChecked, OnChanges, O
92
96
  * @hidden
93
97
  */
94
98
  showLicenseWatermark: boolean;
95
- private localizationChangeSubscription;
96
99
  private allItems;
97
100
  private childrenItems;
98
101
  private isViewInit;
@@ -102,6 +105,7 @@ export declare class PanelBarComponent implements AfterViewChecked, OnChanges, O
102
105
  private elementRef;
103
106
  private eventService;
104
107
  private keyBindings;
108
+ private subs;
105
109
  constructor(elementRef: ElementRef, eventService: PanelBarService, localization: LocalizationService);
106
110
  /**
107
111
  * @hidden
@@ -153,5 +157,5 @@ export declare class PanelBarComponent implements AfterViewChecked, OnChanges, O
153
157
  private visibleItems;
154
158
  private flatVisibleItems;
155
159
  static ɵfac: i0.ɵɵFactoryDeclaration<PanelBarComponent, never>;
156
- static ɵcmp: i0.ɵɵComponentDeclaration<PanelBarComponent, "kendo-panelbar", ["kendoPanelbar"], { "expandMode": "expandMode"; "selectable": "selectable"; "animate": "animate"; "height": "height"; "keepItemContent": "keepItemContent"; "items": "items"; }, { "stateChange": "stateChange"; "select": "select"; "expand": "expand"; "collapse": "collapse"; }, ["template", "contentItems", "contentChildItems"], ["kendo-panelbar-item"]>;
160
+ static ɵcmp: i0.ɵɵComponentDeclaration<PanelBarComponent, "kendo-panelbar", ["kendoPanelbar"], { "expandMode": "expandMode"; "selectable": "selectable"; "animate": "animate"; "height": "height"; "keepItemContent": "keepItemContent"; "items": "items"; }, { "stateChange": "stateChange"; "select": "select"; "expand": "expand"; "collapse": "collapse"; "itemClick": "itemClick"; }, ["template", "contentItems", "contentChildItems"], ["kendo-panelbar-item"]>;
157
161
  }
@@ -2,9 +2,10 @@
2
2
  * Copyright © 2024 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 { Observable } from 'rxjs';
5
+ import { Observable, Subject } from 'rxjs';
6
6
  import { PanelBarItemComponent } from "./panelbar-item.component";
7
7
  import { PanelBarExpandMode } from './panelbar-expand-mode';
8
+ import { PanelBarItemClickEvent } from './events';
8
9
  import * as i0 from "@angular/core";
9
10
  /**
10
11
  * @hidden
@@ -16,6 +17,7 @@ export declare class PanelBarService {
16
17
  pbId: number;
17
18
  animate: boolean;
18
19
  expandMode: PanelBarExpandMode;
20
+ itemClick: Subject<PanelBarItemClickEvent>;
19
21
  private childSource;
20
22
  private keepContentSource;
21
23
  private parentSource;