Description
Bug, feature request, or proposal:
Bug
What is the expected behavior?
In a linear stepper, going to the next step should require that no components of the step are in invalid or pending states (i.e. all components are valid or disabled). Pending components (i.e. components with async validators pending) should block the step.
What is the current behavior?
Pending components do not block the step.
What are the steps to reproduce?
Example: http://plnkr.co/edit/aFMUy13jRinsHHudFltm?p=preview
The first step has a single input component, with two validators:
validators.required
(sync)- a custom async validator, validating that the input is not
bob
, but with a 2 seconds delay (to mock a remote check)
Type "bob", wait a few seconds for the check to complete, then try to go the second step. It will block: first step is required.
Change value to "". Then type "bob" again, but go the second step while validation is pending. The stepper is not blocked.
What is the use-case or motivation for changing an existing behavior?
In a linear stepper, validation is expected to be required.
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Angular 5.0.3, Material 5.0.0-rc1