{"version":3,"file":"ng-wizard-v2.mjs","sources":["../../../src/ng-wizard-v2/lib/utils/enums.ts","../../../src/ng-wizard-v2/lib/utils/constants.ts","../../../src/ng-wizard-v2/lib/core/ng-wizard-config.token.ts","../../../src/ng-wizard-v2/lib/utils/functions.ts","../../../src/ng-wizard-v2/lib/core/ng-wizard-data.service.ts","../../../src/ng-wizard-v2/lib/core/ng-wizard.service.ts","../../../src/ng-wizard-v2/lib/utils/interfaces.ts","../../../src/ng-wizard-v2/lib/core/ng-wizard-step-content.directive.ts","../../../src/ng-wizard-v2/lib/core/wizard-step/ng-wizard-step.component.ts","../../../src/ng-wizard-v2/lib/core/wizard-step/ng-wizard-step.component.html","../../../src/ng-wizard-v2/lib/core/wizard/ng-wizard.component.ts","../../../src/ng-wizard-v2/lib/core/wizard/ng-wizard.component.html","../../../src/ng-wizard-v2/lib/core/ng-wizard.module.ts","../../../src/ng-wizard-v2/public-api.ts","../../../src/ng-wizard-v2/ng-wizard-v2.ts"],"sourcesContent":["export enum TOOLBAR_POSITION {\r\n    none = 'none',\r\n    top = 'top',\r\n    bottom = 'bottom',\r\n    both = 'both'\r\n}\r\n\r\nexport enum TOOLBAR_BUTTON_POSITION {\r\n    start = 'start',\r\n    end = 'end'\r\n}\r\n\r\n// export enum TRANSITION_EFFECT {\r\n//     none = 'none',\r\n//     slide = 'slide',\r\n//     fade = 'fade'\r\n// }\r\n\r\nexport enum THEME {\r\n    default = 'default',\r\n    arrows = 'arrows',\r\n    circles = 'circles',\r\n    dots = 'dots'\r\n}\r\n\r\nexport enum STEP_STATE {\r\n    normal = 'normal',\r\n    disabled = 'disabled',\r\n    error = 'error',\r\n    hidden = 'hidden'\r\n}\r\n\r\nexport enum STEP_STATUS {\r\n    untouched = 'untouched',\r\n    done = 'done',\r\n    active = 'active'\r\n}\r\n\r\nexport enum STEP_DIRECTIN {\r\n    forward = 'forward',\r\n    backward = 'backward'\r\n}\r\n\r\nexport enum STEP_POSITION {\r\n    first = 'first',\r\n    final = 'final',\r\n    middle = 'middle'\r\n}\r\n","import { NgWizardConfig } from './interfaces';\r\nimport { TOOLBAR_POSITION, TOOLBAR_BUTTON_POSITION/*, TRANSITION_EFFECT*/, THEME } from './enums';\r\n\r\nexport const DEFAULT_CONFIG: NgWizardConfig = {\r\n    selected: 0,\r\n    keyNavigation: true,\r\n    cycleSteps: false,\r\n    lang: {\r\n        next: 'Next',\r\n        previous: 'Previous'\r\n    },\r\n    toolbarSettings: {\r\n        toolbarPosition: TOOLBAR_POSITION.bottom,\r\n        toolbarButtonPosition: TOOLBAR_BUTTON_POSITION.end,\r\n        showNextButton: true,\r\n        showPreviousButton: true,\r\n        toolbarExtraButtons: []\r\n    },\r\n    anchorSettings: {\r\n        anchorClickable: true,\r\n        enableAllAnchors: false,\r\n        markDoneStep: true,\r\n        markAllPreviousStepsAsDone: true,\r\n        removeDoneStepOnNavigateBack: false,\r\n        enableAnchorOnDoneStep: true\r\n    },\r\n    theme: THEME.default,\r\n};","import { InjectionToken } from '@angular/core';\r\nimport { NgWizardConfig } from '../utils/interfaces';\r\n\r\n\r\nexport const NG_WIZARD_CONFIG_TOKEN = new InjectionToken<NgWizardConfig>('ngWizardCustom.config');\r\n","// https://gist.github.com/ahtcx/0cd94e62691f539160b32ecda18af3d6\r\n// Merge a `source` object to a `target` recursively\r\nexport function merge(target: any, source: any) {\r\n    // Iterate through `source` properties and if an `Object` set property to merge of `target` and `source` properties\r\n    for (let key of Object.keys(source)) {\r\n        if (source[key] instanceof Object && key in target) {\r\n            Object.assign(source[key], merge(target[key], source[key]));\r\n        }\r\n    }\r\n\r\n    // Join `target` and modified `source`\r\n    Object.assign(target || {}, source);\r\n\r\n    return target;\r\n}","import { Injectable, Optional, Inject } from '@angular/core';\r\nimport { Subject, Observable } from 'rxjs';\r\n\r\nimport { DEFAULT_CONFIG } from '../utils/constants';\r\nimport { NG_WIZARD_CONFIG_TOKEN } from './ng-wizard-config.token';\r\nimport { NgWizardConfig, StepChangedArgs } from '../utils/interfaces';\r\nimport { THEME } from '../utils/enums';\r\nimport { merge } from '../utils/functions';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class NgWizardDataService {\r\n  resetWizard$: Observable<any>;\r\n  showNextStep$: Observable<any>;\r\n  showPreviousStep$: Observable<any>;\r\n  showStep$: Observable<number>;\r\n  setTheme$: Observable<THEME>;\r\n  stepChangedArgs$: Observable<StepChangedArgs>;\r\n\r\n  private _resetWizard: Subject<any>;\r\n  private _showNextStep: Subject<any>;\r\n  private _showPreviousStep: Subject<any>;\r\n  private _showStep: Subject<number>;\r\n  private _setTheme: Subject<THEME>;\r\n  private _stepChangedArgs: Subject<StepChangedArgs>;\r\n  private _defaultConfig: NgWizardConfig;\r\n\r\n  constructor(@Optional() @Inject(NG_WIZARD_CONFIG_TOKEN) private config: NgWizardConfig) {\r\n    this._defaultConfig = { ...DEFAULT_CONFIG };\r\n    if (this.config) {\r\n      this._defaultConfig = merge(this._defaultConfig, this.config);\r\n    }\r\n\r\n    // Observable sources\r\n    this._resetWizard = new Subject<any>();\r\n    this._showNextStep = new Subject<any>();\r\n    this._showPreviousStep = new Subject<any>();\r\n    this._showStep = new Subject<any>();\r\n    this._setTheme = new Subject<THEME>();\r\n    this._stepChangedArgs = new Subject<StepChangedArgs>();\r\n\r\n    // Observable streams\r\n    this.resetWizard$ = this._resetWizard.asObservable();\r\n    this.showNextStep$ = this._showNextStep.asObservable();\r\n    this.showPreviousStep$ = this._showPreviousStep.asObservable();\r\n    this.showStep$ = this._showStep.asObservable();\r\n    this.setTheme$ = this._setTheme.asObservable();\r\n    this.stepChangedArgs$ = this._stepChangedArgs.asObservable();\r\n  }\r\n\r\n  getDefaultConfig(): NgWizardConfig {\r\n    return { ...this._defaultConfig };\r\n  }\r\n\r\n  resetWizard() {\r\n    this._resetWizard.next();\r\n  }\r\n\r\n  showNextStep() {\r\n    this._showNextStep.next();\r\n  }\r\n\r\n  showPreviousStep() {\r\n    this._showPreviousStep.next();\r\n  }\r\n\r\n  showStep(index: number) {\r\n    this._showStep.next(index);\r\n  }\r\n\r\n  setTheme(theme: THEME) {\r\n    this._setTheme.next(theme);\r\n  }\r\n\r\n  stepChanged(args: StepChangedArgs) {\r\n    this._stepChangedArgs.next(args);\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { NgWizardDataService } from './ng-wizard-data.service';\r\nimport { THEME } from '../utils/enums';\r\nimport { Observable } from 'rxjs';\r\nimport { StepChangedArgs } from '../utils/interfaces';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class NgWizardService {\r\n  constructor(\r\n    private ngWizardDataService: NgWizardDataService\r\n  ) {\r\n  }\r\n\r\n  reset() {\r\n    this.ngWizardDataService.resetWizard();\r\n  }\r\n\r\n  next() {\r\n    this.ngWizardDataService.showNextStep();\r\n  }\r\n\r\n  previous() {\r\n    this.ngWizardDataService.showPreviousStep();\r\n  }\r\n\r\n  show(index: number) {\r\n    this.ngWizardDataService.showStep(index);\r\n  }\r\n\r\n  theme(theme: THEME) {\r\n    this.ngWizardDataService.setTheme(theme);\r\n  }\r\n\r\n  stepChanged(): Observable<StepChangedArgs> {\r\n    return this.ngWizardDataService.stepChangedArgs$;\r\n  }\r\n}\r\n","import { TOOLBAR_POSITION, TOOLBAR_BUTTON_POSITION,/* TRANSITION_EFFECT,*/ THEME, STEP_STATE, STEP_STATUS, STEP_DIRECTIN, STEP_POSITION } from './enums';\r\nimport { Input, HostBinding, Directive, Type, ComponentRef } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface Language {\r\n    next?: string;\r\n    previous?: string;\r\n}\r\n\r\nexport interface ToolbarSettings {\r\n    toolbarPosition?: TOOLBAR_POSITION; // none, top, bottom, both\r\n    toolbarButtonPosition?: TOOLBAR_BUTTON_POSITION; // start, end\r\n    showNextButton?: boolean; // show/hide a Next button\r\n    showPreviousButton?: boolean; // show/hide a Previous button\r\n    toolbarExtraButtons?: ToolbarButton[]; // Extra buttons to show on toolbar, array of input/buttons elements\r\n}\r\n\r\nexport interface ToolbarButton {\r\n    text: string;\r\n    class: string;\r\n    event?: () => void;\r\n}\r\n\r\nexport interface AnchorSettings {\r\n    anchorClickable?: boolean; // Enable/Disable anchor navigation\r\n    enableAllAnchors?: boolean; // Activates all anchors clickable all times\r\n    markDoneStep?: boolean; // Add done css\r\n    markAllPreviousStepsAsDone?: boolean; // When a step selected, all previous steps are marked done\r\n    removeDoneStepOnNavigateBack?: boolean; // While navigate back done step after active step will be cleared\r\n    enableAnchorOnDoneStep?: boolean; // Enable/Disable the done steps navigation\r\n}\r\n\r\nexport interface NgWizardConfig {\r\n    selected?: number; // Initial selected step, 0 = first step\r\n    keyNavigation?: boolean; // Enable/Disable keyboard navigation(left and right keys are used if enabled)\r\n    cycleSteps?: boolean; // Allows to cycle the navigation of steps\r\n    lang?: Language; // Language variables for button\r\n    toolbarSettings?: ToolbarSettings;\r\n    anchorSettings?: AnchorSettings;\r\n    theme?: THEME; // theme for the wizard, related css need to include for other than default theme\r\n}\r\n\r\n@Directive()\r\nexport abstract class NgWizardStep {\r\n    index: number;\r\n\r\n    @Input()\r\n    title: string;\r\n\r\n    @Input()\r\n    description: string;\r\n\r\n    @Input()\r\n    state?: STEP_STATE;\r\n    initialState?: STEP_STATE;\r\n\r\n    @Input()\r\n    component: Type<any>;\r\n    componentRef: ComponentRef<any>;\r\n\r\n    @Input()\r\n    canEnter: boolean | ((args: StepValidationArgs) => boolean) | ((args: StepValidationArgs) => Observable<boolean>);\r\n\r\n    @Input()\r\n    canExit: boolean | ((args: StepValidationArgs) => boolean) | ((args: StepValidationArgs) => Observable<boolean>);\r\n\r\n    status?: STEP_STATUS;\r\n    initialStatus?: STEP_STATUS;\r\n\r\n    @HostBinding('hidden')\r\n    public get hidden(): boolean {\r\n        return this.status != STEP_STATUS.active;\r\n    }\r\n}\r\n\r\nexport interface StepValidationArgs {\r\n    direction: STEP_DIRECTIN;\r\n    fromStep: NgWizardStep;\r\n    toStep: NgWizardStep;\r\n}\r\n\r\nexport interface StepChangedArgs {\r\n    step: NgWizardStep;\r\n    previousStep: NgWizardStep;\r\n    direction: STEP_DIRECTIN;\r\n    position: STEP_POSITION;\r\n}\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[ngWizardStepContent]'\r\n})\r\nexport class NgWizardStepContentDirective {\r\n  constructor(\r\n    public viewContainerRef: ViewContainerRef,\r\n  ) {\r\n  }\r\n}\r\n","import { Component, ComponentFactoryResolver, forwardRef, OnInit, ViewChild } from '@angular/core';\r\nimport { STEP_STATE } from '../../utils/enums';\r\nimport { NgWizardStep } from '../../utils/interfaces';\r\nimport { NgWizardStepContentDirective } from '../ng-wizard-step-content.directive';\r\n\r\n@Component({\r\n  selector: 'ng-wizard-step',\r\n  templateUrl: './ng-wizard-step.component.html',\r\n  styleUrls: ['./ng-wizard-step.component.css'],\r\n  providers: [\r\n    { provide: NgWizardStep, useExisting: forwardRef(() => NgWizardStepComponent) }\r\n  ]\r\n})\r\nexport class NgWizardStepComponent extends NgWizardStep implements OnInit {\r\n  @ViewChild(NgWizardStepContentDirective, { static: true }) stepContent: NgWizardStepContentDirective;\r\n\r\n  constructor(\r\n    private componentFactoryResolver: ComponentFactoryResolver,\r\n  ) {\r\n    super();\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.loadComponent();\r\n  }\r\n\r\n  loadComponent() {\r\n    if (!this.component) {\r\n      return;\r\n    }\r\n\r\n    let componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.component);\r\n\r\n    this.stepContent.viewContainerRef.clear();\r\n    this.componentRef = this.stepContent.viewContainerRef.createComponent(componentFactory);\r\n  }\r\n\r\n  get isHidden(): boolean {\r\n    return this.state == STEP_STATE.hidden;\r\n  }\r\n}\r\n","<div class=\"tab-pane step-content\" style=\"display: block\">\r\n    <ng-content></ng-content>\r\n    <ng-template ngWizardStepContent></ng-template>\r\n</div>","import { Component, AfterContentInit, Input, OnDestroy, EventEmitter, Output, ContentChildren, QueryList } from '@angular/core';\r\nimport { isObservable, observable, Observable, of, Subscription } from 'rxjs';\r\n\r\nimport { NgWizardDataService } from '../ng-wizard-data.service';\r\nimport { NgWizardConfig, NgWizardStep, ToolbarButton, StepChangedArgs, StepValidationArgs } from '../../utils/interfaces';\r\nimport { TOOLBAR_POSITION, STEP_STATE, STEP_STATUS, THEME, STEP_DIRECTIN, STEP_POSITION } from '../../utils/enums';\r\nimport { merge } from '../../utils/functions';\r\n\r\n@Component({\r\n  selector: 'ng-wizard',\r\n  templateUrl: './ng-wizard.component.html',\r\n  styleUrls: ['./ng-wizard.component.css'],\r\n})\r\nexport class NgWizardComponent implements OnDestroy, AfterContentInit {\r\n\r\n  @ContentChildren(NgWizardStep)\r\n  public steps: QueryList<NgWizardStep>;\r\n\r\n  _pConfig: NgWizardConfig;\r\n  get pConfig(): NgWizardConfig {\r\n    return this._pConfig || {};\r\n  }\r\n\r\n  @Input('config')\r\n  set pConfig(config: NgWizardConfig) {\r\n    this._pConfig = config;\r\n  }\r\n\r\n  config: NgWizardConfig;\r\n\r\n  @Output() stepChanged = new EventEmitter<StepChangedArgs>();\r\n  @Output() themeChanged = new EventEmitter<THEME>();\r\n  @Output() reseted = new EventEmitter<void>();\r\n\r\n  styles: {\r\n    main?: string;\r\n    step?: string;\r\n    previousButton?: string;\r\n    nextButton?: string;\r\n    toolbarTop?: string;\r\n    toolbarBottom?: string;\r\n  } = {};\r\n\r\n  showToolbarTop: boolean = false;\r\n  showPreviousButton: boolean = false;\r\n  showNextButton: boolean = false;\r\n  showToolbarBottom: boolean = false;\r\n  showExtraButtons: boolean = false;\r\n  currentStepIndex: number = null; // Active step index\r\n  currentStep: NgWizardStep; // Active step\r\n\r\n  resetWizardWatcher: Subscription;\r\n  showNextStepWatcher: Subscription;\r\n  showPreviousStepWatcher: Subscription;\r\n  showStepWatcher: Subscription;\r\n  setThemeWatcher: Subscription;\r\n\r\n  constructor(private ngWizardDataService: NgWizardDataService) {\r\n  }\r\n\r\n  ngAfterContentInit() {\r\n    this._backupStepStates();\r\n\r\n    this._init();\r\n\r\n    // Set toolbar\r\n    this._setToolbar();\r\n\r\n    // Assign plugin events\r\n    this._setEvents();\r\n\r\n    this.resetWizardWatcher = this.ngWizardDataService.resetWizard$.subscribe(() => this._reset());\r\n    this.showNextStepWatcher = this.ngWizardDataService.showNextStep$.subscribe(() => this._showNextStep());\r\n    this.showPreviousStepWatcher = this.ngWizardDataService.showPreviousStep$.subscribe(() => this._showPreviousStep());\r\n    this.showStepWatcher = this.ngWizardDataService.showStep$.subscribe(index => this._showStep(index));\r\n    this.setThemeWatcher = this.ngWizardDataService.setTheme$.subscribe(theme => this._setTheme(theme));\r\n  }\r\n\r\n  _init() {\r\n    // set config\r\n    let defaultConfig = this.ngWizardDataService.getDefaultConfig();\r\n    this.config = merge(defaultConfig, this.pConfig);\r\n\r\n    // set step states\r\n    this._initSteps();\r\n\r\n    // Set the elements\r\n    this._initStyles();\r\n\r\n    // Show the initial step\r\n    this._showStep(this.config.selected);\r\n  }\r\n\r\n  _initSteps() {\r\n    this.steps.forEach((step, index) => {\r\n      step.index = index;\r\n      step.status = step.status || STEP_STATUS.untouched;\r\n      step.state = step.state || STEP_STATE.normal;\r\n    });\r\n\r\n    // Mark previous steps of the active step as done\r\n    if (this.config.selected > 0\r\n      && this.config.anchorSettings.markDoneStep\r\n      && this.config.anchorSettings.markAllPreviousStepsAsDone) {\r\n\r\n      this.steps.forEach(step => {\r\n        if (step.state != STEP_STATE.disabled && step.state != STEP_STATE.hidden) {\r\n          step.status = step.index < this.config.selected ? STEP_STATUS.done : step.status;\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  _backupStepStates() {\r\n    this.steps.forEach(step => {\r\n      step.initialStatus = step.status;\r\n      step.initialState = step.state;\r\n    });\r\n  }\r\n\r\n  _restoreStepStates() {\r\n    this.steps.forEach(step => {\r\n      step.status = step.initialStatus;\r\n      step.state = step.initialState;\r\n    });\r\n  }\r\n\r\n  // PRIVATE FUNCTIONS\r\n  _initStyles() {\r\n    // Set the main element\r\n    this.styles.main = 'ng-wizard-main ng-wizard-theme-' + this.config.theme;\r\n\r\n    // Set anchor elements\r\n    this.styles.step = 'nav-item'; // li\r\n\r\n    // Make the anchor clickable\r\n    if (this.config.anchorSettings.enableAllAnchors && this.config.anchorSettings.anchorClickable) {\r\n      this.styles.step += ' clickable';\r\n    }\r\n\r\n    // Set the toolbar styles\r\n    this.styles.toolbarTop = 'btn-toolbar ng-wizard-toolbar ng-wizard-toolbar-top justify-content-' + this.config.toolbarSettings.toolbarButtonPosition;\r\n    this.styles.toolbarBottom = 'btn-toolbar ng-wizard-toolbar ng-wizard-toolbar-bottom justify-content-' + this.config.toolbarSettings.toolbarButtonPosition;\r\n\r\n    // Set previous&next buttons \r\n    this.styles.previousButton = 'btn btn-secondary ng-wizard-btn-prev';\r\n    this.styles.nextButton = 'btn btn-secondary ng-wizard-btn-next';\r\n  }\r\n\r\n  _setToolbar() {\r\n    this.showToolbarTop = this.config.toolbarSettings.toolbarPosition == TOOLBAR_POSITION.top ||\r\n      this.config.toolbarSettings.toolbarPosition == TOOLBAR_POSITION.both;\r\n\r\n    this.showToolbarBottom = this.config.toolbarSettings.toolbarPosition == TOOLBAR_POSITION.bottom ||\r\n      this.config.toolbarSettings.toolbarPosition == TOOLBAR_POSITION.both;\r\n\r\n    this.showPreviousButton = this.config.toolbarSettings.showPreviousButton;\r\n    this.showNextButton = this.config.toolbarSettings.showNextButton;\r\n\r\n    this.showExtraButtons = this.config.toolbarSettings.toolbarExtraButtons && this.config.toolbarSettings.toolbarExtraButtons.length > 0;\r\n  }\r\n\r\n  _setEvents() {\r\n    //TODO: keyNavigation\r\n    // Keyboard navigation event\r\n    if (this.config.keyNavigation) {\r\n      // $(document).keyup(function (e) {\r\n      //   mi._keyNav(e);\r\n      // });\r\n    }\r\n  }\r\n\r\n  _getStepCssClass(selectedStep: NgWizardStep) {\r\n    let stepClass = this.styles.step;\r\n\r\n    switch (selectedStep.state) {\r\n      case STEP_STATE.disabled:\r\n        stepClass += ' disabled';\r\n        break;\r\n      case STEP_STATE.error:\r\n        stepClass += ' danger';\r\n        break;\r\n      case STEP_STATE.hidden:\r\n        stepClass += ' hidden';\r\n        break;\r\n    }\r\n\r\n    switch (selectedStep.status) {\r\n      case STEP_STATUS.done:\r\n        stepClass += ' done';\r\n        break;\r\n      case STEP_STATUS.active:\r\n        stepClass += ' active';\r\n        break;\r\n    }\r\n\r\n    return stepClass;\r\n  }\r\n\r\n  _showSelectedStep(event: Event, selectedStep: NgWizardStep) {\r\n    event.preventDefault();\r\n\r\n    if (!this.config.anchorSettings.anchorClickable) {\r\n      return;\r\n    }\r\n\r\n    if (!this.config.anchorSettings.enableAnchorOnDoneStep && selectedStep.status == STEP_STATUS.done) {\r\n      return true;\r\n    }\r\n\r\n    if (selectedStep.index != this.currentStepIndex) {\r\n      if (this.config.anchorSettings.enableAllAnchors && this.config.anchorSettings.anchorClickable) {\r\n        this._showStep(selectedStep.index);\r\n      }\r\n      else {\r\n        if (selectedStep.status == STEP_STATUS.done) {\r\n          this._showStep(selectedStep.index);\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  _showNextStep(event?: Event) {\r\n    if (event) {\r\n      event.preventDefault();\r\n    }\r\n    // Find the next not disabled & hidden step\r\n    let filteredSteps = this.steps.filter(step => {\r\n      return step.index > (this.currentStepIndex == null ? -1 : this.currentStepIndex)\r\n        && step.state != STEP_STATE.disabled\r\n        && step.state != STEP_STATE.hidden;\r\n    });\r\n\r\n    if (filteredSteps.length == 0) {\r\n      if (!this.config.cycleSteps) {\r\n        return;\r\n      }\r\n\r\n      this._showStep(0)\r\n    }\r\n    else {\r\n      this._showStep(filteredSteps.shift().index)\r\n    }\r\n  }\r\n\r\n  _showPreviousStep(event?: Event) {\r\n    if (event) {\r\n      event.preventDefault();\r\n    }\r\n    // Find the previous not disabled & hidden step\r\n    let filteredSteps = this.steps.filter(step => {\r\n      return step.index < (this.currentStepIndex == null && this.config.cycleSteps ? this.steps.length : this.currentStepIndex)\r\n        && step.state != STEP_STATE.disabled\r\n        && step.state != STEP_STATE.hidden;\r\n    });\r\n\r\n    if (filteredSteps.length == 0) {\r\n      if (!this.config.cycleSteps) {\r\n        return;\r\n      }\r\n\r\n      this._showStep(this.steps.length - 1)\r\n    }\r\n    else {\r\n      this._showStep(filteredSteps.pop().index)\r\n    }\r\n  }\r\n\r\n  _showStep(selectedStepIndex: number) {\r\n    // If step not found, skip\r\n    if (selectedStepIndex >= this.steps.length || selectedStepIndex < 0) {\r\n      return;\r\n    }\r\n\r\n    // If current step is requested again, skip\r\n    if (selectedStepIndex == this.currentStepIndex) {\r\n      return;\r\n    }\r\n\r\n    let selectedStep = this.steps.toArray()[selectedStepIndex];\r\n\r\n    // If it is a disabled or hidden step, skip\r\n    if (selectedStep.state == STEP_STATE.disabled || selectedStep.state == STEP_STATE.hidden) {\r\n      return;\r\n    }\r\n\r\n    this._showLoader();\r\n\r\n    return this._isStepChangeValid(selectedStep, this.currentStep && this.currentStep.canExit).toPromise()\r\n      .then(isValid => {\r\n        if (isValid) {\r\n          return this._isStepChangeValid(selectedStep, selectedStep.canEnter).toPromise();\r\n        }\r\n\r\n        return of(isValid).toPromise();\r\n      })\r\n      .then(isValid => {\r\n        if (isValid) {\r\n          // Load step content\r\n          this._loadStepContent(selectedStep);\r\n        }\r\n      })\r\n      .finally(() => this._hideLoader());\r\n  }\r\n\r\n  private _isStepChangeValid(selectedStep, condition: boolean | ((args: StepValidationArgs) => boolean) | ((args: StepValidationArgs) => Observable<boolean>)): Observable<boolean> {\r\n    if (typeof condition === typeof true) {\r\n      return of(<boolean>condition);\r\n    }\r\n\r\n    else if (condition instanceof Function) {\r\n      let direction = this._getStepDirection(selectedStep.index);\r\n      let result = condition({ direction: direction, fromStep: this.currentStep, toStep: selectedStep });\r\n\r\n      if (isObservable<boolean>(result)) {\r\n        return result;\r\n      }\r\n      else if (typeof result === typeof true) {\r\n        return of(<boolean>result);\r\n      }\r\n      else {\r\n        return of(false);\r\n      }\r\n    }\r\n\r\n    return of(true);\r\n  }\r\n\r\n  _loadStepContent(selectedStep: NgWizardStep) {\r\n    // Update controls\r\n    this._setAnchor(selectedStep);\r\n    // Set the buttons based on the step\r\n    this._setButtons(selectedStep.index);\r\n\r\n    // Trigger \"stepChanged\" event\r\n    const args = <StepChangedArgs>{\r\n      step: selectedStep,\r\n      previousStep: this.currentStep,\r\n      direction: this._getStepDirection(selectedStep.index),\r\n      position: this._getStepPosition(selectedStep.index)\r\n    };\r\n    this.stepChanged.emit(args);\r\n    this.ngWizardDataService.stepChanged(args);\r\n\r\n    // Update the current index\r\n    this.currentStepIndex = selectedStep.index;\r\n    this.currentStep = selectedStep;\r\n  }\r\n\r\n  _setAnchor(selectedStep: NgWizardStep) {\r\n    // Current step anchor > Remove other classes and add done class\r\n    if (this.currentStep) {\r\n      this.currentStep.status = STEP_STATUS.untouched;\r\n\r\n      if (this.config.anchorSettings.markDoneStep) {\r\n        this.currentStep.status = STEP_STATUS.done;\r\n\r\n        if (this.config.anchorSettings.removeDoneStepOnNavigateBack) {\r\n          this.steps.forEach(step => {\r\n            if (step.index > selectedStep.index) {\r\n              step.status = STEP_STATUS.untouched;\r\n            }\r\n          });\r\n        }\r\n      }\r\n    }\r\n\r\n    // Next step anchor > Remove other classes and add active class\r\n    selectedStep.status = STEP_STATUS.active;\r\n  }\r\n\r\n  _setButtons(index: number) {\r\n    // Previous/Next Button enable/disable based on step\r\n    if (!this.config.cycleSteps) {\r\n      if (0 >= index) {\r\n        this.styles.previousButton = 'btn btn-secondary ng-wizard-btn-prev disabled';\r\n      }\r\n      else {\r\n        this.styles.previousButton = 'btn btn-secondary ng-wizard-btn-prev';\r\n      }\r\n\r\n      if (this.steps.length - 1 <= index) {\r\n        this.styles.nextButton = 'btn btn-secondary ng-wizard-btn-next disabled';\r\n      }\r\n      else {\r\n        this.styles.nextButton = 'btn btn-secondary ng-wizard-btn-next';\r\n      }\r\n    }\r\n  }\r\n\r\n  _extraButtonClicked(button: ToolbarButton) {\r\n    if (button.event) {\r\n      button.event();\r\n    }\r\n  }\r\n\r\n  // HELPER FUNCTIONS\r\n  _keyNav(event: KeyboardEvent) {\r\n    // Keyboard navigation\r\n    switch (event.which) {\r\n      case 37:\r\n        // left\r\n        this._showPreviousStep(event);\r\n        event.preventDefault();\r\n        break;\r\n      case 39:\r\n        // right\r\n        this._showNextStep(event);\r\n        event.preventDefault();\r\n        break;\r\n      default:\r\n        return; // exit this handler for other keys\r\n    }\r\n  }\r\n\r\n  _showLoader() {\r\n    this.styles.main = 'ng-wizard-main ng-wizard-theme-' + this.config.theme + ' ng-wizard-loading';\r\n  }\r\n\r\n  _hideLoader() {\r\n    this.styles.main = 'ng-wizard-main ng-wizard-theme-' + this.config.theme;\r\n  }\r\n\r\n  _getStepDirection(selectedStepIndex: number): STEP_DIRECTIN {\r\n    return (this.currentStepIndex != null && this.currentStepIndex != selectedStepIndex) ?\r\n      (this.currentStepIndex < selectedStepIndex ? STEP_DIRECTIN.forward : STEP_DIRECTIN.backward) : null;\r\n  }\r\n\r\n  _getStepPosition(selectedStepIndex: number): STEP_POSITION {\r\n    return (selectedStepIndex == 0) ? STEP_POSITION.first : (selectedStepIndex == this.steps.length - 1 ? STEP_POSITION.final : STEP_POSITION.middle);\r\n  }\r\n\r\n  // PUBLIC FUNCTIONS\r\n  _setTheme(theme: THEME) {\r\n    if (this.config.theme == theme) {\r\n      return false;\r\n    }\r\n\r\n    this.config.theme = theme;\r\n    this.styles.main = 'ng-wizard-main ng-wizard-theme-' + this.config.theme;\r\n\r\n    // Trigger \"themeChanged\" event\r\n    this.themeChanged.emit(this.config.theme);\r\n  }\r\n\r\n  _reset() {\r\n    // Reset all elements and classes\r\n    this.currentStepIndex = null;\r\n    this.currentStep = null;\r\n    this._restoreStepStates();\r\n    this._init();\r\n\r\n    // Trigger \"reseted\" event\r\n    this.reseted.emit();\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (this.resetWizardWatcher) {\r\n      this.resetWizardWatcher.unsubscribe();\r\n    }\r\n\r\n    if (this.showNextStepWatcher) {\r\n      this.showNextStepWatcher.unsubscribe();\r\n    }\r\n\r\n    if (this.showPreviousStepWatcher) {\r\n      this.showPreviousStepWatcher.unsubscribe();\r\n    }\r\n\r\n    if (this.showStepWatcher) {\r\n      this.showStepWatcher.unsubscribe();\r\n    }\r\n\r\n    if (this.setThemeWatcher) {\r\n      this.setThemeWatcher.unsubscribe();\r\n    }\r\n  }\r\n}\r\n","<div id=\"ngwizard\" [ngClass]=\"styles.main\">\r\n    <ul class=\"nav nav-tabs step-anchor\">\r\n        <li *ngFor=\"let step of steps; let i = index\" [ngClass]=\"_getStepCssClass(step)\">\r\n            <a href=\"#step-{{ i }}\" (click)=\"_showSelectedStep($event, step)\" *ngIf=\"!step.isHidden\"\r\n                class=\"nav-link\">{{ step.title }}<br /><small>{{ step.description }}</small></a>\r\n        </li>\r\n    </ul>\r\n\r\n    <div *ngIf=\"showToolbarTop\" [ngClass]=\"styles.toolbarTop\">\r\n        <div class=\"btn-group mr-2 ng-wizard-btn-group\" role=\"group\">\r\n            <button *ngIf=\"showPreviousButton\" [ngClass]=\"styles.previousButton\" type=\"button\"\r\n                (click)=\"_showPreviousStep($event)\">{{ config!.lang!.previous }}</button>\r\n            <button *ngIf=\"showNextButton\" [ngClass]=\"styles.nextButton\" type=\"button\"\r\n                (click)=\"_showNextStep($event)\">{{ config!.lang!.next }}</button>\r\n        </div>\r\n\r\n        <div *ngIf=\"showExtraButtons\" class=\"btn-group mr-2 ng-wizard-btn-group-extra\" role=\"group\">\r\n            <button *ngFor=\"let button of config!.toolbarSettings!.toolbarExtraButtons; let j = index\"\r\n                [ngClass]=\"button.class\" type=\"button\" (click)=\"_extraButtonClicked(button)\">{{ button.text }}</button>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"ng-wizard-container tab-content\">\r\n        <ng-content></ng-content>\r\n    </div>\r\n\r\n    <div *ngIf=\"showToolbarBottom\" [ngClass]=\"styles.toolbarBottom\">\r\n        <div class=\"btn-group mr-2 ng-wizard-btn-group\" role=\"group\">\r\n            <button *ngIf=\"showPreviousButton\" [ngClass]=\"styles.previousButton\" type=\"button\"\r\n                (click)=\"_showPreviousStep($event)\">{{ config!.lang!.previous }}</button>\r\n            <button *ngIf=\"showNextButton\" [ngClass]=\"styles.nextButton\" type=\"button\"\r\n                (click)=\"_showNextStep($event)\">{{ config!.lang!.next }}</button>\r\n        </div>\r\n\r\n        <div *ngIf=\"showExtraButtons\" class=\"btn-group mr-2 ng-wizard-btn-group-extra\" role=\"group\">\r\n            <button *ngFor=\"let button of config!.toolbarSettings!.toolbarExtraButtons; let j = index\"\r\n                [ngClass]=\"button.class\" type=\"button\" (click)=\"_extraButtonClicked(button)\">{{ button.text }}</button>\r\n        </div>\r\n    </div>\r\n</div>","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { NgWizardConfig } from '../utils/interfaces';\r\nimport { NG_WIZARD_CONFIG_TOKEN } from './ng-wizard-config.token';\r\nimport { NgWizardStepComponent } from './wizard-step/ng-wizard-step.component';\r\nimport { NgWizardComponent } from './wizard/ng-wizard.component';\r\nimport { NgWizardStepContentDirective } from './ng-wizard-step-content.directive';\r\n\r\n@NgModule({\r\n  imports: [CommonModule],\r\n  declarations: [NgWizardComponent, NgWizardStepComponent, NgWizardStepContentDirective],\r\n  exports: [NgWizardComponent, NgWizardStepComponent]\r\n})\r\nexport class NgWizardModule {\r\n  /**\r\n   * forRoot\r\n   * @returns A module with its provider dependencies\r\n   */\r\n  static forRoot(ngWizardConfig: NgWizardConfig): ModuleWithProviders<NgWizardModule> {\r\n    return {\r\n      ngModule: NgWizardModule,\r\n      providers: [\r\n        {\r\n          provide: NG_WIZARD_CONFIG_TOKEN,\r\n          useValue: ngWizardConfig\r\n        }\r\n      ]\r\n    };\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of ng-wizard\r\n */\r\n\r\nexport { NgWizardService } from './lib/core/ng-wizard.service';\r\nexport { NgWizardModule } from './lib/core/ng-wizard.module';\r\nexport {\r\n    TOOLBAR_POSITION,\r\n    TOOLBAR_BUTTON_POSITION,\r\n    THEME,\r\n    STEP_STATE,\r\n    STEP_DIRECTIN,\r\n    STEP_POSITION,\r\n} from './lib/utils/enums'\r\nexport {\r\n    Language,\r\n    ToolbarSettings,\r\n    ToolbarButton,\r\n    AnchorSettings,\r\n    NgWizardConfig,\r\n    NgWizardStep,\r\n    StepValidationArgs,\r\n    StepChangedArgs\r\n} from './lib/utils/interfaces'\r\nexport { NgWizardComponent } from './lib/core/wizard/ng-wizard.component';\r\nexport { NgWizardStepComponent } from './lib/core/wizard-step/ng-wizard-step.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgWizardDataService","i1.NgWizardStepContentDirective"],"mappings":"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"}