/** Angular2 */
import * as ng from "@angular/core";
/** Core */
import { CoreComponent } from "cmf.core/src/core";
import { ModuleLoaderComponent } from 'cmf.core/src/domain/extensions/module.loader';
import { ModalViewInstance } from "../modalView/modalView";
import { WizardInvoker } from "./command/invoker";
/** Bags */
import { WizardBag } from "./wizardBag";
import { PageBag } from "../page/pageBag";
import { ResultEventArgs } from "../resultMessage/resultType";
/**
* Wizard component serves as the container for a sequential list of steps.
* Each step is represented by an instance of the {@link WizardStep} component.
*
* ## Example
*
* Assume this HTML Template
*
* ```html
*
*
*
*
*
*
*
*
*
* ```
*
* Next we have the component's class
*
* ```javascript
* @Core.Component(...)
* @Core.View(...)
*
* export class MyWizard extends CoreComponent {
*
* constructor(loader: ng.DynamicComponentLoader, element: ng.ElementRef) {
* super(loader, element);
* }
* }
*
* ```
*/
export declare class Wizard extends CoreComponent implements ng.OnInit, ng.AfterViewInit, ng.AfterViewChecked, ng.OnChanges {
private element;
private modalInstance;
private pageBag;
bag: WizardBag;
private wizardInvoker;
private _loader;
private _viewContainerRef;
/**
* The title of the wizard
*
* @property {string} mainTitle which is delegated to the header wizard component
*/
private mainTitle;
/**
* Deprecated title input
*/
title: string;
/**
* Title of the progress tab
*/
progressTabTitle: string;
/**
* The action-id of the wizard, which will be used as the context for validating each step. This is normally a string.
*
* @property {string} delegated to each step
*/
private actionId;
/**
* The action-name of the wizard. The last step of a wizard is normally the "finish" action.
Here we can tell the wizard the name of the final action.
*
* @property {string} used to describe the name of the last action, by default it will be Finish
*/
private actionName;
/**
* The cancel-name of the wizard.
* Here we can tell the wizard the name of the cancel action.
*
* @property {string} used to describe the name of the last action, by default it will be Finish
*/
private cancelName;
/**
* The init event, so the wizard can inform the upper components that it is initiating
*
* @property {ng.EventEmitter} init event
*/
private init;
/**
* The finish event, so the wizard can inform the upper components that it has finish. Normally the caller will take care of the rest.
*
* @property {ng.EventEmitter} finish event
*/
private finish;
/**
* The close event, so the wizard can inform when the user clicks the close button on the wizad
*
* @property {ng.EventEmitter} close event
*/
private close;
/**
* When a step is visited we delegate to a wizard client the possibility to override any wizard step state (hide/disable) .
*
* @property {ng.EventEmitter} init step event
*/
private activatestep;
/**
* Gets or sets the Wizard Icon
*/
private icon;
/**
* Wizard receiver
*/
private wizardReceiver;
/**
* the current control displayed in the detailsControl section
*/
private _currentDetailsComponent;
private _detailsRef;
private _resultsStepComponent;
private _progressStepComponent;
private stepCommentsQueryList;
private stepQueryList;
/**
* Wizard comments
*/
_comments: string;
/**
* Defines if the comments will appear in the wizard
*/
showComments: boolean;
/**
* Defines if success messages will appear
*/
showSuccessMessages: boolean;
/**
* Comments
*/
comments: string;
/**
* Defines if the comments will appear expanded
*/
commentsExpanded: boolean;
/**
* Defines if the comments are mandatory to be filled
*/
commentsRequired: boolean;
/**
* Defines if the wizard should refresh after close
*/
closeWithoutRefresh: boolean;
/**
* If there are messages for popover show it even if they're not of error type
*/
showPopOverForAllMsgTypes: boolean;
/**
* Comments update event
*/
commentsChange: ng.EventEmitter;
/**
* On wizard finish callback
*/
onWizardFinishCallback: (result: boolean) => void;
/**
* Signature enabled
*/
signatureEnabled: boolean;
/**
* @method constructor
*/
constructor(element: ng.ElementRef, modalInstance: ModalViewInstance, pageBag: PageBag, bag: WizardBag, wizardInvoker: WizardInvoker, _loader: ng.NgModuleFactoryLoader, _viewContainerRef: ng.ViewContainerRef);
private applyCustomization;
/**
* Will display the Results step and will analyze if the result should result in a wizard invalidation or not.
*/
private triggerResultsStep;
/**
* Will display the Progress step.
*/
triggerProgressStep(resultArgs: ResultEventArgs): void;
/**
* When the wizard Angular component is initiated, we place the title in the wizard bag and start the command pattern
*/
ngOnInit(): void;
/**
* On change method
* @param changes
*/
ngOnChanges(changes: ng.SimpleChanges): void;
/**
* When all the changes to the component and its children are performed - bootstrap wizard
*/
ngAfterViewInit(): void;
/**
* Start/Restart wizard
*/
startWizard(): void;
/**
* Required for manual inspecting flex components
*/
ngAfterViewChecked(): void;
/**
* Opens a modal to edit comments
*/
openCommentsModal(): void;
/**
* On comments change - notify parent component
* @param event
*/
onCommentsChange($event: any): void;
/**
* Evaluates the page bag context pre-conditions using the supplied to changes to the context
* @param changes Object containing the changes that should be considered on the context, such as {'instance': newInstance}
* so that the validation can use the new data
* @param finishWizardOnFail (Defaults to true) Finishes the wizard in case that any issue is found on the context evaluation
* @returns True if the evaluation was successful, or there was nothing to evaluate
*/
reEvaluateContextPreConditions(changes?: any, finishWizardOnFail?: boolean): Promise;
/**
* This method deals with the ending the wizard. It receives a CompleteWizardArgs object which will be used to determine
* if the results step is required. When there is an error or there are Result messages to show, the wizard will present a Results step.
* The wizard also allows configuring if, in case of error, the wizard is invalidated when the error is not recoverable or
allows navigation otherwise
*
* Client should know what commands to pipe, so it's better to have the chaining of commands in the wizard client
*/
completeWizard(resultArgs: ResultEventArgs): void;
/**
* Setup details component
* @param detailsComponent
*/
setDetailsControl(detailsComponent: ModuleLoaderComponent): void;
}