Skip to content

Commit d35ee75

Browse files
authored
PivotGrid: fix data area width for virtual scrolling (T1290313) (#30321)
Co-authored-by: Vladimir Bushmanov <vladimir.bushmanov@devexpress.com>
1 parent 4a4d8af commit d35ee75

6 files changed

+57
-3
lines changed
13.7 KB
Loading
14.2 KB
Loading
19.2 KB
Loading
19.7 KB
Loading

e2e/testcafe-devextreme/tests/pivotGrid/scrolling.ts

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { createScreenshotsComparer } from 'devextreme-screenshot-comparer';
22
import PivotGrid from 'devextreme-testcafe-models/pivotGrid';
3-
import { insertStylesheetRulesToPage } from '../../helpers/domUtils';
3+
import { insertStylesheetRulesToPage, removeStylesheetRulesFromPage } from '../../helpers/domUtils';
44
import { isMaterialBased, testScreenshot } from '../../helpers/themeUtils';
55
import url from '../../helpers/getPageUrl';
66
import { createWidget } from '../../helpers/createWidget';
@@ -139,6 +139,54 @@ testFixture()`PivotGrid_scrolling`
139139
});
140140
});
141141

142+
generateOptionMatrix({
143+
height: [450, 350],
144+
useNative: [false, true],
145+
}).forEach(({ height, useNative }) => {
146+
test(`Rows content dont hide under vertical scrollbar when scrolling{useNative=${useNative}},height=100% (${height}px) (T1290313)`, async (t) => {
147+
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
148+
await testScreenshot(
149+
t,
150+
takeScreenshot,
151+
`PivotGrid rows content height=100%(${height}px),useNative=${useNative}.png`,
152+
{ element: '#container' },
153+
);
154+
await t
155+
.expect(compareResults.isValid())
156+
.ok(compareResults.errorMessages());
157+
}).before(async () => {
158+
await insertStylesheetRulesToPage(`#parentContainer { height: ${height}px; }`);
159+
160+
return createWidget('dxPivotGrid', {
161+
height: '100%',
162+
showBorders: true,
163+
scrolling: {
164+
useNative,
165+
mode: 'standard',
166+
},
167+
dataSource: {
168+
fields: [{
169+
dataField: 'rowField',
170+
area: 'row',
171+
}, {
172+
dataField: 'dataField',
173+
area: 'data',
174+
}, {
175+
dataField: 'dataField',
176+
area: 'data',
177+
}],
178+
store: Array.from({ length: 9 }).map((_, id) => ({
179+
id,
180+
rowField: id > 7 ? 'row '.repeat(id) : `row ${id}`,
181+
dataField: 47,
182+
})),
183+
},
184+
});
185+
}).after(async () => {
186+
await removeStylesheetRulesFromPage();
187+
});
188+
});
189+
142190
generateOptionMatrix({
143191
rtlEnabled: [false, true],
144192
nativeScrolling: [false, true],

packages/devextreme/js/__internal/grids/pivot_grid/m_widget.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1249,6 +1249,7 @@ const PivotGrid = (Widget as any).inherit({
12491249
const descriptionCellHeight = getOuterHeight(descriptionCell[0], true)
12501250
+ (needSynchronizeFieldPanel ? rowHeights[0] : 0);
12511251

1252+
const dataAreaHeadHeight = getHeight(that._dataArea.headElement());
12521253
let filterAreaHeight = 0;
12531254
let dataAreaHeight = 0;
12541255
if (that._hasHeight) {
@@ -1262,7 +1263,7 @@ const PivotGrid = (Widget as any).inherit({
12621263
that.$element(),
12631264
) - filterAreaHeight - dataHeaderHeight
12641265
- (Math.max(
1265-
getHeight(that._dataArea.headElement()),
1266+
dataAreaHeadHeight,
12661267
getHeight(columnAreaCell),
12671268
descriptionCellHeight,
12681269
)
@@ -1271,7 +1272,12 @@ const PivotGrid = (Widget as any).inherit({
12711272
}
12721273

12731274
const scrollBarWidth = that._dataArea.getScrollbarWidth();
1274-
const correctDataTableHeight = getHeight(that._dataArea.tableElement()) - getHeight(that._dataArea.headElement());
1275+
const rowsAreaTableHeight = getHeight(that._rowsArea.tableElement());
1276+
const dataAreaTableHeight = getHeight(that._dataArea.tableElement());
1277+
const correctDataTableHeight = Math.max(
1278+
rowsAreaTableHeight,
1279+
dataAreaTableHeight - dataAreaHeadHeight,
1280+
);
12751281
const hasVerticalScrollbar = calculateHasScroll(dataAreaHeight, correctDataTableHeight);
12761282

12771283
that._dataArea.tableElement().css({

0 commit comments

Comments
 (0)