{"version":3,"file":"cdk-stepper.umd.js","sources":["../../../../../src/cdk/stepper/step-header.ts","../../../../../src/cdk/stepper/step-label.ts","../../../../../src/cdk/stepper/stepper.ts","../../../../../src/cdk/stepper/stepper-button.ts","../../../../../src/cdk/stepper/stepper-module.ts","../../../../../src/cdk/stepper/public-api.ts","../../../../../src/cdk/stepper/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, ElementRef} from '@angular/core';\nimport {FocusableOption} from 'cdk/a11y';\n\n\n@Directive({\n  selector: '[cdkStepHeader]',\n  host: {\n    'role': 'tab',\n  },\n})\nexport class CdkStepHeader implements FocusableOption {\n  constructor(public _elementRef: ElementRef<HTMLElement>) {}\n\n  /** Focuses the step header. */\n  focus() {\n    this._elementRef.nativeElement.focus();\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: '[cdkStepLabel]',\n})\nexport class CdkStepLabel {\n  constructor(/** @docs-private */ public template: TemplateRef<any>) { }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {FocusableOption, FocusKeyManager} from 'cdk/a11y';\nimport {Direction, Directionality} from 'cdk/bidi';\nimport {\n  BooleanInput,\n  coerceBooleanProperty,\n  coerceNumberProperty,\n  NumberInput\n} from 'cdk/coercion';\nimport {ENTER, hasModifierKey, SPACE} from 'cdk/keycodes';\nimport {DOCUMENT} from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ContentChildren,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Inject,\n  InjectionToken,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Optional,\n  Output,\n  QueryList,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation,\n  AfterContentInit,\n} from '@angular/core';\nimport {_getFocusedElementPierceShadowDom} from 'cdk/platform';\nimport {Observable, of as observableOf, Subject} from 'rxjs';\nimport {startWith, takeUntil} from 'rxjs/operators';\n\nimport {CdkStepHeader} from './step-header';\nimport {CdkStepLabel} from './step-label';\n\n/** Used to generate unique ID for each stepper component. */\nlet nextId = 0;\n\n/**\n * Position state of the content of each step in stepper that is used for transitioning\n * the content into correct position upon step selection change.\n */\nexport type StepContentPositionState = 'previous'|'current'|'next';\n\n/** Possible orientation of a stepper. */\nexport type StepperOrientation = 'horizontal'|'vertical';\n\n/** Change event emitted on selection changes. */\nexport class StepperSelectionEvent {\n  /** Index of the step now selected. */\n  selectedIndex: number;\n\n  /** Index of the step previously selected. */\n  previouslySelectedIndex: number;\n\n  /** The step instance now selected. */\n  selectedStep: CdkStep;\n\n  /** The step instance previously selected. */\n  previouslySelectedStep: CdkStep;\n}\n\n/** The state of each step. */\nexport type StepState = 'number'|'edit'|'done'|'error'|string;\n\n/** Enum to represent the different states of the steps. */\nexport const STEP_STATE = {\n  NUMBER: 'number',\n  EDIT: 'edit',\n  DONE: 'done',\n  ERROR: 'error'\n};\n\n/** InjectionToken that can be used to specify the global stepper options. */\nexport const STEPPER_GLOBAL_OPTIONS = new InjectionToken<StepperOptions>('STEPPER_GLOBAL_OPTIONS');\n\n/** Configurable options for stepper. */\nexport interface StepperOptions {\n  /**\n   * Whether the stepper should display an error state or not.\n   * Default behavior is assumed to be false.\n   */\n  showError?: boolean;\n\n  /**\n   * Whether the stepper should display the default indicator type\n   * or not.\n   * Default behavior is assumed to be true.\n   */\n  displayDefaultIndicatorType?: boolean;\n}\n\n@Component({\n  selector: 'cdk-step',\n  exportAs: 'cdkStep',\n  template: '<ng-template><ng-content></ng-content></ng-template>',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CdkStep implements OnChanges {\n  private _stepperOptions: StepperOptions;\n  _displayDefaultIndicatorType: boolean;\n\n  /** Template for step label if it exists. */\n  @ContentChild(CdkStepLabel) stepLabel: CdkStepLabel;\n\n  /** Template for step content. */\n  @ViewChild(TemplateRef, {static: true}) content: TemplateRef<any>;\n\n  /** The top level abstract control of the step. */\n  @Input() stepControl: AbstractControlLike;\n\n  /** Whether user has attempted to move away from the step. */\n  interacted = false;\n\n  /** Emits when the user has attempted to move away from the step. */\n  @Output('interacted')\n  readonly interactedStream: EventEmitter<CdkStep> = new EventEmitter<CdkStep>();\n\n  /** Plain text label of the step. */\n  @Input() label: string;\n\n  /** Error message to display when there's an error. */\n  @Input() errorMessage: string;\n\n  /** Aria label for the tab. */\n  @Input('aria-label') ariaLabel: string;\n\n  /**\n   * Reference to the element that the tab is labelled by.\n   * Will be cleared if `aria-label` is set at the same time.\n   */\n  @Input('aria-labelledby') ariaLabelledby: string;\n\n  /** State of the step. */\n  @Input() state: StepState;\n\n  /** Whether the user can return to this step once it has been marked as completed. */\n  @Input()\n  get editable(): boolean {\n    return this._editable;\n  }\n  set editable(value: boolean) {\n    this._editable = coerceBooleanProperty(value);\n  }\n  private _editable = true;\n\n  /** Whether the completion of step is optional. */\n  @Input()\n  get optional(): boolean {\n    return this._optional;\n  }\n  set optional(value: boolean) {\n    this._optional = coerceBooleanProperty(value);\n  }\n  private _optional = false;\n\n  /** Whether step is marked as completed. */\n  @Input()\n  get completed(): boolean {\n    return this._completedOverride == null ? this._getDefaultCompleted() : this._completedOverride;\n  }\n  set completed(value: boolean) {\n    this._completedOverride = coerceBooleanProperty(value);\n  }\n  _completedOverride: boolean|null = null;\n\n  private _getDefaultCompleted() {\n    return this.stepControl ? this.stepControl.valid && this.interacted : this.interacted;\n  }\n\n  /** Whether step has an error. */\n  @Input()\n  get hasError(): boolean {\n    return this._customError == null ? this._getDefaultError() : this._customError;\n  }\n  set hasError(value: boolean) {\n    this._customError = coerceBooleanProperty(value);\n  }\n  private _customError: boolean|null = null;\n\n  private _getDefaultError() {\n    return this.stepControl && this.stepControl.invalid && this.interacted;\n  }\n\n  constructor(\n      @Inject(forwardRef(() => CdkStepper)) public _stepper: CdkStepper,\n      @Optional() @Inject(STEPPER_GLOBAL_OPTIONS) stepperOptions?: StepperOptions) {\n    this._stepperOptions = stepperOptions ? stepperOptions : {};\n    this._displayDefaultIndicatorType = this._stepperOptions.displayDefaultIndicatorType !== false;\n  }\n\n  /** Selects this step component. */\n  select(): void {\n    this._stepper.selected = this;\n  }\n\n  /** Resets the step to its initial state. Note that this includes resetting form data. */\n  reset(): void {\n    this.interacted = false;\n\n    if (this._completedOverride != null) {\n      this._completedOverride = false;\n    }\n\n    if (this._customError != null) {\n      this._customError = false;\n    }\n\n    if (this.stepControl) {\n      this.stepControl.reset();\n    }\n  }\n\n  ngOnChanges() {\n    // Since basically all inputs of the MatStep get proxied through the view down to the\n    // underlying MatStepHeader, we have to make sure that change detection runs correctly.\n    this._stepper._stateChanged();\n  }\n\n  _markAsInteracted() {\n    if (!this.interacted) {\n      this.interacted = true;\n      this.interactedStream.emit(this);\n    }\n  }\n\n  /** Determines whether the error state can be shown. */\n  _showError(): boolean {\n    // We want to show the error state either if the user opted into/out of it using the\n    // global options, or if they've explicitly set it through the `hasError` input.\n    return this._stepperOptions.showError ?? this._customError != null;\n  }\n\n  static ngAcceptInputType_editable: BooleanInput;\n  static ngAcceptInputType_hasError: BooleanInput;\n  static ngAcceptInputType_optional: BooleanInput;\n  static ngAcceptInputType_completed: BooleanInput;\n}\n\n@Directive({\n  selector: '[cdkStepper]',\n  exportAs: 'cdkStepper',\n})\nexport class CdkStepper implements AfterContentInit, AfterViewInit, OnDestroy {\n  /** Emits when the component is destroyed. */\n  protected readonly _destroyed = new Subject<void>();\n\n  /** Used for managing keyboard focus. */\n  private _keyManager: FocusKeyManager<FocusableOption>;\n\n  /** Full list of steps inside the stepper, including inside nested steppers. */\n  @ContentChildren(CdkStep, {descendants: true}) _steps: QueryList<CdkStep>;\n\n  /** Steps that belong to the current stepper, excluding ones from nested steppers. */\n  readonly steps: QueryList<CdkStep> = new QueryList<CdkStep>();\n\n  /** The list of step headers of the steps in the stepper. */\n  @ContentChildren(CdkStepHeader, {descendants: true}) _stepHeader: QueryList<CdkStepHeader>;\n\n  /** Whether the validity of previous steps should be checked or not. */\n  @Input()\n  get linear(): boolean {\n    return this._linear;\n  }\n  set linear(value: boolean) {\n    this._linear = coerceBooleanProperty(value);\n  }\n  private _linear = false;\n\n  /** The index of the selected step. */\n  @Input()\n  get selectedIndex() {\n    return this._selectedIndex;\n  }\n  set selectedIndex(index: number) {\n    const newIndex = coerceNumberProperty(index);\n\n    if (this.steps && this._steps) {\n      // Ensure that the index can't be out of bounds.\n      if (!this._isValidIndex(index) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n        throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');\n      }\n\n      this.selected?._markAsInteracted();\n\n      if (this._selectedIndex !== newIndex && !this._anyControlsInvalidOrPending(newIndex) &&\n          (newIndex >= this._selectedIndex || this.steps.toArray()[newIndex].editable)) {\n        this._updateSelectedItemIndex(index);\n      }\n    } else {\n      this._selectedIndex = newIndex;\n    }\n  }\n  private _selectedIndex = 0;\n\n  /** The step that is selected. */\n  @Input()\n  get selected(): CdkStep | undefined {\n    return this.steps ? this.steps.toArray()[this.selectedIndex] : undefined;\n  }\n  set selected(step: CdkStep | undefined) {\n    this.selectedIndex = (step && this.steps) ? this.steps.toArray().indexOf(step) : -1;\n  }\n\n  /** Event emitted when the selected step has changed. */\n  @Output() readonly selectionChange = new EventEmitter<StepperSelectionEvent>();\n\n  /** Used to track unique ID for each stepper component. */\n  _groupId: number;\n\n  /** Orientation of the stepper. */\n  @Input()\n  get orientation(): StepperOrientation { return this._orientation; }\n  set orientation(value: StepperOrientation) {\n    // This is a protected method so that `MatSteppter` can hook into it.\n    this._orientation = value;\n\n    if (this._keyManager) {\n      this._keyManager.withVerticalOrientation(value === 'vertical');\n    }\n  }\n\n  /**\n   * @deprecated To be turned into a private property. Use `orientation` instead.\n   * @breaking-change 13.0.0\n   */\n  protected _orientation: StepperOrientation = 'horizontal';\n\n  constructor(\n      @Optional() private _dir: Directionality, private _changeDetectorRef: ChangeDetectorRef,\n      private _elementRef: ElementRef<HTMLElement>,\n      /**\n       * @deprecated No longer in use, to be removed.\n       * @breaking-change 13.0.0\n       */\n      @Inject(DOCUMENT) _document: any) {\n    this._groupId = nextId++;\n  }\n\n  ngAfterContentInit() {\n    this._steps.changes\n      .pipe(startWith(this._steps), takeUntil(this._destroyed))\n      .subscribe((steps: QueryList<CdkStep>) => {\n        this.steps.reset(steps.filter(step => step._stepper === this));\n        this.steps.notifyOnChanges();\n      });\n  }\n\n  ngAfterViewInit() {\n    // Note that while the step headers are content children by default, any components that\n    // extend this one might have them as view children. We initialize the keyboard handling in\n    // AfterViewInit so we're guaranteed for both view and content children to be defined.\n    this._keyManager = new FocusKeyManager<FocusableOption>(this._stepHeader)\n                           .withWrap()\n                           .withHomeAndEnd()\n                           .withVerticalOrientation(this._orientation === 'vertical');\n\n    (this._dir ? (this._dir.change as Observable<Direction>) : observableOf<Direction>())\n        .pipe(startWith(this._layoutDirection()), takeUntil(this._destroyed))\n        .subscribe(direction => this._keyManager.withHorizontalOrientation(direction));\n\n    this._keyManager.updateActiveItem(this._selectedIndex);\n\n    // No need to `takeUntil` here, because we're the ones destroying `steps`.\n    this.steps.changes.subscribe(() => {\n      if (!this.selected) {\n        this._selectedIndex = Math.max(this._selectedIndex - 1, 0);\n      }\n    });\n\n    // The logic which asserts that the selected index is within bounds doesn't run before the\n    // steps are initialized, because we don't how many steps there are yet so we may have an\n    // invalid index on init. If that's the case, auto-correct to the default so we don't throw.\n    if (!this._isValidIndex(this._selectedIndex)) {\n      this._selectedIndex = 0;\n    }\n  }\n\n  ngOnDestroy() {\n    this.steps.destroy();\n    this._destroyed.next();\n    this._destroyed.complete();\n  }\n\n  /** Selects and focuses the next step in list. */\n  next(): void {\n    this.selectedIndex = Math.min(this._selectedIndex + 1, this.steps.length - 1);\n  }\n\n  /** Selects and focuses the previous step in list. */\n  previous(): void {\n    this.selectedIndex = Math.max(this._selectedIndex - 1, 0);\n  }\n\n  /** Resets the stepper to its initial state. Note that this includes clearing form data. */\n  reset(): void {\n    this._updateSelectedItemIndex(0);\n    this.steps.forEach(step => step.reset());\n    this._stateChanged();\n  }\n\n  /** Returns a unique id for each step label element. */\n  _getStepLabelId(i: number): string {\n    return `cdk-step-label-${this._groupId}-${i}`;\n  }\n\n  /** Returns unique id for each step content element. */\n  _getStepContentId(i: number): string {\n    return `cdk-step-content-${this._groupId}-${i}`;\n  }\n\n  /** Marks the component to be change detected. */\n  _stateChanged() {\n    this._changeDetectorRef.markForCheck();\n  }\n\n  /** Returns position state of the step with the given index. */\n  _getAnimationDirection(index: number): StepContentPositionState {\n    const position = index - this._selectedIndex;\n    if (position < 0) {\n      return this._layoutDirection() === 'rtl' ? 'next' : 'previous';\n    } else if (position > 0) {\n      return this._layoutDirection() === 'rtl' ? 'previous' : 'next';\n    }\n    return 'current';\n  }\n\n  /** Returns the type of icon to be displayed. */\n  _getIndicatorType(index: number, state: StepState = STEP_STATE.NUMBER): StepState {\n    const step = this.steps.toArray()[index];\n    const isCurrentStep = this._isCurrentStep(index);\n\n    return step._displayDefaultIndicatorType ? this._getDefaultIndicatorLogic(step, isCurrentStep) :\n                                               this._getGuidelineLogic(step, isCurrentStep, state);\n  }\n\n  private _getDefaultIndicatorLogic(step: CdkStep, isCurrentStep: boolean): StepState {\n    if (step._showError() && step.hasError && !isCurrentStep) {\n      return STEP_STATE.ERROR;\n    } else if (!step.completed || isCurrentStep) {\n      return STEP_STATE.NUMBER;\n    } else {\n      return step.editable ? STEP_STATE.EDIT : STEP_STATE.DONE;\n    }\n  }\n\n  private _getGuidelineLogic(\n      step: CdkStep, isCurrentStep: boolean, state: StepState = STEP_STATE.NUMBER): StepState {\n    if (step._showError() && step.hasError && !isCurrentStep) {\n      return STEP_STATE.ERROR;\n    } else if (step.completed && !isCurrentStep) {\n      return STEP_STATE.DONE;\n    } else if (step.completed && isCurrentStep) {\n      return state;\n    } else if (step.editable && isCurrentStep) {\n      return STEP_STATE.EDIT;\n    } else {\n      return state;\n    }\n  }\n\n  private _isCurrentStep(index: number) {\n    return this._selectedIndex === index;\n  }\n\n  /** Returns the index of the currently-focused step header. */\n  _getFocusIndex() {\n    return this._keyManager ? this._keyManager.activeItemIndex : this._selectedIndex;\n  }\n\n  private _updateSelectedItemIndex(newIndex: number): void {\n    const stepsArray = this.steps.toArray();\n    this.selectionChange.emit({\n      selectedIndex: newIndex,\n      previouslySelectedIndex: this._selectedIndex,\n      selectedStep: stepsArray[newIndex],\n      previouslySelectedStep: stepsArray[this._selectedIndex],\n    });\n\n    // If focus is inside the stepper, move it to the next header, otherwise it may become\n    // lost when the active step content is hidden. We can't be more granular with the check\n    // (e.g. checking whether focus is inside the active step), because we don't have a\n    // reference to the elements that are rendering out the content.\n    this._containsFocus() ? this._keyManager.setActiveItem(newIndex) :\n                            this._keyManager.updateActiveItem(newIndex);\n\n    this._selectedIndex = newIndex;\n    this._stateChanged();\n  }\n\n  _onKeydown(event: KeyboardEvent) {\n    const hasModifier = hasModifierKey(event);\n    const keyCode = event.keyCode;\n    const manager = this._keyManager;\n\n    if (manager.activeItemIndex != null && !hasModifier &&\n        (keyCode === SPACE || keyCode === ENTER)) {\n      this.selectedIndex = manager.activeItemIndex;\n      event.preventDefault();\n    } else {\n      manager.onKeydown(event);\n    }\n  }\n\n  private _anyControlsInvalidOrPending(index: number): boolean {\n    if (this._linear && index >= 0) {\n      return this.steps.toArray().slice(0, index).some(step => {\n        const control = step.stepControl;\n        const isIncomplete =\n            control ? (control.invalid || control.pending || !step.interacted) : !step.completed;\n        return isIncomplete && !step.optional && !step._completedOverride;\n      });\n    }\n\n    return false;\n  }\n\n  private _layoutDirection(): Direction {\n    return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n  }\n\n  /** Checks whether the stepper contains the focused element. */\n  private _containsFocus(): boolean {\n    const stepperElement = this._elementRef.nativeElement;\n    const focusedElement = _getFocusedElementPierceShadowDom();\n    return stepperElement === focusedElement || stepperElement.contains(focusedElement);\n  }\n\n  /** Checks whether the passed-in index is a valid step index. */\n  private _isValidIndex(index: number): boolean {\n    return index > -1 && (!this.steps || index < this.steps.length);\n  }\n\n  static ngAcceptInputType_editable: BooleanInput;\n  static ngAcceptInputType_optional: BooleanInput;\n  static ngAcceptInputType_completed: BooleanInput;\n  static ngAcceptInputType_hasError: BooleanInput;\n  static ngAcceptInputType_linear: BooleanInput;\n  static ngAcceptInputType_selectedIndex: NumberInput;\n}\n\n\n/**\n * Simplified representation of an \"AbstractControl\" from @angular/forms.\n * Used to avoid having to bring in @angular/forms for a single optional interface.\n * @docs-private\n */\ninterface AbstractControlLike {\n  asyncValidator: ((control: any) => any) | null;\n  dirty: boolean;\n  disabled: boolean;\n  enabled: boolean;\n  errors: {[key: string]: any} | null;\n  invalid: boolean;\n  parent: any;\n  pending: boolean;\n  pristine: boolean;\n  root: AbstractControlLike;\n  status: string;\n  readonly statusChanges: Observable<any>;\n  touched: boolean;\n  untouched: boolean;\n  updateOn: any;\n  valid: boolean;\n  validator: ((control: any) => any) | null;\n  value: any;\n  readonly valueChanges: Observable<any>;\n  clearAsyncValidators(): void;\n  clearValidators(): void;\n  disable(opts?: any): void;\n  enable(opts?: any): void;\n  get(path: (string | number)[] | string): AbstractControlLike | null;\n  getError(errorCode: string, path?: (string | number)[] | string): any;\n  hasError(errorCode: string, path?: (string | number)[] | string): boolean;\n  markAllAsTouched(): void;\n  markAsDirty(opts?: any): void;\n  markAsPending(opts?: any): void;\n  markAsPristine(opts?: any): void;\n  markAsTouched(opts?: any): void;\n  markAsUntouched(opts?: any): void;\n  patchValue(value: any, options?: Object): void;\n  reset(value?: any, options?: Object): void;\n  setAsyncValidators(newValidator: (control: any) => any |\n    ((control: any) => any)[] | null): void;\n  setErrors(errors: {[key: string]: any} | null, opts?: any): void;\n  setParent(parent: any): void;\n  setValidators(newValidator: (control: any) => any |\n    ((control: any) => any)[] | null): void;\n  setValue(value: any, options?: Object): void;\n  updateValueAndValidity(opts?: any): void;\n  patchValue(value: any, options?: any): void;\n  reset(formState?: any, options?: any): void;\n  setValue(value: any, options?: any): void;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, HostListener, Input} from '@angular/core';\n\nimport {CdkStepper} from './stepper';\n\n/** Button that moves to the next step in a stepper workflow. */\n@Directive({\n  selector: 'button[cdkStepperNext]',\n  host: {\n    '[type]': 'type',\n  }\n})\nexport class CdkStepperNext {\n  /** Type of the next button. Defaults to \"submit\" if not specified. */\n  @Input() type: string = 'submit';\n\n  constructor(public _stepper: CdkStepper) {}\n\n  // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n  // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n  // ViewEngine they're overwritten.\n  // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n  // tslint:disable-next-line:no-host-decorator-in-concrete\n  @HostListener('click')\n  _handleClick() {\n    this._stepper.next();\n  }\n}\n\n/** Button that moves to the previous step in a stepper workflow. */\n@Directive({\n  selector: 'button[cdkStepperPrevious]',\n  host: {\n    '[type]': 'type',\n  }\n})\nexport class CdkStepperPrevious {\n  /** Type of the previous button. Defaults to \"button\" if not specified. */\n  @Input() type: string = 'button';\n\n  constructor(public _stepper: CdkStepper) {}\n\n  // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n  // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n  // ViewEngine they're overwritten.\n  // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n  // tslint:disable-next-line:no-host-decorator-in-concrete\n  @HostListener('click')\n  _handleClick() {\n    this._stepper.previous();\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {CdkStepper, CdkStep} from './stepper';\nimport {CdkStepLabel} from './step-label';\nimport {CdkStepperNext, CdkStepperPrevious} from './stepper-button';\nimport {CdkStepHeader} from './step-header';\nimport {BidiModule} from 'cdk/bidi';\n\n@NgModule({\n  imports: [BidiModule],\n  exports: [\n    CdkStep,\n    CdkStepper,\n    CdkStepHeader,\n    CdkStepLabel,\n    CdkStepperNext,\n    CdkStepperPrevious,\n  ],\n  declarations: [\n    CdkStep,\n    CdkStepper,\n    CdkStepHeader,\n    CdkStepLabel,\n    CdkStepperNext,\n    CdkStepperPrevious,\n  ]\n})\nexport class CdkStepperModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './stepper';\nexport * from './step-label';\nexport * from './stepper-button';\nexport * from './stepper-module';\nexport * from './step-header';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Directive","ElementRef","TemplateRef","InjectionToken","EventEmitter","coerceBooleanProperty","Component","ViewEncapsulation","ChangeDetectionStrategy","Inject","forwardRef","Optional","ContentChild","ViewChild","Input","Output","Subject","QueryList","coerceNumberProperty","startWith","takeUntil","FocusKeyManager","observableOf","hasModifierKey","SPACE","ENTER","_getFocusedElementPierceShadowDom","Directionality","ChangeDetectorRef","DOCUMENT","ContentChildren","HostListener","NgModule","BidiModule"],"mappings":"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"}