Feature: #73429 - Wizard component has been added
See forge#73429
Description
A new wizard component has been added. This component may be used for user-guided interactions.
The RequireJS module can be used by including TYPO3/.
The wizard supports straight forward actions only, junctions are not possible yet.
Impact
The wizard component has the following public methods:
addSlide (identifier, title, content, severity, callback) addFinal Processing Slide (callback) set(key, value) show() dismiss() getComponent () lockNext Step () unlockNext Step () 
addSlide
Adds a slide to the wizard.
| Name | DataType | Mandatory | Description | 
|---|---|---|---|
| identifier | string | Yes | The internal identifier of the slide | 
| title | string | Yes | The title of the slide | 
| content | string | Yes | The content of the slide | 
| severity | int | Represents the severity of a slide. Please see TYPO3.Severity. Default is TYPO3.. |     |
| callback | function | Callback method run after the slide appeared. The callback receives two parameters:
$slide: The current slide as a jQuery object
settings: The settings defined via 
        Wizard. |     
addFinalProcessingSlide
Adds a slide to the wizard containing a spinner. This should always be the latest slide. This method returns a Promise
object due to internal handling. This means you have to add a 
        done callback containing 
        Wizard. and
        Wizard. please see the example below.
| Name | DataType | Mandatory | Description | 
|---|---|---|---|
| callback | function | Callback method run after the slide appeared. If no callback method is given, the wizard dismisses without any further action. | 
Example code:
Wizard.addFinalProcessingSlide().done(function() {
    Wizard.show();
    Wizard.getComponent().on('click', '.my-element', function(e) {
        e.preventDefault();
        $(this).doSomething();
    });
});
    set
Adds values to the internal settings stack usable in other slides.
| Name | DataType | Mandatory | Description | 
|---|---|---|---|
| key | string | Yes | The key of the setting | 
| value | string | Yes | The value of the setting | 
Events
The event wizard- is fired when the wizard rendering has finished.
Example code:
Wizard.getComponent().on('wizard-visible', function() {
    Wizard.unlockNextButton();
});
    Wizards can be closed by firing the wizard- event.
Example code:
Wizard.getComponent().trigger('wizard-dismiss');
    Wizards fire the wizard- event if the wizard is closed. You can integrate your own listener by using 
        Wizard..
Example code:
Wizard.getComponent().on('wizard-dismissed', function() {
    // Calculate the answer of life the universe and everything
});