Angular Flow Wizard

Code repo here

The Angular Flow Wizard allows you to "program" your wizard like coding. Wizard steps are organized like commands, with block of steps that can be looped or conditioned (if-then). Step blocks can be nested to as many levels as you want to.

Example - Phone ordering wizard

You have finished the wizard!

Here is your order:
{{order.phones}}

Notice the "Next Step" button will be changed to "Finish" when the wizard detect there is no more step ahead.

This will happen when user choose to buy "0" phone, or buy 1 phone but do not choose to "Custom build" it, or this is really the last step.

On the other hand, even if last step is reached, but user did choose to buy more than 1 phone, then the button will say "Next Step" and clicking it will bring user to the next round of the loop, letting him order the second phone.