@progress/kendo-angular-layout 20.1.0-develop.9 → 20.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/expansionpanel/expansionpanel.component.mjs +12 -4
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/splitter/splitter-pane.component.mjs +34 -3
- package/expansionpanel/expansionpanel.component.d.ts +5 -0
- package/fesm2022/progress-kendo-angular-layout.mjs +48 -9
- package/package.json +9 -9
- package/splitter/splitter-pane.component.d.ts +3 -1
|
@@ -23,6 +23,7 @@ import * as i1 from "@progress/kendo-angular-l10n";
|
|
|
23
23
|
import * as i2 from "@angular/animations";
|
|
24
24
|
const DEFAULT_DURATION = 200;
|
|
25
25
|
const CONTENT_HIDDEN_CLASS = 'k-hidden';
|
|
26
|
+
let incrementingId = 0;
|
|
26
27
|
/**
|
|
27
28
|
* Represents the Kendo UI ExpansionPanel component for Angular. Provides an expandable and collapsible content container with customizable header and animation ([see overview]({% slug overview_expansionpanel %})).
|
|
28
29
|
*
|
|
@@ -164,6 +165,7 @@ export class ExpansionPanelComponent {
|
|
|
164
165
|
_expanded = false;
|
|
165
166
|
_svgExpandIcon = chevronDownIcon;
|
|
166
167
|
_svgCollapseIcon = chevronUpIcon;
|
|
168
|
+
nextId = incrementingId++;
|
|
167
169
|
constructor(renderer, hostElement, ngZone, localizationService, builder) {
|
|
168
170
|
this.renderer = renderer;
|
|
169
171
|
this.hostElement = hostElement;
|
|
@@ -248,6 +250,12 @@ export class ExpansionPanelComponent {
|
|
|
248
250
|
this.emitExpandCollapseEvent();
|
|
249
251
|
}
|
|
250
252
|
}
|
|
253
|
+
/**
|
|
254
|
+
* @hidden
|
|
255
|
+
*/
|
|
256
|
+
get contentWrapperId() {
|
|
257
|
+
return `k-expansion-panel-content-wrapper-${this.nextId}`;
|
|
258
|
+
}
|
|
251
259
|
/**
|
|
252
260
|
* @hidden
|
|
253
261
|
*/
|
|
@@ -367,7 +375,7 @@ export class ExpansionPanelComponent {
|
|
|
367
375
|
[attr.aria-expanded]="expanded && !disabled"
|
|
368
376
|
role="button"
|
|
369
377
|
tabindex="0"
|
|
370
|
-
[attr.aria-controls]="
|
|
378
|
+
[attr.aria-controls]="contentWrapperId"
|
|
371
379
|
(click)="onHeaderClick($event)"
|
|
372
380
|
>
|
|
373
381
|
<ng-container *ngIf="!titleTemplate">
|
|
@@ -390,7 +398,7 @@ export class ExpansionPanelComponent {
|
|
|
390
398
|
</kendo-icon-wrapper>
|
|
391
399
|
</span>
|
|
392
400
|
</div>
|
|
393
|
-
<div #content [id]="
|
|
401
|
+
<div #content [id]="contentWrapperId" class="k-expander-content-wrapper">
|
|
394
402
|
<div class="k-expander-content" [attr.aria-hidden]="!expanded">
|
|
395
403
|
<ng-content></ng-content>
|
|
396
404
|
</div>
|
|
@@ -418,7 +426,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
418
426
|
[attr.aria-expanded]="expanded && !disabled"
|
|
419
427
|
role="button"
|
|
420
428
|
tabindex="0"
|
|
421
|
-
[attr.aria-controls]="
|
|
429
|
+
[attr.aria-controls]="contentWrapperId"
|
|
422
430
|
(click)="onHeaderClick($event)"
|
|
423
431
|
>
|
|
424
432
|
<ng-container *ngIf="!titleTemplate">
|
|
@@ -441,7 +449,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
441
449
|
</kendo-icon-wrapper>
|
|
442
450
|
</span>
|
|
443
451
|
</div>
|
|
444
|
-
<div #content [id]="
|
|
452
|
+
<div #content [id]="contentWrapperId" class="k-expander-content-wrapper">
|
|
445
453
|
<div class="k-expander-content" [attr.aria-hidden]="!expanded">
|
|
446
454
|
<ng-content></ng-content>
|
|
447
455
|
</div>
|
|
@@ -10,7 +10,7 @@ export const packageMetadata = {
|
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
|
11
11
|
productCode: 'KENDOUIANGULAR',
|
|
12
12
|
productCodes: ['KENDOUIANGULAR'],
|
|
13
|
-
publishDate:
|
|
14
|
-
version: '20.1.0
|
|
13
|
+
publishDate: 1761117193,
|
|
14
|
+
version: '20.1.0',
|
|
15
15
|
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'
|
|
16
16
|
};
|
|
@@ -45,8 +45,11 @@ export class SplitterPaneComponent {
|
|
|
45
45
|
*/
|
|
46
46
|
set size(newSize) {
|
|
47
47
|
this._size = newSize;
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
// Only set flex-basis if the pane is not collapsed
|
|
49
|
+
if (!this._collapsed) {
|
|
50
|
+
this.renderer.setStyle(this.nativeElement, '-ms-flex-preferred-size', newSize);
|
|
51
|
+
this.renderer.setStyle(this.nativeElement, 'flex-basis', newSize);
|
|
52
|
+
}
|
|
50
53
|
this.setStaticPaneClass();
|
|
51
54
|
}
|
|
52
55
|
get size() {
|
|
@@ -105,7 +108,34 @@ export class SplitterPaneComponent {
|
|
|
105
108
|
*
|
|
106
109
|
* @default false
|
|
107
110
|
*/
|
|
108
|
-
collapsed
|
|
111
|
+
set collapsed(value) {
|
|
112
|
+
const hasChanged = this._collapsed !== value;
|
|
113
|
+
this._collapsed = value;
|
|
114
|
+
if (hasChanged && this.nativeElement) {
|
|
115
|
+
if (this._collapsed) {
|
|
116
|
+
// When collapsing, clear the flex-basis to allow other panes to expand
|
|
117
|
+
this.renderer.setStyle(this.nativeElement, '-ms-flex-preferred-size', '0');
|
|
118
|
+
this.renderer.setStyle(this.nativeElement, 'flex-basis', '0');
|
|
119
|
+
}
|
|
120
|
+
else if (this._size) {
|
|
121
|
+
// When expanding, restore the size if it was set
|
|
122
|
+
this.renderer.setStyle(this.nativeElement, '-ms-flex-preferred-size', this._size);
|
|
123
|
+
this.renderer.setStyle(this.nativeElement, 'flex-basis', this._size);
|
|
124
|
+
}
|
|
125
|
+
// Trigger the same forceExpand logic that tryToggle does
|
|
126
|
+
// This ensures remaining panes expand when a pane is collapsed
|
|
127
|
+
if (this.splitterService?.panes) {
|
|
128
|
+
const notCollapsed = this.splitterService.panes.filter(p => !p.collapsed);
|
|
129
|
+
const allHaveFixedSize = notCollapsed.every(p => p.fixedSize);
|
|
130
|
+
notCollapsed.filter(p => p.fixedSize).forEach(pane => {
|
|
131
|
+
pane.forceExpand = allHaveFixedSize;
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
get collapsed() {
|
|
137
|
+
return this._collapsed;
|
|
138
|
+
}
|
|
109
139
|
/**
|
|
110
140
|
* @hidden
|
|
111
141
|
*/
|
|
@@ -159,6 +189,7 @@ export class SplitterPaneComponent {
|
|
|
159
189
|
_size;
|
|
160
190
|
_order;
|
|
161
191
|
_splitterBarAttributes;
|
|
192
|
+
_collapsed = false;
|
|
162
193
|
constructor(element, renderer, cdr, splitterService) {
|
|
163
194
|
this.element = element;
|
|
164
195
|
this.renderer = renderer;
|
|
@@ -121,6 +121,7 @@ export declare class ExpansionPanelComponent implements OnInit, AfterViewInit, O
|
|
|
121
121
|
private _expanded;
|
|
122
122
|
private _svgExpandIcon;
|
|
123
123
|
private _svgCollapseIcon;
|
|
124
|
+
private nextId;
|
|
124
125
|
constructor(renderer: Renderer2, hostElement: ElementRef, ngZone: NgZone, localizationService: LocalizationService, builder: AnimationBuilder);
|
|
125
126
|
ngOnInit(): void;
|
|
126
127
|
ngAfterViewInit(): void;
|
|
@@ -141,6 +142,10 @@ export declare class ExpansionPanelComponent implements OnInit, AfterViewInit, O
|
|
|
141
142
|
* @hidden
|
|
142
143
|
*/
|
|
143
144
|
onHeaderAction(): void;
|
|
145
|
+
/**
|
|
146
|
+
* @hidden
|
|
147
|
+
*/
|
|
148
|
+
get contentWrapperId(): string;
|
|
144
149
|
/**
|
|
145
150
|
* @hidden
|
|
146
151
|
*/
|
|
@@ -29,8 +29,8 @@ const packageMetadata = {
|
|
|
29
29
|
productName: 'Kendo UI for Angular',
|
|
30
30
|
productCode: 'KENDOUIANGULAR',
|
|
31
31
|
productCodes: ['KENDOUIANGULAR'],
|
|
32
|
-
publishDate:
|
|
33
|
-
version: '20.1.0
|
|
32
|
+
publishDate: 1761117193,
|
|
33
|
+
version: '20.1.0',
|
|
34
34
|
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'
|
|
35
35
|
};
|
|
36
36
|
|
|
@@ -2011,8 +2011,11 @@ class SplitterPaneComponent {
|
|
|
2011
2011
|
*/
|
|
2012
2012
|
set size(newSize) {
|
|
2013
2013
|
this._size = newSize;
|
|
2014
|
-
|
|
2015
|
-
|
|
2014
|
+
// Only set flex-basis if the pane is not collapsed
|
|
2015
|
+
if (!this._collapsed) {
|
|
2016
|
+
this.renderer.setStyle(this.nativeElement, '-ms-flex-preferred-size', newSize);
|
|
2017
|
+
this.renderer.setStyle(this.nativeElement, 'flex-basis', newSize);
|
|
2018
|
+
}
|
|
2016
2019
|
this.setStaticPaneClass();
|
|
2017
2020
|
}
|
|
2018
2021
|
get size() {
|
|
@@ -2071,7 +2074,34 @@ class SplitterPaneComponent {
|
|
|
2071
2074
|
*
|
|
2072
2075
|
* @default false
|
|
2073
2076
|
*/
|
|
2074
|
-
collapsed
|
|
2077
|
+
set collapsed(value) {
|
|
2078
|
+
const hasChanged = this._collapsed !== value;
|
|
2079
|
+
this._collapsed = value;
|
|
2080
|
+
if (hasChanged && this.nativeElement) {
|
|
2081
|
+
if (this._collapsed) {
|
|
2082
|
+
// When collapsing, clear the flex-basis to allow other panes to expand
|
|
2083
|
+
this.renderer.setStyle(this.nativeElement, '-ms-flex-preferred-size', '0');
|
|
2084
|
+
this.renderer.setStyle(this.nativeElement, 'flex-basis', '0');
|
|
2085
|
+
}
|
|
2086
|
+
else if (this._size) {
|
|
2087
|
+
// When expanding, restore the size if it was set
|
|
2088
|
+
this.renderer.setStyle(this.nativeElement, '-ms-flex-preferred-size', this._size);
|
|
2089
|
+
this.renderer.setStyle(this.nativeElement, 'flex-basis', this._size);
|
|
2090
|
+
}
|
|
2091
|
+
// Trigger the same forceExpand logic that tryToggle does
|
|
2092
|
+
// This ensures remaining panes expand when a pane is collapsed
|
|
2093
|
+
if (this.splitterService?.panes) {
|
|
2094
|
+
const notCollapsed = this.splitterService.panes.filter(p => !p.collapsed);
|
|
2095
|
+
const allHaveFixedSize = notCollapsed.every(p => p.fixedSize);
|
|
2096
|
+
notCollapsed.filter(p => p.fixedSize).forEach(pane => {
|
|
2097
|
+
pane.forceExpand = allHaveFixedSize;
|
|
2098
|
+
});
|
|
2099
|
+
}
|
|
2100
|
+
}
|
|
2101
|
+
}
|
|
2102
|
+
get collapsed() {
|
|
2103
|
+
return this._collapsed;
|
|
2104
|
+
}
|
|
2075
2105
|
/**
|
|
2076
2106
|
* @hidden
|
|
2077
2107
|
*/
|
|
@@ -2125,6 +2155,7 @@ class SplitterPaneComponent {
|
|
|
2125
2155
|
_size;
|
|
2126
2156
|
_order;
|
|
2127
2157
|
_splitterBarAttributes;
|
|
2158
|
+
_collapsed = false;
|
|
2128
2159
|
constructor(element, renderer, cdr, splitterService) {
|
|
2129
2160
|
this.element = element;
|
|
2130
2161
|
this.renderer = renderer;
|
|
@@ -8722,6 +8753,7 @@ class ExpansionPanelActionEvent extends PreventableEvent$1 {
|
|
|
8722
8753
|
|
|
8723
8754
|
const DEFAULT_DURATION = 200;
|
|
8724
8755
|
const CONTENT_HIDDEN_CLASS = 'k-hidden';
|
|
8756
|
+
let incrementingId = 0;
|
|
8725
8757
|
/**
|
|
8726
8758
|
* Represents the Kendo UI ExpansionPanel component for Angular. Provides an expandable and collapsible content container with customizable header and animation ([see overview]({% slug overview_expansionpanel %})).
|
|
8727
8759
|
*
|
|
@@ -8863,6 +8895,7 @@ class ExpansionPanelComponent {
|
|
|
8863
8895
|
_expanded = false;
|
|
8864
8896
|
_svgExpandIcon = chevronDownIcon;
|
|
8865
8897
|
_svgCollapseIcon = chevronUpIcon;
|
|
8898
|
+
nextId = incrementingId++;
|
|
8866
8899
|
constructor(renderer, hostElement, ngZone, localizationService, builder) {
|
|
8867
8900
|
this.renderer = renderer;
|
|
8868
8901
|
this.hostElement = hostElement;
|
|
@@ -8947,6 +8980,12 @@ class ExpansionPanelComponent {
|
|
|
8947
8980
|
this.emitExpandCollapseEvent();
|
|
8948
8981
|
}
|
|
8949
8982
|
}
|
|
8983
|
+
/**
|
|
8984
|
+
* @hidden
|
|
8985
|
+
*/
|
|
8986
|
+
get contentWrapperId() {
|
|
8987
|
+
return `k-expansion-panel-content-wrapper-${this.nextId}`;
|
|
8988
|
+
}
|
|
8950
8989
|
/**
|
|
8951
8990
|
* @hidden
|
|
8952
8991
|
*/
|
|
@@ -9066,7 +9105,7 @@ class ExpansionPanelComponent {
|
|
|
9066
9105
|
[attr.aria-expanded]="expanded && !disabled"
|
|
9067
9106
|
role="button"
|
|
9068
9107
|
tabindex="0"
|
|
9069
|
-
[attr.aria-controls]="
|
|
9108
|
+
[attr.aria-controls]="contentWrapperId"
|
|
9070
9109
|
(click)="onHeaderClick($event)"
|
|
9071
9110
|
>
|
|
9072
9111
|
<ng-container *ngIf="!titleTemplate">
|
|
@@ -9089,7 +9128,7 @@ class ExpansionPanelComponent {
|
|
|
9089
9128
|
</kendo-icon-wrapper>
|
|
9090
9129
|
</span>
|
|
9091
9130
|
</div>
|
|
9092
|
-
<div #content [id]="
|
|
9131
|
+
<div #content [id]="contentWrapperId" class="k-expander-content-wrapper">
|
|
9093
9132
|
<div class="k-expander-content" [attr.aria-hidden]="!expanded">
|
|
9094
9133
|
<ng-content></ng-content>
|
|
9095
9134
|
</div>
|
|
@@ -9117,7 +9156,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
9117
9156
|
[attr.aria-expanded]="expanded && !disabled"
|
|
9118
9157
|
role="button"
|
|
9119
9158
|
tabindex="0"
|
|
9120
|
-
[attr.aria-controls]="
|
|
9159
|
+
[attr.aria-controls]="contentWrapperId"
|
|
9121
9160
|
(click)="onHeaderClick($event)"
|
|
9122
9161
|
>
|
|
9123
9162
|
<ng-container *ngIf="!titleTemplate">
|
|
@@ -9140,7 +9179,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
9140
9179
|
</kendo-icon-wrapper>
|
|
9141
9180
|
</span>
|
|
9142
9181
|
</div>
|
|
9143
|
-
<div #content [id]="
|
|
9182
|
+
<div #content [id]="contentWrapperId" class="k-expander-content-wrapper">
|
|
9144
9183
|
<div class="k-expander-content" [attr.aria-hidden]="!expanded">
|
|
9145
9184
|
<ng-content></ng-content>
|
|
9146
9185
|
</div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-layout",
|
|
3
|
-
"version": "20.1.0
|
|
3
|
+
"version": "20.1.0",
|
|
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",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"package": {
|
|
51
51
|
"productName": "Kendo UI for Angular",
|
|
52
52
|
"productCode": "KENDOUIANGULAR",
|
|
53
|
-
"publishDate":
|
|
53
|
+
"publishDate": 1761117193,
|
|
54
54
|
"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"
|
|
55
55
|
}
|
|
56
56
|
},
|
|
@@ -60,17 +60,17 @@
|
|
|
60
60
|
"@angular/core": "16 - 20",
|
|
61
61
|
"@angular/platform-browser": "16 - 20",
|
|
62
62
|
"@progress/kendo-licensing": "^1.7.0",
|
|
63
|
-
"@progress/kendo-angular-common": "20.1.0
|
|
64
|
-
"@progress/kendo-angular-l10n": "20.1.0
|
|
65
|
-
"@progress/kendo-angular-progressbar": "20.1.0
|
|
66
|
-
"@progress/kendo-angular-icons": "20.1.0
|
|
67
|
-
"@progress/kendo-angular-buttons": "20.1.0
|
|
68
|
-
"@progress/kendo-angular-intl": "20.1.0
|
|
63
|
+
"@progress/kendo-angular-common": "20.1.0",
|
|
64
|
+
"@progress/kendo-angular-l10n": "20.1.0",
|
|
65
|
+
"@progress/kendo-angular-progressbar": "20.1.0",
|
|
66
|
+
"@progress/kendo-angular-icons": "20.1.0",
|
|
67
|
+
"@progress/kendo-angular-buttons": "20.1.0",
|
|
68
|
+
"@progress/kendo-angular-intl": "20.1.0",
|
|
69
69
|
"rxjs": "^6.5.3 || ^7.0.0"
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
72
|
"tslib": "^2.3.1",
|
|
73
|
-
"@progress/kendo-angular-schematics": "20.1.0
|
|
73
|
+
"@progress/kendo-angular-schematics": "20.1.0",
|
|
74
74
|
"@progress/kendo-draggable": "^3.0.2",
|
|
75
75
|
"node-html-parser": "^7.0.1"
|
|
76
76
|
},
|
|
@@ -87,7 +87,8 @@ export declare class SplitterPaneComponent implements AfterViewChecked {
|
|
|
87
87
|
*
|
|
88
88
|
* @default false
|
|
89
89
|
*/
|
|
90
|
-
collapsed: boolean;
|
|
90
|
+
set collapsed(value: boolean);
|
|
91
|
+
get collapsed(): boolean;
|
|
91
92
|
/**
|
|
92
93
|
* @hidden
|
|
93
94
|
*/
|
|
@@ -128,6 +129,7 @@ export declare class SplitterPaneComponent implements AfterViewChecked {
|
|
|
128
129
|
private _size;
|
|
129
130
|
private _order;
|
|
130
131
|
private _splitterBarAttributes;
|
|
132
|
+
private _collapsed;
|
|
131
133
|
constructor(element: ElementRef<HTMLElement>, renderer: Renderer2, cdr: ChangeDetectorRef, splitterService: SplitterService);
|
|
132
134
|
ngAfterViewChecked(): void;
|
|
133
135
|
ngOnChanges(changes: SimpleChanges): void;
|