@progress/kendo-angular-layout 24.0.0-develop.29 → 24.0.0-develop.30
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.
|
@@ -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: '24.0.0-develop.
|
|
32
|
+
publishDate: 1778748641,
|
|
33
|
+
version: '24.0.0-develop.30',
|
|
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
|
|
|
@@ -1860,11 +1860,7 @@ class SplitterService {
|
|
|
1860
1860
|
pane.detectChanges();
|
|
1861
1861
|
}
|
|
1862
1862
|
}
|
|
1863
|
-
|
|
1864
|
-
const allHaveFixedSize = notCollapsed.every(p => p.fixedSize);
|
|
1865
|
-
notCollapsed.filter(p => p.fixedSize).forEach(pane => {
|
|
1866
|
-
pane.forceExpand = allHaveFixedSize ? true : false;
|
|
1867
|
-
});
|
|
1863
|
+
this.syncPaneExpandState();
|
|
1868
1864
|
return pane.collapsible;
|
|
1869
1865
|
}
|
|
1870
1866
|
togglePane(keyCode, index) {
|
|
@@ -2010,6 +2006,23 @@ class SplitterService {
|
|
|
2010
2006
|
this.containerSize = containerSize;
|
|
2011
2007
|
this.rtl = direction === 'rtl';
|
|
2012
2008
|
}
|
|
2009
|
+
syncPaneExpandState() {
|
|
2010
|
+
if (!this.panes) {
|
|
2011
|
+
return;
|
|
2012
|
+
}
|
|
2013
|
+
const notCollapsed = this.panes.filter(p => !p.collapsed);
|
|
2014
|
+
const someAreCollapsed = notCollapsed.length < this.panes.length;
|
|
2015
|
+
const allHaveFixedSize = notCollapsed.every(p => p.fixedSize);
|
|
2016
|
+
// A pane is flexible when it is resizable or collapsible, meaning it can absorb extra space.
|
|
2017
|
+
const someAreFlexible = notCollapsed.some(p => p.resizable || p.collapsible);
|
|
2018
|
+
notCollapsed.filter(p => p.fixedSize).forEach(pane => {
|
|
2019
|
+
// Force-expand only when a pane is collapsed (space needs redistribution),
|
|
2020
|
+
// all visible panes have a fixed size, and either no flexible pane exists
|
|
2021
|
+
// or this pane itself is flexible and can absorb the extra space.
|
|
2022
|
+
// When no pane is collapsed, sizes are balanced and no expansion is needed.
|
|
2023
|
+
pane.forceExpand = someAreCollapsed && allHaveFixedSize && (!someAreFlexible || pane.resizable || pane.collapsible);
|
|
2024
|
+
});
|
|
2025
|
+
}
|
|
2013
2026
|
containerSize = () => { };
|
|
2014
2027
|
rtl;
|
|
2015
2028
|
isPercent(size) {
|
|
@@ -2151,11 +2164,7 @@ class SplitterPaneComponent {
|
|
|
2151
2164
|
// Trigger the same forceExpand logic that tryToggle does
|
|
2152
2165
|
// This ensures remaining panes expand when a pane is collapsed
|
|
2153
2166
|
if (this.splitterService?.panes) {
|
|
2154
|
-
|
|
2155
|
-
const allHaveFixedSize = notCollapsed.every(p => p.fixedSize);
|
|
2156
|
-
notCollapsed.filter(p => p.fixedSize).forEach(pane => {
|
|
2157
|
-
pane.forceExpand = allHaveFixedSize;
|
|
2158
|
-
});
|
|
2167
|
+
this.splitterService.syncPaneExpandState();
|
|
2159
2168
|
}
|
|
2160
2169
|
}
|
|
2161
2170
|
}
|
|
@@ -2207,7 +2216,34 @@ class SplitterPaneComponent {
|
|
|
2207
2216
|
/**
|
|
2208
2217
|
* @hidden
|
|
2209
2218
|
*/
|
|
2210
|
-
forceExpand
|
|
2219
|
+
set forceExpand(value) {
|
|
2220
|
+
if (this._forceExpand === value) {
|
|
2221
|
+
return;
|
|
2222
|
+
}
|
|
2223
|
+
this._forceExpand = value;
|
|
2224
|
+
// Enforce min/max constraints during flex redistribution so panes
|
|
2225
|
+
// do not exceed their bounds when absorbing a collapsed pane's space.
|
|
2226
|
+
const sizeProp = this.orientation === 'vertical' ? 'height' : 'width';
|
|
2227
|
+
if (value) {
|
|
2228
|
+
if (this.max) {
|
|
2229
|
+
this.renderer.setStyle(this.nativeElement, `max-${sizeProp}`, this.max);
|
|
2230
|
+
}
|
|
2231
|
+
if (this.min) {
|
|
2232
|
+
this.renderer.setStyle(this.nativeElement, `min-${sizeProp}`, this.min);
|
|
2233
|
+
}
|
|
2234
|
+
}
|
|
2235
|
+
else {
|
|
2236
|
+
if (this.max) {
|
|
2237
|
+
this.renderer.removeStyle(this.nativeElement, `max-${sizeProp}`);
|
|
2238
|
+
}
|
|
2239
|
+
if (this.min) {
|
|
2240
|
+
this.renderer.removeStyle(this.nativeElement, `min-${sizeProp}`);
|
|
2241
|
+
}
|
|
2242
|
+
}
|
|
2243
|
+
}
|
|
2244
|
+
get forceExpand() {
|
|
2245
|
+
return this._forceExpand;
|
|
2246
|
+
}
|
|
2211
2247
|
/**
|
|
2212
2248
|
* @hidden
|
|
2213
2249
|
*/
|
|
@@ -2216,6 +2252,7 @@ class SplitterPaneComponent {
|
|
|
2216
2252
|
_order;
|
|
2217
2253
|
_splitterBarAttributes;
|
|
2218
2254
|
_collapsed = false;
|
|
2255
|
+
_forceExpand = false;
|
|
2219
2256
|
constructor(element, renderer, cdr, splitterService) {
|
|
2220
2257
|
this.element = element;
|
|
2221
2258
|
this.renderer = renderer;
|
package/package-metadata.mjs
CHANGED
|
@@ -7,7 +7,7 @@ export const packageMetadata = {
|
|
|
7
7
|
"productCodes": [
|
|
8
8
|
"KENDOUIANGULAR"
|
|
9
9
|
],
|
|
10
|
-
"publishDate":
|
|
11
|
-
"version": "24.0.0-develop.
|
|
10
|
+
"publishDate": 1778748641,
|
|
11
|
+
"version": "24.0.0-develop.30",
|
|
12
12
|
"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"
|
|
13
13
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-layout",
|
|
3
|
-
"version": "24.0.0-develop.
|
|
3
|
+
"version": "24.0.0-develop.30",
|
|
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",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"package": {
|
|
64
64
|
"productName": "Kendo UI for Angular",
|
|
65
65
|
"productCode": "KENDOUIANGULAR",
|
|
66
|
-
"publishDate":
|
|
66
|
+
"publishDate": 1778748641,
|
|
67
67
|
"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"
|
|
68
68
|
}
|
|
69
69
|
},
|
|
@@ -73,17 +73,17 @@
|
|
|
73
73
|
"@angular/core": "19 - 21",
|
|
74
74
|
"@angular/platform-browser": "19 - 21",
|
|
75
75
|
"@progress/kendo-licensing": "^1.11.0",
|
|
76
|
-
"@progress/kendo-angular-common": "24.0.0-develop.
|
|
77
|
-
"@progress/kendo-angular-l10n": "24.0.0-develop.
|
|
78
|
-
"@progress/kendo-angular-progressbar": "24.0.0-develop.
|
|
79
|
-
"@progress/kendo-angular-icons": "24.0.0-develop.
|
|
80
|
-
"@progress/kendo-angular-buttons": "24.0.0-develop.
|
|
81
|
-
"@progress/kendo-angular-intl": "24.0.0-develop.
|
|
76
|
+
"@progress/kendo-angular-common": "24.0.0-develop.30",
|
|
77
|
+
"@progress/kendo-angular-l10n": "24.0.0-develop.30",
|
|
78
|
+
"@progress/kendo-angular-progressbar": "24.0.0-develop.30",
|
|
79
|
+
"@progress/kendo-angular-icons": "24.0.0-develop.30",
|
|
80
|
+
"@progress/kendo-angular-buttons": "24.0.0-develop.30",
|
|
81
|
+
"@progress/kendo-angular-intl": "24.0.0-develop.30",
|
|
82
82
|
"rxjs": "^6.5.3 || ^7.0.0"
|
|
83
83
|
},
|
|
84
84
|
"dependencies": {
|
|
85
85
|
"tslib": "^2.3.1",
|
|
86
|
-
"@progress/kendo-angular-schematics": "24.0.0-develop.
|
|
86
|
+
"@progress/kendo-angular-schematics": "24.0.0-develop.30",
|
|
87
87
|
"@progress/kendo-draggable": "^3.0.2"
|
|
88
88
|
},
|
|
89
89
|
"schematics": "./schematics/collection.json",
|
|
@@ -121,7 +121,8 @@ export declare class SplitterPaneComponent implements AfterViewChecked {
|
|
|
121
121
|
/**
|
|
122
122
|
* @hidden
|
|
123
123
|
*/
|
|
124
|
-
forceExpand: boolean;
|
|
124
|
+
set forceExpand(value: boolean);
|
|
125
|
+
get forceExpand(): boolean;
|
|
125
126
|
/**
|
|
126
127
|
* @hidden
|
|
127
128
|
*/
|
|
@@ -130,6 +131,7 @@ export declare class SplitterPaneComponent implements AfterViewChecked {
|
|
|
130
131
|
private _order;
|
|
131
132
|
private _splitterBarAttributes;
|
|
132
133
|
private _collapsed;
|
|
134
|
+
private _forceExpand;
|
|
133
135
|
constructor(element: ElementRef<HTMLElement>, renderer: Renderer2, cdr: ChangeDetectorRef, splitterService: SplitterService);
|
|
134
136
|
ngAfterViewChecked(): void;
|
|
135
137
|
ngOnChanges(changes: SimpleChanges): void;
|
|
@@ -57,6 +57,7 @@ export declare class SplitterService {
|
|
|
57
57
|
paneByIndex(pane: SplitterPaneComponent): number;
|
|
58
58
|
getPaneSplitterBar(pane: SplitterPaneComponent): SplitterBarComponent | null;
|
|
59
59
|
configure({ panes, orientation, containerSize, direction }: SplitterParameters): void;
|
|
60
|
+
syncPaneExpandState(): void;
|
|
60
61
|
private containerSize;
|
|
61
62
|
private rtl;
|
|
62
63
|
private isPercent;
|