Skip to content

Scrollable, ScrollView: remove the undocumented x/y alias from scrollTo and scrollBy - #35716

Merged
anna-shakhova merged 4 commits into
DevExpress:mainfrom
anna-shakhova:scrollto_tests_main
Oct 16, 2026
Merged

anna-shakhova merged 4 commits into
DevExpress:mainfrom
anna-shakhova:scrollto_tests_main

Conversation

@anna-shakhova

Copy link
Copy Markdown
Contributor

No description provided.

@anna-shakhova anna-shakhova self-assigned this Oct 15, 2026
@anna-shakhova
anna-shakhova marked this pull request as ready for review October 15, 2026 12:40
@anna-shakhova
anna-shakhova requested review from a team as code owners October 15, 2026 12:40
Copilot AI balanced review requested due to automatic review settings October 15, 2026 12:40
@anna-shakhova anna-shakhova changed the title PivotGrid: show the fake table again during virtual scrolling PivotGrid: remove the undocumented x/y alias from scrollTo and scrollBy Oct 15, 2026
@anna-shakhova anna-shakhova changed the title PivotGrid: remove the undocumented x/y alias from scrollTo and scrollBy Scrollable, ScrollView: remove the undocumented x/y alias from scrollTo and scrollBy Oct 15, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Removing shared x/y aliases silently breaks previously supported scrolling calls in existing applications.

1 open finding
What changed in this PR

Restores PivotGrid’s placeholder tables during virtual scrolling and standardizes scrolling coordinates across shared utilities and tests.

Changes:

  • Uses left/top to position PivotGrid placeholder tables.
  • Adds regression tests for visibility, positioning, and right-to-left layouts.
  • Migrates scrolling calls and removes shared x/y alias handling.
File Description
packages/​testcafe-models/​dataGrid/​index.ts Updates scroll helper parameter types.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets/​treeViewParts/​focusing.js Migrates focus-test scroll coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets/​tileView.tests.js Updates directional scroll properties.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets/​tileView.markup.tests.js Updates markup-test scroll properties.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets/​sortable.tests.js Migrates sortable scroll coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets/​scrollView.tests.js Migrates ScrollView test coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets/​scrollableParts/​scrollable.api.tests.js Removes coordinate-alias coverage.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.treeList/​virtualScrolling.integration.tests.js Migrates virtual-scroll coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.treeList/​treeList.tests.js Migrates TreeList scroll coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.scheduler/​virtual_scrolling.timeline.tests.js Updates timeline offsets and diagnostics.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.scheduler/​virtual_scrolling.monthView.tests.js Updates month-view offsets and diagnostics.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.scheduler/​virtual_scrolling.integration.tests.js Migrates virtual-scroll scenarios and diagnostics.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.scheduler/​integration.workSpace.tests.js Migrates workspace scroll coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.scheduler/​dragAndDropAppointments.tests.js Migrates appointment-dragging scroll coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.scheduler/​appointment.week.based.views.tests.js Migrates week-view scroll coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.scheduler/​appointment.editing.tests.js Migrates editing-test scroll coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.pivotGrid/​pivotGrid.tests.js Updates placeholder-table scrolling tests.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.pivotGrid/​fieldChooser.tests.js Migrates field-chooser scroll coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.dataGrid/​virtualScrolling.integration.tests.js Migrates virtual-scroll test coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.dataGrid/​selection.integration.tests.js Migrates selection-test scroll coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.dataGrid/​scrolling.integration.tests.js Migrates scrolling integration coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.dataGrid/​rowsView.tests.js Migrates rows-view scroll coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.dataGrid/​masterDetail.integration.tests.js Migrates master-detail scroll coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.dataGrid/​focus.tests.js Migrates focus-test scroll coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.dataGrid/​focus.integration.tests.js Migrates focus integration coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.dataGrid/​editing.tests.js Migrates editing-test scroll coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.dataGrid/​editing.integration.tests.js Migrates editing integration coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.dataGrid/​dataGrid.tests.js Migrates template-test scroll coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.dataGrid/​columnFixing.tests.js Migrates fixed-column scroll coordinates.
packages/​devextreme/​testing/​tests/​DevExpress.ui.widgets.dataGrid/​columnChooser.integration.tests.js Migrates chooser-test scroll coordinates.
packages/​devextreme/​js/​__internal/​ui/​scroll_view/​utils/​convert_location.ts Removes coordinate aliases from conversion.
packages/​devextreme/​js/​__internal/​ui/​scroll_view/​scrollable.ts Removes coordinate aliases from normalization.
packages/​devextreme/​js/​__internal/​grids/​pivot_grid/​headers_area/​m_headers_area.ts Corrects header placeholder positioning.
packages/​devextreme/​js/​__internal/​grids/​pivot_grid/​headers_area/​m_headers_area.test.ts Adds header placeholder regression tests.
packages/​devextreme/​js/​__internal/​grids/​pivot_grid/​data_area/​m_data_area.ts Corrects data placeholder positioning.
packages/​devextreme/​js/​__internal/​grids/​pivot_grid/​data_area/​m_data_area.test.ts Adds visibility and right-to-left regression tests.
e2e/​testcafe-devextreme/​tests/​scheduler/​helpers/​utils.ts Updates Scheduler scrolling helper.
e2e/​testcafe-devextreme/​tests/​dataGrid/​sticky/​fixed/​positions.ts Migrates fixed-position scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​sticky/​fixed/​bandColumnSecondCases.ts Migrates band-column scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​sticky/​fixed/​bandColumnFirstCases.ts Migrates band-column scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​sticky/​common/​withVirtualScrolling.ts Migrates virtual-scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​sticky/​common/​withVirtualColumns.ts Migrates virtual-column scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​sticky/​common/​withRowSelection.ts Migrates selection-test scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​sticky/​common/​withMasterDetail.ts Migrates master-detail scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​sticky/​common/​withGrouping.ts Migrates grouping-test scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​sticky/​common/​withFilterRow.ts Migrates filter-row scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​sticky/​common/​withEditing.ts Migrates editing-test scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​sticky/​common/​withBandColumns.ts Migrates band-column scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​sticky/​common/​withAdaptability.ts Migrates adaptive-layout scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​sticky/​common/​stickyColumns.ts Migrates sticky-column scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​sticky/​common/​stickyColumnResizing.ts Migrates resizing-test scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​sticky/​common/​stickyColumnReordering.ts Migrates reordering-test scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​virtualColumns/​visual.ts Migrates virtual-column visual tests.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​virtualColumns/​functional.ts Migrates virtual-column functional tests.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​validation/​validationPopup.ts Migrates validation-popup scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​scrolling.ts Migrates scrolling regression scenarios.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​rowDragging/​functional.ts Migrates row-dragging scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​pager.ts Migrates pager-test scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​masterDetail/​visual.ts Migrates master-detail visual tests.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​masterDetail/​functional.ts Migrates master-detail functional tests.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​keyboardNavigation/​virtualColumns.functional.ts Migrates virtual-column navigation coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​keyboardNavigation/​startEditing.functional.ts Migrates keyboard-editing scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​keyboardNavigation/​keyboardNavigation.visual.ts Migrates navigation visual-test coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​keyboardNavigation/​columnReordering.visual.ts Migrates keyboard-reordering scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​headerFilter/​headerFilter.ts Migrates header-filter scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​focus/​focusedRow/​focusedRow.ts Migrates focused-row scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​focus/​focus.ts Migrates focus-test scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​fixedColumns/​visual.ts Migrates fixed-column visual tests.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​filterRow/​visual.ts Migrates filter-row visual tests.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​editing/​visual.ts Updates editing-test scrolling helper.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​columnReordering/​functional.ts Migrates column-reordering scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​aiColumn/​virtualScrolling.functional.ts Migrates AI-column virtual-scroll coordinates.
e2e/​testcafe-devextreme/​tests/​dataGrid/​common/​aiColumn/​functional.ts Migrates AI-column scroll coordinates.
e2e/​testcafe-devextreme/​tests/​common/​treeList/​scrolling.ts Migrates TreeList scroll coordinates.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread packages/devextreme/js/__internal/ui/scroll_view/scrollable.ts
@anna-shakhova
anna-shakhova removed the request for review from a team October 15, 2026 13:44
x?: number;
y?: number;
}> | number): Partial<ScrollOffset> {
_normalizeLocation(location: Partial<ScrollOffset> | number): Partial<ScrollOffset> {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{ x, y } calls still compile because of number | any, but they no longer scroll - should we add a breaking-change line to the release notes?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

well, it is compiles only due to non-strict public type, docs specify its signature as { top, left }
https://js.devexpress.com/jQuery/Documentation/ApiReference/UI_Components/dxScrollView/Methods/#scrollTotargetLocation

fixing public type is out of scope of this task


const TABLE_OFFSET = 1000;
const CELL_SIZES = [100, 120, 300];
const POSITION_PAST_TABLE = TABLE_OFFSET + 520;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

520 is the sum of CELL_SIZES, right? Maybe compute it so it stays correct if the sizes change (same in m_data_area.test.ts)

Suggested change
const POSITION_PAST_TABLE = TABLE_OFFSET + 520;
const POSITION_PAST_TABLE = TABLE_OFFSET + CELL_SIZES.reduce((sum, size) => sum + size, 0);

@anna-shakhova
anna-shakhova added this pull request to the merge queue Oct 16, 2026
Merged via the queue into DevExpress:main with commit 3ee6cf6 Oct 16, 2026
195 of 196 checks passed
@anna-shakhova
anna-shakhova deleted the scrollto_tests_main branch October 16, 2026 09:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants