angular / angular/components

bug(MatStepper): MatStep’s `completed` should be a 2 way binding

Open
#20,215 9 comments 0 reactions 0 assignees View on GitHub
area: material/stepper feature G needs: discussion P3
Dominant language
TypeScript
Stars
25k
Forks
6.8k
Avg merge
1d 8h
Merged PRs (30d)
91

Description

#### Reproduction

https://stackblitz.com/edit/angular-zxzjbv

Steps to reproduce:
The goal is to load a stepper, where some steps are (conditionally) pre-completed.

For example: Step2: Complete, Step3: Not Complete

1. Create a stepper, with multiple steps. Each step has a "completed" binding to a variable.
2. Set some of these bindings to true, and others to false.
3. “Walk” to step 2, step 3, then back to step 2 and step 1.

#### Expected Behavior

Step 3 should now be complete.

#### Actual Behavior

Step 3 is not complete, and is hard locked into a completed=false state.

#### Requests

Each step should have a `(completed)` output even. For 2 reasons:

1. We can have a 2 way binding with initial state. Eg:

```

Contributor guide

Open the contributing guide

Research direction

Start with the linked StackBlitz reproduction and inspect the MatStepper and MatStep component entry points in the Angular Material source. Reproduce the conditional completion behavior, then trace how the completed binding is handled when navigating between steps. Done means completion can be initialized and observed through the requested binding without the visible reset described in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular, typescript
Domain
frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.