@progress/kendo-angular-layout 21.4.1 → 22.0.0-develop.1

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.
Files changed (182) hide show
  1. package/avatar/l10n/messages.d.ts +1 -1
  2. package/fesm2022/progress-kendo-angular-layout.mjs +290 -290
  3. package/package.json +12 -20
  4. package/stepper/localization/messages.d.ts +1 -1
  5. package/tabstrip/localization/messages.d.ts +1 -1
  6. package/timeline/localization/messages.d.ts +1 -1
  7. package/esm2022/avatar/avatar.component.mjs +0 -406
  8. package/esm2022/avatar/l10n/custom-messages.component.mjs +0 -53
  9. package/esm2022/avatar/l10n/localized-messages.directive.mjs +0 -40
  10. package/esm2022/avatar/l10n/messages.mjs +0 -27
  11. package/esm2022/avatar/models/fill.mjs +0 -5
  12. package/esm2022/avatar/models/models.mjs +0 -9
  13. package/esm2022/avatar/models/rounded.mjs +0 -5
  14. package/esm2022/avatar/models/shape.mjs +0 -5
  15. package/esm2022/avatar/models/size.mjs +0 -5
  16. package/esm2022/avatar/models/theme-color.mjs +0 -5
  17. package/esm2022/avatar.module.mjs +0 -38
  18. package/esm2022/card/card-actions.component.mjs +0 -177
  19. package/esm2022/card/card-body.component.mjs +0 -37
  20. package/esm2022/card/card-footer.component.mjs +0 -37
  21. package/esm2022/card/card-header.component.mjs +0 -38
  22. package/esm2022/card/card.component.mjs +0 -118
  23. package/esm2022/card/directives/card-media.directive.mjs +0 -33
  24. package/esm2022/card/directives/card-separator.directive.mjs +0 -61
  25. package/esm2022/card/directives/card-subtitle.directive.mjs +0 -31
  26. package/esm2022/card/directives/card-title.directive.mjs +0 -31
  27. package/esm2022/card/models/actions-layout.mjs +0 -5
  28. package/esm2022/card/models/card-action.mjs +0 -21
  29. package/esm2022/card.module.mjs +0 -45
  30. package/esm2022/common/direction.mjs +0 -5
  31. package/esm2022/common/dom-queries.mjs +0 -47
  32. package/esm2022/common/orientation.mjs +0 -5
  33. package/esm2022/common/preventable-event.mjs +0 -31
  34. package/esm2022/common/styling-classes.mjs +0 -5
  35. package/esm2022/common/util.mjs +0 -85
  36. package/esm2022/directives.mjs +0 -174
  37. package/esm2022/drawer/animations.mjs +0 -146
  38. package/esm2022/drawer/drawer-container.component.mjs +0 -135
  39. package/esm2022/drawer/drawer-content.component.mjs +0 -39
  40. package/esm2022/drawer/drawer.component.mjs +0 -471
  41. package/esm2022/drawer/drawer.service.mjs +0 -105
  42. package/esm2022/drawer/events/drawer-list-select.event.mjs +0 -29
  43. package/esm2022/drawer/events/select-event.mjs +0 -33
  44. package/esm2022/drawer/item.component.mjs +0 -210
  45. package/esm2022/drawer/list.component.mjs +0 -165
  46. package/esm2022/drawer/models/constants.mjs +0 -8
  47. package/esm2022/drawer/models/drawer-animation.interface.mjs +0 -5
  48. package/esm2022/drawer/models/drawer-item-expand.interface.mjs +0 -5
  49. package/esm2022/drawer/models/drawer-item.interface.mjs +0 -5
  50. package/esm2022/drawer/models/drawer-view-item.interface.mjs +0 -5
  51. package/esm2022/drawer/models/mode.mjs +0 -5
  52. package/esm2022/drawer/models/position.mjs +0 -5
  53. package/esm2022/drawer/template-directives/drawer-template.directive.mjs +0 -43
  54. package/esm2022/drawer/template-directives/footer-template.directive.mjs +0 -36
  55. package/esm2022/drawer/template-directives/header-template.directive.mjs +0 -36
  56. package/esm2022/drawer/template-directives/item-template.directive.mjs +0 -44
  57. package/esm2022/drawer/template-directives.mjs +0 -8
  58. package/esm2022/drawer/types.mjs +0 -5
  59. package/esm2022/drawer/util.mjs +0 -16
  60. package/esm2022/drawer.module.mjs +0 -43
  61. package/esm2022/expansionpanel/animations.mjs +0 -23
  62. package/esm2022/expansionpanel/events/action-event.mjs +0 -21
  63. package/esm2022/expansionpanel/expansionpanel-title.directive.mjs +0 -38
  64. package/esm2022/expansionpanel/expansionpanel.component.mjs +0 -515
  65. package/esm2022/expansionpanel.module.mjs +0 -38
  66. package/esm2022/gridlayout.module.mjs +0 -38
  67. package/esm2022/index.mjs +0 -89
  68. package/esm2022/layout.module.mjs +0 -89
  69. package/esm2022/layouts/grid-layout.component.mjs +0 -179
  70. package/esm2022/layouts/gridlayout-item.component.mjs +0 -82
  71. package/esm2022/layouts/models/gridlayout-gap-settings.mjs +0 -5
  72. package/esm2022/layouts/models/gridlayout-row-col-size.mjs +0 -5
  73. package/esm2022/layouts/models/layout-align-settings.mjs +0 -5
  74. package/esm2022/layouts/models/layout-horizontal-align.mjs +0 -5
  75. package/esm2022/layouts/models/layout-vertical-align.mjs +0 -5
  76. package/esm2022/layouts/models.mjs +0 -10
  77. package/esm2022/layouts/stack-layout.component.mjs +0 -161
  78. package/esm2022/layouts/util.mjs +0 -101
  79. package/esm2022/package-metadata.mjs +0 -16
  80. package/esm2022/panelbar/events/collapse-event.mjs +0 -14
  81. package/esm2022/panelbar/events/expand-event.mjs +0 -14
  82. package/esm2022/panelbar/events/item-click-event.mjs +0 -17
  83. package/esm2022/panelbar/events/select-event.mjs +0 -14
  84. package/esm2022/panelbar/events/state-change-event.mjs +0 -13
  85. package/esm2022/panelbar/events.mjs +0 -9
  86. package/esm2022/panelbar/panelbar-content.directive.mjs +0 -36
  87. package/esm2022/panelbar/panelbar-expand-mode.mjs +0 -29
  88. package/esm2022/panelbar/panelbar-item-model.mjs +0 -5
  89. package/esm2022/panelbar/panelbar-item-template.directive.mjs +0 -37
  90. package/esm2022/panelbar/panelbar-item-title.directive.mjs +0 -42
  91. package/esm2022/panelbar/panelbar-item.component.mjs +0 -722
  92. package/esm2022/panelbar/panelbar.component.mjs +0 -705
  93. package/esm2022/panelbar/panelbar.service.mjs +0 -53
  94. package/esm2022/panelbar.module.mjs +0 -41
  95. package/esm2022/progress-kendo-angular-layout.mjs +0 -8
  96. package/esm2022/splitter/splitter-bar.component.mjs +0 -338
  97. package/esm2022/splitter/splitter-pane.component.mjs +0 -324
  98. package/esm2022/splitter/splitter.component.mjs +0 -301
  99. package/esm2022/splitter/splitter.service.mjs +0 -205
  100. package/esm2022/splitter/util.mjs +0 -34
  101. package/esm2022/splitter.module.mjs +0 -38
  102. package/esm2022/stacklayout.module.mjs +0 -37
  103. package/esm2022/stepper/events/activate-event.mjs +0 -33
  104. package/esm2022/stepper/list.component.mjs +0 -185
  105. package/esm2022/stepper/localization/custom-messages.component.mjs +0 -52
  106. package/esm2022/stepper/localization/localized-messages.directive.mjs +0 -41
  107. package/esm2022/stepper/localization/messages.mjs +0 -27
  108. package/esm2022/stepper/models/constants.mjs +0 -8
  109. package/esm2022/stepper/models/orientation.mjs +0 -5
  110. package/esm2022/stepper/models/step-predicate.mjs +0 -5
  111. package/esm2022/stepper/models/step-type.mjs +0 -5
  112. package/esm2022/stepper/models/stepper-step.interface.mjs +0 -5
  113. package/esm2022/stepper/step.component.mjs +0 -396
  114. package/esm2022/stepper/stepper.component.mjs +0 -423
  115. package/esm2022/stepper/stepper.service.mjs +0 -186
  116. package/esm2022/stepper/template-directives/indicator-template.directive.mjs +0 -37
  117. package/esm2022/stepper/template-directives/label-template.directive.mjs +0 -37
  118. package/esm2022/stepper/template-directives/step-template.directive.mjs +0 -39
  119. package/esm2022/stepper/template-directives.mjs +0 -7
  120. package/esm2022/stepper/types.mjs +0 -5
  121. package/esm2022/stepper.module.mjs +0 -41
  122. package/esm2022/tabstrip/constants.mjs +0 -29
  123. package/esm2022/tabstrip/directives/tab-content.directive.mjs +0 -39
  124. package/esm2022/tabstrip/directives/tab-title.directive.mjs +0 -37
  125. package/esm2022/tabstrip/directives/tab.directive.mjs +0 -24
  126. package/esm2022/tabstrip/events/select-event.mjs +0 -25
  127. package/esm2022/tabstrip/events/tabclose-event.mjs +0 -23
  128. package/esm2022/tabstrip/events/tabscroll-event.mjs +0 -23
  129. package/esm2022/tabstrip/events.mjs +0 -7
  130. package/esm2022/tabstrip/localization/custom-messages.component.mjs +0 -53
  131. package/esm2022/tabstrip/localization/localized-messages.directive.mjs +0 -39
  132. package/esm2022/tabstrip/localization/messages.mjs +0 -39
  133. package/esm2022/tabstrip/models/button-state-change.mjs +0 -5
  134. package/esm2022/tabstrip/models/scroll-button-type.mjs +0 -5
  135. package/esm2022/tabstrip/models/scroll-buttons-visibility.mjs +0 -5
  136. package/esm2022/tabstrip/models/scrollable-settings.mjs +0 -23
  137. package/esm2022/tabstrip/models/size.mjs +0 -5
  138. package/esm2022/tabstrip/models/tab-alignment.mjs +0 -5
  139. package/esm2022/tabstrip/models/tab-position.mjs +0 -5
  140. package/esm2022/tabstrip/models/tabstrip-tab.component.mjs +0 -130
  141. package/esm2022/tabstrip/rendering/tab.component.mjs +0 -182
  142. package/esm2022/tabstrip/scrollable-button.component.mjs +0 -182
  143. package/esm2022/tabstrip/tabstrip-scroll.service.mjs +0 -176
  144. package/esm2022/tabstrip/tabstrip.component.mjs +0 -954
  145. package/esm2022/tabstrip/tabstrip.service.mjs +0 -155
  146. package/esm2022/tabstrip/util.mjs +0 -120
  147. package/esm2022/tabstrip.module.mjs +0 -41
  148. package/esm2022/tilelayout/constants.mjs +0 -70
  149. package/esm2022/tilelayout/dragging-service.mjs +0 -421
  150. package/esm2022/tilelayout/keyboard-navigation.service.mjs +0 -189
  151. package/esm2022/tilelayout/models/dragging-config.interface.mjs +0 -5
  152. package/esm2022/tilelayout/models/flowmode.type.mjs +0 -5
  153. package/esm2022/tilelayout/models/gap.interface.mjs +0 -5
  154. package/esm2022/tilelayout/models/navigation.interface.mjs +0 -5
  155. package/esm2022/tilelayout/reorder-event.mjs +0 -43
  156. package/esm2022/tilelayout/resize-event.mjs +0 -37
  157. package/esm2022/tilelayout/tilelayout-item-body.component.mjs +0 -45
  158. package/esm2022/tilelayout/tilelayout-item-header.component.mjs +0 -43
  159. package/esm2022/tilelayout/tilelayout-item.component.mjs +0 -322
  160. package/esm2022/tilelayout/tilelayout-resize-handle.directive.mjs +0 -61
  161. package/esm2022/tilelayout/tilelayout.component.mjs +0 -388
  162. package/esm2022/tilelayout/util.mjs +0 -138
  163. package/esm2022/tilelayout.module.mjs +0 -40
  164. package/esm2022/timeline/events/navigation-direction.mjs +0 -5
  165. package/esm2022/timeline/localization/custom-messages.component.mjs +0 -43
  166. package/esm2022/timeline/localization/localized-messages.directive.mjs +0 -39
  167. package/esm2022/timeline/localization/messages.mjs +0 -33
  168. package/esm2022/timeline/models/anchor-target.mjs +0 -5
  169. package/esm2022/timeline/models/default-model-fields.mjs +0 -16
  170. package/esm2022/timeline/models/events-order.mjs +0 -5
  171. package/esm2022/timeline/models/model-fields.mjs +0 -5
  172. package/esm2022/timeline/models/timeline-event.mjs +0 -5
  173. package/esm2022/timeline/templates/timeline-card-actions.directive.mjs +0 -40
  174. package/esm2022/timeline/templates/timeline-card-body.directive.mjs +0 -40
  175. package/esm2022/timeline/templates/timeline-card-header.directive.mjs +0 -41
  176. package/esm2022/timeline/timeline-card.component.mjs +0 -451
  177. package/esm2022/timeline/timeline-horizontal.component.mjs +0 -781
  178. package/esm2022/timeline/timeline-vertical.component.mjs +0 -203
  179. package/esm2022/timeline/timeline.component.mjs +0 -491
  180. package/esm2022/timeline/timeline.service.mjs +0 -32
  181. package/esm2022/timeline/util.mjs +0 -26
  182. package/esm2022/timeline.module.mjs +0 -41
@@ -1,722 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- /* eslint-disable @typescript-eslint/no-explicit-any */
6
- import { Component, Input, ContentChildren, ViewChildren, Optional, Host, HostBinding, SkipSelf, isDevMode, TemplateRef, QueryList, ViewChild, ElementRef, Renderer2 } from '@angular/core';
7
- import { animate, trigger, style, state, transition, AUTO_STYLE } from '@angular/animations';
8
- import { PanelBarService } from "./panelbar.service";
9
- import { PanelBarContentDirective } from "./panelbar-content.directive";
10
- import { PanelBarItemTitleDirective } from "./panelbar-item-title.directive";
11
- import { isFocusable } from '../common/dom-queries';
12
- import { Subscription } from 'rxjs';
13
- import { PanelBarExpandMode } from './panelbar-expand-mode';
14
- import { chevronDownIcon, chevronUpIcon } from '@progress/kendo-svg-icons';
15
- import { IconWrapperComponent } from '@progress/kendo-angular-icons';
16
- import { NgTemplateOutlet } from '@angular/common';
17
- import * as i0 from "@angular/core";
18
- import * as i1 from "./panelbar.service";
19
- /**
20
- * @hidden
21
- */
22
- let nextId = 0;
23
- /**
24
- * Represents the PanelBar item component for Angular. Defines the items of the PanelBar.
25
- *
26
- * @example
27
- * ```html
28
- * <kendo-panelbar-item title="Item 1" [expanded]="true">
29
- * <kendo-panelbar-item title="Sub Item 1"></kendo-panelbar-item>
30
- * </kendo-panelbar-item>
31
- * ```
32
- */
33
- export class PanelBarItemComponent {
34
- parent;
35
- eventService;
36
- element;
37
- renderer;
38
- /**
39
- * Sets the title of the PanelBar item ([see example]({% slug items_panelbar %}#toc-titles)).
40
- */
41
- title;
42
- /**
43
- * Allows the component to set the `"id"` property to each item.
44
- * Used to set the `id` attributes of the nested elements and to enable the WAI-ARIA support.
45
- */
46
- id = `default-${nextId++}`;
47
- /**
48
- * Defines the icon that renders next to the title ([see example]({% slug items_panelbar %}#toc-title-icons)).
49
- *
50
- * @default ''
51
- */
52
- icon = '';
53
- /**
54
- * Defines the icon that renders next to the title by using a custom CSS class
55
- * ([see example]({% slug items_panelbar %}#toc-title-icons)).
56
- *
57
- * @default ''
58
- */
59
- iconClass = '';
60
- /**
61
- * Defines an SVG icon to render.
62
- * You can use either an [existing Kendo SVG icon](slug:svgicon_list) or a custom one.
63
- */
64
- set svgIcon(icon) {
65
- if (isDevMode() && icon && this.icon && this.iconClass) {
66
- throw new Error('Setting both icon/svgIcon and iconClass options at the same time is not supported.');
67
- }
68
- this._svgIcon = icon;
69
- }
70
- get svgIcon() {
71
- return this._svgIcon;
72
- }
73
- /**
74
- * Defines the location of the image that displays next to the title
75
- * ([see example]({% slug items_panelbar %}#toc-title-images)).
76
- *
77
- * @default ''
78
- */
79
- imageUrl = '';
80
- /**
81
- * When set to `true`, disables a PanelBar item ([see example]({% slug items_panelbar %}#toc-disabled-state)).
82
- *
83
- * @default false
84
- */
85
- disabled = false;
86
- /**
87
- * When set to `true`, expands the PanelBar item ([see example]({% slug items_panelbar %}#toc-expanded-state)).
88
- */
89
- set expanded(value) {
90
- const activeState = this.animate ? "active" : "activeWithoutAnimation";
91
- this.state = value ? activeState : "inactive";
92
- if (!this.keepContent) {
93
- this.toggleExpandedChildAnimations(value);
94
- }
95
- this._expanded = value;
96
- }
97
- get expanded() {
98
- return this._expanded;
99
- }
100
- /**
101
- * Sets the selected state of a PanelBar item ([see example]({% slug items_panelbar %}#toc-selected-state)).
102
- *
103
- * @default false
104
- */
105
- selected = false;
106
- /**
107
- * Sets the content of the PanelBar item.
108
- * It is used when the [`items`]({% slug api_layout_panelbarcomponent %}#toc-items) property of the PanelBar is set.
109
- */
110
- content;
111
- /**
112
- * @hidden
113
- */
114
- items;
115
- /**
116
- * @hidden
117
- */
118
- template;
119
- header;
120
- contentWrapper;
121
- contentHeight;
122
- contentOverflow;
123
- keepContent = false;
124
- childrenItems;
125
- hasChildItems = false;
126
- hasItems = false;
127
- hasContent = false;
128
- state = "inactive";
129
- get animate() {
130
- return this.eventService.animate;
131
- }
132
- role = "treeitem";
133
- titleAttribute = null; // eslint-disable-line
134
- kItemClass = true;
135
- get kStateExpandedClass() {
136
- return !this.disabled && this.expanded && (this.hasChildItems || this.hasContent);
137
- }
138
- get itemId() {
139
- return 'k-panelbar-' + this.eventService.pbId + '-item-' + this.id;
140
- }
141
- get ariaExpanded() {
142
- return (this.hasChildItems || this.hasContent) ? !this.disabled && this.expanded : null;
143
- }
144
- get ariaSelected() {
145
- return !this.disabled && this.selected;
146
- }
147
- get ariaDisabled() {
148
- return this.disabled ? true : null;
149
- }
150
- get headerClass() {
151
- return this.parent ? null : true;
152
- }
153
- /**
154
- * @hidden
155
- */
156
- get titleTemplate() {
157
- return this.titleTemplates.length > 0 ? this.titleTemplates.toArray()[0].templateRef : undefined;
158
- }
159
- viewChildItems;
160
- contentItems;
161
- //ContentChild does not support descendants property, so we use ContentChildren for contentTemplate instead
162
- contentTemplate;
163
- titleTemplates;
164
- focused = false;
165
- wrapperFocused = false;
166
- subscriptions = new Subscription(() => { });
167
- _expanded = false;
168
- level;
169
- _svgIcon;
170
- constructor(parent, eventService, element, renderer) {
171
- this.parent = parent;
172
- this.eventService = eventService;
173
- this.element = element;
174
- this.renderer = renderer;
175
- this.subscriptions.add(eventService.parent$.subscribe(focused => this.onWrapperFocusChange(focused)));
176
- this.subscriptions.add(eventService.keepContent$.subscribe(keepContent => this.keepContent = keepContent));
177
- this.wrapperFocused = parent ? parent.focused : false;
178
- this.level = this.parent ? this.parent.level + 1 : 0;
179
- }
180
- /**
181
- * @hidden
182
- */
183
- headerHeight() {
184
- return this.element.nativeElement.offsetHeight - (this.contentWrapper ? this.contentWrapper.nativeElement.offsetHeight : 0);
185
- }
186
- ngOnInit() {
187
- this.addLevelClass();
188
- }
189
- ngAfterContentChecked() {
190
- this.hasItems = this.items && this.items.filter(item => !item.hidden).length > 0;
191
- this.hasChildItems = this.contentItems.filter(item => item !== this).length > 0 || this.hasItems;
192
- this.hasContent = (this.contentTemplate !== undefined && this.contentTemplate.length > 0) ||
193
- this.content !== undefined;
194
- this.validateConfiguration();
195
- }
196
- ngAfterViewChecked() {
197
- if (this.items) {
198
- this.childrenItems = this.viewChildItems.toArray();
199
- }
200
- else {
201
- this.childrenItems = this.contentItems.filter(item => item !== this);
202
- }
203
- }
204
- ngOnDestroy() {
205
- this.subscriptions.unsubscribe();
206
- }
207
- /**
208
- * @hidden
209
- */
210
- onItemAction() {
211
- if (!this.disabled) {
212
- this.eventService.onSelect(this);
213
- }
214
- }
215
- /**
216
- * @hidden
217
- */
218
- onItemClick(e) {
219
- if (!isFocusable(e.target)) {
220
- this.eventService.itemClick.next({ item: this.serialize(), originalEvent: e });
221
- this.onItemAction();
222
- }
223
- }
224
- /**
225
- * @hidden
226
- */
227
- get iconClasses() {
228
- if (this.icon) {
229
- return `${this.icon}`;
230
- }
231
- }
232
- /**
233
- * @hidden
234
- */
235
- get customIconClasses() {
236
- if (this.iconClass) {
237
- return `${this.iconClass}`;
238
- }
239
- }
240
- /**
241
- * @hidden
242
- */
243
- get dirInnerCssClasses() {
244
- const dirClass = this.expanded ? 'k-panelbar-collapse' : 'k-panelbar-expand';
245
- return `k-panelbar-toggle ${dirClass}`;
246
- }
247
- /**
248
- * @hidden
249
- */
250
- get expanderSVGIcon() {
251
- return this.expanded ? chevronUpIcon : chevronDownIcon;
252
- }
253
- /**
254
- * @hidden
255
- */
256
- serialize() {
257
- return {
258
- content: this.content,
259
- disabled: this.disabled,
260
- expanded: this.expanded,
261
- focused: this.focused,
262
- icon: this.icon,
263
- iconClass: this.iconClass,
264
- svgIcon: this.svgIcon,
265
- id: this.id,
266
- imageUrl: this.imageUrl,
267
- selected: this.selected,
268
- title: this.title,
269
- children: this.items
270
- };
271
- }
272
- /**
273
- * @hidden
274
- */
275
- subTreeViewItems() {
276
- let subTree = [];
277
- this.viewChildItems.forEach(item => {
278
- subTree = subTree.concat(item.subTreeViewItems());
279
- subTree.push(item);
280
- });
281
- return subTree;
282
- }
283
- /**
284
- * @hidden
285
- */
286
- validateConfiguration() {
287
- if (isDevMode()) {
288
- if (this.content && (this.contentTemplate !== undefined && this.contentTemplate.length > 0)) {
289
- throw new Error("Invalid configuration: mixed template components and component property.");
290
- }
291
- }
292
- }
293
- /**
294
- * @hidden
295
- */
296
- toggleAnimationState(value) {
297
- if (!this.animate) {
298
- return;
299
- }
300
- this.state = value && this.eventService.expandMode !== PanelBarExpandMode.Single ? 'active' : 'activeWithoutAnimation';
301
- }
302
- /**
303
- * @hidden
304
- */
305
- toggleExpandedChildAnimations(value) {
306
- if (this.childrenItems) {
307
- this.childrenItems.forEach(child => {
308
- if (child.expanded) {
309
- child.toggleAnimationState(value);
310
- child.toggleExpandedChildAnimations(value);
311
- }
312
- });
313
- }
314
- }
315
- /**
316
- * @hidden
317
- */
318
- addLevelClass() {
319
- if (this.level >= 0) {
320
- this.renderer.addClass(this.element.nativeElement, `k-level-${this.level}`);
321
- }
322
- }
323
- onWrapperFocusChange(focused) {
324
- this.wrapperFocused = focused;
325
- }
326
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PanelBarItemComponent, deps: [{ token: PanelBarItemComponent, host: true, optional: true, skipSelf: true }, { token: i1.PanelBarService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
327
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PanelBarItemComponent, isStandalone: true, selector: "kendo-panelbar-item", inputs: { title: "title", id: "id", icon: "icon", iconClass: "iconClass", svgIcon: "svgIcon", imageUrl: "imageUrl", disabled: "disabled", expanded: "expanded", selected: "selected", content: "content", items: "items", template: "template" }, host: { properties: { "attr.role": "this.role", "attr.title": "this.titleAttribute", "class.k-panelbar-item": "this.kItemClass", "class.k-expanded": "this.kStateExpandedClass", "id": "this.itemId", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-selected": "this.ariaSelected", "attr.aria-disabled": "this.ariaDisabled", "class.k-panelbar-header": "this.headerClass" } }, queries: [{ propertyName: "contentItems", predicate: PanelBarItemComponent }, { propertyName: "contentTemplate", predicate: PanelBarContentDirective }, { propertyName: "titleTemplates", predicate: PanelBarItemTitleDirective }], viewQueries: [{ propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "contentWrapper", first: true, predicate: ["contentWrapper"], descendants: true }, { propertyName: "viewChildItems", predicate: PanelBarItemComponent, descendants: true }], exportAs: ["kendoPanelbarItem"], ngImport: i0, template: `
328
- <span
329
- #header
330
- [class.k-link]="true"
331
- [class.k-selected]="!disabled && selected"
332
- [class.k-focus]="focused && wrapperFocused"
333
- [class.k-disabled]="disabled"
334
- (click)="onItemClick($event)">
335
- @if (icon || iconClass || svgIcon) {
336
- <kendo-icon-wrapper
337
- [name]="iconClasses"
338
- [customFontClass]="customIconClasses"
339
- [svgIcon]="svgIcon"
340
- innerCssClass="k-panelbar-item-icon"
341
- >
342
- </kendo-icon-wrapper>
343
- }
344
- @if (imageUrl) {
345
- <img
346
- class="k-image k-panelbar-item-icon"
347
- [src]="imageUrl"
348
- alt="">
349
- }
350
- @if (!titleTemplate) {
351
- <span class="k-panelbar-item-text">{{title}}</span>
352
- }
353
- @if (titleTemplate) {
354
- <ng-template
355
- [ngTemplateOutlet]="titleTemplate"
356
- [ngTemplateOutletContext]="{
357
- item: {
358
- title: title,
359
- id: id,
360
- icon: icon,
361
- iconClass: iconClass,
362
- svgIcon: svgIcon,
363
- imageUrl: imageUrl,
364
- selected: selected,
365
- expanded: expanded,
366
- disabled: disabled,
367
- focused: focused,
368
- content: content
369
- }
370
- }"></ng-template>
371
- }
372
- @if (hasChildItems || hasContent) {
373
- <kendo-icon-wrapper
374
- [name]="expanded ? 'chevron-up' : 'chevron-down'"
375
- [svgIcon]="expanderSVGIcon"
376
- [innerCssClass]="dirInnerCssClasses"
377
- >
378
- </kendo-icon-wrapper>
379
- }
380
- </span>
381
- @if ((!disabled && expanded) || keepContent !== false) {
382
- @defer (when ((!disabled && expanded && keepContent !== true) || keepContent === true); prefetch on idle) {
383
- <div
384
- #contentWrapper
385
- [@toggle]="state"
386
- [attr.role]="'group'"
387
- [attr.aria-hidden]="!disabled && !expanded"
388
- >
389
- @if (hasChildItems && !items?.length) {
390
- <div
391
- [style.overflow]="contentOverflow"
392
- [style.height]="contentHeight"
393
- class="k-panelbar-group"
394
- >
395
- <ng-content select="kendo-panelbar-item"></ng-content>
396
- </div>
397
- }
398
- @if (hasContent && !content) {
399
- <div
400
- [style.overflow]="contentOverflow"
401
- [style.height]="contentHeight"
402
- class="k-panelbar-content">
403
- <ng-template
404
- [ngTemplateOutlet]="contentTemplate.first.templateRef"
405
- [ngTemplateOutletContext]="{
406
- $implicit: {
407
- title: title,
408
- id: id,
409
- icon: icon,
410
- imageUrl: imageUrl,
411
- disabled: disabled,
412
- content: content
413
- }
414
- }">
415
- </ng-template>
416
- </div>
417
- }
418
- @if (hasItems) {
419
- <div
420
- [style.overflow]="contentOverflow"
421
- [style.height]="contentHeight"
422
- class="k-panelbar-group">
423
- @for (item of items; track item) {
424
- @if (!item.hidden) {
425
- <kendo-panelbar-item
426
- [title]="item.title"
427
- [id]="item.id"
428
- [icon]="item.icon"
429
- [iconClass]="item.iconClass"
430
- [svgIcon]="item.svgIcon"
431
- [imageUrl]="item.imageUrl"
432
- [selected]="!!item.selected"
433
- [expanded]="!!item.expanded"
434
- [disabled]="!!item.disabled"
435
- [template]="template"
436
- [items]="item.children"
437
- [content]="item.content">
438
- </kendo-panelbar-item>
439
- }
440
- }
441
- </div>
442
- }
443
- @if (content) {
444
- <div
445
- [style.overflow]="contentOverflow"
446
- [style.height]="contentHeight"
447
- class="k-panelbar-content">
448
- <ng-template
449
- [ngTemplateOutlet]="template"
450
- [ngTemplateOutletContext]="{
451
- $implicit: {
452
- title: title,
453
- id: id,
454
- icon: icon,
455
- imageUrl: imageUrl,
456
- disabled: disabled,
457
- content: content
458
- }
459
- }">
460
- </ng-template>
461
- @if (!template) {
462
- {{content}}
463
- }
464
- </div>
465
- }
466
- </div>
467
- }
468
- }
469
- `, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
470
- trigger('toggle', [
471
- state('inactive', style({ display: 'none' })),
472
- transition('* => active', [
473
- style({ overflow: 'hidden', display: 'block', height: 0 }),
474
- animate(200, style({ height: AUTO_STYLE }))
475
- ]),
476
- transition('active => *', [
477
- style({ overflow: 'hidden', height: AUTO_STYLE }),
478
- animate(200, style({ height: 0, display: 'none' }))
479
- ])
480
- ])
481
- ], deferBlockDependencies: [() => [PanelBarItemComponent, NgTemplateOutlet]] });
482
- }
483
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PanelBarItemComponent, decorators: [{
484
- type: Component,
485
- args: [{
486
- animations: [
487
- trigger('toggle', [
488
- state('inactive', style({ display: 'none' })),
489
- transition('* => active', [
490
- style({ overflow: 'hidden', display: 'block', height: 0 }),
491
- animate(200, style({ height: AUTO_STYLE }))
492
- ]),
493
- transition('active => *', [
494
- style({ overflow: 'hidden', height: AUTO_STYLE }),
495
- animate(200, style({ height: 0, display: 'none' }))
496
- ])
497
- ])
498
- ],
499
- exportAs: 'kendoPanelbarItem',
500
- selector: "kendo-panelbar-item",
501
- template: `
502
- <span
503
- #header
504
- [class.k-link]="true"
505
- [class.k-selected]="!disabled && selected"
506
- [class.k-focus]="focused && wrapperFocused"
507
- [class.k-disabled]="disabled"
508
- (click)="onItemClick($event)">
509
- @if (icon || iconClass || svgIcon) {
510
- <kendo-icon-wrapper
511
- [name]="iconClasses"
512
- [customFontClass]="customIconClasses"
513
- [svgIcon]="svgIcon"
514
- innerCssClass="k-panelbar-item-icon"
515
- >
516
- </kendo-icon-wrapper>
517
- }
518
- @if (imageUrl) {
519
- <img
520
- class="k-image k-panelbar-item-icon"
521
- [src]="imageUrl"
522
- alt="">
523
- }
524
- @if (!titleTemplate) {
525
- <span class="k-panelbar-item-text">{{title}}</span>
526
- }
527
- @if (titleTemplate) {
528
- <ng-template
529
- [ngTemplateOutlet]="titleTemplate"
530
- [ngTemplateOutletContext]="{
531
- item: {
532
- title: title,
533
- id: id,
534
- icon: icon,
535
- iconClass: iconClass,
536
- svgIcon: svgIcon,
537
- imageUrl: imageUrl,
538
- selected: selected,
539
- expanded: expanded,
540
- disabled: disabled,
541
- focused: focused,
542
- content: content
543
- }
544
- }"></ng-template>
545
- }
546
- @if (hasChildItems || hasContent) {
547
- <kendo-icon-wrapper
548
- [name]="expanded ? 'chevron-up' : 'chevron-down'"
549
- [svgIcon]="expanderSVGIcon"
550
- [innerCssClass]="dirInnerCssClasses"
551
- >
552
- </kendo-icon-wrapper>
553
- }
554
- </span>
555
- @if ((!disabled && expanded) || keepContent !== false) {
556
- @defer (when ((!disabled && expanded && keepContent !== true) || keepContent === true); prefetch on idle) {
557
- <div
558
- #contentWrapper
559
- [@toggle]="state"
560
- [attr.role]="'group'"
561
- [attr.aria-hidden]="!disabled && !expanded"
562
- >
563
- @if (hasChildItems && !items?.length) {
564
- <div
565
- [style.overflow]="contentOverflow"
566
- [style.height]="contentHeight"
567
- class="k-panelbar-group"
568
- >
569
- <ng-content select="kendo-panelbar-item"></ng-content>
570
- </div>
571
- }
572
- @if (hasContent && !content) {
573
- <div
574
- [style.overflow]="contentOverflow"
575
- [style.height]="contentHeight"
576
- class="k-panelbar-content">
577
- <ng-template
578
- [ngTemplateOutlet]="contentTemplate.first.templateRef"
579
- [ngTemplateOutletContext]="{
580
- $implicit: {
581
- title: title,
582
- id: id,
583
- icon: icon,
584
- imageUrl: imageUrl,
585
- disabled: disabled,
586
- content: content
587
- }
588
- }">
589
- </ng-template>
590
- </div>
591
- }
592
- @if (hasItems) {
593
- <div
594
- [style.overflow]="contentOverflow"
595
- [style.height]="contentHeight"
596
- class="k-panelbar-group">
597
- @for (item of items; track item) {
598
- @if (!item.hidden) {
599
- <kendo-panelbar-item
600
- [title]="item.title"
601
- [id]="item.id"
602
- [icon]="item.icon"
603
- [iconClass]="item.iconClass"
604
- [svgIcon]="item.svgIcon"
605
- [imageUrl]="item.imageUrl"
606
- [selected]="!!item.selected"
607
- [expanded]="!!item.expanded"
608
- [disabled]="!!item.disabled"
609
- [template]="template"
610
- [items]="item.children"
611
- [content]="item.content">
612
- </kendo-panelbar-item>
613
- }
614
- }
615
- </div>
616
- }
617
- @if (content) {
618
- <div
619
- [style.overflow]="contentOverflow"
620
- [style.height]="contentHeight"
621
- class="k-panelbar-content">
622
- <ng-template
623
- [ngTemplateOutlet]="template"
624
- [ngTemplateOutletContext]="{
625
- $implicit: {
626
- title: title,
627
- id: id,
628
- icon: icon,
629
- imageUrl: imageUrl,
630
- disabled: disabled,
631
- content: content
632
- }
633
- }">
634
- </ng-template>
635
- @if (!template) {
636
- {{content}}
637
- }
638
- </div>
639
- }
640
- </div>
641
- }
642
- }
643
- `,
644
- standalone: true,
645
- imports: [IconWrapperComponent, NgTemplateOutlet]
646
- }]
647
- }], ctorParameters: () => [{ type: PanelBarItemComponent, decorators: [{
648
- type: SkipSelf
649
- }, {
650
- type: Host
651
- }, {
652
- type: Optional
653
- }] }, { type: i1.PanelBarService }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { title: [{
654
- type: Input
655
- }], id: [{
656
- type: Input
657
- }], icon: [{
658
- type: Input
659
- }], iconClass: [{
660
- type: Input
661
- }], svgIcon: [{
662
- type: Input
663
- }], imageUrl: [{
664
- type: Input
665
- }], disabled: [{
666
- type: Input
667
- }], expanded: [{
668
- type: Input
669
- }], selected: [{
670
- type: Input
671
- }], content: [{
672
- type: Input
673
- }], items: [{
674
- type: Input
675
- }], template: [{
676
- type: Input
677
- }], header: [{
678
- type: ViewChild,
679
- args: ['header', { static: false }]
680
- }], contentWrapper: [{
681
- type: ViewChild,
682
- args: ['contentWrapper', { static: false }]
683
- }], role: [{
684
- type: HostBinding,
685
- args: ['attr.role']
686
- }], titleAttribute: [{
687
- type: HostBinding,
688
- args: ['attr.title']
689
- }], kItemClass: [{
690
- type: HostBinding,
691
- args: ['class.k-panelbar-item']
692
- }], kStateExpandedClass: [{
693
- type: HostBinding,
694
- args: ['class.k-expanded']
695
- }], itemId: [{
696
- type: HostBinding,
697
- args: ['id']
698
- }], ariaExpanded: [{
699
- type: HostBinding,
700
- args: ['attr.aria-expanded']
701
- }], ariaSelected: [{
702
- type: HostBinding,
703
- args: ['attr.aria-selected']
704
- }], ariaDisabled: [{
705
- type: HostBinding,
706
- args: ['attr.aria-disabled']
707
- }], headerClass: [{
708
- type: HostBinding,
709
- args: ['class.k-panelbar-header']
710
- }], viewChildItems: [{
711
- type: ViewChildren,
712
- args: [PanelBarItemComponent]
713
- }], contentItems: [{
714
- type: ContentChildren,
715
- args: [PanelBarItemComponent]
716
- }], contentTemplate: [{
717
- type: ContentChildren,
718
- args: [PanelBarContentDirective, { descendants: false }]
719
- }], titleTemplates: [{
720
- type: ContentChildren,
721
- args: [PanelBarItemTitleDirective, { descendants: false }]
722
- }] } });