{"version":3,"file":"ng-wizard.mjs","sources":["../../../projects/ng-wizard/src/lib/directives/ng-wizard-step-content.directive.ts","../../../projects/ng-wizard/src/lib/ng-wizard-config.token.ts","../../../projects/ng-wizard/src/lib/utils/enums.ts","../../../projects/ng-wizard/src/lib/utils/functions.ts","../../../projects/ng-wizard/src/lib/utils/interfaces.ts","../../../projects/ng-wizard/src/lib/utils/constants.ts","../../../projects/ng-wizard/src/lib/services/ng-wizard-data.service.ts","../../../projects/ng-wizard/src/lib/components/ng-wizard/ng-wizard.component.ts","../../../projects/ng-wizard/src/lib/components/ng-wizard/ng-wizard.component.html","../../../projects/ng-wizard/src/lib/components/ng-wizard-step/ng-wizard-step.component.ts","../../../projects/ng-wizard/src/lib/components/ng-wizard-step/ng-wizard-step.component.html","../../../projects/ng-wizard/src/ng-wizard.module.ts","../../../projects/ng-wizard/src/lib/services/ng-wizard.service.ts","../../../projects/ng-wizard/src/public-api.ts","../../../projects/ng-wizard/src/ng-wizard.ts"],"sourcesContent":["import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[ngWizardStepContent]',\r\n})\r\nexport class NgWizardStepContentDirective {\r\n  constructor(public viewContainerRef: ViewContainerRef) {}\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { NgWizardConfig } from './utils/interfaces';\r\n\r\nexport const NG_WIZARD_CONFIG_TOKEN = new InjectionToken<NgWizardConfig>(\r\n  'ngWizardCustom.config'\r\n);\r\n","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_DIRECTION {\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","// 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}\r\n","import {\r\n  TOOLBAR_POSITION,\r\n  TOOLBAR_BUTTON_POSITION,\r\n  /* TRANSITION_EFFECT,*/ THEME,\r\n  STEP_STATE,\r\n  STEP_STATUS,\r\n  STEP_DIRECTION,\r\n  STEP_POSITION,\r\n} from './enums';\r\nimport {\r\n  Input,\r\n  HostBinding,\r\n  Directive,\r\n  Type,\r\n  ComponentRef,\r\n} 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:\r\n    | boolean\r\n    | ((args: StepValidationArgs) => boolean | Observable<boolean>);\r\n\r\n  @Input()\r\n  canExit:\r\n    | boolean\r\n    | ((args: StepValidationArgs) => boolean | Observable<boolean>);\r\n\r\n  status?: STEP_STATUS;\r\n  initialStatus?: STEP_STATUS;\r\n\r\n  abstract get isHidden(): boolean;\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_DIRECTION;\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_DIRECTION;\r\n  position: STEP_POSITION;\r\n}\r\n","import { NgWizardConfig } from './interfaces';\r\nimport {\r\n  TOOLBAR_POSITION,\r\n  TOOLBAR_BUTTON_POSITION /*, TRANSITION_EFFECT*/,\r\n  THEME,\r\n} 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};\r\n","import { Injectable, Optional, Inject } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { NG_WIZARD_CONFIG_TOKEN } from '../ng-wizard-config.token';\r\nimport { DEFAULT_CONFIG } from '../utils/constants';\r\nimport { THEME } from '../utils/enums';\r\nimport { merge } from '../utils/functions';\r\nimport { StepChangedArgs, NgWizardConfig } from '../utils/interfaces';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class NgWizardDataService {\r\n  resetWizard$: Observable<void>;\r\n  showNextStep$: Observable<void>;\r\n  showPreviousStep$: Observable<void>;\r\n  showStep$: Observable<number>;\r\n  setTheme$: Observable<THEME>;\r\n  stepChangedArgs$: Observable<StepChangedArgs>;\r\n\r\n  private _resetWizard: Subject<void>;\r\n  private _showNextStep: Subject<void>;\r\n  private _showPreviousStep: Subject<void>;\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(\r\n    @Optional() @Inject(NG_WIZARD_CONFIG_TOKEN) private config: NgWizardConfig\r\n  ) {\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<void>();\r\n    this._showNextStep = new Subject<void>();\r\n    this._showPreviousStep = new Subject<void>();\r\n    this._showStep = new Subject<number>();\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 {\r\n  Component,\r\n  OnDestroy,\r\n  AfterContentInit,\r\n  ContentChildren,\r\n  QueryList,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n} from '@angular/core';\r\nimport { Subscription, of, Observable, isObservable } from 'rxjs';\r\nimport { NgWizardDataService } from '../../services/ng-wizard-data.service';\r\nimport {\r\n  THEME,\r\n  STEP_STATUS,\r\n  STEP_STATE,\r\n  TOOLBAR_POSITION,\r\n  STEP_DIRECTION,\r\n  STEP_POSITION,\r\n} from '../../utils/enums';\r\nimport { merge } from '../../utils/functions';\r\nimport {\r\n  NgWizardConfig,\r\n  StepChangedArgs,\r\n  NgWizardStep,\r\n  StepValidationArgs,\r\n  ToolbarButton,\r\n} from '../../utils/interfaces';\r\n\r\n@Component({\r\n  selector: 'ng-wizard',\r\n  templateUrl: './ng-wizard.component.html',\r\n  styleUrls: ['./ng-wizard.component.scss'],\r\n})\r\nexport class NgWizardComponent implements OnDestroy, AfterContentInit {\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() reset = 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  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(\r\n      () => this._reset()\r\n    );\r\n    this.showNextStepWatcher = this.ngWizardDataService.showNextStep$.subscribe(\r\n      () => this._showNextStep()\r\n    );\r\n    this.showPreviousStepWatcher =\r\n      this.ngWizardDataService.showPreviousStep$.subscribe(() =>\r\n        this._showPreviousStep()\r\n      );\r\n    this.showStepWatcher = this.ngWizardDataService.showStep$.subscribe(\r\n      (index) => this._showStep(index)\r\n    );\r\n    this.setThemeWatcher = this.ngWizardDataService.setTheme$.subscribe(\r\n      (theme) => this._setTheme(theme)\r\n    );\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 (\r\n      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 (\r\n          step.state != STEP_STATE.disabled &&\r\n          step.state != STEP_STATE.hidden\r\n        ) {\r\n          step.status =\r\n            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 (\r\n      this.config.anchorSettings.enableAllAnchors &&\r\n      this.config.anchorSettings.anchorClickable\r\n    ) {\r\n      this.styles.step += ' clickable';\r\n    }\r\n\r\n    // Set the toolbar styles\r\n    this.styles.toolbarTop =\r\n      'btn-toolbar ng-wizard-toolbar ng-wizard-toolbar-top justify-content-' +\r\n      this.config.toolbarSettings.toolbarButtonPosition;\r\n    this.styles.toolbarBottom =\r\n      'btn-toolbar ng-wizard-toolbar ng-wizard-toolbar-bottom justify-content-' +\r\n      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 =\r\n      this.config.toolbarSettings.toolbarPosition == TOOLBAR_POSITION.top ||\r\n      this.config.toolbarSettings.toolbarPosition == TOOLBAR_POSITION.both;\r\n\r\n    this.showToolbarBottom =\r\n      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 =\r\n      this.config.toolbarSettings.toolbarExtraButtons &&\r\n      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 (\r\n      !this.config.anchorSettings.enableAnchorOnDoneStep &&\r\n      selectedStep.status == STEP_STATUS.done\r\n    ) {\r\n      return;\r\n    }\r\n\r\n    if (selectedStep.index != this.currentStepIndex) {\r\n      if (\r\n        this.config.anchorSettings.enableAllAnchors &&\r\n        this.config.anchorSettings.anchorClickable\r\n      ) {\r\n        this._showStep(selectedStep.index);\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 (\r\n        step.index >\r\n          (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\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    } 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 (\r\n        step.index <\r\n          (this.currentStepIndex == null && this.config.cycleSteps\r\n            ? this.steps.length\r\n            : this.currentStepIndex) &&\r\n        step.state != STEP_STATE.disabled &&\r\n        step.state != STEP_STATE.hidden\r\n      );\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    } 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 (\r\n      selectedStep.state == STEP_STATE.disabled ||\r\n      selectedStep.state == STEP_STATE.hidden\r\n    ) {\r\n      return;\r\n    }\r\n\r\n    this._showLoader();\r\n\r\n    this._isStepChangeValid(\r\n      selectedStep,\r\n      this.currentStep && this.currentStep.canExit\r\n    )\r\n      .toPromise()\r\n      .then((isValid) => {\r\n        if (isValid) {\r\n          return this._isStepChangeValid(\r\n            selectedStep,\r\n            selectedStep.canEnter\r\n          ).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(\r\n    selectedStep: NgWizardStep,\r\n    condition:\r\n      | boolean\r\n      | ((args: StepValidationArgs) => boolean | Observable<boolean>)\r\n  ): Observable<boolean> {\r\n    if (typeof condition === typeof true) {\r\n      return of(<boolean>condition);\r\n    } else if (condition instanceof Function) {\r\n      let direction = this._getStepDirection(selectedStep.index);\r\n      let result = condition({\r\n        direction: direction,\r\n        fromStep: this.currentStep,\r\n        toStep: selectedStep,\r\n      });\r\n\r\n      if (isObservable(result)) {\r\n        return result;\r\n      } else if (typeof result === typeof true) {\r\n        return of(<boolean>result);\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 =\r\n          'btn btn-secondary ng-wizard-btn-prev disabled';\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 =\r\n          'btn btn-secondary ng-wizard-btn-next disabled';\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 =\r\n      'ng-wizard-main ng-wizard-theme-' +\r\n      this.config.theme +\r\n      ' 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_DIRECTION {\r\n    return this.currentStepIndex != null &&\r\n      this.currentStepIndex != selectedStepIndex\r\n      ? this.currentStepIndex < selectedStepIndex\r\n        ? STEP_DIRECTION.forward\r\n        : STEP_DIRECTION.backward\r\n      : null;\r\n  }\r\n\r\n  _getStepPosition(selectedStepIndex: number): STEP_POSITION {\r\n    return selectedStepIndex == 0\r\n      ? STEP_POSITION.first\r\n      : selectedStepIndex == this.steps.length - 1\r\n      ? STEP_POSITION.final\r\n      : 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;\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 \"reset\" event\r\n    this.reset.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\r\n      *ngFor=\"let step of steps; let i = index\"\r\n      [ngClass]=\"_getStepCssClass(step)\"\r\n    >\r\n      <a\r\n        href=\"#step-{{ i }}\"\r\n        (click)=\"_showSelectedStep($event, step)\"\r\n        *ngIf=\"!step.isHidden\"\r\n        class=\"nav-link\"\r\n        >{{ step.title }}<br /><small>{{ step.description }}</small></a\r\n      >\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\r\n        *ngIf=\"showPreviousButton\"\r\n        [ngClass]=\"styles.previousButton\"\r\n        type=\"button\"\r\n        (click)=\"_showPreviousStep($event)\"\r\n      >\r\n        {{ config!.lang!.previous }}\r\n      </button>\r\n      <button\r\n        *ngIf=\"showNextButton\"\r\n        [ngClass]=\"styles.nextButton\"\r\n        type=\"button\"\r\n        (click)=\"_showNextStep($event)\"\r\n      >\r\n        {{ config!.lang!.next }}\r\n      </button>\r\n    </div>\r\n\r\n    <div\r\n      *ngIf=\"showExtraButtons\"\r\n      class=\"btn-group mr-2 ng-wizard-btn-group-extra\"\r\n      role=\"group\"\r\n    >\r\n      <button\r\n        *ngFor=\"\r\n          let button of config!.toolbarSettings!.toolbarExtraButtons;\r\n          let j = index\r\n        \"\r\n        [ngClass]=\"button.class\"\r\n        type=\"button\"\r\n        (click)=\"_extraButtonClicked(button)\"\r\n      >\r\n        {{ button.text }}\r\n      </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\r\n        *ngIf=\"showPreviousButton\"\r\n        [ngClass]=\"styles.previousButton\"\r\n        type=\"button\"\r\n        (click)=\"_showPreviousStep($event)\"\r\n      >\r\n        {{ config!.lang!.previous }}\r\n      </button>\r\n      <button\r\n        *ngIf=\"showNextButton\"\r\n        [ngClass]=\"styles.nextButton\"\r\n        type=\"button\"\r\n        (click)=\"_showNextStep($event)\"\r\n      >\r\n        {{ config!.lang!.next }}\r\n      </button>\r\n    </div>\r\n\r\n    <div\r\n      *ngIf=\"showExtraButtons\"\r\n      class=\"btn-group mr-2 ng-wizard-btn-group-extra\"\r\n      role=\"group\"\r\n    >\r\n      <button\r\n        *ngFor=\"\r\n          let button of config!.toolbarSettings!.toolbarExtraButtons;\r\n          let j = index\r\n        \"\r\n        [ngClass]=\"button.class\"\r\n        type=\"button\"\r\n        (click)=\"_extraButtonClicked(button)\"\r\n      >\r\n        {{ button.text }}\r\n      </button>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import {\r\n  Component,\r\n  forwardRef,\r\n  OnInit,\r\n  ViewChild,\r\n  ComponentFactoryResolver,\r\n} from '@angular/core';\r\nimport { NgWizardStepContentDirective } from '../../directives/ng-wizard-step-content.directive';\r\nimport { STEP_STATE } from '../../utils/enums';\r\nimport { NgWizardStep } from '../../utils/interfaces';\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.scss'],\r\n  providers: [\r\n    {\r\n      provide: NgWizardStep,\r\n      useExisting: forwardRef(() => NgWizardStepComponent),\r\n    },\r\n  ],\r\n})\r\nexport class NgWizardStepComponent extends NgWizardStep implements OnInit {\r\n  @ViewChild(NgWizardStepContentDirective, { static: true })\r\n  stepContent: NgWizardStepContentDirective;\r\n\r\n  constructor(private componentFactoryResolver: ComponentFactoryResolver) {\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 =\r\n      this.componentFactoryResolver.resolveComponentFactory(this.component);\r\n\r\n    this.stepContent.viewContainerRef.clear();\r\n    this.componentRef =\r\n      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>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { NgWizardStepContentDirective } from './lib/directives/ng-wizard-step-content.directive';\r\nimport { NG_WIZARD_CONFIG_TOKEN } from './lib/ng-wizard-config.token';\r\nimport { NgWizardComponent } from './lib/components/ng-wizard/ng-wizard.component';\r\nimport { NgWizardStepComponent } from './lib/components/ng-wizard-step/ng-wizard-step.component';\r\nimport { NgWizardConfig } from './lib/utils/interfaces';\r\n\r\n@NgModule({\r\n  imports: [CommonModule],\r\n  declarations: [\r\n    NgWizardComponent,\r\n    NgWizardStepComponent,\r\n    NgWizardStepContentDirective,\r\n  ],\r\n  exports: [NgWizardComponent, NgWizardStepComponent],\r\n})\r\nexport class NgWizardModule {\r\n  static forRoot(\r\n    ngWizardConfig: NgWizardConfig\r\n  ): 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","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { THEME } from '../utils/enums';\r\nimport { StepChangedArgs } from '../utils/interfaces';\r\nimport { NgWizardDataService } from './ng-wizard-data.service';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class NgWizardService {\r\n  constructor(private ngWizardDataService: NgWizardDataService) {}\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","/*\r\n * Public API Surface of ng-wizard\r\n */\r\n\r\nexport { NgWizardModule } from './ng-wizard.module';\r\nexport { NgWizardService } from './lib/services/ng-wizard.service';\r\nexport {\r\n  TOOLBAR_POSITION,\r\n  TOOLBAR_BUTTON_POSITION,\r\n  THEME,\r\n  STEP_STATE,\r\n  STEP_DIRECTION,\r\n  STEP_POSITION,\r\n} from './lib/utils/enums';\r\nexport { NgWizardStep } from './lib/utils/interfaces';\r\nexport type {\r\n  Language,\r\n  ToolbarSettings,\r\n  ToolbarButton,\r\n  AnchorSettings,\r\n  NgWizardConfig,\r\n  StepValidationArgs,\r\n  StepChangedArgs,\r\n} from './lib/utils/interfaces';\r\nexport { NgWizardComponent } from './lib/components/ng-wizard/ng-wizard.component';\r\nexport { NgWizardStepComponent } from './lib/components/ng-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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"}