bug(mat-chip-option): selected CSS classes are not applied in a specific case
- Dominant language
- TypeScript
- Stars
- 25k
- Forks
- 6.8k
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 91
Description
### Is this a regression?
- [ ] Yes, this behavior used to work in the previous version
### The previous version in which this bug was not present was
_No response_
### Description
When the selected property changes, there is a case where the selected CSS classes are not applied.
I have an application where we have a list of selectable teams and the possibility to filter them by gender (male or female). By default the 1st team is selected. On this app, we also want the selected team to be changed to the first matching the current filter if the currently selected team does not match the filter.
To illustrate the bug and show that the property that is passed to the mat-chip-option is indeed updated I have also set the disabled attribute with the same property as selected to show that this one works properly.
### Reproduction
StackBlitz link: https://stackblitz.com/~/github.com/FabienCH/mat-chip-option-selected
- When changing the gender filter (unselect male) without changing the selected team, the selected CSS classes are applied to the selected team (team 1 female).
- When changing the selected team by clicking on an option the selected CSS classes are applied.
Steps to reproduce:
1. Change the selected team by clicking on an option (click on a male team for example)
2. Change the gender filter (unselect male) => the selected CSS classes are not applied
You can see that the selected property of the option is true and the disabled CCS classes are applied
### Expected Behavior
The selected CSS classes should be applied.
### Actual Behavior
The selected CSS classes are not applied.
### Environment
- Angular: 20.1
- CDK/Material: 20.1
Contributor guide
Research direction
Start by running the linked StackBlitz reproduction and inspect the mat-chip-option behavior when the selected team changes after filtering by gender. Compare the selected and disabled CSS classes during both reproduction steps; done means the selected CSS classes are applied when the selected property changes through filtering, as well as after clicking an option.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- angular, typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100