@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,324 +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
- import { ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, Renderer2, Input, Output } from '@angular/core';
6
- import { SplitterService } from './splitter.service';
7
- import { anyChanged } from '@progress/kendo-angular-common';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "./splitter.service";
10
- /**
11
- * Represents the pane component of the Splitter.
12
- *
13
- * @example
14
- * ```html
15
- * <kendo-splitter>
16
- * <kendo-splitter-pane size="30%" [collapsible]="true">
17
- * Left pane content
18
- * </kendo-splitter-pane>
19
- * <kendo-splitter-pane>
20
- * Right pane content
21
- * </kendo-splitter-pane>
22
- * </kendo-splitter>
23
- * ```
24
- */
25
- export class SplitterPaneComponent {
26
- element;
27
- renderer;
28
- cdr;
29
- splitterService;
30
- /**
31
- * @hidden
32
- */
33
- set order(paneOrder) {
34
- this._order = paneOrder;
35
- this.setOrderStyles();
36
- }
37
- get order() {
38
- return this._order;
39
- }
40
- /**
41
- * Defines the initial size of the pane.
42
- * Accepts values in pixels and percentages.
43
- * The value must be between the `min` and `max` properties.
44
- */
45
- set size(newSize) {
46
- this._size = newSize;
47
- // Only set flex-basis if the pane is not collapsed
48
- if (!this._collapsed) {
49
- this.renderer.setStyle(this.nativeElement, '-ms-flex-preferred-size', newSize);
50
- this.renderer.setStyle(this.nativeElement, 'flex-basis', newSize);
51
- }
52
- this.setStaticPaneClass();
53
- }
54
- get size() {
55
- return this._size;
56
- }
57
- /**
58
- * Defines the HTML attributes of the splitter bar.
59
- * Accepts string key-value pairs.
60
- * You cannot change attributes that are essential for certain functionalities.
61
- */
62
- set splitterBarAttributes(attributes) {
63
- this._splitterBarAttributes = attributes;
64
- const splitterBar = this.splitterService.getPaneSplitterBar(this);
65
- if (splitterBar) {
66
- splitterBar.htmlAttributes = attributes;
67
- }
68
- }
69
- get splitterBarAttributes() {
70
- return this._splitterBarAttributes;
71
- }
72
- /**
73
- * Defines the CSS classes that are rendered on the splitter bar.
74
- * Supports the same values as [`ngClass`](link:site.data.urls.angular['ngclassapi']).
75
- */
76
- splitterBarClass;
77
- /**
78
- * Defines the minimum possible size of the pane.
79
- * Accepts values in pixels and percentages.
80
- */
81
- min;
82
- /**
83
- * Defines the maximum possible size of the pane.
84
- * Accepts values in pixels and percentages.
85
- */
86
- max;
87
- /**
88
- * Determines if you can resize the pane and provide space for other panes.
89
- *
90
- * @default true
91
- */
92
- resizable = true;
93
- /**
94
- * Determines if you can hide the pane and provide space for other panes.
95
- *
96
- * @default false
97
- */
98
- collapsible = false;
99
- /**
100
- * Determines if overflowing content is scrollable or hidden.
101
- *
102
- * @default true
103
- */
104
- scrollable = true;
105
- /**
106
- * Determines if the pane is initially collapsed.
107
- *
108
- * @default false
109
- */
110
- set collapsed(value) {
111
- const hasChanged = this._collapsed !== value;
112
- this._collapsed = value;
113
- if (hasChanged && this.nativeElement) {
114
- if (this._collapsed) {
115
- // When collapsing, clear the flex-basis to allow other panes to expand
116
- this.renderer.setStyle(this.nativeElement, '-ms-flex-preferred-size', '0');
117
- this.renderer.setStyle(this.nativeElement, 'flex-basis', '0');
118
- }
119
- else if (this._size) {
120
- // When expanding, restore the size if it was set
121
- this.renderer.setStyle(this.nativeElement, '-ms-flex-preferred-size', this._size);
122
- this.renderer.setStyle(this.nativeElement, 'flex-basis', this._size);
123
- }
124
- // Trigger the same forceExpand logic that tryToggle does
125
- // This ensures remaining panes expand when a pane is collapsed
126
- if (this.splitterService?.panes) {
127
- const notCollapsed = this.splitterService.panes.filter(p => !p.collapsed);
128
- const allHaveFixedSize = notCollapsed.every(p => p.fixedSize);
129
- notCollapsed.filter(p => p.fixedSize).forEach(pane => {
130
- pane.forceExpand = allHaveFixedSize;
131
- });
132
- }
133
- }
134
- }
135
- get collapsed() {
136
- return this._collapsed;
137
- }
138
- /**
139
- * @hidden
140
- */
141
- orientation = 'horizontal';
142
- /**
143
- * @hidden
144
- */
145
- set containsSplitter(value) {
146
- if (value) {
147
- this.renderer.addClass(this.nativeElement, 'k-pane-flex');
148
- }
149
- else {
150
- this.renderer.removeClass(this.nativeElement, 'k-pane-flex');
151
- }
152
- }
153
- /**
154
- * @hidden
155
- */
156
- overlayContent = false;
157
- /**
158
- * Fires when the Splitter pane size changes.
159
- * The event data contains the new pane size.
160
- * Enables two-way binding of the pane `size` property.
161
- */
162
- sizeChange = new EventEmitter();
163
- /**
164
- * Fires when the Splitter pane collapses or expands.
165
- * The event data contains the new property state.
166
- * Enables two-way binding of the `collapsed` pane property.
167
- */
168
- collapsedChange = new EventEmitter();
169
- get isHidden() {
170
- return this.collapsed;
171
- }
172
- ariaRole = 'group';
173
- hostClass = true;
174
- get scrollablePaneClass() {
175
- return this.scrollable;
176
- }
177
- get fixedSize() {
178
- return this.size && this.size.length > 0;
179
- }
180
- /**
181
- * @hidden
182
- */
183
- forceExpand = false;
184
- /**
185
- * @hidden
186
- */
187
- isResized = false;
188
- _size;
189
- _order;
190
- _splitterBarAttributes;
191
- _collapsed = false;
192
- constructor(element, renderer, cdr, splitterService) {
193
- this.element = element;
194
- this.renderer = renderer;
195
- this.cdr = cdr;
196
- this.splitterService = splitterService;
197
- }
198
- ngAfterViewChecked() {
199
- if (this.isHidden) {
200
- this.renderer.addClass(this.nativeElement, 'k-hidden');
201
- this.renderer.addClass(this.nativeElement, 'hidden');
202
- }
203
- else {
204
- this.renderer.removeClass(this.nativeElement, 'k-hidden');
205
- this.renderer.removeClass(this.nativeElement, 'hidden');
206
- }
207
- this.setStaticPaneClass();
208
- }
209
- ngOnChanges(changes) {
210
- if (anyChanged(['resizable', 'collapsible'], changes)) {
211
- this.setStaticPaneClass();
212
- }
213
- }
214
- /**
215
- * @hidden
216
- */
217
- get computedSize() {
218
- if (this.orientation === 'vertical') {
219
- return this.nativeElement.offsetHeight;
220
- }
221
- else {
222
- return this.nativeElement.offsetWidth;
223
- }
224
- }
225
- /**
226
- * @hidden
227
- */
228
- get nativeElement() {
229
- return this.element.nativeElement;
230
- }
231
- /**
232
- * @hidden
233
- */
234
- toggleOverlay(show) {
235
- this.overlayContent = show;
236
- this.cdr.detectChanges();
237
- }
238
- /**
239
- * @hidden
240
- */
241
- detectChanges() {
242
- this.cdr.detectChanges();
243
- }
244
- setOrderStyles() {
245
- this.renderer.setStyle(this.nativeElement, '-ms-flex-order', this.order);
246
- this.renderer.setStyle(this.nativeElement, 'order', this.order);
247
- }
248
- setStaticPaneClass() {
249
- if (this.forceExpand) {
250
- this.renderer.removeClass(this.nativeElement, 'k-pane-static');
251
- return;
252
- }
253
- if (!this.resizable && !this.collapsible || this.fixedSize) {
254
- this.renderer.addClass(this.nativeElement, 'k-pane-static');
255
- }
256
- else {
257
- this.renderer.removeClass(this.nativeElement, 'k-pane-static');
258
- }
259
- }
260
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SplitterPaneComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.SplitterService }], target: i0.ɵɵFactoryTarget.Component });
261
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SplitterPaneComponent, isStandalone: true, selector: "kendo-splitter-pane", inputs: { order: "order", size: "size", splitterBarAttributes: "splitterBarAttributes", splitterBarClass: "splitterBarClass", min: "min", max: "max", resizable: "resizable", collapsible: "collapsible", scrollable: "scrollable", collapsed: "collapsed", orientation: "orientation", containsSplitter: "containsSplitter", overlayContent: "overlayContent" }, outputs: { sizeChange: "sizeChange", collapsedChange: "collapsedChange" }, host: { properties: { "attr.role": "this.ariaRole", "class.k-pane": "this.hostClass", "class.k-scrollable": "this.scrollablePaneClass" } }, exportAs: ["kendoSplitterPane"], usesOnChanges: true, ngImport: i0, template: `
262
- @if (!collapsed) {
263
- <ng-content></ng-content>
264
- }
265
- @if (overlayContent) {
266
- <div class="k-splitter-overlay k-overlay"></div>
267
- }
268
- `, isInline: true });
269
- }
270
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SplitterPaneComponent, decorators: [{
271
- type: Component,
272
- args: [{
273
- exportAs: 'kendoSplitterPane',
274
- selector: 'kendo-splitter-pane',
275
- template: `
276
- @if (!collapsed) {
277
- <ng-content></ng-content>
278
- }
279
- @if (overlayContent) {
280
- <div class="k-splitter-overlay k-overlay"></div>
281
- }
282
- `,
283
- standalone: true
284
- }]
285
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.SplitterService }], propDecorators: { order: [{
286
- type: Input
287
- }], size: [{
288
- type: Input
289
- }], splitterBarAttributes: [{
290
- type: Input
291
- }], splitterBarClass: [{
292
- type: Input
293
- }], min: [{
294
- type: Input
295
- }], max: [{
296
- type: Input
297
- }], resizable: [{
298
- type: Input
299
- }], collapsible: [{
300
- type: Input
301
- }], scrollable: [{
302
- type: Input
303
- }], collapsed: [{
304
- type: Input
305
- }], orientation: [{
306
- type: Input
307
- }], containsSplitter: [{
308
- type: Input
309
- }], overlayContent: [{
310
- type: Input
311
- }], sizeChange: [{
312
- type: Output
313
- }], collapsedChange: [{
314
- type: Output
315
- }], ariaRole: [{
316
- type: HostBinding,
317
- args: ['attr.role']
318
- }], hostClass: [{
319
- type: HostBinding,
320
- args: ['class.k-pane']
321
- }], scrollablePaneClass: [{
322
- type: HostBinding,
323
- args: ['class.k-scrollable']
324
- }] } });
@@ -1,301 +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
- import { Component, ElementRef, EventEmitter, ContentChildren, Host, HostBinding, Inject, Input, Optional, Output, QueryList, ViewChildren, Renderer2, NgZone, isDevMode } from '@angular/core';
6
- import { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
7
- import { validatePackage } from '@progress/kendo-licensing';
8
- import { isDocumentAvailable } from '@progress/kendo-angular-common';
9
- import { packageMetadata } from '../package-metadata';
10
- import { SplitterPaneComponent } from './splitter-pane.component';
11
- import { SplitterBarComponent } from './splitter-bar.component';
12
- import { SplitterService } from './splitter.service';
13
- import { isPresent } from '../common/util';
14
- import { DraggableDirective } from '@progress/kendo-angular-common';
15
- import { NgClass, NgStyle } from '@angular/common';
16
- import * as i0 from "@angular/core";
17
- import * as i1 from "./splitter.service";
18
- import * as i2 from "@progress/kendo-angular-l10n";
19
- import * as i3 from "./splitter-pane.component";
20
- const SIZING_DOC_LINK = 'https://www.telerik.com/kendo-angular-ui/components/layout/splitter/panes/#specifying-the-dimensions';
21
- /**
22
- * Represents the [Kendo UI Splitter component for Angular]({% slug overview_splitter %}).
23
- *
24
- * @example
25
- * ```html
26
- * <kendo-splitter [style.height.px]="280">
27
- * <kendo-splitter-pane [collapsible]="true" size="30%">
28
- * <h3>Left pane</h3>
29
- * </kendo-splitter-pane>
30
- * <kendo-splitter-pane>
31
- * <h3>Right pane</h3>
32
- * </kendo-splitter-pane>
33
- * </kendo-splitter>
34
- * ```
35
- * @remarks
36
- * Supported children components are: {@link SplitterPaneComponent}.
37
- */
38
- export class SplitterComponent {
39
- element;
40
- splitterService;
41
- localization;
42
- renderer;
43
- ngZone;
44
- enclosingPane;
45
- /**
46
- * Defines the orientation of the panes within the Splitter.
47
- * Use `horizontal` to place panes horizontally or `vertical` to place them vertically.
48
- *
49
- * @default 'horizontal'
50
- */
51
- orientation = 'horizontal';
52
- /**
53
- * Defines the width or height of the Splitter splitbars in pixels.
54
- * The dimension depends on the orientation of the Splitter.
55
- */
56
- splitbarWidth;
57
- /**
58
- * Defines the distance in pixels that you move the separator during keyboard navigation.
59
- *
60
- * @default 10
61
- */
62
- set resizeStep(value) {
63
- this.splitterService.resizeStep = value;
64
- }
65
- get resizeStep() {
66
- return this.splitterService.resizeStep;
67
- }
68
- /**
69
- * Defines the CSS classes that are rendered on the splitter bars.
70
- * Supports the same values as [`ngClass`](link:site.data.urls.angular['ngclassapi']).
71
- */
72
- splitterBarClass;
73
- /**
74
- * Fires when the layout of the Splitter changes.
75
- * Use this event to trigger layout calculations on components that are positioned inside the panes.
76
- */
77
- layoutChange;
78
- get hostClasses() {
79
- return true;
80
- }
81
- get horizontalHostClasses() {
82
- return this.orientation === 'horizontal';
83
- }
84
- get verticalHostClasses() {
85
- return this.orientation === 'vertical';
86
- }
87
- get dir() {
88
- return this.direction;
89
- }
90
- set splitbars(splitbars) {
91
- this.splitterService.splitterBars = splitbars ? splitbars.toArray() : [];
92
- if (!isPresent(splitbars) || !isPresent(this.panes)) {
93
- return;
94
- }
95
- if (!isDocumentAvailable()) {
96
- return;
97
- }
98
- const panesArray = this.panes.toArray();
99
- const splitBarsArray = splitbars.toArray();
100
- const components = [...panesArray, ...splitBarsArray]
101
- .sort((a, b) => a.order - b.order);
102
- const elements = components.map(component => component.element.nativeElement);
103
- panesArray.forEach((pane, i) => {
104
- const splitbar = splitBarsArray[i];
105
- if (splitbar && pane.splitterBarAttributes) {
106
- splitbar.htmlAttributes = pane.splitterBarAttributes;
107
- }
108
- });
109
- elements.forEach(element => this.renderer.appendChild(this.element.nativeElement, element));
110
- }
111
- /**
112
- * @hidden
113
- */
114
- panes;
115
- paneChangesSubscription;
116
- _styleObserver;
117
- constructor(element, splitterService, localization, renderer, ngZone, enclosingPane) {
118
- this.element = element;
119
- this.splitterService = splitterService;
120
- this.localization = localization;
121
- this.renderer = renderer;
122
- this.ngZone = ngZone;
123
- this.enclosingPane = enclosingPane;
124
- validatePackage(packageMetadata);
125
- if (enclosingPane) {
126
- enclosingPane.containsSplitter = true;
127
- }
128
- // the handler only runs in NgZone if there are bound handlers
129
- // this line merges both streams
130
- this.layoutChange = this.splitterService.layoutChange;
131
- this.configure = this.configure.bind(this);
132
- }
133
- ngAfterContentInit() {
134
- if (!isDocumentAvailable()) {
135
- return;
136
- }
137
- this.reconfigure();
138
- this.setFixedHeight();
139
- const allHaveFixedSize = this.panes.length && Array.from(this.panes).every(p => p.fixedSize);
140
- if (allHaveFixedSize && isDevMode()) {
141
- throw new Error(`
142
- The Splitter should have at least one pane without a set size.
143
- See ${SIZING_DOC_LINK} for more information.
144
- `);
145
- }
146
- this._styleObserver = new MutationObserver(() => {
147
- this.ngZone.runOutsideAngular(() => {
148
- this.setFixedHeight();
149
- });
150
- });
151
- this._styleObserver.observe(this.element.nativeElement, { attributeFilter: ['style'] });
152
- }
153
- ngOnChanges(changes) {
154
- if (changes.orientation && !changes.orientation.isFirstChange()) {
155
- this.reconfigure();
156
- }
157
- }
158
- ngOnDestroy() {
159
- if (this.enclosingPane) {
160
- this.enclosingPane.containsSplitter = false;
161
- }
162
- if (this._styleObserver) {
163
- this._styleObserver.disconnect();
164
- this._styleObserver = null;
165
- }
166
- this.unsubscribeChanges();
167
- }
168
- reconfigure() {
169
- this.unsubscribeChanges();
170
- this.configure();
171
- this.paneChangesSubscription = this.panes.changes.subscribe(this.configure);
172
- }
173
- unsubscribeChanges() {
174
- if (this.paneChangesSubscription) {
175
- this.paneChangesSubscription.unsubscribe();
176
- this.paneChangesSubscription = null;
177
- }
178
- }
179
- configure() {
180
- this.splitterService.configure({
181
- panes: this.panes.toArray(),
182
- orientation: this.orientation,
183
- containerSize: () => {
184
- if (this.orientation === 'vertical') {
185
- return this.element.nativeElement.clientHeight;
186
- }
187
- else {
188
- return this.element.nativeElement.clientWidth;
189
- }
190
- },
191
- direction: this.direction
192
- });
193
- }
194
- get direction() {
195
- return this.localization.rtl ? 'rtl' : 'ltr';
196
- }
197
- setFixedHeight() {
198
- this.splitterService.fixedHeight = getComputedStyle(this.element.nativeElement).getPropertyValue('height') !== 'auto';
199
- }
200
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SplitterComponent, deps: [{ token: i0.ElementRef }, { token: i1.SplitterService }, { token: i2.LocalizationService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: SplitterPaneComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
201
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SplitterComponent, isStandalone: true, selector: "kendo-splitter", inputs: { orientation: "orientation", splitbarWidth: "splitbarWidth", resizeStep: "resizeStep", splitterBarClass: "splitterBarClass" }, outputs: { layoutChange: "layoutChange" }, host: { properties: { "class.k-splitter": "this.hostClasses", "class.k-splitter-flex": "this.hostClasses", "class.k-splitter-horizontal": "this.horizontalHostClasses", "class.k-splitter-vertical": "this.verticalHostClasses", "attr.dir": "this.dir" } }, providers: [
202
- SplitterService,
203
- LocalizationService,
204
- {
205
- provide: L10N_PREFIX,
206
- useValue: 'kendo.spliter'
207
- }
208
- ], queries: [{ propertyName: "panes", predicate: SplitterPaneComponent }], viewQueries: [{ propertyName: "splitbars", predicate: SplitterBarComponent, descendants: true }], exportAs: ["kendoSplitter"], usesOnChanges: true, ngImport: i0, template: `
209
- <ng-content select="kendo-splitter-pane"></ng-content>
210
- @for (
211
- pane of panes; track
212
- pane; let index = $index; let last = $last) {
213
- @if (!last) {
214
- <kendo-splitter-bar
215
- kendoDraggable
216
- [index]="index"
217
- [orientation]="orientation"
218
- [ngClass]="pane.splitterBarClass || splitterBarClass"
219
- [ngStyle]="{
220
- width: orientation === 'horizontal' ? splitbarWidth + 'px' : undefined,
221
- height: orientation === 'vertical' ? splitbarWidth + 'px' : undefined
222
- }">
223
- </kendo-splitter-bar>
224
- }
225
- }
226
- `, isInline: true, dependencies: [{ kind: "component", type: SplitterBarComponent, selector: "kendo-splitter-bar", inputs: ["orientation", "index", "htmlAttributes"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
227
- }
228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SplitterComponent, decorators: [{
229
- type: Component,
230
- args: [{
231
- exportAs: 'kendoSplitter',
232
- selector: 'kendo-splitter',
233
- providers: [
234
- SplitterService,
235
- LocalizationService,
236
- {
237
- provide: L10N_PREFIX,
238
- useValue: 'kendo.spliter'
239
- }
240
- ],
241
- template: `
242
- <ng-content select="kendo-splitter-pane"></ng-content>
243
- @for (
244
- pane of panes; track
245
- pane; let index = $index; let last = $last) {
246
- @if (!last) {
247
- <kendo-splitter-bar
248
- kendoDraggable
249
- [index]="index"
250
- [orientation]="orientation"
251
- [ngClass]="pane.splitterBarClass || splitterBarClass"
252
- [ngStyle]="{
253
- width: orientation === 'horizontal' ? splitbarWidth + 'px' : undefined,
254
- height: orientation === 'vertical' ? splitbarWidth + 'px' : undefined
255
- }">
256
- </kendo-splitter-bar>
257
- }
258
- }
259
- `,
260
- standalone: true,
261
- imports: [SplitterBarComponent, DraggableDirective, NgStyle, NgClass]
262
- }]
263
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.SplitterService }, { type: i2.LocalizationService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i3.SplitterPaneComponent, decorators: [{
264
- type: Optional
265
- }, {
266
- type: Host
267
- }, {
268
- type: Inject,
269
- args: [SplitterPaneComponent]
270
- }] }], propDecorators: { orientation: [{
271
- type: Input
272
- }], splitbarWidth: [{
273
- type: Input
274
- }], resizeStep: [{
275
- type: Input
276
- }], splitterBarClass: [{
277
- type: Input
278
- }], layoutChange: [{
279
- type: Output
280
- }], hostClasses: [{
281
- type: HostBinding,
282
- args: ['class.k-splitter']
283
- }, {
284
- type: HostBinding,
285
- args: ['class.k-splitter-flex']
286
- }], horizontalHostClasses: [{
287
- type: HostBinding,
288
- args: ['class.k-splitter-horizontal']
289
- }], verticalHostClasses: [{
290
- type: HostBinding,
291
- args: ['class.k-splitter-vertical']
292
- }], dir: [{
293
- type: HostBinding,
294
- args: ['attr.dir']
295
- }], splitbars: [{
296
- type: ViewChildren,
297
- args: [SplitterBarComponent]
298
- }], panes: [{
299
- type: ContentChildren,
300
- args: [SplitterPaneComponent]
301
- }] } });