Skip to content

Renderer: typing getters, element-data keys, widget instances - #36011

Open
pharret31 wants to merge 6 commits into
DevExpress:mainfrom
pharret31:5385-renderer-typing-follow-ups-getters-element-data-keys-widget-instances
Open

pharret31 wants to merge 6 commits into
DevExpress:mainfrom
pharret31:5385-renderer-typing-follow-ups-getters-element-data-keys-widget-instances

Conversation

@pharret31

Copy link
Copy Markdown
Contributor

No description provided.

@pharret31 pharret31 self-assigned this Oct 28, 2026
@github-actions github-actions Bot added the .d.ts label Oct 28, 2026
@pharret31
pharret31 force-pushed the 5385-renderer-typing-follow-ups-getters-element-data-keys-widget-instances branch 2 times, most recently from 9ff8ebf to 6c7ebb2 Compare October 28, 2026 14:53
@pharret31 pharret31 changed the title 5385 renderer typing follow ups getters element data keys widget instances Renderer: typing getters, element-data keys, widget instances Oct 28, 2026
@pharret31
pharret31 force-pushed the 5385-renderer-typing-follow-ups-getters-element-data-keys-widget-instances branch from d6e7b90 to 9aa7617 Compare November 3, 2026 10:19
@pharret31
pharret31 marked this pull request as ready for review November 3, 2026 10:26
Copilot AI balanced review requested due to automatic review settings November 3, 2026 10:26
@pharret31
pharret31 requested review from a team as code owners November 3, 2026 10:26

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.

🔵 Needs a closer look

The new scroll getter overloads leave a stale @ts-expect-error that triggers TS2578 and reject previously supported explicit undefined arguments.

No open issues 🎉

What changed in this PR

This PR improves renderer and element-data typing across DevExtreme’s core utilities and UI components, replacing repeated casts and error suppressions with shared typed helpers.

Changes:

  • Adds renderer getter overloads and numeric scroll setters, with matching bundled declarations.
  • Introduces typed element-data keys and class-based widget lookup, then migrates component consumers.
  • Adds tests for typed data access and widget-instance lookup.
File Description
packages/​devextreme/​ts/​dx.all.d.ts Synchronizes bundled renderer declarations.
packages/​devextreme/​js/​core/​renderer.d.ts Adds getter and scroll setter overloads.
packages/​devextreme/​js/​__internal/​ui/​text_box/​utils.scroll.ts Uses typed getters and numeric conversion.
packages/​devextreme/​js/​__internal/​ui/​tag_box.ts Uses typed horizontal scrolling.
packages/​devextreme/​js/​__internal/​ui/​splitter/​utils/​component.ts Removes the local instance lookup helper.
packages/​devextreme/​js/​__internal/​ui/​splitter/​splitter.ts Adopts shared component lookup.
packages/​devextreme/​js/​__internal/​ui/​scroll_view/​scrollable.simulated.ts Uses typed scroll accessors.
packages/​devextreme/​js/​__internal/​ui/​popup/​popup.ts Explicitly converts tabindex values to numbers.
packages/​devextreme/​js/​__internal/​ui/​overlay/​utils.ts Uses a typed window scroll getter.
packages/​devextreme/​js/​__internal/​ui/​list/​list.base.ts Imports the shared list data key.
packages/​devextreme/​js/​__internal/​ui/​list/​constants.ts Defines the shared list data key.
packages/​devextreme/​js/​__internal/​ui/​form/​constants.ts Defines a typed form-item key.
packages/​devextreme/​js/​__internal/​ui/​form/​components/​field_item.ts Stores form items through typed access.
packages/​devextreme/​js/​__internal/​ui/​file_uploader/​file_uploader.ts Types the file-input property getter.
packages/​devextreme/​js/​__internal/​ui/​drop_down_editor/​drop_down_list.ts Reuses the shared list data key.
packages/​devextreme/​js/​__internal/​sortable.ts Uses typed scrolling and shared scrollable lookup.
packages/​devextreme/​js/​__internal/​scheduler/​constants.ts Types the appointment tooltip data key.
packages/​devextreme/​js/​__internal/​scheduler/​compact_appointments_helper.ts Reads tooltip data through the typed key.
packages/​devextreme/​js/​__internal/​scheduler/​appointment_drag_behavior.ts Uses shared typed appointment data access.
packages/​devextreme/​js/​__internal/​grids/​pivot_grid/​m_widget.ts Reads fields through the typed field key.
packages/​devextreme/​js/​__internal/​grids/​pivot_grid/​field_chooser/​m_field_chooser.ts Migrates field reads and writes.
packages/​devextreme/​js/​__internal/​grids/​pivot_grid/​field_chooser/​m_field_chooser_base.ts Uses typed field data throughout interactions.
packages/​devextreme/​js/​__internal/​grids/​pivot_grid/​field_chooser/​const.ts Defines the field type and data key.
packages/​devextreme/​js/​__internal/​grids/​new/​grid_core/​editing/​popup/​view.ts Looks up validators by class.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​views/​types.ts Makes prepared-row columns required.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​views/​rows_view.ts Uses typed row data for layout checks.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​views/​const.ts Defines the typed row-options key.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​views/​columns_view.ts Migrates row, form-item, and scroll access.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​validating/​m_validating.ts Uses typed row data and widget lookup.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​master_detail/​m_master_detail.ts Reads typed master-row options.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​keyboard_navigation/​keyboard_navigation.ts Reads typed focused-row options.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​filter_row/​m_filter_row.ts Looks up filter overlays by class.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​editing/​editing_form_based.ts Reads typed form-item data.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​data_controller/​utils/​row_changes.ts Narrows the row comparison input contract.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​context_menu/​context_menu.ts Uses typed context-menu row data.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​column_state_mixin/​types.ts Removes the redundant indicator-row type.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​column_state_mixin/​column_state_mixin.ts Reuses typed row options for indicators.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​adaptivity/​extenders/​adaptivity_rows_view.ts Uses typed adaptive form-item access.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​adaptivity/​extenders/​adaptivity_editing_view_controller.ts Reads typed form data when closing edits.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​adaptivity/​adaptivity.ts Uses typed form-item lookup.
packages/​devextreme/​js/​__internal/​draggable.ts Shares scrollable lookup and types scroll reads.
packages/​devextreme/​js/​__internal/​core/​utils/​public_component.ts Adds nullable class-based instance lookup.
packages/​devextreme/​js/​__internal/​core/​utils/​dom.ts Uses typed HTML getters.
packages/​devextreme/​js/​__internal/​core/​utils/​__tests__/​public_component.test.ts Tests instance lookup and registered names.
packages/​devextreme/​js/​__internal/​core/​element_data.ts Adds typed keys and data access helpers.
packages/​devextreme/​js/​__internal/​core/​__tests__/​element_data.test.ts Tests storage sharing, empty targets, and typing.
packages/​devextreme/​js/​__internal/​common/​core/​animation/​position.ts Uses typed window scroll values.
packages/​devextreme/​js/​__internal/​common/​core/​animation/​fx.ts Uses typed scroll getters in positioning.

Review effort: Balanced

@pharret31
pharret31 force-pushed the 5385-renderer-typing-follow-ups-getters-element-data-keys-widget-instances branch from 9aa7617 to ea454b5 Compare November 5, 2026 10:15
Copilot AI balanced review requested due to automatic review settings November 5, 2026 10:15

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.

🟢 Approval recommended

No active review issues remain for the renderer typing and shared typed-helper changes.

No open issues 🎉

Review effort: Balanced

@pharret31
pharret31 force-pushed the 5385-renderer-typing-follow-ups-getters-element-data-keys-widget-instances branch from ea454b5 to 47b0cf5 Compare November 5, 2026 10:44
Copilot AI balanced review requested due to automatic review settings November 5, 2026 10:44

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.

🟢 Approval recommended

No active review issues are reported for the renderer typing and typed data-access changes.

No open issues 🎉

Review effort: Balanced

@pharret31
pharret31 force-pushed the 5385-renderer-typing-follow-ups-getters-element-data-keys-widget-instances branch from 47b0cf5 to 8d8fe81 Compare November 5, 2026 14:24
Copilot AI balanced review requested due to automatic review settings November 5, 2026 14:24

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.

🟢 Approval recommended

No active review issues remain for the renderer typing, typed data access, and component-lookup changes.

No open issues 🎉

Review effort: Balanced

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants