@angular/cdk
Version:
Angular Material Component Development Kit
1 lines • 44.1 kB
Source Map (JSON)
{"version":3,"file":"stepper.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk/stepper/step-header.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk/stepper/step-label.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk/stepper/stepper.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk/stepper/stepper-button.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk/stepper/stepper-module.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.dev/license\n */\n\nimport {Directive, ElementRef, inject} from '@angular/core';\nimport {FocusableOption} from '../a11y';\n\n@Directive({\n selector: '[cdkStepHeader]',\n host: {\n 'role': 'tab',\n },\n})\nexport class CdkStepHeader implements FocusableOption {\n _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\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.dev/license\n */\n\nimport {Directive, TemplateRef, inject} from '@angular/core';\n\n@Directive({\n selector: '[cdkStepLabel]',\n})\nexport class CdkStepLabel {\n template = inject<TemplateRef<any>>(TemplateRef);\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.dev/license\n */\n\nimport {_IdGenerator, FocusableOption, FocusKeyManager} from '../a11y';\nimport {Direction, Directionality} from '../bidi';\nimport {ENTER, hasModifierKey, SPACE} from '../keycodes';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n AfterContentInit,\n booleanAttribute,\n numberAttribute,\n inject,\n signal,\n computed,\n} from '@angular/core';\nimport {\n ControlContainer,\n type AbstractControl,\n type NgForm,\n type FormGroupDirective,\n} from '@angular/forms';\nimport type {Field} from '@angular/forms/signals';\nimport {_getFocusedElementPierceShadowDom} from '../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/**\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/** Possible controls that can be assigned to a step. */\nexport type StepControl = AbstractControl | Field<unknown>;\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-template>',\n encapsulation: ViewEncapsulation.None,\n})\nexport class CdkStep implements OnChanges {\n private _stepperOptions: StepperOptions;\n _stepper = inject(CdkStepper);\n _displayDefaultIndicatorType: boolean;\n\n /** Template for step label if it exists. */\n @ContentChild(CdkStepLabel) stepLabel!: CdkStepLabel;\n\n /** Forms that have been projected into the step. */\n @ContentChildren(\n // Note: we look for `ControlContainer` here, because both `NgForm` and `FormGroupDirective`\n // provides themselves as such, but we don't want to have a concrete reference to both of\n // the directives. The type is marked as `Partial` in case we run into a class that provides\n // itself as `ControlContainer` but doesn't have the same interface as the directives.\n ControlContainer,\n {\n descendants: true,\n },\n )\n protected _childForms: QueryList<Partial<NgForm | FormGroupDirective>> | undefined;\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!: StepControl;\n\n /** Whether user has attempted to move away from the step. */\n get interacted(): boolean {\n return this._interacted();\n }\n set interacted(value: boolean) {\n this._interacted.set(value);\n }\n private _interacted = signal(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()\n get state(): StepState {\n return this._state()!;\n }\n set state(value: StepState) {\n this._state.set(value);\n }\n private _state = signal<StepState | undefined>(undefined);\n\n /** Whether the user can return to this step once it has been marked as completed. */\n @Input({transform: booleanAttribute})\n get editable(): boolean {\n return this._editable()!;\n }\n set editable(value: boolean) {\n this._editable.set(value);\n }\n private _editable = signal(true);\n\n /** Whether the completion of step is optional. */\n @Input({transform: booleanAttribute}) optional: boolean = false;\n\n /** Whether step is marked as completed. */\n @Input({transform: booleanAttribute})\n get completed(): boolean {\n const override = this._completedOverride();\n const interacted = this._interacted();\n\n if (override != null) {\n return override;\n }\n\n return interacted && (!this.stepControl || isValid(this.stepControl));\n }\n set completed(value: boolean) {\n this._completedOverride.set(value);\n }\n _completedOverride = signal<boolean | null>(null);\n\n /** Current index of the step within the stepper. */\n readonly index = signal(-1);\n\n /** Whether the step is selected. */\n readonly isSelected = computed<boolean>(() => this._stepper.selectedIndex === this.index());\n\n /** Type of indicator that should be shown for the step. */\n readonly indicatorType = computed<StepState>(() => {\n const selected = this.isSelected();\n const completed = this.completed;\n const defaultState = this._state() ?? STEP_STATE.NUMBER;\n const editable = this._editable();\n\n if (this._showError() && this.hasError && !selected) {\n return STEP_STATE.ERROR;\n }\n\n if (this._displayDefaultIndicatorType) {\n if (!completed || selected) {\n return STEP_STATE.NUMBER;\n }\n return editable ? STEP_STATE.EDIT : STEP_STATE.DONE;\n } else {\n if (completed && !selected) {\n return STEP_STATE.DONE;\n } else if (completed && selected) {\n return defaultState;\n }\n return editable && selected ? STEP_STATE.EDIT : defaultState;\n }\n });\n\n /** Whether the user can navigate to the step. */\n readonly isNavigable = computed<boolean>(() => {\n const isSelected = this.isSelected();\n const isCompleted = this.completed;\n return isCompleted || isSelected || !this._stepper.linear;\n });\n\n /** Whether step has an error. */\n @Input({transform: booleanAttribute})\n get hasError(): boolean {\n const customError = this._customError();\n return customError == null ? this._getDefaultError() : customError;\n }\n set hasError(value: boolean) {\n this._customError.set(value);\n }\n private _customError = signal<boolean | null>(null);\n\n private _getDefaultError() {\n return this.interacted && !!this.stepControl && isInvalid(this.stepControl);\n }\n\n constructor() {\n const stepperOptions = inject<StepperOptions>(STEPPER_GLOBAL_OPTIONS, {optional: true});\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.set(false);\n\n if (this._completedOverride() != null) {\n this._completedOverride.set(false);\n }\n\n if (this._customError() != null) {\n this._customError.set(false);\n }\n\n if (this.stepControl) {\n // Reset the forms since the default error state matchers will show errors on submit and we\n // want the form to be back to its initial state (see #29781). Submitted state is on the\n // individual directives, rather than the control, so we need to reset them ourselves.\n this._childForms?.forEach(form => form.resetForm?.());\n reset(this.stepControl);\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.set(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 private _dir = inject(Directionality, {optional: true});\n private _changeDetectorRef = inject(ChangeDetectorRef);\n protected _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\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> | undefined;\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({transform: booleanAttribute})\n get linear(): boolean {\n return this._linear();\n }\n set linear(value: boolean) {\n this._linear.set(value);\n }\n private _linear = signal(false);\n\n /** The index of the selected step. */\n @Input({transform: numberAttribute})\n get selectedIndex(): number {\n return this._selectedIndex();\n }\n set selectedIndex(index: number) {\n if (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 if (this.selectedIndex !== index) {\n this.selected?._markAsInteracted();\n\n if (\n !this._anyControlsInvalidOrPending(index) &&\n (index >= this.selectedIndex || this.steps.toArray()[index].editable)\n ) {\n this._updateSelectedItemIndex(index);\n }\n }\n } else {\n this._selectedIndex.set(index);\n }\n }\n private _selectedIndex = signal(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 /** Output to support two-way binding on `[(selectedIndex)]` */\n @Output() readonly selectedIndexChange: EventEmitter<number> = new EventEmitter<number>();\n\n /** Used to track unique ID for each stepper component. */\n private _groupId = inject(_IdGenerator).getId('cdk-stepper-');\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 `MatStepper` can hook into it.\n this._orientation = value;\n\n if (this._keyManager) {\n this._keyManager.withVerticalOrientation(value === 'vertical');\n }\n }\n private _orientation: StepperOrientation = 'horizontal';\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.forEach((step, index) => step.index.set(index));\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 duplication. 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 // The selected index may have changed between when the component was created and when the\n // key manager was initialized. Use `updateActiveItem` so it's correct, but it doesn't steal\n // away focus from the user.\n this._keyManager.updateActiveItem(this.selectedIndex);\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.set(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.set(0);\n }\n\n // For linear step and selected index is greater than zero,\n // set all the previous steps to interacted so that we can navigate to previous steps.\n if (this.linear && this.selectedIndex > 0) {\n const visitedSteps = this.steps.toArray().slice(0, this._selectedIndex());\n\n for (const step of visitedSteps) {\n step._markAsInteracted();\n }\n }\n }\n\n ngOnDestroy() {\n this._keyManager?.destroy();\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 `${this._groupId}-label-${i}`;\n }\n\n /** Returns unique id for each step content element. */\n _getStepContentId(i: number): string {\n return `${this._groupId}-content-${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 index of the currently-focused step header. */\n _getFocusIndex(): number | null {\n return this._keyManager ? this._keyManager.activeItemIndex : this._selectedIndex();\n }\n\n private _updateSelectedItemIndex(newIndex: number): void {\n const stepsArray = this.steps.toArray();\n const selectedIndex = this._selectedIndex();\n\n this.selectionChange.emit({\n selectedIndex: newIndex,\n previouslySelectedIndex: selectedIndex,\n selectedStep: stepsArray[newIndex],\n previouslySelectedStep: stepsArray[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 if (this._keyManager) {\n this._containsFocus()\n ? this._keyManager.setActiveItem(newIndex)\n : this._keyManager.updateActiveItem(newIndex);\n }\n\n this._selectedIndex.set(newIndex);\n this.selectedIndexChange.emit(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?.setFocusOrigin('keyboard').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 ? isInvalid(control) || isPending(control) || !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\nfunction isField(value: StepControl): value is Field<unknown> {\n return typeof value === 'function';\n}\n\nfunction isValid(control: StepControl): boolean {\n return isField(control) ? control().valid() : control.valid;\n}\n\nfunction isInvalid(control: StepControl): boolean {\n // Note: it's a bit redundant to have both `isValid` and `isInvalid`. We need both, because\n // some internal apps mock out `invalid` specifically so `!valid` won't hit the mock.\n return isField(control) ? control().invalid() : control.invalid;\n}\n\nfunction isPending(control: StepControl): boolean {\n return isField(control) ? control().pending() : control.pending;\n}\n\nfunction reset(control: StepControl): void {\n if (isField(control)) {\n control().reset();\n } else {\n control.reset();\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.dev/license\n */\n\nimport {Directive, Input, inject} 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 _stepper = inject(CdkStepper);\n\n /** Type of the next button. Defaults to \"submit\" if not specified. */\n @Input() type: string = 'submit';\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 _stepper = inject(CdkStepper);\n\n /** Type of the previous button. Defaults to \"button\" if not specified. */\n @Input() type: string = 'button';\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.dev/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 '../bidi';\n\n@NgModule({\n imports: [\n BidiModule,\n CdkStep,\n CdkStepper,\n CdkStepHeader,\n CdkStepLabel,\n CdkStepperNext,\n CdkStepperPrevious,\n ],\n exports: [CdkStep, CdkStepper, CdkStepHeader, CdkStepLabel, CdkStepperNext, CdkStepperPrevious],\n})\nexport class CdkStepperModule {}\n"],"names":["observableOf"],"mappings":"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"}