{"version":3,"file":"stepper.mjs","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","../../../../../../src/cdk/stepper/stepper_public_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 '@angular/cdk/a11y';\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 '@angular/cdk/a11y';\nimport {Direction, Directionality} from '@angular/cdk/bidi';\nimport {\n  BooleanInput,\n  coerceBooleanProperty,\n  coerceNumberProperty,\n  NumberInput,\n} from '@angular/cdk/coercion';\nimport {ENTER, hasModifierKey, SPACE} from '@angular/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 '@angular/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: BooleanInput) {\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: BooleanInput) {\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: BooleanInput) {\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: BooleanInput) {\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  ) {\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\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  /** List of step headers sorted based on their DOM order. */\n  private _sortedHeaders = new 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: BooleanInput) {\n    this._linear = coerceBooleanProperty(value);\n  }\n  private _linear = false;\n\n  /** The index of the selected step. */\n  @Input()\n  get selectedIndex(): number {\n    return this._selectedIndex;\n  }\n  set selectedIndex(index: NumberInput) {\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(newIndex) && (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 (\n        this._selectedIndex !== newIndex &&\n        !this._anyControlsInvalidOrPending(newIndex) &&\n        (newIndex >= this._selectedIndex || this.steps.toArray()[newIndex].editable)\n      ) {\n        this._updateSelectedItemIndex(newIndex);\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 {\n    return this._orientation;\n  }\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,\n    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  ) {\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    // If the step headers are defined outside of the `ngFor` that renders the steps, like in the\n    // Material stepper, they won't appear in the `QueryList` in the same order as they're\n    // rendered in the DOM which will lead to incorrect keyboard navigation. We need to sort\n    // them manually to ensure that they're correct. Alternatively, we can change the Material\n    // template to inline the headers in the `ngFor`, but that'll result in a lot of\n    // code duplciation. See #23539.\n    this._stepHeader.changes\n      .pipe(startWith(this._stepHeader), takeUntil(this._destroyed))\n      .subscribe((headers: QueryList<CdkStepHeader>) => {\n        this._sortedHeaders.reset(\n          headers.toArray().sort((a, b) => {\n            const documentPosition = a._elementRef.nativeElement.compareDocumentPosition(\n              b._elementRef.nativeElement,\n            );\n\n            // `compareDocumentPosition` returns a bitmask so we have to use a bitwise operator.\n            // https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n            // tslint:disable-next-line:no-bitwise\n            return documentPosition & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n          }),\n        );\n        this._sortedHeaders.notifyOnChanges();\n      });\n\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._sortedHeaders)\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._sortedHeaders.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\n      ? 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,\n    isCurrentStep: boolean,\n    state: StepState = STEP_STATE.NUMBER,\n  ): 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()\n      ? 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 (\n      manager.activeItemIndex != null &&\n      !hasModifier &&\n      (keyCode === SPACE || keyCode === ENTER)\n    ) {\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\n        .toArray()\n        .slice(0, index)\n        .some(step => {\n          const control = step.stepControl;\n          const isIncomplete = control\n            ? control.invalid || control.pending || !step.interacted\n            : !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\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 | ((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 | ((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, 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    '(click)': '_stepper.next()',\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\n/** Button that moves to the previous step in a stepper workflow. */\n@Directive({\n  selector: 'button[cdkStepperPrevious]',\n  host: {\n    '[type]': 'type',\n    '(click)': '_stepper.previous()',\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","/**\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 '@angular/cdk/bidi';\n\n@NgModule({\n  imports: [BidiModule],\n  exports: [CdkStep, CdkStepper, CdkStepHeader, CdkStepLabel, CdkStepperNext, CdkStepperPrevious],\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 * @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 './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["observableOf"],"mappings":"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"}