{"version":3,"file":"y3krulez-angular-archwizard.mjs","sources":["../../src/lib/directives/wizard-step-symbol.directive.ts","../../src/lib/directives/wizard-step-title.directive.ts","../../src/lib/util/wizard-step.interface.ts","../../src/lib/util/wizard-completion-step.interface.ts","../../src/lib/components/wizard-completion-step.component.ts","../../src/lib/components/wizard-completion-step.component.html","../../src/lib/navigation/wizard.interface.ts","../../src/lib/util/step-id.interface.ts","../../src/lib/util/step-index.interface.ts","../../src/lib/util/step-offset.interface.ts","../../src/lib/directives/go-to-step.directive.ts","../../src/lib/components/wizard-navigation-bar.component.ts","../../src/lib/components/wizard-navigation-bar.component.html","../../src/lib/components/wizard-step.component.ts","../../src/lib/components/wizard-step.component.html","../../src/lib/util/moving-direction.enum.ts","../../src/lib/navigation/base-navigation-mode.interface.ts","../../src/lib/navigation/configurable-navigation-mode.ts","../../src/lib/components/wizard.component.ts","../../src/lib/components/wizard.component.html","../../src/lib/directives/enable-back-links.directive.ts","../../src/lib/directives/next-step.directive.ts","../../src/lib/directives/optional-step.directive.ts","../../src/lib/directives/previous-step.directive.ts","../../src/lib/directives/reset-wizard.directive.ts","../../src/lib/directives/selected-step.directive.ts","../../src/lib/directives/wizard-completion-step.directive.ts","../../src/lib/directives/wizard-step.directive.ts","../../src/lib/directives/navigation-mode.directive.ts","../../src/lib/directives/completed-step.directive.ts","../../src/lib/archwizard.module.ts","../../src/index.ts","../../src/y3krulez-angular-archwizard.ts"],"sourcesContent":["import {Directive, TemplateRef} from '@angular/core';\r\n\r\n/**\r\n * The `awWizardStepSymbol` directive can be used as an alternative to the `navigationSymbol` input of a [[WizardStep]]\r\n * to define the step symbol inside the navigation bar.  This way step symbol may contain arbitrary content.\r\n *\r\n * ### Syntax\r\n *\r\n * ```html\r\n * <ng-template awWizardStepSymbol>\r\n *     ...\r\n * </ng-template>\r\n * ```\r\n */\r\n@Directive({\r\n  selector: 'ng-template[awStepSymbol], ng-template[awWizardStepSymbol]'\r\n})\r\nexport class WizardStepSymbolDirective {\r\n  /**\r\n   * Constructor\r\n   *\r\n   * @param templateRef A reference to the content of the `ng-template` that contains this [[WizardStepSymbolDirective]]\r\n   */\r\n  constructor(public templateRef: TemplateRef<any>) {\r\n  }\r\n}\r\n","import {Directive, TemplateRef} from '@angular/core';\r\n\r\n/**\r\n * The `awWizardStepTitle` directive can be used as an alternative to the `stepTitle` input of a [[WizardStep]]\r\n * to define the content of a step title inside the navigation bar.\r\n * This step title can be freely created and can contain more than only plain text\r\n *\r\n * ### Syntax\r\n *\r\n * ```html\r\n * <ng-template awWizardStepTitle>\r\n *     ...\r\n * </ng-template>\r\n * ```\r\n *\r\n * @author Marc Arndt\r\n */\r\n@Directive({\r\n  selector: 'ng-template[awStepTitle], ng-template[awWizardStepTitle]'\r\n})\r\nexport class WizardStepTitleDirective {\r\n  /**\r\n   * Constructor\r\n   *\r\n   * @param templateRef A reference to the content of the `ng-template` that contains this [[WizardStepTitleDirective]]\r\n   */\r\n  constructor(public templateRef: TemplateRef<any>) {\r\n  }\r\n}\r\n","import { ContentChild, EventEmitter, HostBinding, Input, Output, Directive } from '@angular/core';\r\nimport {WizardStepSymbolDirective} from '../directives/wizard-step-symbol.directive';\r\nimport {WizardStepTitleDirective} from '../directives/wizard-step-title.directive';\r\nimport {MovingDirection} from './moving-direction.enum';\r\nimport {NavigationSymbol} from './navigation-symbol.interface';\r\n\r\n/**\r\n * Basic functionality every type of wizard step needs to provide\r\n *\r\n * @author Marc Arndt\r\n */\r\n@Directive()\r\n/* tslint:disable-next-line directive-class-suffix */\r\nexport abstract class WizardStep {\r\n  /**\r\n   * A step title property, which contains the visible header title of the step.\r\n   * This title is then shown inside the navigation bar.\r\n   * Compared to `stepTitle` this property can contain any html content and not only plain text\r\n   */\r\n  @ContentChild(WizardStepTitleDirective)\r\n  public stepTitleTemplate: WizardStepTitleDirective;\r\n\r\n  /**\r\n   * A step symbol property that, if defined, overrides `navigationSymbol`.\r\n   * Allows to display arbitrary content as a step symbol instead of plain text.\r\n   */\r\n  @ContentChild(WizardStepSymbolDirective)\r\n  public stepSymbolTemplate: WizardStepSymbolDirective;\r\n\r\n  /**\r\n   * A step id, unique to the step\r\n   */\r\n  @Input()\r\n  public stepId: string;\r\n\r\n  /**\r\n   * A step title property, which contains the visible header title of the step.\r\n   * This title is only shown inside the navigation bar, if `stepTitleTemplate` is not defined or null.\r\n   */\r\n  @Input()\r\n  public stepTitle: string;\r\n\r\n  /**\r\n   * A symbol property, which contains an optional symbol for the step inside the navigation bar.\r\n   * Takes effect when `stepSymbolTemplate` is not defined or null.\r\n   */\r\n  @Input()\r\n  public navigationSymbol: NavigationSymbol = {symbol: ''};\r\n\r\n  /**\r\n   * A boolean describing if the wizard step is currently selected\r\n   */\r\n  public selected = false;\r\n\r\n  /**\r\n   * A boolean describing if the wizard step has been completed\r\n   */\r\n  public completed = false;\r\n\r\n  /**\r\n   * A boolean describing if the wizard step is shown as completed when the wizard is presented to the user\r\n   *\r\n   * Users will typically use `CompletedStepDirective` to set this flag\r\n   */\r\n  public initiallyCompleted = false;\r\n\r\n  /**\r\n   * A boolean describing if the wizard step is being edited after being competed\r\n   *\r\n   * This flag can only be true when `selected` is true.\r\n   */\r\n  public editing = false;\r\n\r\n  /**\r\n   * A boolean describing, if the wizard step should be selected by default, i.e. after the wizard has been initialized as the initial step\r\n   */\r\n  public defaultSelected = false;\r\n\r\n  /**\r\n   * A boolean describing if the wizard step is an optional step\r\n   */\r\n  public optional = false;\r\n\r\n  /**\r\n   * A function or boolean deciding, if this step can be entered\r\n   */\r\n  @Input()\r\n  public canEnter: ((direction: MovingDirection) => boolean) | ((direction: MovingDirection) => Promise<boolean>) | boolean = true;\r\n\r\n  /**\r\n   * A function or boolean deciding, if this step can be exited\r\n   */\r\n  @Input()\r\n  public canExit: ((direction: MovingDirection) => boolean) | ((direction: MovingDirection) => Promise<boolean>) | boolean = true;\r\n\r\n  /**\r\n   * This [[EventEmitter]] is called when the step is entered.\r\n   * The bound method should be used to do initialization work.\r\n   */\r\n  @Output()\r\n  public stepEnter: EventEmitter<MovingDirection> = new EventEmitter<MovingDirection>();\r\n\r\n  /**\r\n   * This [[EventEmitter]] is called when the step is exited.\r\n   * The bound method can be used to do cleanup work.\r\n   */\r\n  @Output()\r\n  public stepExit: EventEmitter<MovingDirection> = new EventEmitter<MovingDirection>();\r\n\r\n  /**\r\n   * Returns true if this wizard step should be visible to the user.\r\n   * If the step should be visible to the user false is returned, otherwise true\r\n   */\r\n  @HostBinding('hidden')\r\n  public get hidden(): boolean {\r\n    return !this.selected;\r\n  }\r\n\r\n  /**\r\n   * This method returns true, if this wizard step can be transitioned with a given direction.\r\n   * Transitioned in this case means either entered or exited, depending on the given `condition` parameter.\r\n   *\r\n   * @param condition A condition variable, deciding if the step can be transitioned\r\n   * @param direction The direction in which this step should be transitioned\r\n   * @returns A [[Promise]] containing `true`, if this step can transitioned in the given direction\r\n   * @throws An `Error` is thrown if `condition` is neither a function nor a boolean\r\n   */\r\n  private static canTransitionStep(condition: ((direction: MovingDirection) => boolean) |\r\n                                     ((direction: MovingDirection) => Promise<boolean>) |\r\n                                     boolean,\r\n                                   direction: MovingDirection): Promise<boolean> {\r\n    if (typeof(condition) === typeof(true)) {\r\n      return Promise.resolve(condition as boolean);\r\n    } else if (condition instanceof Function) {\r\n      return Promise.resolve(condition(direction));\r\n    } else {\r\n      return Promise.reject(new Error(`Input value '${condition}' is neither a boolean nor a function`));\r\n    }\r\n  }\r\n\r\n  /**\r\n   * A function called when the step is entered\r\n   *\r\n   * @param direction The direction in which the step is entered\r\n   */\r\n  public enter(direction: MovingDirection): void {\r\n    this.stepEnter.emit(direction);\r\n  }\r\n\r\n  /**\r\n   * A function called when the step is exited\r\n   *\r\n   * @param direction The direction in which the step is exited\r\n   */\r\n  public exit(direction: MovingDirection) {\r\n    this.stepExit.emit(direction);\r\n  }\r\n\r\n  /**\r\n   * This method returns true, if this wizard step can be entered from the given direction.\r\n   * Because this method depends on the value `canEnter`, it will throw an error, if `canEnter` is neither a boolean\r\n   * nor a function.\r\n   *\r\n   * @param direction The direction in which this step should be entered\r\n   * @returns A [[Promise]] containing `true`, if the step can be entered in the given direction, false otherwise\r\n   * @throws An `Error` is thrown if `anEnter` is neither a function nor a boolean\r\n   */\r\n  public canEnterStep(direction: MovingDirection): Promise<boolean> {\r\n    return WizardStep.canTransitionStep(this.canEnter, direction);\r\n  }\r\n\r\n  /**\r\n   * This method returns true, if this wizard step can be exited into given direction.\r\n   * Because this method depends on the value `canExit`, it will throw an error, if `canExit` is neither a boolean\r\n   * nor a function.\r\n   *\r\n   * @param direction The direction in which this step should be left\r\n   * @returns A [[Promise]] containing `true`, if the step can be exited in the given direction, false otherwise\r\n   * @throws An `Error` is thrown if `canExit` is neither a function nor a boolean\r\n   */\r\n  public canExitStep(direction: MovingDirection): Promise<boolean> {\r\n    return WizardStep.canTransitionStep(this.canExit, direction);\r\n  }\r\n}\r\n","import {EventEmitter, Directive} from '@angular/core';\r\nimport {WizardStep} from './wizard-step.interface';\r\nimport {MovingDirection} from './moving-direction.enum';\r\n\r\n/**\r\n * Basic functionality every wizard completion step needs to provide\r\n *\r\n * @author Marc Arndt\r\n */\r\n@Directive()\r\n/* tslint:disable-next-line directive-class-suffix */\r\nexport abstract class WizardCompletionStep extends WizardStep {\r\n  /**\r\n   * @inheritDoc\r\n   */\r\n  public stepExit = new EventEmitter<MovingDirection>();\r\n\r\n  /**\r\n   * @inheritDoc\r\n   */\r\n  public canExit: ((direction: MovingDirection) => boolean) | boolean = false;\r\n\r\n  /**\r\n   * @inheritDoc\r\n   */\r\n  public enter(direction: MovingDirection): void {\r\n    this.completed = true;\r\n    this.stepEnter.emit(direction);\r\n  }\r\n\r\n  /**\r\n   * @inheritDoc\r\n   */\r\n  public exit(direction: MovingDirection): void {\r\n    // set this completion step as incomplete (unless it happens to be initiallyCompleted)\r\n    this.completed = this.initiallyCompleted;\r\n    this.stepExit.emit(direction);\r\n  }\r\n}\r\n","import {Component, forwardRef} from '@angular/core';\r\nimport {WizardCompletionStep} from '../util/wizard-completion-step.interface';\r\nimport {WizardStep} from '../util/wizard-step.interface';\r\n\r\n/**\r\n * The `aw-wizard-completion-step` component can be used to define a completion/success step at the end of your wizard\r\n * After a `aw-wizard-completion-step` has been entered, it has the characteristic that the user is blocked from\r\n * leaving it again to a previous step.\r\n * In addition entering a `aw-wizard-completion-step` automatically sets the `aw-wizard` and all steps inside the `aw-wizard`\r\n * as completed.\r\n *\r\n * ### Syntax\r\n *\r\n * ```html\r\n * <aw-wizard-completion-step [stepTitle]=\"title of the wizard step\"\r\n *    [navigationSymbol]=\"{ symbol: 'navigation symbol', fontFamily: 'navigation symbol font family' }\"\r\n *    (stepEnter)=\"event emitter to be called when the wizard step is entered\"\r\n *    (stepExit)=\"event emitter to be called when the wizard step is exited\">\r\n *    ...\r\n * </aw-wizard-completion-step>\r\n * ```\r\n *\r\n * ### Example\r\n *\r\n * ```html\r\n * <aw-wizard-completion-step stepTitle=\"Step 1\" [navigationSymbol]=\"{ symbol: '1' }\">\r\n *    ...\r\n * </aw-wizard-completion-step>\r\n * ```\r\n *\r\n * With a navigation symbol from the `font-awesome` font:\r\n *\r\n * ```html\r\n * <aw-wizard-completion-step stepTitle=\"Step 1\" [navigationSymbol]=\"{ symbol: '&#xf1ba;', fontFamily: 'FontAwesome' }\">\r\n *    ...\r\n * </aw-wizard-completion-step>\r\n * ```\r\n *\r\n * @author Marc Arndt\r\n */\r\n@Component({\r\n  selector: 'aw-wizard-completion-step',\r\n  templateUrl: 'wizard-completion-step.component.html',\r\n  providers: [\r\n    {provide: WizardStep, useExisting: forwardRef(() => WizardCompletionStepComponent)},\r\n    {provide: WizardCompletionStep, useExisting: forwardRef(() => WizardCompletionStepComponent)}\r\n  ]\r\n})\r\nexport class WizardCompletionStepComponent extends WizardCompletionStep {\r\n}\r\n","<ng-content></ng-content>\r\n","import { EventEmitter, InjectionToken } from \"@angular/core\";\r\nimport { WizardStep } from \"../util/wizard-step.interface\";\r\n\r\nexport const WIZARD_TOKEN = new InjectionToken<Wizard>('WIZARD_TOKEN');\r\n\r\nexport interface Wizard {\r\n    navBarDirection: string;\r\n    get wizardSteps(): WizardStep[];\r\n    disableNavigationBar: boolean;\r\n    isNavigable(destinationIndex: number): boolean;\r\n    getIndexOfStep(step: WizardStep): number;\r\n    get completed(): boolean;\r\n\r\n    getIndexOfStepWithId(stepId: string): number;\r\n    goToStep(destinationIndex: number, preFinalize?: EventEmitter<void>, postFinalize?: EventEmitter<void>): void;\r\n}","import {WizardStep} from './wizard-step.interface';\r\n\r\n/**\r\n * An unique identifier of a wizard step\r\n *\r\n * @author Marc Arndt\r\n */\r\nexport interface StepId {\r\n  /**\r\n   * The id of the destination step\r\n   */\r\n  stepId: string;\r\n}\r\n\r\n/**\r\n * Checks whether the given `value` implements the interface [[StepId]].\r\n *\r\n * @param value The value to be checked\r\n * @returns True if the given value implements [[StepId]] and false otherwise\r\n */\r\nexport function isStepId(value: any): value is StepId {\r\n  return value.hasOwnProperty('stepId') && !(value instanceof WizardStep);\r\n}\r\n","/**\r\n * An index of a wizard step.\r\n * This index is the index of the step inside the wizard.\r\n * The index is always zero based, i.e. the step with index 0 is the first step of the wizard\r\n *\r\n * @author Marc Arndt\r\n */\r\nexport interface StepIndex {\r\n  /**\r\n   * The index of the destination step\r\n   */\r\n  stepIndex: number;\r\n}\r\n\r\n/**\r\n * Checks whether the given `value` implements the interface [[StepIndex]].\r\n *\r\n * @param value The value to be checked\r\n * @returns True if the given value implements [[StepIndex]] and false otherwise\r\n */\r\nexport function isStepIndex(value: any): value is StepIndex {\r\n  return value.hasOwnProperty('stepIndex');\r\n}\r\n","/**\r\n * An offset between two steps.\r\n * This offset can be either positive or negative.\r\n * A positive offset means, that the offset step is after the other step, while a negative offset means,\r\n * that the offset step is ahead of the other step.\r\n *\r\n * @author Marc Arndt\r\n */\r\nexport interface StepOffset {\r\n  /**\r\n   * The offset to the destination step\r\n   */\r\n  stepOffset: number;\r\n}\r\n\r\n/**\r\n * Checks whether the given `value` implements the interface [[StepOffset]].\r\n *\r\n * @param value The value to be checked\r\n * @returns True if the given value implements [[StepOffset]] and false otherwise\r\n */\r\nexport function isStepOffset(value: any): value is StepOffset {\r\n  return value.hasOwnProperty('stepOffset');\r\n}\r\n","import { Directive, EventEmitter, HostListener, Inject, Input, Optional, Output } from '@angular/core';\r\nimport { isStepId, StepId } from '../util/step-id.interface';\r\nimport { isStepIndex, StepIndex } from '../util/step-index.interface';\r\nimport { isStepOffset, StepOffset } from '../util/step-offset.interface';\r\nimport { WizardStep } from '../util/wizard-step.interface';\r\nimport { WIZARD_TOKEN, Wizard } from '../navigation/wizard.interface';\r\n\r\n\r\n/**\r\n * The `awGoToStep` directive can be used to navigate to a given step.\r\n * This step can be defined in one of multiple formats\r\n *\r\n * ### Syntax\r\n *\r\n * With absolute step index:\r\n *\r\n * ```html\r\n * <button [awGoToStep]=\"{ stepIndex: absolute step index }\" (finalize)=\"finalize method\">...</button>\r\n * ```\r\n *\r\n * With unique step id:\r\n *\r\n * ```html\r\n * <button [awGoToStep]=\"{ stepId: 'step id of destination step' }\" (finalize)=\"finalize method\">...</button>\r\n * ```\r\n *\r\n * With a wizard step object:\r\n *\r\n * ```html\r\n * <button [awGoToStep]=\"wizard step object\" (finalize)=\"finalize method\">...</button>\r\n * ```\r\n *\r\n * With an offset to the defining step:\r\n *\r\n * ```html\r\n * <button [awGoToStep]=\"{ stepOffset: offset }\" (finalize)=\"finalize method\">...</button>\r\n * ```\r\n *\r\n * @author Marc Arndt\r\n */\r\n@Directive({\r\n  selector: '[awGoToStep]'\r\n})\r\nexport class GoToStepDirective {\r\n  /**\r\n   * This [[EventEmitter]] is called directly before the current step is exited during a transition through a component with this directive.\r\n   */\r\n  @Output()\r\n  public preFinalize: EventEmitter<void> = new EventEmitter();\r\n\r\n  /**\r\n   * This [[EventEmitter]] is called directly after the current step is exited during a transition through a component with this directive.\r\n   */\r\n  @Output()\r\n  public postFinalize: EventEmitter<void> = new EventEmitter();\r\n\r\n  /**\r\n   * The destination step, to which the wizard should navigate, after the component, having this directive has been activated.\r\n   * This destination step can be given either as a [[WizardStep]] containing the step directly,\r\n   * a [[StepOffset]] between the current step and the `wizardStep`, in which this directive has been used,\r\n   * or a step index as a number or string\r\n   */\r\n  // tslint:disable-next-line:no-input-rename\r\n  @Input('awGoToStep')\r\n  public targetStep: WizardStep | StepOffset | StepIndex | StepId;\r\n\r\n  /**\r\n   * Constructor\r\n   *\r\n   * @param wizard The wizard component\r\n   * @param wizardStep The wizard step, which contains this [[GoToStepDirective]]\r\n   */\r\n  constructor(@Inject(WIZARD_TOKEN) public wizard: Wizard, @Optional() private wizardStep: WizardStep) {\r\n  }\r\n\r\n  /**\r\n   * A convenience field for `preFinalize`\r\n   */\r\n  public get finalize(): EventEmitter<void> {\r\n    return this.preFinalize;\r\n  }\r\n\r\n  /**\r\n   * A convenience name for `preFinalize`\r\n   *\r\n   * @param emitter The [[EventEmitter]] to be set\r\n   */\r\n  @Output()\r\n  public set finalize(emitter: EventEmitter<void>) {\r\n    /* istanbul ignore next */\r\n    this.preFinalize = emitter;\r\n  }\r\n\r\n  /**\r\n   * Returns the destination step of this directive as an absolute step index inside the wizard\r\n   *\r\n   * @returns The index of the destination step\r\n   * @throws If `targetStep` is of an unknown type an `Error` is thrown\r\n   */\r\n  public get destinationStep(): number {\r\n    let destinationStep: number;\r\n\r\n    if (isStepIndex(this.targetStep)) {\r\n      destinationStep = this.targetStep.stepIndex;\r\n    } else if (isStepId(this.targetStep)) {\r\n      destinationStep = this.wizard.getIndexOfStepWithId(this.targetStep.stepId);\r\n    } else if (isStepOffset(this.targetStep) && this.wizardStep !== null) {\r\n      destinationStep = this.wizard.getIndexOfStep(this.wizardStep) + this.targetStep.stepOffset;\r\n    } else if (this.targetStep instanceof WizardStep) {\r\n      destinationStep = this.wizard.getIndexOfStep(this.targetStep);\r\n    } else {\r\n      throw new Error(`Input 'targetStep' is neither a WizardStep, StepOffset, StepIndex or StepId`);\r\n    }\r\n\r\n    return destinationStep;\r\n  }\r\n\r\n  /**\r\n   * Listener method for `click` events on the component with this directive.\r\n   * After this method is called the wizard will try to transition to the `destinationStep`\r\n   */\r\n  @HostListener('click')\r\n  public onClick(): void {\r\n    this.wizard.goToStep(this.destinationStep, this.preFinalize, this.postFinalize);\r\n  }\r\n}\r\n","import { Component, Inject, Input } from '@angular/core';\r\nimport { WizardCompletionStep } from '../util/wizard-completion-step.interface';\r\nimport { WizardStep } from '../util/wizard-step.interface';\r\nimport { WIZARD_TOKEN, Wizard } from '../navigation/wizard.interface';\r\n\r\n/**\r\n * The `aw-wizard-navigation-bar` component contains the navigation bar inside a [[WizardComponent]].\r\n * To correctly display the navigation bar, it's required to set the right css classes for the navigation bar,\r\n * otherwise it will look like a normal `ul` component.\r\n *\r\n * ### Syntax\r\n *\r\n * ```html\r\n * <aw-wizard-navigation-bar></aw-wizard-navigation-bar>\r\n * ```\r\n *\r\n * @author Marc Arndt\r\n */\r\n@Component({\r\n  selector: 'aw-wizard-navigation-bar',\r\n  templateUrl: 'wizard-navigation-bar.component.html',\r\n})\r\nexport class WizardNavigationBarComponent {\r\n  /**\r\n   * Constructor\r\n   *\r\n   * @param wizard The state the wizard currently resides in\r\n   */\r\n  constructor(@Inject(WIZARD_TOKEN) public wizard: Wizard) {\r\n  }\r\n\r\n  /**\r\n   * Returns all [[WizardStep]]s contained in the wizard\r\n   *\r\n   * @returns An array containing all [[WizardStep]]s\r\n   */\r\n  get wizardSteps(): Array<WizardStep> {\r\n    switch (this.wizard.navBarDirection) {\r\n      case 'right-to-left':\r\n        return this.wizard.wizardSteps.slice().reverse();\r\n      case 'left-to-right':\r\n      default:\r\n        return this.wizard.wizardSteps;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Returns the number of wizard steps, that need to be displaced in the navigation bar\r\n   *\r\n   * @returns The number of wizard steps to be displayed\r\n   */\r\n  get numberOfWizardSteps(): number {\r\n    return this.wizard.wizardSteps.length;\r\n  }\r\n\r\n  /**\r\n   * Checks, whether a [[WizardStep]] can be marked as `current` in the navigation bar\r\n   *\r\n   * @param wizardStep The wizard step to be checked\r\n   * @returns True if the step can be marked as `current`\r\n   */\r\n  public isCurrent(wizardStep: WizardStep): boolean {\r\n    return wizardStep.selected;\r\n  }\r\n\r\n  /**\r\n   * Checks, whether a [[WizardStep]] can be marked as `editing` in the navigation bar\r\n   *\r\n   * @param wizardStep The wizard step to be checked\r\n   * @returns True if the step can be marked as `editing`\r\n   */\r\n  public isEditing(wizardStep: WizardStep): boolean {\r\n    return wizardStep.editing;\r\n  }\r\n\r\n  /**\r\n   * Checks, whether a [[WizardStep]] can be marked as `done` in the navigation bar\r\n   *\r\n   * @param wizardStep The wizard step to be checked\r\n   * @returns True if the step can be marked as `done`\r\n   */\r\n  public isDone(wizardStep: WizardStep): boolean {\r\n    return wizardStep.completed;\r\n  }\r\n\r\n  /**\r\n   * Checks, whether a [[WizardStep]] can be marked as `optional` in the navigation bar\r\n   *\r\n   * @param wizardStep The wizard step to be checked\r\n   * @returns True if the step can be marked as `optional`\r\n   */\r\n  public isOptional(wizardStep: WizardStep): boolean {\r\n    return wizardStep.optional;\r\n  }\r\n\r\n  /**\r\n   * Checks, whether a [[WizardStep]] can be marked as `completed` in the navigation bar.\r\n   *\r\n   * The `completed` class is only applied to completion steps.\r\n   *\r\n   * @param wizardStep The wizard step to be checked\r\n   * @returns True if the step can be marked as `completed`\r\n   */\r\n  public isCompleted(wizardStep: WizardStep): boolean {\r\n    return wizardStep instanceof WizardCompletionStep && this.wizard.completed;\r\n  }\r\n\r\n  /**\r\n   * Checks, whether a [[WizardStep]] can be marked as `navigable` in the navigation bar.\r\n   * A wizard step can be navigated to if:\r\n   * - the step is currently not selected\r\n   * - the navigation bar isn't disabled\r\n   * - the navigation mode allows navigation to the step\r\n   *\r\n   * @param wizardStep The wizard step to be checked\r\n   * @returns True if the step can be marked as navigable\r\n   */\r\n  public isNavigable(wizardStep: WizardStep): boolean {\r\n    return !wizardStep.selected && !this.wizard.disableNavigationBar &&\r\n      this.wizard.isNavigable(this.wizard.getIndexOfStep(wizardStep));\r\n  }\r\n}\r\n","<ul class=\"steps-indicator steps-{{numberOfWizardSteps}}\">\r\n  <li [attr.id]=\"step.stepId\" *ngFor=\"let step of wizardSteps\" [ngClass]=\"{\r\n        'current': isCurrent(step),\r\n        'editing': isEditing(step),\r\n        'done': isDone(step),\r\n        'optional': isOptional(step),\r\n        'completed': isCompleted(step),\r\n        'navigable': isNavigable(step)\r\n  }\">\r\n    <a [awGoToStep]=\"step\">\r\n      <div class=\"label\">\r\n        <ng-container *ngIf=\"step.stepTitleTemplate\" [ngTemplateOutlet]=\"step.stepTitleTemplate.templateRef\"\r\n          [ngTemplateOutletContext]=\"{wizardStep: step}\"></ng-container>\r\n        <ng-container *ngIf=\"!step.stepTitleTemplate\">{{step.stepTitle}}</ng-container>\r\n      </div>\r\n      <div class=\"step-indicator\"\r\n        [ngStyle]=\"{ 'font-family': step.stepSymbolTemplate ? '' : step.navigationSymbol.fontFamily }\">\r\n        <ng-container *ngIf=\"step.stepSymbolTemplate\" [ngTemplateOutlet]=\"step.stepSymbolTemplate.templateRef\"\r\n          [ngTemplateOutletContext]=\"{wizardStep: step}\"></ng-container>\r\n        <ng-container *ngIf=\"!step.stepSymbolTemplate\">{{step.navigationSymbol.symbol}}</ng-container>\r\n      </div>\r\n    </a>\r\n  </li>\r\n</ul>\r\n","import {Component, forwardRef} from '@angular/core';\r\nimport {WizardStep} from '../util/wizard-step.interface';\r\n\r\n/**\r\n * The `aw-wizard-step` component is used to define a normal step inside a wizard.\r\n *\r\n * ### Syntax\r\n *\r\n * With `stepTitle` and `navigationSymbol` inputs:\r\n *\r\n * ```html\r\n * <aw-wizard-step [stepTitle]=\"step title\" [navigationSymbol]=\"{ symbol: 'symbol', fontFamily: 'font-family' }\"\r\n *    [canExit]=\"deciding function\" (stepEnter)=\"enter function\" (stepExit)=\"exit function\">\r\n *    ...\r\n * </aw-wizard-step>\r\n * ```\r\n *\r\n * With `awWizardStepTitle` and `awWizardStepSymbol` directives:\r\n *\r\n * ```html\r\n * <aw-wizard-step\"\r\n *    [canExit]=\"deciding function\" (stepEnter)=\"enter function\" (stepExit)=\"exit function\">\r\n *    <ng-template awWizardStepTitle>\r\n *        step title\r\n *    </ng-template>\r\n *    <ng-template awWizardStepSymbol>\r\n *        symbol\r\n *    </ng-template>\r\n *    ...\r\n * </aw-wizard-step>\r\n * ```\r\n *\r\n * ### Example\r\n *\r\n * With `stepTitle` and `navigationSymbol` inputs:\r\n *\r\n * ```html\r\n * <aw-wizard-step stepTitle=\"Address information\" [navigationSymbol]=\"{ symbol: '&#xf1ba;', fontFamily: 'FontAwesome' }\">\r\n *    ...\r\n * </aw-wizard-step>\r\n * ```\r\n *\r\n * With `awWizardStepTitle` and `awWizardStepSymbol` directives:\r\n *\r\n * ```html\r\n * <aw-wizard-step>\r\n *    <ng-template awWizardStepTitle>\r\n *        Address information\r\n *    </ng-template>\r\n *    <ng-template awWizardStepSymbol>\r\n *        <i class=\"fa fa-taxi\"></i>\r\n *    </ng-template>\r\n * </aw-wizard-step>\r\n * ```\r\n *\r\n * @author Marc Arndt\r\n */\r\n@Component({\r\n  selector: 'aw-wizard-step',\r\n  templateUrl: 'wizard-step.component.html',\r\n  providers: [\r\n    {provide: WizardStep, useExisting: forwardRef(() => WizardStepComponent)}\r\n  ]\r\n})\r\nexport class WizardStepComponent extends WizardStep {\r\n}\r\n","<ng-content></ng-content>\r\n","/**\r\n * The direction in which a step transition was made\r\n *\r\n * @author Marc Arndt\r\n */\r\n\r\n/**\r\n * This enum contains the different possible moving directions in which a wizard can be traversed\r\n *\r\n * @author Marc Arndt\r\n */\r\nexport enum MovingDirection {\r\n  /**\r\n   * A forward step transition\r\n   */\r\n  Forwards,\r\n  /**\r\n   * A backward step transition\r\n   */\r\n  Backwards,\r\n  /**\r\n   * No step transition was done\r\n   */\r\n  Stay\r\n}\r\n","import {EventEmitter} from '@angular/core';\r\nimport {MovingDirection} from '../util/moving-direction.enum';\r\nimport {NavigationMode} from './navigation-mode.interface';\r\nimport {WizardComponent} from '../components/wizard.component';\r\n\r\n/**\r\n * Base implementation of [[NavigationMode]]\r\n *\r\n * Note: Built-in [[NavigationMode]] classes should be stateless, allowing the library user to easily create\r\n * an instance of a particular [[NavigationMode]] class and pass it to `<aw-wizard [navigationMode]=\"...\">`.\r\n *\r\n * @author Marc Arndt\r\n */\r\nexport abstract class BaseNavigationMode implements NavigationMode {\r\n\r\n  /**\r\n   * Checks, whether a wizard step, as defined by the given destination index, can be transitioned to.\r\n   *\r\n   * This method controls navigation by [[goToStep]], [[goToPreviousStep]], and [[goToNextStep]] directives.\r\n   * Navigation by navigation bar is governed by [[isNavigable]].\r\n   *\r\n   * In this implementation, a destination wizard step can be entered if:\r\n   * - it exists\r\n   * - the current step can be exited in the direction of the destination step\r\n   * - the destination step can be entered in the direction from the current step\r\n   *\r\n   * Subclasses can impose additional restrictions, see [[canTransitionToStep]].\r\n   *\r\n   * @param wizard The wizard component to operate on\r\n   * @param destinationIndex The index of the destination step\r\n   * @returns A [[Promise]] containing `true`, if the destination step can be transitioned to and `false` otherwise\r\n   */\r\n  public canGoToStep(wizard: WizardComponent, destinationIndex: number): Promise<boolean> {\r\n    const hasStep = wizard.hasStep(destinationIndex);\r\n\r\n    const movingDirection = wizard.getMovingDirection(destinationIndex);\r\n\r\n    const canExitCurrentStep = (previous: boolean) => {\r\n      return previous && wizard.currentStep.canExitStep(movingDirection);\r\n    };\r\n\r\n    const canEnterDestinationStep = (previous: boolean) => {\r\n      return previous && wizard.getStepAtIndex(destinationIndex).canEnterStep(movingDirection);\r\n    };\r\n\r\n    const canTransitionToStep = (previous: boolean) => {\r\n      return previous && this.canTransitionToStep(wizard, destinationIndex);\r\n    };\r\n\r\n    return Promise.resolve(hasStep)\r\n      .then(canTransitionToStep)\r\n      // Apply user-defined checks at the end.  They can involve user interaction\r\n      // which is better to be avoided if navigation mode does not actually allow the transition\r\n      // (`canTransitionToStep` returns `false`).\r\n      .then(canExitCurrentStep)\r\n      .then(canEnterDestinationStep);\r\n  }\r\n\r\n  /**\r\n   * Imposes additional restrictions for `canGoToStep` in current navigation mode.\r\n   *\r\n   * The base implementation allows transition iff the given step is navigable from the navigation bar (see `isNavigable`).\r\n   * However, in some navigation modes `canTransitionToStep` can be more relaxed to allow navigation to certain steps\r\n   * by previous/next buttons, but not using the navigation bar.\r\n   *\r\n   * @param wizard The wizard component to operate on\r\n   * @param destinationIndex The index of the destination step\r\n   * @returns `true`, if the destination step can be transitioned to and `false` otherwise\r\n   */\r\n  protected canTransitionToStep(wizard: WizardComponent, destinationIndex: number): boolean {\r\n    return this.isNavigable(wizard, destinationIndex);\r\n  }\r\n\r\n  /**\r\n   * Tries to transition to the wizard step, as denoted by the given destination index.\r\n   *\r\n   * When entering the destination step, the following actions are done:\r\n   * - the old current step is set as completed\r\n   * - the old current step is set as unselected\r\n   * - the old current step is exited\r\n   * - the destination step is set as selected\r\n   * - the destination step is entered\r\n   *\r\n   * When the destination step couldn't be entered, the following actions are done:\r\n   * - the current step is exited and entered in the direction `MovingDirection.Stay`\r\n   *\r\n   * @param wizard The wizard component to operate on\r\n   * @param destinationIndex The index of the destination wizard step, which should be entered\r\n   * @param preFinalize An event emitter, to be called before the step has been transitioned\r\n   * @param postFinalize An event emitter, to be called after the step has been transitioned\r\n   */\r\n  public goToStep(\r\n    wizard: WizardComponent,\r\n    destinationIndex: number,\r\n    preFinalize?: EventEmitter<void>,\r\n    postFinalize?: EventEmitter<void>): void {\r\n\r\n    this.canGoToStep(wizard, destinationIndex).then(navigationAllowed => {\r\n      if (navigationAllowed) {\r\n        // the current step can be exited in the given direction\r\n        const movingDirection: MovingDirection = wizard.getMovingDirection(destinationIndex);\r\n\r\n        /* istanbul ignore if */\r\n        if (preFinalize) {\r\n          preFinalize.emit();\r\n        }\r\n\r\n        // leave current step\r\n        wizard.currentStep.completed = true;\r\n        wizard.currentStep.exit(movingDirection);\r\n        wizard.currentStep.editing = false;\r\n        wizard.currentStep.selected = false;\r\n\r\n        this.transition(wizard, destinationIndex);\r\n\r\n        // remember if the next step is already completed before entering it to properly set `editing` flag\r\n        const wasCompleted = wizard.completed || wizard.currentStep.completed;\r\n\r\n        // go to next step\r\n        wizard.currentStep.enter(movingDirection);\r\n        wizard.currentStep.selected = true;\r\n        if (wasCompleted) {\r\n          wizard.currentStep.editing = true;\r\n        }\r\n\r\n        /* istanbul ignore if */\r\n        if (postFinalize) {\r\n          postFinalize.emit();\r\n        }\r\n      } else {\r\n        // if the current step can't be left, reenter the current step\r\n        wizard.currentStep.exit(MovingDirection.Stay);\r\n        wizard.currentStep.enter(MovingDirection.Stay);\r\n      }\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Transitions the wizard to the given step index.\r\n   *\r\n   * Can perform additional actions in particular navigation mode implementations.\r\n   *\r\n   * @param wizard The wizard component to operate on\r\n   * @param destinationIndex The index of the destination wizard step\r\n   */\r\n  protected transition(wizard: WizardComponent, destinationIndex: number): void {\r\n    wizard.currentStepIndex = destinationIndex;\r\n  }\r\n\r\n  /**\r\n   * @inheritDoc\r\n   */\r\n  public abstract isNavigable(WizardComponent: WizardComponent, destinationIndex: number): boolean;\r\n\r\n  /**\r\n   * Resets the state of this wizard.\r\n   *\r\n   * A reset transitions the wizard automatically to the first step and sets all steps as incomplete.\r\n   * In addition the whole wizard is set as incomplete.\r\n   *\r\n   * @param wizard The wizard component to operate on\r\n   */\r\n  public reset(wizard: WizardComponent): void {\r\n    this.ensureCanReset(wizard);\r\n\r\n    // reset the step internal state\r\n    wizard.wizardSteps.forEach(step => {\r\n      step.completed = step.initiallyCompleted;\r\n      step.selected = false;\r\n      step.editing = false;\r\n    });\r\n\r\n    // set the first step as the current step\r\n    wizard.currentStepIndex = wizard.defaultStepIndex;\r\n    wizard.currentStep.selected = true;\r\n    wizard.currentStep.enter(MovingDirection.Forwards);\r\n  }\r\n\r\n  /**\r\n   * Checks if wizard configuration allows to perform reset.\r\n   *\r\n   * A check failure is indicated by throwing an `Error` with the message discribing the discovered misconfiguration issue.\r\n   *\r\n   * Can include additional checks in particular navigation mode implementations.\r\n   *\r\n   * @param wizard The wizard component to operate on\r\n   * @throws An `Error` is thrown, if a micconfiguration issue is discovered.\r\n   */\r\n  protected ensureCanReset(wizard: WizardComponent): void {\r\n    // the wizard doesn't contain a step with the default step index\r\n    if (!wizard.hasStep(wizard.defaultStepIndex)) {\r\n      throw new Error(`The wizard doesn't contain a step with index ${wizard.defaultStepIndex}`);\r\n    }\r\n  }\r\n}\r\n","import {BaseNavigationMode} from './base-navigation-mode.interface';\r\nimport {WizardComponent} from '../components/wizard.component';\r\nimport {WizardCompletionStep} from '../util/wizard-completion-step.interface';\r\n\r\n/**\r\n * The default navigation mode used by [[WizardComponent]] and [[NavigationModeDirective]].\r\n *\r\n * It is parameterized with two navigation policies passed to constructor:\r\n *\r\n * - [[navigateBackward]] policy controls whether wizard steps before the current step are navigable:\r\n *\r\n *   - `\"deny\"` -- the steps are not navigable\r\n *   - `\"allow\"` -- the steps are navigable\r\n *   - If the corresponding constructor argument is omitted or is `null` or `undefined`,\r\n *     then the default value is applied which is `\"deny\"`\r\n *\r\n * - [[navigateForward]] policy controls whether wizard steps after the current step are navigable:\r\n *\r\n *   - `\"deny\"` -- the steps are not navigable\r\n *   - `\"allow\"` -- the steps are navigable\r\n *   - `\"visited\"` -- a step is navigable iff it was already visited before\r\n *   - If the corresponding constructor argument is omitted or is `null` or `undefined`,\r\n *     then the default value is applied which is `\"allow\"`\r\n */\r\nexport class ConfigurableNavigationMode extends BaseNavigationMode {\r\n\r\n  /**\r\n   * Constructor\r\n   *\r\n   * @param navigateBackward Controls whether wizard steps before the current step are navigable\r\n   * @param navigateForward Controls whether wizard steps before the current step are navigable\r\n   */\r\n  constructor(\r\n    private navigateBackward: 'allow'|'deny'|null = null,\r\n    private navigateForward: 'allow'|'deny'|'visited'|null = null,\r\n  ) {\r\n    super();\r\n    this.navigateBackward = this.navigateBackward || 'allow';\r\n    this.navigateForward = this.navigateForward || 'deny';\r\n  }\r\n\r\n  /**\r\n   * @inheritDoc\r\n   */\r\n  protected canTransitionToStep(wizard: WizardComponent, destinationIndex: number): boolean {\r\n    // if the destination step can be navigated to using the navigation bar,\r\n    // it should be accessible with [goToStep] as well\r\n    if (this.isNavigable(wizard, destinationIndex)) {\r\n      return true;\r\n    }\r\n\r\n    // navigation with [goToStep] is permitted if all previous steps\r\n    // to the destination step have been completed or are optional\r\n    return wizard.wizardSteps\r\n        .filter((step, index) => index < destinationIndex && index !== wizard.currentStepIndex)\r\n        .every(step => step.completed || step.optional);\r\n  }\r\n\r\n  /**\r\n   * @inheritDoc\r\n   */\r\n  protected transition(wizard: WizardComponent, destinationIndex: number): void {\r\n    if (this.navigateForward === 'deny') {\r\n      // set all steps after the destination step to incomplete\r\n      wizard.wizardSteps\r\n        .filter((step, index) => wizard.currentStepIndex > destinationIndex && index > destinationIndex)\r\n        .forEach(step => step.completed = false);\r\n    }\r\n\r\n    super.transition(wizard, destinationIndex);\r\n  }\r\n\r\n  /**\r\n   * @inheritDoc\r\n   */\r\n  public isNavigable(wizard: WizardComponent, destinationIndex: number): boolean {\r\n    // Check if the destination step can be navigated to\r\n    const destinationStep = wizard.getStepAtIndex(destinationIndex);\r\n    if (destinationStep instanceof WizardCompletionStep) {\r\n      // A completion step can only be entered, if all previous steps have been completed, are optional, or selected\r\n      const previousStepsCompleted = wizard.wizardSteps\r\n        .filter((step, index) => index < destinationIndex)\r\n        .every(step => step.completed || step.optional || step.selected);\r\n      if (!previousStepsCompleted) {\r\n        return false;\r\n      }\r\n    }\r\n\r\n    // Apply navigation pocicies\r\n    if (destinationIndex < wizard.currentStepIndex) {\r\n      // If the destination step is before current, apply the `navigateBackward` policy\r\n      switch (this.navigateBackward) {\r\n        case 'allow': return true;\r\n        case 'deny': return false;\r\n        default:\r\n          throw new Error(`Invalid value for navigateBackward: ${this.navigateBackward}`);\r\n      }\r\n    } else if (destinationIndex > wizard.currentStepIndex) {\r\n      // If the destination step is after current, apply the `navigateForward` policy\r\n      switch (this.navigateForward) {\r\n        case 'allow': return true;\r\n        case 'deny': return false;\r\n        case 'visited': return destinationStep.completed;\r\n        default:\r\n          throw new Error(`Invalid value for navigateForward: ${this.navigateForward}`);\r\n      }\r\n    } else {\r\n      // Re-entering the current step is not allowed\r\n      return false;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * @inheritDoc\r\n   */\r\n  protected ensureCanReset(wizard: WizardComponent): void {\r\n    super.ensureCanReset(wizard);\r\n\r\n    // the default step is a completion step and the wizard contains more than one step\r\n    const defaultWizardStep = wizard.getStepAtIndex(wizard.defaultStepIndex);\r\n    const defaultCompletionStep = defaultWizardStep instanceof WizardCompletionStep;\r\n    if (defaultCompletionStep && wizard.wizardSteps.length !== 1) {\r\n      throw new Error(`The default step index ${wizard.defaultStepIndex} references a completion step`);\r\n    }\r\n  }\r\n}\r\n","import {\r\n  AfterContentInit,\r\n  Component,\r\n  ContentChildren,\r\n  HostBinding,\r\n  Input,\r\n  QueryList,\r\n  EventEmitter,\r\n} from '@angular/core';\r\nimport {NavigationMode} from '../navigation/navigation-mode.interface';\r\nimport {WizardStep} from '../util/wizard-step.interface';\r\nimport {MovingDirection} from '../util/moving-direction.enum';\r\nimport {ConfigurableNavigationMode} from '../navigation/configurable-navigation-mode';\r\nimport { WIZARD_TOKEN, Wizard } from '../navigation/wizard.interface';\r\n\r\n/**\r\n * The `aw-wizard` component defines the root component of a wizard.\r\n * Through the setting of input parameters for the `aw-wizard` component it's possible to change the location and size\r\n * of its navigation bar.\r\n *\r\n * ### Syntax\r\n * ```html\r\n * <aw-wizard [navBarLocation]=\"location of navigation bar\" [navBarLayout]=\"layout of navigation bar\">\r\n *     ...\r\n * </aw-wizard>\r\n * ```\r\n *\r\n * ### Example\r\n *\r\n * Without completion step:\r\n *\r\n * ```html\r\n * <aw-wizard navBarLocation=\"top\" navBarLayout=\"small\">\r\n *     <aw-wizard-step>...</aw-wizard-step>\r\n *     <aw-wizard-step>...</aw-wizard-step>\r\n * </aw-wizard>\r\n * ```\r\n *\r\n * With completion step:\r\n *\r\n * ```html\r\n * <aw-wizard navBarLocation=\"top\" navBarLayout=\"small\">\r\n *     <aw-wizard-step>...</aw-wizard-step>\r\n *     <aw-wizard-step>...</aw-wizard-step>\r\n *     <aw-wizard-completion-step>...</aw-wizard-completion-step>\r\n * </aw-wizard>\r\n * ```\r\n *\r\n * @author Marc Arndt\r\n */\r\n@Component({\r\n  selector: 'aw-wizard',\r\n  templateUrl: 'wizard.component.html',\r\n  providers: [{ provide: WIZARD_TOKEN, useExisting: WizardComponent }]\r\n})\r\nexport class WizardComponent implements AfterContentInit, Wizard {\r\n  /**\r\n   * A QueryList containing all [[WizardStep]]s inside this wizard\r\n   */\r\n  @ContentChildren(WizardStep, { descendants: true })\r\n  public wizardStepsQueryList: QueryList<WizardStep>;\r\n\r\n  /**\r\n   * The location of the navigation bar inside the wizard.\r\n   * This location can be either top, bottom, left or right\r\n   */\r\n  @Input()\r\n  public navBarLocation = 'top';\r\n\r\n  /**\r\n   * The layout of the navigation bar inside the wizard.\r\n   * The layout can be either small, large-filled, large-empty or large-symbols\r\n   */\r\n  @Input()\r\n  public navBarLayout = 'small';\r\n\r\n  /**\r\n   * The direction in which the steps inside the navigation bar should be shown.\r\n   * The direction can be either `left-to-right` or `right-to-left`\r\n   */\r\n  @Input()\r\n  public navBarDirection = 'left-to-right';\r\n\r\n  /**\r\n   * The initially selected step, represented by its index\r\n   * Beware: This initial default is only used if no wizard step has been enhanced with the `selected` directive\r\n   */\r\n  @Input()\r\n  public get defaultStepIndex(): number {\r\n    // This value can be either:\r\n    // - the index of a wizard step with a `selected` directive, or\r\n    // - the default step index, set in the [[WizardComponent]]\r\n\r\n    const foundDefaultStep = this.wizardSteps.find(step => step.defaultSelected);\r\n\r\n    if (foundDefaultStep) {\r\n      return this.getIndexOfStep(foundDefaultStep);\r\n    } else {\r\n      return this._defaultStepIndex;\r\n    }\r\n  }\r\n  public set defaultStepIndex(defaultStepIndex: number) {\r\n    this._defaultStepIndex = defaultStepIndex;\r\n  }\r\n  private _defaultStepIndex = 0;\r\n\r\n  /**\r\n   * True, if the navigation bar shouldn't be used for navigating\r\n   */\r\n  @Input()\r\n  public disableNavigationBar = false;\r\n\r\n  /**\r\n   * The navigation mode used to navigate inside the wizard\r\n   *\r\n   * For outside access, use the [[navigation]] getter.\r\n   */\r\n  private _navigation: NavigationMode = new ConfigurableNavigationMode();\r\n\r\n  /**\r\n   * An array representation of all wizard steps belonging to this model\r\n   *\r\n   * For outside access, use the [[wizardSteps]] getter.\r\n   */\r\n  private _wizardSteps: WizardStep[] = [];\r\n\r\n  /**\r\n   * The index of the currently visible and selected step inside the wizardSteps QueryList.\r\n   * If this wizard contains no steps, currentStepIndex is -1\r\n   *\r\n   * Note: Do not modify this field directly.  Instead, use navigation methods:\r\n   * [[goToStep]], [[goToPreviousStep]], [[goToNextStep]].\r\n   */\r\n  public currentStepIndex = -1;\r\n\r\n  /**\r\n   * Constructor\r\n   */\r\n  constructor() {\r\n  }\r\n\r\n  /**\r\n   * Returns true if this wizard uses a horizontal orientation.\r\n   * The wizard uses a horizontal orientation, iff the navigation bar is shown at the top or bottom of this wizard\r\n   *\r\n   * @returns True if this wizard uses a horizontal orientation\r\n   */\r\n  @HostBinding('class.horizontal')\r\n  public get horizontalOrientation(): boolean {\r\n    return this.navBarLocation === 'top' || this.navBarLocation === 'bottom';\r\n  }\r\n\r\n  /**\r\n   * Returns true if this wizard uses a vertical orientation.\r\n   * The wizard uses a vertical orientation, iff the navigation bar is shown at the left or right of this wizard\r\n   *\r\n   * @returns True if this wizard uses a vertical orientation\r\n   */\r\n  @HostBinding('class.vertical')\r\n  public get verticalOrientation(): boolean {\r\n    return this.navBarLocation === 'left' || this.navBarLocation === 'right';\r\n  }\r\n\r\n  /**\r\n   * Initialization work\r\n   */\r\n  public ngAfterContentInit(): void {\r\n    // add a subscriber to the wizard steps QueryList to listen to changes in the DOM\r\n    this.wizardStepsQueryList.changes.subscribe(changedWizardSteps => {\r\n      this.updateWizardSteps(changedWizardSteps.toArray());\r\n    });\r\n\r\n    // initialize the model\r\n    this.updateWizardSteps(this.wizardStepsQueryList.toArray());\r\n\r\n    // finally reset the whole wizard component\r\n    setTimeout(() => this.reset());\r\n  }\r\n\r\n  /**\r\n   * The WizardStep object belonging to the currently visible and selected step.\r\n   * The currentStep is always the currently selected wizard step.\r\n   * The currentStep can be either completed, if it was visited earlier,\r\n   * or not completed, if it is visited for the first time or its state is currently out of date.\r\n   *\r\n   * If this wizard contains no steps, currentStep is null\r\n   */\r\n  public get currentStep(): WizardStep {\r\n    if (this.hasStep(this.currentStepIndex)) {\r\n      return this.wizardSteps[this.currentStepIndex];\r\n    } else {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * The completeness of the wizard.\r\n   * If the wizard has been completed, i.e. all steps are either completed or optional, this value is true, otherwise it is false\r\n   */\r\n  public get completed(): boolean {\r\n    return this.wizardSteps.every(step => step.completed || step.optional);\r\n  }\r\n\r\n  /**\r\n   * An array representation of all wizard steps belonging to this model\r\n   */\r\n  public get wizardSteps(): WizardStep[] {\r\n    return this._wizardSteps;\r\n  }\r\n\r\n  /**\r\n   * Updates the wizard steps to the new array\r\n   *\r\n   * @param wizardSteps The updated wizard steps\r\n   */\r\n  private updateWizardSteps(wizardSteps: WizardStep[]): void {\r\n    // the wizard is currently not in the initialization phase\r\n    if (this.wizardSteps.length > 0 && this.currentStepIndex > -1) {\r\n      this.currentStepIndex = wizardSteps.indexOf(this.wizardSteps[this.currentStepIndex]);\r\n    }\r\n\r\n    this._wizardSteps = wizardSteps;\r\n  }\r\n\r\n  /**\r\n   * The navigation mode used to navigate inside the wizard\r\n   */\r\n  public get navigation(): NavigationMode {\r\n    return this._navigation;\r\n  }\r\n\r\n  /**\r\n   * Updates the navigation mode for this wizard component\r\n   *\r\n   * @param navigation The updated navigation mode\r\n   */\r\n  public set navigation(navigation: NavigationMode) {\r\n    this._navigation = navigation;\r\n  }\r\n\r\n  /**\r\n   * Checks if a given index `stepIndex` is inside the range of possible wizard steps inside this wizard\r\n   *\r\n   * @param stepIndex The to be checked index of a step inside this wizard\r\n   * @returns True if the given `stepIndex` is contained inside this wizard, false otherwise\r\n   */\r\n  public hasStep(stepIndex: number): boolean {\r\n    return this.wizardSteps.length > 0 && 0 <= stepIndex && stepIndex < this.wizardSteps.length;\r\n  }\r\n\r\n  /**\r\n   * Checks if this wizard has a previous step, compared to the current step\r\n   *\r\n   * @returns True if this wizard has a previous step before the current step\r\n   */\r\n  public hasPreviousStep(): boolean {\r\n    return this.hasStep(this.currentStepIndex - 1);\r\n  }\r\n\r\n  /**\r\n   * Checks if this wizard has a next step, compared to the current step\r\n   *\r\n   * @returns True if this wizard has a next step after the current step\r\n   */\r\n  public hasNextStep(): boolean {\r\n    return this.hasStep(this.currentStepIndex + 1);\r\n  }\r\n\r\n  /**\r\n   * Checks if this wizard is currently inside its last step\r\n   *\r\n   * @returns True if the wizard is currently inside its last step\r\n   */\r\n  public isLastStep(): boolean {\r\n    return this.wizardSteps.length > 0 && this.currentStepIndex === this.wizardSteps.length - 1;\r\n  }\r\n\r\n  /**\r\n   * Finds the [[WizardStep]] at the given index `stepIndex`.\r\n   * If no [[WizardStep]] exists at the given index an Error is thrown\r\n   *\r\n   * @param stepIndex The given index\r\n   * @returns The found [[WizardStep]] at the given index `stepIndex`\r\n   * @throws An `Error` is thrown, if the given index `stepIndex` doesn't exist\r\n   */\r\n  public getStepAtIndex(stepIndex: number): WizardStep {\r\n    if (!this.hasStep(stepIndex)) {\r\n      throw new Error(`Expected a known step, but got stepIndex: ${stepIndex}.`);\r\n    }\r\n\r\n    return this.wizardSteps[stepIndex];\r\n  }\r\n\r\n  /**\r\n   * Finds the index of the step with the given `stepId`.\r\n   * If no step with the given `stepId` exists, `-1` is returned\r\n   *\r\n   * @param stepId The given step id\r\n   * @returns The found index of a step with the given step id, or `-1` if no step with the given id is included in the wizard\r\n   */\r\n  public getIndexOfStepWithId(stepId: string): number {\r\n    return this.wizardSteps.findIndex(step => step.stepId === stepId);\r\n  }\r\n\r\n  /**\r\n   * Finds the index of the given [[WizardStep]] `step`.\r\n   * If the given [[WizardStep]] is not contained inside this wizard, `-1` is returned\r\n   *\r\n   * @param step The given [[WizardStep]]\r\n   * @returns The found index of `step` or `-1` if the step is not included in the wizard\r\n   */\r\n  public getIndexOfStep(step: WizardStep): number {\r\n    return this.wizardSteps.indexOf(step);\r\n  }\r\n\r\n  /**\r\n   * Calculates the correct [[MovingDirection]] value for a given `destinationStep` compared to the `currentStepIndex`.\r\n   *\r\n   * @param destinationStep The given destination step\r\n   * @returns The calculated [[MovingDirection]]\r\n   */\r\n  public getMovingDirection(destinationStep: number): MovingDirection {\r\n    let movingDirection: MovingDirection;\r\n\r\n    if (destinationStep > this.currentStepIndex) {\r\n      movingDirection = MovingDirection.Forwards;\r\n    } else if (destinationStep < this.currentStepIndex) {\r\n      movingDirection = MovingDirection.Backwards;\r\n    } else {\r\n      movingDirection = MovingDirection.Stay;\r\n    }\r\n\r\n    return movingDirection;\r\n  }\r\n\r\n  /**\r\n   * Checks, whether a wizard step, as defined by the given destination index, can be transitioned to.\r\n   *\r\n   * This method controls navigation by [[goToStep]], [[goToPreviousStep]], and [[goToNextStep]] directives.\r\n   * Navigation by navigation bar is governed by [[isNavigable]].\r\n   *\r\n   * @param destinationIndex The index of the destination step\r\n   * @returns A [[Promise]] containing `true`, if the destination step can be transitioned to and false otherwise\r\n   */\r\n  public canGoToStep(destinationIndex: number): Promise<boolean> {\r\n    return this.navigation.canGoToStep(this, destinationIndex);\r\n  }\r\n\r\n  /**\r\n   * Tries to transition to the wizard step, as denoted by the given destination index.\r\n   *\r\n   * Note: You do not have to call [[canGoToStep]] before calling [[goToStep]].\r\n   * The [[canGoToStep]] method will be called automatically.\r\n   *\r\n   * @param destinationIndex The index of the destination wizard step, which should be entered\r\n   * @param preFinalize An event emitter, to be called before the step has been transitioned\r\n   * @param postFinalize An event emitter, to be called after the step has been transitioned\r\n   */\r\n  public goToStep(destinationIndex: number, preFinalize?: EventEmitter<void>, postFinalize?: EventEmitter<void>): void {\r\n    return this.navigation.goToStep(this, destinationIndex, preFinalize, postFinalize);\r\n  }\r\n\r\n  /**\r\n   * Tries to transition the wizard to the previous step\r\n   *\r\n   * @param preFinalize An event emitter, to be called before the step has been transitioned\r\n   * @param postFinalize An event emitter, to be called after the step has been transitioned\r\n   */\r\n  public goToPreviousStep(preFinalize?: EventEmitter<void>, postFinalize?: EventEmitter<void>): void {\r\n    return this.navigation.goToStep(this, this.currentStepIndex - 1, preFinalize, postFinalize);\r\n  }\r\n\r\n  /**\r\n   * Tries to transition the wizard to the next step\r\n   *\r\n   * @param preFinalize An event emitter, to be called before the step has been transitioned\r\n   * @param postFinalize An event emitter, to be called after the step has been transitioned\r\n   */\r\n  public goToNextStep(preFinalize?: EventEmitter<void>, postFinalize?: EventEmitter<void>): void {\r\n    return this.navigation.goToStep(this, this.currentStepIndex + 1, preFinalize, postFinalize);\r\n  }\r\n\r\n  /**\r\n   * Checks, whether the wizard step, located at the given index, can be navigated to using the navigation bar.\r\n   *\r\n   * @param destinationIndex The index of the destination step\r\n   * @returns True if the step can be navigated to, false otherwise\r\n   */\r\n  public isNavigable(destinationIndex: number): boolean {\r\n    return this.navigation.isNavigable(this, destinationIndex);\r\n  }\r\n\r\n  /**\r\n   * Resets the state of this wizard.\r\n   */\r\n  public reset(): void {\r\n    this.navigation.reset(this);\r\n  }\r\n}\r\n","<aw-wizard-navigation-bar\r\n  *ngIf=\"navBarLocation == 'top' || navBarLocation == 'left'\"\r\n  [ngClass]=\"{\r\n    'vertical': navBarLocation == 'left',\r\n    'horizontal': navBarLocation == 'top',\r\n    'small': navBarLayout == 'small',\r\n    'large-filled': navBarLayout == 'large-filled',\r\n    'large-filled-symbols': navBarLayout == 'large-filled-symbols',\r\n    'large-empty': navBarLayout == 'large-empty',\r\n    'large-empty-symbols': navBarLayout == 'large-empty-symbols'\r\n  }\">\r\n</aw-wizard-navigation-bar>\r\n\r\n<div [ngClass]=\"{\r\n  'wizard-steps': true,\r\n  'vertical': navBarLocation == 'left' || navBarLocation == 'right',\r\n  'horizontal': navBarLocation == 'top' || navBarLocation == 'bottom'\r\n}\">\r\n  <ng-content></ng-content>\r\n</div>\r\n\r\n<aw-wizard-navigation-bar\r\n  *ngIf=\"navBarLocation == 'bottom' || navBarLocation == 'right'\"\r\n  [ngClass]=\"{\r\n    'vertical': navBarLocation == 'right',\r\n    'horizontal': navBarLocation == 'bottom',\r\n    'small': navBarLayout == 'small',\r\n    'large-filled': navBarLayout == 'large-filled',\r\n    'large-filled-symbols': navBarLayout == 'large-filled-symbols',\r\n    'large-empty': navBarLayout == 'large-empty',\r\n    'large-empty-symbols': navBarLayout == 'large-empty-symbols'\r\n  }\">\r\n</aw-wizard-navigation-bar>\r\n","import { Directive, EventEmitter, Host, OnInit, Output } from '@angular/core';\r\nimport { MovingDirection } from '../util/moving-direction.enum';\r\nimport { WizardCompletionStep } from '../util/wizard-completion-step.interface';\r\n\r\n/**\r\n * The `awEnableBackLinks` directive can be used to allow the user to leave a [[WizardCompletionStep]] after is has been entered.\r\n *\r\n * ### Syntax\r\n *\r\n * ```html\r\n * <aw-wizard-completion-step awEnableBackLinks (stepExit)=\"exit function\">\r\n *     ...\r\n * </aw-wizard-completion-step>\r\n * ```\r\n *\r\n * ### Example\r\n *\r\n * ```html\r\n * <aw-wizard-completion-step stepTitle=\"Final step\" awEnableBackLinks>\r\n *     ...\r\n * </aw-wizard-completion-step>\r\n * ```\r\n *\r\n * @author Marc Arndt\r\n */\r\n@Directive({\r\n  selector: '[awEnableBackLinks]'\r\n})\r\nexport class EnableBackLinksDirective implements OnInit {\r\n  /**\r\n   * This EventEmitter is called when the step is exited.\r\n   * The bound method can be used to do cleanup work.\r\n   */\r\n  @Output()\r\n  public stepExit = new EventEmitter<MovingDirection>();\r\n\r\n  /**\r\n   * Constructor\r\n   *\r\n   * @param completionStep The wizard completion step, which should be exitable\r\n   */\r\n  constructor(@Host() private completionStep: WizardCompletionStep) {\r\n  }\r\n\r\n  /**\r\n   * Initialization work\r\n   */\r\n  public ngOnInit(): void {\r\n    this.completionStep.canExit = true;\r\n    this.completionStep.stepExit = this.stepExit;\r\n  }\r\n}\r\n","import {Directive, EventEmitter, HostListener, Output} from '@angular/core';\r\nimport {WizardComponent} from '../components/wizard.component';\r\n\r\n/**\r\n * The `awNextStep` directive can be used to navigate to the next step.\r\n *\r\n * ### Syntax\r\n *\r\n * ```html\r\n * <button awNextStep (finalize)=\"finalize method\">...</button>\r\n * ```\r\n *\r\n * @author Marc Arndt\r\n */\r\n@Directive({\r\n  selector: '[awNextStep]'\r\n})\r\nexport class NextStepDirective {\r\n  /**\r\n   * This [[EventEmitter]] is called directly before the current step is exited during a transition through a component with this directive.\r\n   */\r\n  @Output()\r\n  public preFinalize: EventEmitter<void> = new EventEmitter();\r\n\r\n  /**\r\n   * This [[EventEmitter]] is called directly after the current step is exited during a transition through a component with this directive.\r\n   */\r\n  @Output()\r\n  public postFinalize: EventEmitter<void> = new EventEmitter();\r\n\r\n  /**\r\n   * Constructor\r\n   *\r\n   * @param wizard The state of the wizard\r\n   */\r\n  constructor(private wizard: WizardComponent) {\r\n  }\r\n\r\n  /**\r\n   * A convenience field for `preFinalize`\r\n   */\r\n  public get finalize(): EventEmitter<void> {\r\n    return this.preFinalize;\r\n  }\r\n\r\n  /**\r\n   * A convenience name for `preFinalize`\r\n   *\r\n   * @param emitter The [[EventEmitter]] to be set\r\n   */\r\n  @Output()\r\n  public set finalize(emitter: EventEmitter<void>) {\r\n    this.preFinalize = emitter;\r\n  }\r\n\r\n  /**\r\n   * Listener method for `click` events on the component with this directive.\r\n   * After this method is called the wizard will try to transition to the next step\r\n   */\r\n  @HostListener('click')\r\n  public onClick(): void {\r\n    this.wizard.goToNextStep(this.preFinalize, this.postFinalize);\r\n  }\r\n}\r\n","import {Directive, Host, Input, OnInit} from '@angular/core';\r\nimport {WizardStep} from '../util/wizard-step.interface';\r\n\r\n/**\r\n * The `awOptionalStep` directive can be used to define an optional `wizard-step`.\r\n * An optional wizard step is a [[WizardStep]] that doesn't need to be completed to transition to later wizard steps.\r\n *\r\n * ### Syntax\r\n *\r\n * ```html\r\n * <aw-wizard-step awOptionalStep>\r\n *     ...\r\n * </aw-wizard-step>\r\n * ```\r\n *\r\n * ### Example\r\n *\r\n * ```html\r\n * <aw-wizard-step stepTitle=\"Second step\" awOptionalStep>\r\n *     ...\r\n * </aw-wizard-step>\r\n * ```\r\n *\r\n * @author Marc Arndt\r\n */\r\n@Directive({\r\n  selector: '[awOptionalStep]'\r\n})\r\nexport class OptionalStepDirective implements OnInit {\r\n\r\n  // tslint:disable-next-line:no-input-rename\r\n  @Input('awOptionalStep')\r\n  public optional = true;\r\n\r\n  /**\r\n   * Constructor\r\n   *\r\n   * @param wizardStep The wizard step, which contains this [[OptionalStepDirective]]\r\n   */\r\n  constructor(@Host() private wizardStep: WizardStep) {\r\n  }\r\n\r\n  /**\r\n   * Initialization work\r\n   */\r\n  public ngOnInit(): void {\r\n    // The input receives '' when specified in the template without a value.  In this case, apply the default value (`true`).\r\n    this.wizardStep.optional = this.optional || this.optional as any === '';\r\n  }\r\n}\r\n","import {Directive, EventEmitter, HostListener, Output} from '@angular/core';\r\nimport {WizardComponent} from '../components/wizard.component';\r\n\r\n/**\r\n * The `awPreviousStep` directive can be used to navigate to the previous step.\r\n * Compared to the [[NextStepDirective]] it's important to note, that this directive doesn't contain a `finalize` output method.\r\n *\r\n * ### Syntax\r\n *\r\n * ```html\r\n * <button awPreviousStep>...</button>\r\n * ```\r\n *\r\n * @author Marc Arndt\r\n */\r\n@Directive({\r\n  selector: '[awPreviousStep]'\r\n})\r\nexport class PreviousStepDirective {\r\n  /**\r\n   * This [[EventEmitter]] is called directly before the current step is exited during a transition through a component with this directive.\r\n   */\r\n  @Output()\r\n  public preFinalize: EventEmitter<void> = new EventEmitter();\r\n\r\n  /**\r\n   * This [[EventEmitter]] is called directly after the current step is exited during a transition through a component with this directive.\r\n   */\r\n  @Output()\r\n  public postFinalize: EventEmitter<void> = new EventEmitter();\r\n\r\n  /**\r\n   * Constructor\r\n   *\r\n   * @param wizard The state of the wizard\r\n   */\r\n  constructor(private wizard: WizardComponent) {\r\n  }\r\n\r\n  /**\r\n   * A convenience field for `preFinalize`\r\n   */\r\n  public get finalize(): EventEmitter<void> {\r\n    return this.preFinalize;\r\n  }\r\n\r\n  /**\r\n   * A convenience field for `preFinalize`\r\n   *\r\n   * @param emitter The [[EventEmitter]] to be set\r\n   */\r\n  @Output()\r\n  public set finalize(emitter: EventEmitter<void>) {\r\n    /* istanbul ignore next */\r\n    this.preFinalize = emitter;\r\n  }\r\n\r\n  /**\r\n   * Listener method for `click` events on the component with this directive.\r\n   * After this method is called the wizard will try to transition to the previous step\r\n   */\r\n  @HostListener('click')\r\n  public onClick(): void {\r\n    this.wizard.goToPreviousStep(this.preFinalize, this.postFinalize);\r\n  }\r\n}\r\n","import {Directive, EventEmitter, HostListener, Output} from '@angular/core';\r\nimport {WizardComponent} from '../components/wizard.component';\r\n\r\n/**\r\n * The `awResetWizard` directive can be used to reset the wizard to its initial state.\r\n * This directive accepts an output, which can be used to specify some custom cleanup work during the reset process.\r\n *\r\n * ### Syntax\r\n *\r\n * ```html\r\n * <button awResetWizard (finalize)=\"custom reset task\">...</button>\r\n * ```\r\n *\r\n * @author Marc Arndt\r\n */\r\n@Directive({\r\n  selector: '[awResetWizard]'\r\n})\r\nexport class ResetWizardDirective {\r\n  /**\r\n   * An [[EventEmitter]] containing some tasks to be done, directly before the wizard is being reset\r\n   */\r\n  @Output()\r\n  public finalize: EventEmitter<void> = new EventEmitter();\r\n\r\n  /**\r\n   * Constructor\r\n   *\r\n   * @param wizard The wizard component\r\n   */\r\n  constructor(private wizard: WizardComponent) {\r\n  }\r\n\r\n  /**\r\n   * Resets the wizard\r\n   */\r\n  @HostListener('click')\r\n  public onClick(): void {\r\n    // do some optional cleanup work\r\n    this.finalize.emit();\r\n    // reset the wizard to its initial state\r\n    this.wizard.reset();\r\n  }\r\n}\r\n","import {Directive, Host, OnInit} from '@angular/core';\r\nimport {WizardStep} from '../util/wizard-step.interface';\r\n\r\n/**\r\n * The `awSelectedStep` directive can be used on a [[WizardStep]] to set it as selected after the wizard initialisation or a reset.\r\n *\r\n * ### Syntax\r\n *\r\n * ```html\r\n * <aw-wizard-step stepTitle=\"Step title\" awSelectedStep>\r\n *     ...\r\n * </aw-wizard-step>\r\n * ```\r\n *\r\n * @author Marc Arndt\r\n */\r\n@Directive({\r\n  selector: '[awSelectedStep]'\r\n})\r\nexport class SelectedStepDirective implements OnInit {\r\n  /**\r\n   * Constructor\r\n   *\r\n   * @param wizardStep The wizard step, which should be selected by default\r\n   */\r\n  constructor(@Host() private wizardStep: WizardStep) {\r\n  }\r\n\r\n  /**\r\n   * Initialization work\r\n   */\r\n  public ngOnInit(): void {\r\n    this.wizardStep.defaultSelected = true;\r\n  }\r\n}\r\n","import {Directive, forwardRef} from '@angular/core';\r\nimport {WizardCompletionStep} from '../util/wizard-completion-step.interface';\r\nimport {WizardStep} from '../util/wizard-step.interface';\r\n\r\n/**\r\n * The `awWizardCompletionStep` directive can be used to define a completion/success step at the end of your wizard\r\n * After a [[WizardCompletionStep]] has been entered, it has the characteristic that the user is blocked from\r\n * leaving it again to a previous step.\r\n * In addition entering a [[WizardCompletionStep]] automatically sets the `wizard`, and all steps inside the `wizard`,\r\n * as completed.\r\n *\r\n * ### Syntax\r\n *\r\n * ```html\r\n * <div awWizardCompletionStep [stepTitle]=\"title of the wizard step\"\r\n *    [navigationSymbol]=\"{ symbol: 'navigation symbol', fontFamily: 'font-family' }\"\r\n *    (stepEnter)=\"event emitter to be called when the wizard step is entered\"\r\n *    (stepExit)=\"event emitter to be called when the wizard step is exited\">\r\n *    ...\r\n * </div>\r\n * ```\r\n *\r\n * ### Example\r\n *\r\n * ```html\r\n * <div awWizardCompletionStep stepTitle=\"Step 1\" [navigationSymbol]=\"{ symbol: '1' }\">\r\n *    ...\r\n * </div>\r\n * ```\r\n *\r\n * With a navigation symbol from the `font-awesome` font:\r\n *\r\n * ```html\r\n * <div awWizardCompletionStep stepTitle=\"Step 1\" [navigationSymbol]=\"{ symbol: '&#xf1ba;', fontFamily: 'FontAwesome' }\">\r\n *    ...\r\n * </div>\r\n * ```\r\n *\r\n * @author Marc Arndt\r\n */\r\n@Directive({\r\n  selector: '[awWizardCompletionStep]',\r\n  providers: [\r\n    {provide: WizardStep, useExisting: forwardRef(() => WizardCompletionStepDirective)},\r\n    {provide: WizardCompletionStep, useExisting: forwardRef(() => WizardCompletionStepDirective)}\r\n  ]\r\n})\r\nexport class WizardCompletionStepDirective extends WizardCompletionStep {\r\n}\r\n","import {Directive, forwardRef} from '@angular/core';\r\nimport {WizardStep} from '../util/wizard-step.interface';\r\n\r\n/**\r\n * The `awWizardStep` directive can be used to define a normal step inside a wizard.\r\n *\r\n * ### Syntax\r\n *\r\n * With `stepTitle` and `navigationSymbol` inputs:\r\n *\r\n * ```html\r\n * <div awWizardStep [stepTitle]=\"step title\" [navigationSymbol]=\"{ symbol: 'symbol', fontFamily: 'font-family' }\"\r\n *    [canExit]=\"deciding function\" (stepEnter)=\"enter function\" (stepExit)=\"exit function\">\r\n *    ...\r\n * </div>\r\n * ```\r\n *\r\n * With `awWizardStepTitle` and `awWizardStepSymbol` directives:\r\n *\r\n * ```html\r\n * <div awWizardStep [canExit]=\"deciding function\" (stepEnter)=\"enter function\" (stepExit)=\"exit function\">\r\n *    <ng-template awWizardStepTitle>\r\n *        step title\r\n *    </ng-template>\r\n *    <ng-template awWizardStepSymbol>\r\n *        symbol\r\n *    </ng-template>\r\n *    ...\r\n * </div>\r\n * ```\r\n *\r\n * ### Example\r\n *\r\n * With `stepTitle` and `navigationSymbol` inputs:\r\n *\r\n * ```html\r\n * <div awWizardStep stepTitle=\"Address information\" [navigationSymbol]=\"{ symbol: '&#xf1ba;', fontFamily: 'FontAwesome' }\">\r\n *    ...\r\n * </div>\r\n * ```\r\n *\r\n * With `awWizardStepTitle` and `awWizardStepSymbol` directives:\r\n *\r\n * ```html\r\n * <div awWizardStep>\r\n *    <ng-template awWizardStepTitle>\r\n *        Address information\r\n *    </ng-template>\r\n *    <ng-template awWizardStepSymbol>\r\n *        <i class=\"fa fa-taxi\"></i>\r\n *    </ng-template>\r\n * </div>\r\n * ```\r\n *\r\n * @author Marc Arndt\r\n */\r\n@Directive({\r\n  selector: '[awWizardStep]',\r\n  providers: [\r\n    {provide: WizardStep, useExisting: forwardRef(() => WizardStepDirective)}\r\n  ]\r\n})\r\nexport class WizardStepDirective extends WizardStep {\r\n}\r\n","import {Directive, Input, OnChanges, SimpleChanges} from '@angular/core';\r\n\r\nimport {NavigationMode} from '../navigation/navigation-mode.interface';\r\nimport {ConfigurableNavigationMode} from '../navigation/configurable-navigation-mode';\r\nimport {WizardComponent} from '../components/wizard.component';\r\n\r\n\r\n/**\r\n * The [[awNavigationMode]] directive can be used to customize wizard'd navigation mode.\r\n *\r\n * There are several usage options:\r\n *\r\n * ### Option 1. Customize the default navigation mode with [[navigateBackward]] and/or [[navigateForward]] inputs.\r\n *\r\n * ```html\r\n * <aw-wizard [awNavigationMode] navigateBackward=\"deny\" navigateForward=\"allow\">...</aw-wizard>\r\n * ```\r\n *\r\n * ### Option 2. Pass in a custom navigation mode\r\n *\r\n * ```typescript\r\n * import { BaseNavigationMode } from 'angular-archwizard'\r\n *\r\n * class CustomNavigationMode extends BaseNavigationMode {\r\n *\r\n *   // ...\r\n * }\r\n * ```\r\n *\r\n * ```typescript\r\n * @Component({\r\n *   // ...\r\n * })\r\n * class MyComponent {\r\n *\r\n *   navigationMode = new CustomNavigationMode();\r\n * }\r\n * ```\r\n *\r\n * ```html\r\n * <aw-wizard [awNavigationMode]=\"navigationMode\">...</aw-wizard>\r\n * ```\r\n *\r\n * ### Additional Notes\r\n *\r\n * - Specifying a custom navigation mode takes priority over [[navigateBackward]] and [[navigateForward]] inputs\r\n *\r\n * - Omitting the [[awNavigationMode]] directive or, equally, specifying just [[awNavigationMode]] without\r\n *   any inputs or parameters causes the wizard to use the default \"strict\" navigation mode equivalent to\r\n *\r\n * ```html\r\n * <aw-wizard [awNavigationMode] navigateBackward=\"deny\" navigateForward=\"allow\">...</aw-wizard>\r\n * ````\r\n */\r\n@Directive({\r\n  selector: '[awNavigationMode]',\r\n})\r\nexport class NavigationModeDirective implements OnChanges {\r\n\r\n  /**\r\n   * Custom navigation mode instance (optional).\r\n   */\r\n  @Input()\r\n  public awNavigationMode: NavigationMode|null;\r\n\r\n  /**\r\n   * A parameter for the default navigation mode.  Controls whether wizard steps before the current step are navigable:\r\n   *\r\n   * - `navigateBackward=\"deny\"` -- the steps are not navigable\r\n   * - `navigateBackward=\"allow\"` -- the steps are navigable\r\n   */\r\n  @Input()\r\n  public navigateBackward: 'allow'|'deny'|null;\r\n\r\n  /**\r\n   * A parameter for the default navigation mode.  Controls whether wizard steps after the current step are navigable:\r\n   *\r\n   * - `navigateForward=\"deny\"` -- the steps are not navigable\r\n   * - `navigateForward=\"allow\"` -- the steps are navigable\r\n   * - `navigateForward=\"visited\"` -- a step is navigable iff it was already visited before\r\n   */\r\n  @Input()\r\n  public navigateForward: 'allow'|'deny'|'visited'|null;\r\n\r\n  constructor(private wizard: WizardComponent) { }\r\n\r\n  public ngOnChanges(changes: SimpleChanges): void {\r\n    this.wizard.navigation = this.getNavigationMode();\r\n  }\r\n\r\n  private getNavigationMode(): NavigationMode {\r\n    if (this.awNavigationMode) {\r\n      return this.awNavigationMode;\r\n    }\r\n    return new ConfigurableNavigationMode(this.navigateBackward, this.navigateForward);\r\n  }\r\n\r\n}\r\n","import {Directive, Host, Input, OnInit} from '@angular/core';\r\nimport {WizardStep} from '../util/wizard-step.interface';\r\n\r\n/**\r\n * The `awCompletedStep` directive can be used to make a wizard step initially completed.\r\n *\r\n * Initially completed steps are shown as completed when the wizard is presented to the user.\r\n *\r\n * A typical use case is to make a step initially completed if it is automatically filled with some derived/predefined information.\r\n *\r\n * ### Syntax\r\n *\r\n * ```html\r\n * <aw-wizard-step awCompletedStep>\r\n *     ...\r\n * </aw-wizard-step>\r\n * ```\r\n *\r\n * An optional boolean condition can be specified:\r\n *\r\n * ```html\r\n * <aw-wizard-step [awCompletedStep]=\"shouldBeCompleted\">\r\n *     ...\r\n * </aw-wizard-step>\r\n * ```\r\n *\r\n * ### Example\r\n *\r\n * ```html\r\n * <aw-wizard-step stepTitle=\"First step\" [awCompletedStep]=\"firstStepPrefilled\">\r\n *     ...\r\n * </aw-wizard-step>\r\n * ```\r\n */\r\n@Directive({\r\n  selector: '[awCompletedStep]'\r\n})\r\nexport class CompletedStepDirective implements OnInit {\r\n\r\n  // tslint:disable-next-line:no-input-rename\r\n  @Input('awCompletedStep')\r\n  public initiallyCompleted = true;\r\n\r\n  /**\r\n   * Constructor\r\n   *\r\n   * @param wizardStep The wizard step, which contains this [[CompletedStepDirective]]\r\n   */\r\n  constructor(@Host() private wizardStep: WizardStep) {\r\n  }\r\n\r\n  /**\r\n   * Initialization work\r\n   */\r\n  public ngOnInit(): void {\r\n    // The input receives '' when specified in the template without a value.  In this case, apply the default value (`true`).\r\n    this.wizardStep.initiallyCompleted = this.initiallyCompleted || this.initiallyCompleted as any === '';\r\n  }\r\n}\r\n","import {CommonModule} from '@angular/common';\r\nimport {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {WizardCompletionStepComponent} from './components/wizard-completion-step.component';\r\nimport {WizardNavigationBarComponent} from './components/wizard-navigation-bar.component';\r\nimport {WizardStepComponent} from './components/wizard-step.component';\r\nimport {WizardComponent} from './components/wizard.component';\r\nimport {EnableBackLinksDirective} from './directives/enable-back-links.directive';\r\nimport {GoToStepDirective} from './directives/go-to-step.directive';\r\nimport {NextStepDirective} from './directives/next-step.directive';\r\nimport {OptionalStepDirective} from './directives/optional-step.directive';\r\nimport {PreviousStepDirective} from './directives/previous-step.directive';\r\nimport {ResetWizardDirective} from './directives/reset-wizard.directive';\r\nimport {SelectedStepDirective} from './directives/selected-step.directive';\r\nimport {WizardCompletionStepDirective} from './directives/wizard-completion-step.directive';\r\nimport {WizardStepSymbolDirective} from './directives/wizard-step-symbol.directive';\r\nimport {WizardStepTitleDirective} from './directives/wizard-step-title.directive';\r\nimport {WizardStepDirective} from './directives/wizard-step.directive';\r\nimport {NavigationModeDirective} from './directives/navigation-mode.directive';\r\nimport {CompletedStepDirective} from './directives/completed-step.directive';\r\n\r\n\r\n/**\r\n * The module defining all the content inside `angular-archwizard`\r\n *\r\n * @author Marc Arndt\r\n */\r\n@NgModule({\r\n  declarations: [\r\n    WizardComponent,\r\n    WizardStepComponent,\r\n    WizardNavigationBarComponent,\r\n    WizardCompletionStepComponent,\r\n    GoToStepDirective,\r\n    NextStepDirective,\r\n    PreviousStepDirective,\r\n    OptionalStepDirective,\r\n    WizardStepSymbolDirective,\r\n    WizardStepTitleDirective,\r\n    EnableBackLinksDirective,\r\n    WizardStepDirective,\r\n    WizardCompletionStepDirective,\r\n    SelectedStepDirective,\r\n    ResetWizardDirective,\r\n    NavigationModeDirective,\r\n    CompletedStepDirective,\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    WizardComponent,\r\n    WizardStepComponent,\r\n    WizardNavigationBarComponent,\r\n    WizardCompletionStepComponent,\r\n    GoToStepDirective,\r\n    NextStepDirective,\r\n    PreviousStepDirective,\r\n    OptionalStepDirective,\r\n    WizardStepSymbolDirective,\r\n    WizardStepTitleDirective,\r\n    EnableBackLinksDirective,\r\n    WizardStepDirective,\r\n    WizardCompletionStepDirective,\r\n    SelectedStepDirective,\r\n    ResetWizardDirective,\r\n    NavigationModeDirective,\r\n    CompletedStepDirective,\r\n  ]\r\n})\r\nexport class ArchwizardModule {\r\n  /* istanbul ignore next */\r\n  public static forRoot(): ModuleWithProviders<ArchwizardModule> {\r\n    return {\r\n      ngModule: ArchwizardModule,\r\n      providers: [\r\n        // Nothing here yet\r\n      ]\r\n    };\r\n  }\r\n}\r\n","// export the components\r\nexport {WizardCompletionStepComponent} from './lib/components/wizard-completion-step.component';\r\nexport {WizardNavigationBarComponent} from './lib/components/wizard-navigation-bar.component';\r\nexport {WizardStepComponent} from './lib/components/wizard-step.component';\r\nexport {WizardComponent} from './lib/components/wizard.component';\r\n\r\n// export the directives\r\nexport {EnableBackLinksDirective} from './lib/directives/enable-back-links.directive';\r\nexport {GoToStepDirective} from './lib/directives/go-to-step.directive';\r\nexport {NextStepDirective} from './lib/directives/next-step.directive';\r\nexport {OptionalStepDirective} from './lib/directives/optional-step.directive';\r\nexport {PreviousStepDirective} from './lib/directives/previous-step.directive';\r\nexport {ResetWizardDirective} from './lib/directives/reset-wizard.directive';\r\nexport {SelectedStepDirective} from './lib/directives/selected-step.directive';\r\nexport {WizardCompletionStepDirective} from './lib/directives/wizard-completion-step.directive';\r\nexport {WizardStepDirective} from './lib/directives/wizard-step.directive';\r\nexport {WizardStepTitleDirective} from './lib/directives/wizard-step-title.directive';\r\nexport {NavigationModeDirective} from './lib/directives/navigation-mode.directive';\r\nexport {CompletedStepDirective} from './lib/directives/completed-step.directive';\r\nexport {WizardStepSymbolDirective} from './lib/directives/wizard-step-symbol.directive';\r\n\r\n// export the navigation classes\r\nexport {NavigationMode} from './lib/navigation/navigation-mode.interface';\r\nexport {ConfigurableNavigationMode} from './lib/navigation/configurable-navigation-mode';\r\nexport {BaseNavigationMode} from './lib/navigation/base-navigation-mode.interface';\r\n\r\n// export the utility functions\r\nexport {MovingDirection} from './lib/util/moving-direction.enum';\r\nexport {NavigationSymbol} from './lib/util/navigation-symbol.interface';\r\nexport {StepId, isStepId} from './lib/util/step-id.interface';\r\nexport {StepIndex, isStepIndex} from './lib/util/step-index.interface';\r\nexport {StepOffset, isStepOffset} from './lib/util/step-offset.interface';\r\nexport {WizardCompletionStep} from './lib/util/wizard-completion-step.interface';\r\nexport {WizardStep} from './lib/util/wizard-step.interface';\r\n\r\n// export the module\r\nexport {ArchwizardModule} from './lib/archwizard.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.WizardStep","i2.GoToStepDirective","i2.WizardNavigationBarComponent","i1.WizardCompletionStep","i1.WizardComponent"],"mappings":"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"}