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