Skip to content

Commit 1f0103a

Browse files
authored
fix(regression): Grid Presets should preserve resize by content column widths (#2611)
1 parent 968e643 commit 1f0103a

3 files changed

Lines changed: 18 additions & 3 deletions

File tree

packages/common/src/services/__tests__/gridState.service.spec.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,13 +250,15 @@ describe('GridStateService', () => {
250250
headerCssClass: 'blue',
251251
id: 'field2',
252252
hidden: false,
253+
originalWidth: 150,
253254
width: 150,
254255
},
255256
{
256257
cssClass: 'red',
257258
field: 'field1',
258259
hidden: false,
259260
id: 'field1',
261+
originalWidth: 100,
260262
width: 100,
261263
},
262264
{
@@ -266,8 +268,8 @@ describe('GridStateService', () => {
266268
},
267269
] as Column[];
268270
presetColumnsMock = [
269-
{ columnId: 'field2', width: 150, headerCssClass: 'blue' },
270-
{ columnId: 'field1', width: 100, cssClass: 'red' },
271+
{ columnId: 'field2', originalWidth: 150, width: 150, headerCssClass: 'blue' },
272+
{ columnId: 'field1', originalWidth: 100, width: 100, cssClass: 'red' },
271273
{ columnId: 'field3' },
272274
] as CurrentColumn[];
273275
});
@@ -381,6 +383,7 @@ describe('GridStateService', () => {
381383
headerCssClass: 'blue',
382384
id: 'field2',
383385
hidden: false,
386+
originalWidth: 150,
384387
width: 150,
385388
},
386389
{
@@ -389,6 +392,7 @@ describe('GridStateService', () => {
389392
hidden: false,
390393
headerCssClass: undefined,
391394
id: 'field1',
395+
originalWidth: 100,
392396
width: 100,
393397
},
394398
{
@@ -397,6 +401,7 @@ describe('GridStateService', () => {
397401
hidden: false,
398402
headerCssClass: undefined,
399403
id: 'field3',
404+
originalWidth: undefined,
400405
width: undefined,
401406
},
402407
]);

packages/common/src/services/__tests__/utilities.spec.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1562,7 +1562,16 @@ describe('Service/Utilies', () => {
15621562
]);
15631563

15641564
expect(results).toEqual([
1565-
{ field: 'firstName', hidden: false, id: 'firstName', name: 'First Name', width: 250, cssClass: 'preset-class', headerCssClass: 'header-preset' },
1565+
{
1566+
field: 'firstName',
1567+
hidden: false,
1568+
id: 'firstName',
1569+
name: 'First Name',
1570+
originalWidth: 250,
1571+
width: 250,
1572+
cssClass: 'preset-class',
1573+
headerCssClass: 'header-preset',
1574+
},
15661575
{ field: 'lastName', hidden: false, id: 'lastName', name: 'Last Name', width: 620 },
15671576
{ field: 'age', hidden: true, id: 'age', name: 'age', width: 192 },
15681577
]);

packages/common/src/services/utilities.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -764,6 +764,7 @@ export function sortPresetColumns<T = any>(allColumns: Column<T>[], presetColumn
764764
cssClass: presetColumn.cssClass ?? column.cssClass,
765765
headerCssClass: presetColumn.headerCssClass ?? column.headerCssClass,
766766
width: presetColumn.width ?? column.width,
767+
originalWidth: presetColumn.width,
767768
}),
768769
hidden: !presetColumnMap.has(column.id) || (presetColumns.find((c) => c.id === column.id)?.hidden ?? false),
769770
_originalIndex: originalIndex,

0 commit comments

Comments
 (0)