Вот мое решение, вдохновленное предложением @ dazzed.
В HTML я даю класс для mat-horizontal-stepper
из 'last-edited-step-'last-edited-step-' + stepper.selectedIndex
.
С точки зрения CSS, я динамически генерирую классы с помощью SASS для циклов, поэтому цикл ($i
) составляет от .last-edited-step-last-edited-step-1
до .last-edited-step-last-edited-step-42
(например, 42, то естьколичество шагов, конечно).Затем внутри каждого из них я снова зацикливаюсь ($j
) между первой и n-й строками, а затем присваиваю свойства (в моем случае, цвет зеленой границы).
stepper.component.html
<mat-horizontal-stepper #stepper [linear]="true" class="{{ 'last-edited-step-' + stepper.selectedIndex }}">
<mat-step>
</mat-step>
<mat-step>
</mat-step>
<mat-step>
</mat-step>
</mat-horizontal-stepper>
stepper.component.sass
/deep/ mat-horizontal-stepper
@for $i from 1 through 42
&.last-edited-step-#{$i}
@for $j from 1 through $i
.mat-stepper-horizontal-line:nth-of-type(#{$j})
border-color: #00c190 !important
Используя это, вместе с стилизацией нескольких других элементов (кружки, значки, пропорции линий) вы можете получить что-то вроде этого: