Skip to content

Commit 97cdc3e

Browse files
GridCore: make expand column header rowspan equal to header rows count (T1317623) (#32816)
1 parent 0020410 commit 97cdc3e

32 files changed

Lines changed: 414 additions & 253 deletions
Loading
Loading

e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/visual.ts

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,3 +314,73 @@ test('The grid layout should be correct after unfixing a column via the context
314314
{ dataField: 'State' },
315315
],
316316
}));
317+
318+
// T1317623
319+
test('Expand columns headers offsets should be correct with fixed band columns and fixed command columns (T1317623)', async (t) => {
320+
const dataGrid = new DataGrid(DATA_GRID_SELECTOR);
321+
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
322+
323+
await t.expect(dataGrid.isReady()).ok();
324+
325+
await testScreenshot(t, takeScreenshot, 'T1317623-expand-columns-with-band-columns.png', { element: dataGrid.element });
326+
327+
await dataGrid.scrollTo(t, { x: 5000 });
328+
329+
await testScreenshot(t, takeScreenshot, 'T1317623-horizontal-scroll-with-fixed-band-columns.png', { element: dataGrid.element });
330+
331+
await t
332+
.expect(compareResults.isValid())
333+
.ok(compareResults.errorMessages());
334+
}).before(async () => createWidget('dxDataGrid', {
335+
dataSource: [
336+
{
337+
ID: 1,
338+
CompanyName: 'Super Mart of the West',
339+
Address: '702 SW 8th Street',
340+
City: 'Bentonville',
341+
State: 'Arkansas',
342+
Zipcode: 72716,
343+
Phone: '(800) 555-2797',
344+
Fax: '(800) 555-2171',
345+
},
346+
{
347+
ID: 2,
348+
CompanyName: 'K&S Music',
349+
Address: '1000 Nicllet Mall',
350+
City: 'Minneapolis',
351+
State: 'Minnesota',
352+
Zipcode: 55403,
353+
Phone: '(612) 304-6073',
354+
Fax: '(612) 304-6074',
355+
},
356+
],
357+
keyExpr: 'ID',
358+
width: '100%',
359+
showBorders: true,
360+
columnWidth: 200,
361+
columnFixing: { enabled: true },
362+
selection: { mode: 'multiple' },
363+
grouping: { autoExpandAll: true },
364+
masterDetail: {
365+
enabled: true,
366+
},
367+
columns: [
368+
{
369+
caption: 'Company Info',
370+
fixed: true,
371+
fixedPosition: 'left',
372+
columns: [
373+
{ dataField: 'CompanyName', groupIndex: 1, showWhenGrouped: true },
374+
{ dataField: 'Phone' },
375+
{ dataField: 'Fax' },
376+
],
377+
},
378+
'City',
379+
{
380+
dataField: 'State',
381+
groupIndex: 0,
382+
},
383+
'Address',
384+
'Zipcode',
385+
],
386+
}));

packages/devextreme/js/__internal/grids/data_grid/keyboard_navigation/m_column_keyboard_navigation_mixin.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { isCommandKeyPressed } from '@js/common/core/events/utils';
22
import { isDefined } from '@js/core/utils/type';
3-
import type { Column } from '@ts/grids/grid_core/columns_controller/m_columns_controller';
3+
import type { Column } from '@ts/grids/grid_core/columns_controller/types';
44
import type { FocusedCellPosition } from '@ts/grids/grid_core/keyboard_navigation/const';
55
import { KEY_CODES } from '@ts/grids/grid_core/keyboard_navigation/const';
66
import type { ColumnKeyboardNavigationController } from '@ts/grids/grid_core/keyboard_navigation/m_column_keyboard_navigation_core';

packages/devextreme/js/__internal/grids/data_grid/keyboard_navigation/m_group_panel_keyboard_navigation.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
} from '@js/common/core/events/utils/index';
66
import $ from '@js/core/renderer';
77
import { hiddenFocus } from '@js/ui/shared/accessibility';
8-
import type { Column } from '@ts/grids/grid_core/columns_controller/m_columns_controller';
8+
import type { Column } from '@ts/grids/grid_core/columns_controller/types';
99
import { Direction } from '@ts/grids/grid_core/keyboard_navigation/const';
1010
import { ColumnKeyboardNavigationController } from '@ts/grids/grid_core/keyboard_navigation/m_column_keyboard_navigation_core';
1111
import type { Views } from '@ts/grids/grid_core/m_types';

packages/devextreme/js/__internal/grids/data_grid/keyboard_navigation/m_headers_keyboard_navigation.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { isCommandKeyPressed } from '@js/common/core/events/utils';
22
import $ from '@js/core/renderer';
33
import { isDefined } from '@js/core/utils/type';
4-
import type { Column } from '@ts/grids/grid_core/columns_controller/m_columns_controller';
4+
import type { Column } from '@ts/grids/grid_core/columns_controller/types';
55
import { KEY_CODES } from '@ts/grids/grid_core/keyboard_navigation/const';
66
import type { HeadersKeyboardNavigationController } from '@ts/grids/grid_core/keyboard_navigation/m_headers_keyboard_navigation';
77
import { headersKeyboardNavigationModule } from '@ts/grids/grid_core/keyboard_navigation/m_headers_keyboard_navigation';

packages/devextreme/js/__internal/grids/data_grid/summary/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { isDefined } from '@js/core/utils/type';
2-
import type { Column } from '@ts/grids/grid_core/columns_controller/m_columns_controller';
2+
import type { Column } from '@ts/grids/grid_core/columns_controller/types';
33

44
export function getSummaryCellIndex(
55
column: Column,

packages/devextreme/js/__internal/grids/grid_core/adaptivity/m_adaptivity.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@ import { getWidth } from '@js/core/utils/size';
1616
import { isDefined, isString } from '@js/core/utils/type';
1717
import Form from '@js/ui/form';
1818
import { isMaterial } from '@js/ui/themes';
19+
import type { Column } from '@ts/grids/grid_core/columns_controller/types';
1920
import type { ResizingController } from '@ts/grids/grid_core/views/m_grid_view';
2021

2122
import type { ExportController } from '../../data_grid/export/m_export';
2223
import { AI_COLUMN_NAME } from '../ai_column/const';
23-
import type { Column, ColumnsController } from '../columns_controller/m_columns_controller';
24+
import type { ColumnsController } from '../columns_controller/m_columns_controller';
2425
import type { ColumnsResizerViewController, DraggingHeaderViewController } from '../columns_resizing_reordering/m_columns_resizing_reordering';
2526
import type { DataController } from '../data_controller/m_data_controller';
2627
import type { EditingController } from '../editing/m_editing';

packages/devextreme/js/__internal/grids/grid_core/adaptivity/utils.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { isDefined } from '@js/core/utils/type';
2-
3-
import type { Column } from '../columns_controller/m_columns_controller';
2+
import type { Column } from '@ts/grids/grid_core/columns_controller/types';
43

54
const HIDEABLE_COMMAND_COLUMNS = ['ai'];
65

packages/devextreme/js/__internal/grids/grid_core/ai_column/controllers/m_ai_column_controller.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import type { DataChange } from '@js/common/grids';
22
import type { Callback } from '@js/core/utils/callbacks';
33
import { isDefined } from '@ts/core/utils/m_type';
4+
import type { Column } from '@ts/grids/grid_core/columns_controller/types';
45

5-
import type { Column, ColumnsController } from '../../columns_controller/m_columns_controller';
6+
import type { ColumnsController } from '../../columns_controller/m_columns_controller';
67
import type { DataController, HandleDataChangedArguments, UserData } from '../../data_controller/m_data_controller';
78
import { Controller } from '../../m_modules';
89
import gridCoreUtils from '../../m_utils';

0 commit comments

Comments
 (0)