@progress/kendo-angular-grid 25.4.0-develop.2 → 25.4.0-develop.3

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.
@@ -3350,6 +3350,7 @@ class ColumnResizingService {
3350
3350
  draggedGroupColumn;
3351
3351
  resizedColumns;
3352
3352
  autoFitResize = false;
3353
+ autoSizedHiddenColumns = new Map();
3353
3354
  column;
3354
3355
  tables = [];
3355
3356
  batch = null;
@@ -18991,6 +18992,7 @@ class ColumnHandleDirective {
18991
18992
  if (!this.column.resizeStartWidth) {
18992
18993
  this.column.resizeStartWidth = headerWidth(this.element) || this.column.width;
18993
18994
  }
18995
+ this.setHiddenColumnsWidth();
18994
18996
  if (this.isConstrainedMode && !this.service.adjacentColumn) {
18995
18997
  this.setAdjacentColumn();
18996
18998
  }
@@ -19027,14 +19029,41 @@ class ColumnHandleDirective {
19027
19029
  this.updateWidthsOfResizedColumns(column, width);
19028
19030
  }
19029
19031
  column.width = width;
19030
- this.columnInfoService.hiddenColumns.forEach((col) => {
19031
- if (isBlank(col.width) && isPresent(col.implicitWidth)) {
19032
- // Resize hidden columns to their implicit width so they
19033
- // can be displayed with the same width if made visible.
19034
- col.width = col.implicitWidth;
19032
+ this.setHiddenColumnsWidth();
19033
+ this.cdr.markForCheck();
19034
+ }
19035
+ setHiddenColumnsWidth() {
19036
+ const remainingWidth = this.remainingGridWidth();
19037
+ const hiddenColumns = this.columnInfoService.hiddenColumns;
19038
+ const autoSized = this.service.autoSizedHiddenColumns;
19039
+ autoSized.forEach((_, col) => {
19040
+ if (hiddenColumns.indexOf(col) === -1) {
19041
+ autoSized.delete(col);
19042
+ }
19043
+ });
19044
+ hiddenColumns.forEach((col) => {
19045
+ // A width that differs from the last assigned one was set externally and must be preserved.
19046
+ const isAutoSized = autoSized.has(col) && autoSized.get(col) === col.width;
19047
+ if (isBlank(col.width) || isAutoSized) {
19048
+ // Prefer the remaining grid space so a shown column doesn't introduce
19049
+ // unnecessary horizontal scroll; otherwise fall back to its implicit
19050
+ // width, the resized column's pre-resize width, or its minimum width.
19051
+ const minWidth = col.minResizableWidth || 10;
19052
+ col.width = remainingWidth > 0 ?
19053
+ Math.max(remainingWidth, minWidth) :
19054
+ col.implicitWidth || this.column.resizeStartWidth || col.minResizableWidth;
19055
+ autoSized.set(col, col.width);
19035
19056
  }
19036
19057
  });
19037
- this.cdr.markForCheck(); //force CD cycle
19058
+ }
19059
+ remainingGridWidth() {
19060
+ const gridElement = this.ctx.grid?.wrapper?.nativeElement;
19061
+ if (!isDocumentAvailable() || !gridElement) {
19062
+ return 0;
19063
+ }
19064
+ const visibleColumns = this.columnInfoService.list().filter(col => !col.isColumnGroup && col.isVisible);
19065
+ const availableWidth = gridElement.clientWidth - this.ctx.grid.scrollbarWidth;
19066
+ return availableWidth - sumColumnWidths(visibleColumns);
19038
19067
  }
19039
19068
  updateWidthsOfResizedColumns(column, width) {
19040
19069
  let adjacentColumnNewWidth = column.resizeStartWidth + this.service.adjacentColumn.resizeStartWidth - width;
@@ -25205,8 +25234,8 @@ const packageMetadata = {
25205
25234
  productName: 'Kendo UI for Angular',
25206
25235
  productCode: 'KENDOUIANGULAR',
25207
25236
  productCodes: ['KENDOUIANGULAR'],
25208
- publishDate: 1791979034,
25209
- version: '25.4.0-develop.2',
25237
+ publishDate: 1792066427,
25238
+ version: '25.4.0-develop.3',
25210
25239
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
25211
25240
  };
25212
25241
 
package/index.d.ts CHANGED
@@ -3241,6 +3241,7 @@ declare class ColumnResizingService {
3241
3241
  draggedGroupColumn: ColumnGroupComponent;
3242
3242
  resizedColumns: Array<ColumnResizeArgs>;
3243
3243
  autoFitResize: boolean;
3244
+ autoSizedHiddenColumns: Map<ColumnBase, number>;
3244
3245
  private column;
3245
3246
  private tables;
3246
3247
  private batch;
@@ -11068,6 +11069,8 @@ declare class ColumnHandleDirective implements OnInit, OnDestroy {
11068
11069
  private resize;
11069
11070
  private sizeToFit;
11070
11071
  private updateWidth;
11072
+ private setHiddenColumnsWidth;
11073
+ private remainingGridWidth;
11071
11074
  private updateWidthsOfResizedColumns;
11072
11075
  private calcNewColumnWidth;
11073
11076
  private setAdjacentColumn;
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1791979034,
11
- "version": "25.4.0-develop.2",
10
+ "publishDate": 1792066427,
11
+ "version": "25.4.0-develop.3",
12
12
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
13
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-grid",
3
- "version": "25.4.0-develop.2",
3
+ "version": "25.4.0-develop.3",
4
4
  "description": "Kendo UI Grid for Angular - high performance data grid with paging, filtering, virtualization, CRUD, and more.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -101,7 +101,7 @@
101
101
  "package": {
102
102
  "productName": "Kendo UI for Angular",
103
103
  "productCode": "KENDOUIANGULAR",
104
- "publishDate": 1791979034,
104
+ "publishDate": 1792066427,
105
105
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
106
106
  }
107
107
  },
@@ -114,32 +114,32 @@
114
114
  "@progress/kendo-data-query": "^1.7.3",
115
115
  "@progress/kendo-drawing": "^1.25.0",
116
116
  "@progress/kendo-licensing": "^1.11.0",
117
- "@progress/kendo-angular-buttons": "25.4.0-develop.2",
118
- "@progress/kendo-angular-common": "25.4.0-develop.2",
119
- "@progress/kendo-angular-dateinputs": "25.4.0-develop.2",
120
- "@progress/kendo-angular-layout": "25.4.0-develop.2",
121
- "@progress/kendo-angular-navigation": "25.4.0-develop.2",
122
- "@progress/kendo-angular-dropdowns": "25.4.0-develop.2",
123
- "@progress/kendo-angular-excel-export": "25.4.0-develop.2",
124
- "@progress/kendo-angular-icons": "25.4.0-develop.2",
125
- "@progress/kendo-angular-indicators": "25.4.0-develop.2",
126
- "@progress/kendo-angular-inputs": "25.4.0-develop.2",
127
- "@progress/kendo-angular-conversational-ui": "25.4.0-develop.2",
128
- "@progress/kendo-angular-intl": "25.4.0-develop.2",
129
- "@progress/kendo-angular-l10n": "25.4.0-develop.2",
130
- "@progress/kendo-angular-label": "25.4.0-develop.2",
131
- "@progress/kendo-angular-menu": "25.4.0-develop.2",
132
- "@progress/kendo-angular-pager": "25.4.0-develop.2",
133
- "@progress/kendo-angular-pdf-export": "25.4.0-develop.2",
134
- "@progress/kendo-angular-popup": "25.4.0-develop.2",
135
- "@progress/kendo-angular-toolbar": "25.4.0-develop.2",
136
- "@progress/kendo-angular-upload": "25.4.0-develop.2",
137
- "@progress/kendo-angular-utils": "25.4.0-develop.2",
117
+ "@progress/kendo-angular-buttons": "25.4.0-develop.3",
118
+ "@progress/kendo-angular-common": "25.4.0-develop.3",
119
+ "@progress/kendo-angular-dateinputs": "25.4.0-develop.3",
120
+ "@progress/kendo-angular-layout": "25.4.0-develop.3",
121
+ "@progress/kendo-angular-navigation": "25.4.0-develop.3",
122
+ "@progress/kendo-angular-dropdowns": "25.4.0-develop.3",
123
+ "@progress/kendo-angular-excel-export": "25.4.0-develop.3",
124
+ "@progress/kendo-angular-icons": "25.4.0-develop.3",
125
+ "@progress/kendo-angular-indicators": "25.4.0-develop.3",
126
+ "@progress/kendo-angular-inputs": "25.4.0-develop.3",
127
+ "@progress/kendo-angular-conversational-ui": "25.4.0-develop.3",
128
+ "@progress/kendo-angular-intl": "25.4.0-develop.3",
129
+ "@progress/kendo-angular-l10n": "25.4.0-develop.3",
130
+ "@progress/kendo-angular-label": "25.4.0-develop.3",
131
+ "@progress/kendo-angular-menu": "25.4.0-develop.3",
132
+ "@progress/kendo-angular-pager": "25.4.0-develop.3",
133
+ "@progress/kendo-angular-pdf-export": "25.4.0-develop.3",
134
+ "@progress/kendo-angular-popup": "25.4.0-develop.3",
135
+ "@progress/kendo-angular-toolbar": "25.4.0-develop.3",
136
+ "@progress/kendo-angular-upload": "25.4.0-develop.3",
137
+ "@progress/kendo-angular-utils": "25.4.0-develop.3",
138
138
  "rxjs": "^6.5.3 || ^7.0.0"
139
139
  },
140
140
  "dependencies": {
141
141
  "tslib": "^2.3.1",
142
- "@progress/kendo-angular-schematics": "25.4.0-develop.2",
142
+ "@progress/kendo-angular-schematics": "25.4.0-develop.3",
143
143
  "@progress/kendo-common": "^1.0.1",
144
144
  "@progress/kendo-file-saver": "^1.0.0",
145
145
  "@progress/kendo-csv": "^1.0.0"
@@ -9,19 +9,19 @@ const schematics_1 = require("@angular-devkit/schematics");
9
9
  function default_1(options) {
10
10
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'GridModule', package: 'grid', peerDependencies: {
11
11
  // peer deps of the dropdowns
12
- '@progress/kendo-angular-treeview': '25.4.0-develop.2',
13
- '@progress/kendo-angular-navigation': '25.4.0-develop.2',
12
+ '@progress/kendo-angular-treeview': '25.4.0-develop.3',
13
+ '@progress/kendo-angular-navigation': '25.4.0-develop.3',
14
14
  // peer dependency of kendo-angular-inputs
15
- '@progress/kendo-angular-dialog': '25.4.0-develop.2',
15
+ '@progress/kendo-angular-dialog': '25.4.0-develop.3',
16
16
  // peer dependency of kendo-angular-icons
17
17
  '@progress/kendo-svg-icons': '^4.0.0',
18
18
  // peer dependency of kendo-angular-layout
19
- '@progress/kendo-angular-progressbar': '25.4.0-develop.2',
19
+ '@progress/kendo-angular-progressbar': '25.4.0-develop.3',
20
20
  // transitive peer dependencies from toolbar
21
- '@progress/kendo-angular-indicators': '25.4.0-develop.2',
21
+ '@progress/kendo-angular-indicators': '25.4.0-develop.3',
22
22
  // transitive peer dependencies from conversational-ui
23
- '@progress/kendo-angular-menu': '25.4.0-develop.2',
24
- '@progress/kendo-angular-upload': '25.4.0-develop.2'
23
+ '@progress/kendo-angular-menu': '25.4.0-develop.3',
24
+ '@progress/kendo-angular-upload': '25.4.0-develop.3'
25
25
  } });
26
26
  return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
27
27
  }