Skip to content

fix(ESF): move custom dialog out of ESF markup#17136

Merged
damyanpetev merged 15 commits intomasterfrom
mvenkov/move-esf-dialog-out-of-dropdown
Apr 2, 2026
Merged

fix(ESF): move custom dialog out of ESF markup#17136
damyanpetev merged 15 commits intomasterfrom
mvenkov/move-esf-dialog-out-of-dropdown

Conversation

@wnvko
Copy link
Copy Markdown
Contributor

@wnvko wnvko commented Mar 31, 2026

Right now the custom dialog shown in ESF is a child element of the excel-style-conditional-filter component. When custom dialog is shown its parent is closed. This makes the parent of the dialog invisible, marked with display: none. This effectively hides and the dialog. To fix this custom dialog is now removed from excel-style-conditional-filter component. Custom dialog is shown directly via overlay service and is provided as component.

Next step will be to remove the grid outlet used to show the custom dialog in the grid as this will not be needed anymore.

Closes #17039

Additional information (check all that apply):

  • Bug fix
  • New functionality
  • Documentation
  • Demos
  • CI/CD

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)
  • This PR includes feature/README.MD updates for the feature docs
  • This PR includes general feature table updates in the root README.MD
  • This PR includes CHANGELOG.MD updates for newly added functionality
  • This PR contains breaking changes
  • This PR includes ng update migrations for the breaking changes (migrations guidelines)
  • This PR includes behavioral changes and the feature specification has been updated with them

@wnvko wnvko added 🛠️ status: in-development Issues and PRs with active development on them and removed ❌ status: awaiting-test PRs awaiting manual verification labels Mar 31, 2026
@wnvko wnvko added ❌ status: awaiting-test PRs awaiting manual verification version: 21.2.x and removed 🛠️ status: in-development Issues and PRs with active development on them version: 21.1.x labels Mar 31, 2026
@dkamburov dkamburov self-assigned this Mar 31, 2026
Comment on lines 163 to +167
if (this.esf.overlayComponentId) {
this.esf.hide();
}
this.subMenu.close();
this.customDialog.open(this.esf.mainDropdown.nativeElement);
this._overlayService.show(overlayId);
Copy link
Copy Markdown
Member

@damyanpetev damyanpetev Mar 31, 2026

Choose a reason for hiding this comment

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

I know this PR merely moves things around to remove the outlet usage, but this component can really use some refactoring where the onSubMenuSelection is emitted upwards for the root ESF component to handle, close itself and spawn the dialog. And possibly some actual dialog and/or dialog ARIA would be nice. Just 2c

damyanpetev
damyanpetev previously approved these changes Mar 31, 2026
@skrustev skrustev added 💥 status: in-test PRs currently being tested and removed ❌ status: awaiting-test PRs awaiting manual verification labels Apr 1, 2026
Copilot AI review requested due to automatic review settings April 1, 2026 12:13
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR addresses an Excel Style Filtering (ESF) rendering issue where the custom filter dialog could become hidden when its parent ESF component is closed (parent becomes display: none). The fix moves the custom dialog out of the igx-excel-style-conditional-filter markup and shows it via IgxOverlayService.

Changes:

  • Remove <igx-excel-style-custom-dialog> from excel-style-conditional-filter template and create/show it dynamically through IgxOverlayService.
  • Refactor the custom dialog component to no longer rely on IgxToggleDirective for open/close lifecycle.
  • Update affected grid filtering UI tests and helper utilities to match the new overlay behavior.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
projects/igniteui-angular/test-utils/grid-functions.spec.ts Adjusts operator dropdown indexing used by ESF-related test helpers.
projects/igniteui-angular/grids/grid/src/grid-filtering-ui.spec.ts Updates ESF size-related tests to align with the new custom dialog hosting/overlay behavior.
projects/igniteui-angular/grids/core/src/filtering/excel-style/excel-style-custom-dialog.component.ts Removes toggle-based overlay setup and switches to overlay-service-driven close behavior (incl. detach).
projects/igniteui-angular/grids/core/src/filtering/excel-style/excel-style-custom-dialog.component.html Removes igxToggle host/event bindings from the dialog root element.
projects/igniteui-angular/grids/core/src/filtering/excel-style/excel-style-conditional-filter.component.ts Dynamically attaches/initializes the custom dialog via IgxOverlayService instead of using a child component reference.
projects/igniteui-angular/grids/core/src/filtering/excel-style/excel-style-conditional-filter.component.html Removes the embedded custom dialog element from the component template.

damyanpetev
damyanpetev previously approved these changes Apr 1, 2026
@skrustev
Copy link
Copy Markdown
Member

skrustev commented Apr 2, 2026

There's seems to be an new issue I am not sure if related, but with this approach the dialog shows out of bounds if the page is scrolled up and the dialog doesn't stick to the grid anymore. I used the gridEsfLoadOnDemand sample for the example:
Old dialog:
dialog_old
New dialog:
dialog_new

@wnvko
Copy link
Copy Markdown
Contributor Author

wnvko commented Apr 2, 2026

There's seems to be an new issue I am not sure if related, but with this approach the dialog shows out of bounds if the page is scrolled up and the dialog doesn't stick to the grid anymore. I used the gridEsfLoadOnDemand sample for the

Positioning is reverted back to AutoPositionStrategy and this should be fixed now.

Note: it will be nice if ESF custom dialog is dragable as advanced filtering dialog is, but this is a feature request

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.

…/excel-style-custom-dialog.component.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 4 comments.

@skrustev skrustev added ✅ status: verified Applies to PRs that have passed manual verification and removed 💥 status: in-test PRs currently being tested labels Apr 2, 2026
Copy link
Copy Markdown
Member

@damyanpetev damyanpetev left a comment

Choose a reason for hiding this comment

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

Still find it a bit odd if the condition item attaches and holds the positioning setup, but the dialog detaches itself (which is fine, since there's no external close control to begin with). Like I said in a previous comment, the ESF dialog looks ripe for some rework, so this can go in like that and should be given a once over when possible.

@damyanpetev damyanpetev merged commit 2b5cc7a into master Apr 2, 2026
6 checks passed
@damyanpetev damyanpetev deleted the mvenkov/move-esf-dialog-out-of-dropdown branch April 2, 2026 17:15
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.

Do not use overlay outlet internally

5 participants