{"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  standalone: false,\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 {\r\n  Subscription,\r\n  of,\r\n  Observable,\r\n  isObservable,\r\n  firstValueFrom,\r\n} 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  standalone: false,\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  async _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    try {\r\n      let isValid = await firstValueFrom(\r\n        this._isStepChangeValid(\r\n          selectedStep,\r\n          this.currentStep && this.currentStep.canExit\r\n        )\r\n      );\r\n\r\n      if (isValid) {\r\n        isValid = await firstValueFrom(\r\n          this._isStepChangeValid(selectedStep, selectedStep.canEnter)\r\n        );\r\n      }\r\n\r\n      if (isValid) {\r\n        // Load step content\r\n        this._loadStepContent(selectedStep);\r\n      }\r\n    } finally {\r\n      this._hideLoader();\r\n    }\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 me-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 me-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 me-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 me-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 { Component, forwardRef, OnInit, ViewChild } 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  standalone: false,\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() {\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    this.stepContent.viewContainerRef.clear();\r\n    this.componentRef = this.stepContent.viewContainerRef.createComponent(\r\n      this.component\r\n    );\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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"}