Skip to content

fix(grid): preserve Excel filter density with custom heights - #17729

Open
simeonoff wants to merge 3 commits into
masterfrom
simeonoff/fix-17589/master
Open

simeonoff wants to merge 3 commits into
masterfrom
simeonoff/fix-17589/master

Conversation

@simeonoff

Copy link
Copy Markdown
Member

Closes #17589

Description

Fix Excel-style filter menu density when minHeight or maxHeight is set.

  • Move sizable() to the .igx-excel-filter base class so sizing flags remain available regardless of custom height constraints.
  • Let the menu inherit --component-size from the host instead of redeclaring it.
  • Keep density-dependent default height limits in __sizing.
  • Add regression tests and update the Grid README.

Motivation / Context

Setting either height input removes the __sizing class, which previously also removed the sizing flags. Without a sizing ancestor—for example, in an external outlet—the menu fell back to large padding and gaps even when --ig-size selected small or medium density.

Initializing sizing on the host separates density from height constraints and preserves the existing custom-height behavior.

Type of Change (check all that apply):

  • Bug fix
  • New functionality
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Refactoring (no functional changes)
  • Documentation
  • Demos
  • CI/CD
  • Tests
  • Changelog
  • Skills/Agents

Component(s) / Area(s) Affected:

  • Grid Excel-style filtering (IgxGridExcelStyleFilteringComponent)
  • Shared Excel-style filter structural styles and density inheritance
  • Grid filtering UI tests and README

How Has This Been Tested?

  • Unit tests
  • Manual testing
  • Automated e2e tests

Added regression coverage for:

  • Small, medium, and large densities in an external outlet.
  • No custom bounds, minHeight only, maxHeight only, and both bounds.
  • Setting and clearing bounds while the menu is open, including restoration of default heights.
  • Runtime density changes on a standalone filter outside the grid.
  • Computed menu header/main padding and main-section gaps.

Test Configuration:

  • Angular version: 22.1.1 (installed test dependency)
  • Browser(s): Chrome Headless 154.0.0.0
  • OS: macOS 27.0.1

Checklist:

  • All relevant tags have been applied to this PR
  • This PR includes unit tests covering all the new code (test guidelines)
  • This PR includes API docs for newly added methods/properties (api docs guidelines) — N/A: no new public API.
  • This PR includes feature/README.MD updates for the feature docs
  • This PR includes general feature table updates in the root README.MD — N/A: no new feature.
  • This PR includes CHANGELOG.MD updates for newly added functionality — N/A: bug fix; released-version entries are unchanged.
  • This PR contains breaking changes
  • This PR includes ng update migrations for the breaking changes (migrations guidelines) — N/A: no breaking changes.
  • This PR includes behavioral changes and the feature specification has been updated with them — Restores expected density behavior; no specification update.
  • Accessibility (ARIA, keyboard navigation, focus management) has been verified — No accessibility behavior was changed; no separate accessibility audit was performed.

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.

Copilot review overview

🟢 Approval recommended

The targeted style fix is consistent with the component structure and has comprehensive regression coverage.

Review effort: Balanced
Findings: None

What changed in this PR

Fixes Excel-style filter density when custom height constraints are used.

Changes:

  • Moves sizing flags to the filter host.
  • Adds density and height regression coverage.
  • Documents sizing behavior.
File Description
grid-samples.spec.ts Adds the external-outlet test fixture.
grid-filtering-ui.spec.ts Tests densities, bounds, and runtime updates.
README.md Documents filter sizing behavior.
_base.scss Preserves sizing variables independently of height constraints.

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

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.

Excel-style filter ignores --ig-size when minHeight/maxHeight are set (22.1 regression)

3 participants