Fix#14986
This PR includes some refactoring to simplify the interaction
of the `NodeWorkflow` and the `BaseWorkflow` with the registry.
We were registering redundant `addPostTransform`s. Some of them in
the constructor of the `BaseWorkflow`, which did not allow us to
intercept `addUndefinedDefaults`.
Additionally, we were setting the `validateOptionsWithSchema` transform
multiple times unnecessarily.
An issue left to fix is support for the `--project` option in
schematic commands. Currently, `getProjectName` does not know about
this option, since `createWorkflow` does not know how to parse the
command line arguments. The parsing logic is implemented partially
by the concrete implementation of the `SchematicCommand` template
method.
* feat(@angular/cli): Added support for multiselect list prompt
* If multiselect option is true use the checkbox
inquirer prompt type, otherwise use list.
* feat(@angular-devkit/core): Added support for multiselect list prompt
* Added multiselect to PromptDefinition interface and usages
At the moment, only kebab case args works, and this might be misleading if you come from the Angular CLI. As for instance `--dryRun` will have no effect.
Fixes#12599
Usage:
```
$ schematics @schematics/angular: --list-schematics
$ schematics --list-schematics
```
When no colon is specified, it means that that you are passing a schematic name to be looked up in the default collection.
Closes#12220