{"version":3,"file":"igniteui-angular-stepper.mjs","sources":["../../../projects/igniteui-angular/stepper/src/stepper/stepper.common.ts","../../../projects/igniteui-angular/stepper/src/stepper/stepper.service.ts","../../../projects/igniteui-angular/stepper/src/stepper/stepper.directive.ts","../../../projects/igniteui-angular/stepper/src/stepper/step/step.component.ts","../../../projects/igniteui-angular/stepper/src/stepper/step/step.component.html","../../../projects/igniteui-angular/stepper/src/stepper/stepper.component.ts","../../../projects/igniteui-angular/stepper/src/stepper/stepper.component.html","../../../projects/igniteui-angular/stepper/src/stepper/public_api.ts","../../../projects/igniteui-angular/stepper/src/stepper/stepper.module.ts","../../../projects/igniteui-angular/stepper/src/igniteui-angular-stepper.ts"],"sourcesContent":["import { ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, TemplateRef } from '@angular/core';\nimport { IBaseCancelableBrowserEventArgs, IBaseEventArgs } from 'igniteui-angular/core';\nimport { IgxStepperComponent } from './stepper.component';\nimport { IgxStepComponent } from './step/step.component';\nimport {\n    IgxStepActiveIndicatorDirective, IgxStepCompletedIndicatorDirective, IgxStepContentDirective,\n    IgxStepIndicatorDirective, IgxStepInvalidIndicatorDirective\n} from './stepper.directive';\nimport { ToggleAnimationPlayer, ToggleAnimationSettings } from 'igniteui-angular/expansion-panel';\nimport { CarouselAnimationType, IgxCarouselComponentBase, CarouselAnimationDirection } from 'igniteui-angular/carousel';\n\n// Component interfaces\nexport interface IgxStepper extends IgxCarouselComponentBase {\n    steps: IgxStepComponent[];\n    /** @hidden @internal */\n    nativeElement: HTMLElement;\n    /** @hidden @internal */\n    invalidIndicatorTemplate: TemplateRef<IgxStepInvalidIndicatorDirective>;\n    /** @hidden @internal */\n    completedIndicatorTemplate: TemplateRef<IgxStepCompletedIndicatorDirective>;\n    /** @hidden @internal */\n    activeIndicatorTemplate: TemplateRef<IgxStepActiveIndicatorDirective>;\n    verticalAnimationType: VerticalAnimationType;\n    horizontalAnimationType: HorizontalAnimationType;\n    animationDuration: number;\n    linear: boolean;\n    orientation: IgxStepperOrientation;\n    stepType: IgxStepType;\n    contentTop: boolean;\n    titlePosition: IgxStepperTitlePosition;\n    /** @hidden @internal */\n    verticalAnimationSettings: ToggleAnimationSettings;\n    /** @hidden @internal */\n    _defaultTitlePosition: IgxStepperTitlePosition;\n    activeStepChanging: EventEmitter<IStepChangingEventArgs>;\n    activeStepChanged: EventEmitter<IStepChangedEventArgs>;\n    navigateTo(index: number): void;\n    next(): void;\n    prev(): void;\n    reset(): void;\n    /** @hidden @internal */\n    playHorizontalAnimations(): void;\n}\n\n// Item interfaces\nexport interface IgxStep extends ToggleAnimationPlayer {\n    id: string;\n    /** @hidden @internal */\n    contentTemplate: TemplateRef<any>;\n    /** @hidden @internal */\n    customIndicatorTemplate: TemplateRef<any>;\n    /** @hidden @internal */\n    contentContainer: ElementRef;\n    /** @hidden @internal */\n    indicator: IgxStepIndicatorDirective;\n    /** @hidden @internal */\n    content: IgxStepContentDirective;\n    /** @hidden @internal */\n    indicatorTemplate: TemplateRef<any>;\n    index: number;\n    disabled: boolean;\n    completed: boolean;\n    isValid: boolean;\n    optional: boolean;\n    active: boolean;\n    tabIndex: number;\n    /** @hidden @internal */\n    contentId: string;\n    /** @hidden @internal */\n    generalDisabled: boolean;\n    /** @hidden @internal */\n    titlePositionTop: string;\n    /** @hidden @internal */\n    direction: CarouselAnimationDirection;\n    /** @hidden @internal */\n    isAccessible: boolean;\n    /** @hidden @internal */\n    isHorizontal: boolean;\n    /** @hidden @internal */\n    isTitleVisible: boolean;\n    /** @hidden @internal */\n    isIndicatorVisible: boolean;\n    /** @hidden @internal */\n    titlePosition: string;\n    /** @hidden @internal */\n    linearDisabled: boolean;\n    /** @hidden @internal */\n    collapsing: boolean;\n    /** @hidden @internal */\n    animationSettings: ToggleAnimationSettings;\n    /** @hidden @internal */\n    contentClasses: any;\n    /** @hidden @internal */\n    stepHeaderClasses: any;\n    /** @hidden @internal */\n    nativeElement: HTMLElement;\n    /** @hidden @internal */\n    previous: boolean;\n    cdr: ChangeDetectorRef;\n    activeChange: EventEmitter<boolean>;\n}\n\n// Events\nexport interface IStepChangingEventArgs extends IBaseEventArgs, IBaseCancelableBrowserEventArgs {\n    newIndex: number;\n    oldIndex: number;\n    owner: IgxStepper;\n}\n\nexport interface IStepChangedEventArgs extends IBaseEventArgs {\n    // Provides the index of the current active step within the stepper steps\n    index: number;\n    owner: IgxStepper;\n}\n\n// Enums\nexport const IgxStepperOrientation = {\n    Horizontal: 'horizontal',\n    Vertical: 'vertical'\n} as const;\nexport type IgxStepperOrientation = (typeof IgxStepperOrientation)[keyof typeof IgxStepperOrientation];\n\nexport const IgxStepType = {\n    Indicator: 'indicator',\n    Title: 'title',\n    Full: 'full'\n} as const;\nexport type IgxStepType = (typeof IgxStepType)[keyof typeof IgxStepType];\n\nexport const IgxStepperTitlePosition = {\n    Bottom: 'bottom',\n    Top: 'top',\n    End: 'end',\n    Start: 'start'\n} as const;\nexport type IgxStepperTitlePosition = (typeof IgxStepperTitlePosition)[keyof typeof IgxStepperTitlePosition];\n\nexport const VerticalAnimationType = {\n    Grow: 'grow',\n    Fade: 'fade',\n    None: 'none'\n} as const;\nexport type VerticalAnimationType = (typeof VerticalAnimationType)[keyof typeof VerticalAnimationType];\n\nexport const HorizontalAnimationType = {\n    ...CarouselAnimationType\n} as const;\nexport type HorizontalAnimationType = (typeof HorizontalAnimationType)[keyof typeof HorizontalAnimationType];\n\n// Token\nexport const IGX_STEPPER_COMPONENT = /*@__PURE__*/new InjectionToken<IgxStepperComponent>('IgxStepperToken');\nexport const IGX_STEP_COMPONENT = /*@__PURE__*/new InjectionToken<IgxStepComponent>('IgxStepToken');\n","import { Injectable } from '@angular/core';\nimport { IgxStepper, IgxStepperOrientation, IStepChangingEventArgs } from './stepper.common';\nimport { IgxStepComponent } from './step/step.component';\n\n/** @hidden @internal */\n@Injectable()\nexport class IgxStepperService {\n    public activeStep: IgxStepComponent;\n    public previousActiveStep: IgxStepComponent;\n    public focusedStep: IgxStepComponent;\n\n    public collapsingSteps: Set<IgxStepComponent> = new Set<IgxStepComponent>();\n    public linearDisabledSteps: Set<IgxStepComponent> = new Set<IgxStepComponent>();\n    public visitedSteps: Set<IgxStepComponent> = new Set<IgxStepComponent>();\n    public stepper: IgxStepper;\n\n    /**\n     * Activates the step, fires the steps change event and plays animations.\n     */\n    public expand(step: IgxStepComponent): void {\n        if (this.activeStep === step) {\n            return;\n        }\n\n        const cancel = this.emitActivatingEvent(step);\n        if (cancel) {\n            return;\n        }\n\n        this.collapsingSteps.delete(step);\n\n        this.previousActiveStep = this.activeStep;\n        this.activeStep = step;\n        this.activeStep.activeChange.emit(true);\n\n        this.collapsingSteps.add(this.previousActiveStep);\n        this.visitedSteps.add(this.activeStep);\n\n        if (this.stepper.orientation === IgxStepperOrientation.Vertical) {\n            this.previousActiveStep.playCloseAnimation(\n                this.previousActiveStep.contentContainer\n            );\n            this.activeStep.cdr.detectChanges();\n\n            this.activeStep.playOpenAnimation(\n                this.activeStep.contentContainer\n            );\n        } else {\n            this.activeStep.cdr.detectChanges();\n            this.stepper.playHorizontalAnimations();\n        }\n    }\n\n    /**\n     * Activates the step and fires the steps change event without playing animations.\n     */\n    public expandThroughApi(step: IgxStepComponent): void {\n        if (this.activeStep === step) {\n            return;\n        }\n\n        this.collapsingSteps.clear();\n\n        this.previousActiveStep = this.activeStep;\n        this.activeStep = step;\n\n        if (this.previousActiveStep) {\n            this.previousActiveStep.tabIndex = -1;\n        }\n        this.activeStep.tabIndex = 0;\n        this.visitedSteps.add(this.activeStep);\n\n        this.activeStep.cdr.markForCheck();\n        this.previousActiveStep?.cdr.markForCheck();\n\n        this.activeStep.activeChange.emit(true);\n        this.previousActiveStep?.activeChange.emit(false);\n    }\n\n    /**\n     * Collapses the currently active step and fires the change event.\n     */\n    public collapse(step: IgxStepComponent): void {\n        if (this.activeStep === step) {\n            return;\n        }\n        step.activeChange.emit(false);\n        this.collapsingSteps.delete(step);\n    }\n\n    /**\n     * Determines the steps that should be marked as visited based on the active step.\n     */\n    public calculateVisitedSteps(): void {\n        this.stepper.steps.forEach(step => {\n            if (step.index <= this.activeStep.index) {\n                this.visitedSteps.add(step);\n            } else {\n                this.visitedSteps.delete(step);\n            }\n        });\n    }\n\n    /**\n     * Determines the steps that should be disabled in linear mode based on the validity of the active step.\n     */\n    public calculateLinearDisabledSteps(): void {\n        if (!this.activeStep) {\n            return;\n        }\n\n        if (this.activeStep.isValid) {\n            const firstRequiredIndex = this.getNextRequiredStep();\n            if (firstRequiredIndex !== -1) {\n                this.updateLinearDisabledSteps(firstRequiredIndex);\n            } else {\n                this.linearDisabledSteps.clear();\n            }\n        } else {\n            this.stepper.steps.forEach(s => {\n                if (s.index > this.activeStep.index) {\n                    this.linearDisabledSteps.add(s);\n                }\n            });\n        }\n    }\n\n    public emitActivatingEvent(step: IgxStepComponent): boolean {\n        const args: IStepChangingEventArgs = {\n            owner: this.stepper,\n            newIndex: step.index,\n            oldIndex: this.activeStep.index,\n            cancel: false\n        };\n\n        this.stepper.activeStepChanging.emit(args);\n        return args.cancel;\n    }\n\n    /**\n     * Updates the linearDisabled steps from the current active step to the next required invalid step.\n     *\n     * @param toIndex the index of the last step that should be enabled.\n     */\n    private updateLinearDisabledSteps(toIndex: number): void {\n        this.stepper.steps.forEach(s => {\n            if (s.index > this.activeStep.index) {\n                if (s.index <= toIndex) {\n                    this.linearDisabledSteps.delete(s);\n                } else {\n                    this.linearDisabledSteps.add(s);\n                }\n            }\n        });\n    }\n\n    private getNextRequiredStep(): number {\n        if (!this.activeStep) {\n            return;\n        }\n        return this.stepper.steps.findIndex(s => s.index > this.activeStep.index && !s.optional && !s.disabled && !s.isValid);\n    }\n}\n","import { Directive, ElementRef, HostBinding, Input, inject } from '@angular/core';\nimport { IgxStep, IGX_STEP_COMPONENT } from './stepper.common';\nimport { IgxStepperService } from './stepper.service';\n\n/**\n * Allows a custom element to be added as an active step indicator.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n *     <ng-template igxStepActiveIndicator>\n *          <igx-icon>edit</igx-icon>\n *       </ng-template>\n * </igx-stepper>\n */\n@Directive({\n    selector: '[igxStepActiveIndicator]',\n    standalone: true\n})\nexport class IgxStepActiveIndicatorDirective { }\n\n/**\n * Allows a custom element to be added as a complete step indicator.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n *     <ng-template igxStepCompletedIndicator>\n *          <igx-icon>check</igx-icon>\n *       </ng-template>\n * </igx-stepper>\n */\n@Directive({\n    selector: '[igxStepCompletedIndicator]',\n    standalone: true\n})\nexport class IgxStepCompletedIndicatorDirective { }\n\n/**\n * Allows a custom element to be added as an invalid step indicator.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n *     <ng-template igxStepInvalidIndicator>\n *          <igx-icon>error</igx-icon>\n *       </ng-template>\n * </igx-stepper>\n */\n@Directive({\n    selector: '[igxStepInvalidIndicator]',\n    standalone: true\n})\nexport class IgxStepInvalidIndicatorDirective { }\n\n/**\n * Allows a custom element to be added as a step indicator.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n *     <igx-step>\n *         <igx-icon igxStepIndicator>home</igx-icon>\n *     </igx-step>\n * </igx-stepper>\n */\n@Directive({\n    selector: '[igxStepIndicator]',\n    standalone: true\n})\nexport class IgxStepIndicatorDirective { }\n\n/**\n * Allows a custom element to be added as a step title.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n *     <igx-step>\n *         <p igxStepTitle>Home</p>\n *     </igx-step>\n * </igx-stepper>\n */\n@Directive({\n    selector: '[igxStepTitle]',\n    standalone: true\n})\nexport class IgxStepTitleDirective {\n    @HostBinding('class.igx-stepper__step-title')\n    public defaultClass = true;\n}\n\n/**\n * Allows a custom element to be added as a step subtitle.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n *     <igx-step>\n *         <p igxStepSubtitle>Home Subtitle</p>\n *     </igx-step>\n * </igx-stepper>\n */\n@Directive({\n    selector: '[igxStepSubtitle]',\n    standalone: true\n})\nexport class IgxStepSubtitleDirective {\n    @HostBinding('class.igx-stepper__step-subtitle')\n    public defaultClass = true;\n}\n\n/**\n * Allows a custom element to be added as a step content.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n *     <igx-step>\n *         <div igxStepContent>...</div>\n *     </igx-step>\n * </igx-stepper>\n */\n@Directive({\n    selector: '[igxStepContent]',\n    standalone: true\n})\nexport class IgxStepContentDirective {\n    private step = inject<IgxStep>(IGX_STEP_COMPONENT);\n    private stepperService = inject(IgxStepperService);\n    public elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n    private get target(): IgxStep {\n        return this.step;\n    }\n\n    @HostBinding('class.igx-stepper__step-content')\n    public defaultClass = true;\n\n    @HostBinding('attr.role')\n    public role = 'tabpanel';\n\n    @HostBinding('attr.aria-labelledby')\n    public get stepId(): string {\n        return this.target.id;\n    }\n\n    @HostBinding('attr.id')\n    @Input()\n    public id = this.target.id.replace('step', 'content');\n\n    @HostBinding('attr.tabindex')\n    @Input()\n    public get tabIndex(): number {\n        if (this._tabIndex !== null) {\n            return this._tabIndex;\n        }\n\n        return this.stepperService.activeStep === this.target ? 0 : -1;\n    }\n\n    public set tabIndex(val: number) {\n        this._tabIndex = val;\n    }\n\n    private _tabIndex = null;\n}\n","import { AfterViewInit, booleanAttribute, ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, Input, OnDestroy, Output, Renderer2, TemplateRef, ViewChild, inject } from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { IgxStep, IgxStepper, IgxStepperOrientation, IgxStepType, IGX_STEPPER_COMPONENT, IGX_STEP_COMPONENT, HorizontalAnimationType } from '../stepper.common';\nimport { IgxStepContentDirective, IgxStepIndicatorDirective } from '../stepper.directive';\nimport { IgxStepperService } from '../stepper.service';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { IgxRippleDirective } from 'igniteui-angular/directives';\nimport { ToggleAnimationPlayer, ToggleAnimationSettings } from 'igniteui-angular/expansion-panel';\nimport { CarouselAnimationDirection, IgxSlideComponentBase } from 'igniteui-angular/carousel';\nimport { ɵIgxDirectionality, PlatformUtil } from 'igniteui-angular/core';\n\nlet NEXT_ID = 0;\n\n/**\n * The IgxStepComponent is used within the `igx-stepper` element and it holds the content of each step.\n * It also supports custom indicators, title and subtitle.\n *\n * @igxModule IgxStepperModule\n *\n * @igxKeywords step\n *\n * @example\n * ```html\n *  <igx-stepper>\n *  ...\n *    <igx-step [active]=\"true\" [completed]=\"true\">\n *      ...\n *    </igx-step>\n *  ...\n *  </igx-stepper>\n * ```\n */\n@Component({\n    selector: 'igx-step',\n    templateUrl: 'step.component.html',\n    providers: [\n        { provide: IGX_STEP_COMPONENT, useExisting: IgxStepComponent }\n    ],\n    imports: [NgClass, IgxRippleDirective, NgTemplateOutlet]\n})\nexport class IgxStepComponent extends ToggleAnimationPlayer implements IgxStep, AfterViewInit, OnDestroy, IgxSlideComponentBase {\n    public stepper = inject<IgxStepper>(IGX_STEPPER_COMPONENT);\n    public cdr = inject(ChangeDetectorRef);\n    public renderer = inject(Renderer2);\n    protected platform = inject(PlatformUtil);\n    protected stepperService = inject(IgxStepperService);\n    private element = inject<ElementRef<HTMLElement>>(ElementRef);\n    private dir = inject(ɵIgxDirectionality);\n\n\n    /**\n     * Get/Set the `id` of the step component.\n     * Default value is `\"igx-step-0\"`;\n     * ```html\n     * <igx-step id=\"my-first-step\"></igx-step>\n     * ```\n     * ```typescript\n     * const stepId = this.step.id;\n     * ```\n     */\n    @HostBinding('attr.id')\n    @Input()\n    public id = `igx-step-${NEXT_ID++}`;\n\n    /**\n     * Get/Set whether the step is interactable.\n     *\n     * ```html\n     * <igx-stepper>\n     * ...\n     *     <igx-step [disabled]=\"true\"></igx-step>\n     * ...\n     * </igx-stepper>\n     * ```\n     *\n     * ```typescript\n     * this.stepper.steps[1].disabled = true;\n     * ```\n     */\n    @Input({ transform: booleanAttribute })\n    public set disabled(value: boolean) {\n        this._disabled = value;\n        if (this.stepper.linear) {\n            this.stepperService.calculateLinearDisabledSteps();\n        }\n    }\n\n    public get disabled(): boolean {\n        return this._disabled;\n    }\n\n    /**\n     * Get/Set whether the step is completed.\n     *\n     * @remarks\n     * When set to `true` the following separator is styled `solid`.\n     *\n     * ```html\n     * <igx-stepper>\n     * ...\n     *     <igx-step [completed]=\"true\"></igx-step>\n     * ...\n     * </igx-stepper>\n     * ```\n     *\n     * ```typescript\n     * this.stepper.steps[1].completed = true;\n     * ```\n     */\n    @Input({ transform: booleanAttribute })\n    @HostBinding('class.igx-stepper__step--completed')\n    public completed = false;\n\n    /**\n     * Get/Set whether the step is valid.\n     *```html\n     * <igx-step [isValid]=\"form.form.valid\">\n     *      ...\n     *      <div igxStepContent>\n     *          <form #form=\"ngForm\">\n     *              ...\n     *          </form>\n     *      </div>\n     * </igx-step>\n     * ```\n     */\n    @Input({ transform: booleanAttribute })\n    public get isValid(): boolean {\n        return this._valid;\n    }\n\n    public set isValid(value: boolean) {\n        this._valid = value;\n        if (this.stepper.linear && this.index !== undefined) {\n            this.stepperService.calculateLinearDisabledSteps();\n        }\n    }\n\n    /**\n     * Get/Set whether the step is optional.\n     *\n     * @remarks\n     * Optional steps validity does not affect the default behavior when the stepper is in linear mode i.e.\n     * if optional step is invalid the user could still move to the next step.\n     *\n     * ```html\n     * <igx-step [optional]=\"true\"></igx-step>\n     * ```\n     * ```typescript\n     * this.stepper.steps[1].optional = true;\n     * ```\n     */\n    @Input({ transform: booleanAttribute })\n    public optional = false;\n\n    /**\n     * Get/Set the active state of the step\n     *\n     * ```html\n     * <igx-step [active]=\"true\"></igx-step>\n     * ```\n     *\n     * ```typescript\n     * this.stepper.steps[1].active = true;\n     * ```\n     *\n     * @param value: boolean\n     */\n    @HostBinding('attr.aria-selected')\n    @Input({ transform: booleanAttribute })\n    public set active(value: boolean) {\n        if (value) {\n            this.stepperService.expandThroughApi(this);\n        } else {\n            this.stepperService.collapse(this);\n        }\n    }\n\n    public get active(): boolean {\n        return this.stepperService.activeStep === this;\n    }\n\n    /** @hidden @internal */\n    @HostBinding('attr.tabindex')\n    @Input()\n    public set tabIndex(value: number) {\n        this._tabIndex = value;\n    }\n\n    public get tabIndex(): number {\n        return this._tabIndex;\n    }\n\n    /** @hidden @internal **/\n    @HostBinding('attr.role')\n    public role = 'tab';\n\n    /** @hidden @internal */\n    @HostBinding('attr.aria-controls')\n    public get contentId(): string {\n        return this.content?.id;\n    }\n\n    /** @hidden @internal */\n    @HostBinding('class.igx-stepper__step')\n    public cssClass = true;\n\n    /** @hidden @internal */\n    @HostBinding('class.igx-stepper__step--disabled')\n    public get generalDisabled(): boolean {\n        return this.disabled || this.linearDisabled;\n    }\n\n    /** @hidden @internal */\n    @HostBinding('class')\n    public get titlePositionTop(): string {\n        if (this.stepper.stepType !== IgxStepType.Full) {\n            return 'igx-stepper__step--simple';\n        }\n\n        return `igx-stepper__step--${this.titlePosition}`;\n    }\n\n    /**\n     * Emitted when the step's `active` property changes. Can be used for two-way binding.\n     *\n     * ```html\n     * <igx-step [(active)]=\"this.isActive\">\n     * </igx-step>\n     * ```\n     *\n     * ```typescript\n     * const step: IgxStepComponent = this.stepper.step[0];\n     * step.activeChange.subscribe((e: boolean) => console.log(\"Step active state change to \", e))\n     * ```\n     */\n    @Output()\n    public activeChange = new EventEmitter<boolean>();\n\n    /** @hidden @internal */\n    @ViewChild('contentTemplate', { static: true })\n    public contentTemplate: TemplateRef<any>;\n\n    /** @hidden @internal */\n    @ViewChild('customIndicator', { static: true })\n    public customIndicatorTemplate: TemplateRef<any>;\n\n    /** @hidden @internal */\n    @ViewChild('contentContainer')\n    public contentContainer: ElementRef;\n\n    /** @hidden @internal */\n    @ContentChild(forwardRef(() => IgxStepIndicatorDirective))\n    public indicator: IgxStepIndicatorDirective;\n\n    /** @hidden @internal */\n    @ContentChild(forwardRef(() => IgxStepContentDirective))\n    public content: IgxStepContentDirective;\n\n    /**\n     * Get the step index inside of the stepper.\n     *\n     * ```typescript\n     * const step = this.stepper.steps[1];\n     * const stepIndex: number = step.index;\n     * ```\n     */\n    public get index(): number {\n        return this._index;\n    }\n\n    /** @hidden @internal */\n    public get indicatorTemplate(): TemplateRef<any> {\n        if (this.active && this.stepper.activeIndicatorTemplate) {\n            return this.stepper.activeIndicatorTemplate;\n        }\n\n        if (!this.isValid && this.stepper.invalidIndicatorTemplate) {\n            return this.stepper.invalidIndicatorTemplate;\n        }\n\n        if (this.completed && this.stepper.completedIndicatorTemplate) {\n            return this.stepper.completedIndicatorTemplate;\n        }\n\n        if (this.indicator) {\n            return this.customIndicatorTemplate;\n        }\n\n        return null;\n    }\n\n    /** @hidden @internal */\n    public get direction(): CarouselAnimationDirection {\n        return this.stepperService.previousActiveStep\n            && this.stepperService.previousActiveStep.index > this.index\n            ? CarouselAnimationDirection.PREV\n            : CarouselAnimationDirection.NEXT;\n    }\n\n    /** @hidden @internal */\n    public get isAccessible(): boolean {\n        return !this.disabled && !this.linearDisabled;\n    }\n\n    /** @hidden @internal */\n    public get isHorizontal(): boolean {\n        return this.stepper.orientation === IgxStepperOrientation.Horizontal;\n    }\n\n    /** @hidden @internal */\n    public get isTitleVisible(): boolean {\n        return this.stepper.stepType !== IgxStepType.Indicator;\n    }\n\n    /** @hidden @internal */\n    public get isIndicatorVisible(): boolean {\n        return this.stepper.stepType !== IgxStepType.Title;\n    }\n\n    /** @hidden @internal */\n    public get titlePosition(): string {\n        return this.stepper.titlePosition ? this.stepper.titlePosition : this.stepper._defaultTitlePosition;\n    }\n\n    /** @hidden @internal */\n    public get linearDisabled(): boolean {\n        return this.stepperService.linearDisabledSteps.has(this);\n    }\n\n    /** @hidden @internal */\n    public get collapsing(): boolean {\n        return this.stepperService.collapsingSteps.has(this);\n    }\n\n    /** @hidden @internal */\n    public override get animationSettings(): ToggleAnimationSettings {\n        return this.stepper.verticalAnimationSettings;\n    }\n\n    /** @hidden @internal */\n    public get contentClasses(): any {\n        if (this.isHorizontal) {\n            return { 'igx-stepper__body-content': true, 'igx-stepper__body-content--active': this.active };\n        } else {\n            return 'igx-stepper__step-content';\n        }\n    }\n\n    /** @hidden @internal */\n    public get stepHeaderClasses(): any {\n        return {\n            'igx-stepper__step--optional': this.optional,\n            'igx-stepper__step-header--current': this.active,\n            'igx-stepper__step-header--invalid': !this.isValid\n                && this.stepperService.visitedSteps.has(this) && !this.active && this.isAccessible\n        };\n    }\n\n    /** @hidden @internal */\n    public get nativeElement(): HTMLElement {\n        return this.element.nativeElement;\n    }\n    /** @hidden @internal */\n    public previous: boolean;\n    /** @hidden @internal */\n    public _index: number;\n    private _tabIndex = -1;\n    private _valid = true;\n    private _focused = false;\n    private _disabled = false;\n\n    /** @hidden @internal */\n    @HostListener('focus')\n    public onFocus(): void {\n        this._focused = true;\n        this.stepperService.focusedStep = this;\n        if (this.stepperService.focusedStep !== this.stepperService.activeStep) {\n            this.stepperService.activeStep.tabIndex = -1;\n        }\n    }\n\n    /** @hidden @internal */\n    @HostListener('blur')\n    public onBlur(): void {\n        this._focused = false;\n        this.stepperService.activeStep.tabIndex = 0;\n    }\n\n    /** @hidden @internal */\n    @HostListener('keydown', ['$event'])\n    public handleKeydown(event: KeyboardEvent): void {\n        if (!this._focused) {\n            return;\n        }\n        const key = event.key;\n        if (this.stepper.orientation === IgxStepperOrientation.Horizontal) {\n            if (key === this.platform.KEYMAP.ARROW_UP || key === this.platform.KEYMAP.ARROW_DOWN) {\n                return;\n            }\n        }\n        if (!(this.platform.isNavigationKey(key) || this.platform.isActivationKey(event))) {\n            return;\n        }\n        event.preventDefault();\n        this.handleNavigation(key);\n    }\n\n    /** @hidden @internal */\n    public ngAfterViewInit(): void {\n        this.openAnimationDone.pipe(takeUntil(this.destroy$)).subscribe(\n            () => {\n                if (this.stepperService.activeStep === this) {\n                    this.stepper.activeStepChanged.emit({ owner: this.stepper, index: this.index });\n                }\n            }\n        );\n        this.closeAnimationDone.pipe(takeUntil(this.destroy$)).subscribe(() => {\n            this.stepperService.collapse(this);\n            this.cdr.markForCheck();\n        });\n    }\n\n    /** @hidden @internal */\n    public onPointerDown(event: MouseEvent): void {\n        event.stopPropagation();\n        if (this.isHorizontal) {\n            this.changeHorizontalActiveStep();\n        } else {\n            this.changeVerticalActiveStep();\n        }\n    }\n\n    /** @hidden @internal */\n    public handleNavigation(key: string): void {\n        switch (key) {\n            case this.platform.KEYMAP.HOME:\n                this.stepper.steps.filter(s => s.isAccessible)[0]?.nativeElement.focus();\n                break;\n            case this.platform.KEYMAP.END:\n                this.stepper.steps.filter(s => s.isAccessible).pop()?.nativeElement.focus();\n                break;\n            case this.platform.KEYMAP.ARROW_UP:\n                this.previousStep?.nativeElement.focus();\n                break;\n            case this.platform.KEYMAP.ARROW_LEFT:\n                if (this.dir.rtl && this.stepper.orientation === IgxStepperOrientation.Horizontal) {\n                    this.nextStep?.nativeElement.focus();\n                } else {\n                    this.previousStep?.nativeElement.focus();\n                }\n                break;\n            case this.platform.KEYMAP.ARROW_DOWN:\n                this.nextStep?.nativeElement.focus();\n                break;\n            case this.platform.KEYMAP.ARROW_RIGHT:\n                if (this.dir.rtl && this.stepper.orientation === IgxStepperOrientation.Horizontal) {\n                    this.previousStep?.nativeElement.focus();\n                } else {\n                    this.nextStep?.nativeElement.focus();\n                }\n                break;\n            case this.platform.KEYMAP.SPACE:\n            case this.platform.KEYMAP.ENTER:\n                if (this.isHorizontal) {\n                    this.changeHorizontalActiveStep();\n                } else {\n                    this.changeVerticalActiveStep();\n                }\n                break;\n            default:\n                return;\n        }\n    }\n\n    /** @hidden @internal */\n    public changeHorizontalActiveStep(): void {\n        if (this.stepper.animationType === HorizontalAnimationType.none && this.stepperService.activeStep !== this) {\n            const argsCanceled = this.stepperService.emitActivatingEvent(this);\n            if (argsCanceled) {\n                return;\n            }\n\n            this.active = true;\n            this.stepper.activeStepChanged.emit({ owner: this.stepper, index: this.index });\n            return;\n        }\n        this.stepperService.expand(this);\n        if (this.stepper.animationType === HorizontalAnimationType.fade) {\n            if (this.stepperService.collapsingSteps.has(this.stepperService.previousActiveStep)) {\n                this.stepperService.previousActiveStep.active = false;\n            }\n        }\n    }\n\n    private get nextStep(): IgxStepComponent | null {\n        const focusedStep = this.stepperService.focusedStep;\n        if (focusedStep) {\n            if (focusedStep.index === this.stepper.steps.length - 1) {\n                return this.stepper.steps.find(s => s.isAccessible);\n            }\n\n            const nextAccessible = this.stepper.steps.find((s, i) => i > focusedStep.index && s.isAccessible);\n            return nextAccessible ? nextAccessible : this.stepper.steps.find(s => s.isAccessible);\n        }\n\n        return null;\n    }\n\n    private get previousStep(): IgxStepComponent | null {\n        const focusedStep = this.stepperService.focusedStep;\n        if (focusedStep) {\n            if (focusedStep.index === 0) {\n                return this.stepper.steps.filter(s => s.isAccessible).pop();\n            }\n\n            let prevStep;\n            for (let i = focusedStep.index - 1; i >= 0; i--) {\n                const step = this.stepper.steps[i];\n                if (step.isAccessible) {\n                    prevStep = step;\n                    break;\n                }\n            }\n\n            return prevStep ? prevStep : this.stepper.steps.filter(s => s.isAccessible).pop();\n\n        }\n\n        return null;\n    }\n\n    private changeVerticalActiveStep(): void {\n        this.stepperService.expand(this);\n\n        if (!this.animationSettings.closeAnimation) {\n            this.stepperService.previousActiveStep?.openAnimationPlayer?.finish();\n        }\n\n        if (!this.animationSettings.openAnimation) {\n            this.stepperService.activeStep.closeAnimationPlayer?.finish();\n        }\n    }\n}\n","<ng-template #defaultTitle>\n    @if (isTitleVisible) {\n        <ng-content select=\"[igxStepTitle]\"></ng-content>\n    }\n    @if (isTitleVisible) {\n        <ng-content select=\"[igxStepSubtitle]\"></ng-content>\n    }\n</ng-template>\n\n<ng-template #contentTemplate>\n    <div [ngClass]=\"contentClasses\" #contentContainer>\n        @if (active || collapsing) {\n            <ng-content select=\"[igxStepContent]\"></ng-content>\n        }\n    </div>\n</ng-template>\n\n<ng-template #defaultIndicator>\n    <span>{{ index + 1 }}</span>\n</ng-template>\n\n<ng-template #customIndicator>\n    <ng-content select=\"[igxStepIndicator]\"></ng-content>\n</ng-template>\n\n<div class=\"igx-stepper__step-header\" igxRipple [ngClass]=\"stepHeaderClasses\" (keydown)=\"handleKeydown($event)\"\n    (click)=\"onPointerDown($event)\">\n\n    @if (isIndicatorVisible) {\n        <div class=\"igx-stepper__step-indicator\">\n            <ng-container *ngTemplateOutlet=\"indicatorTemplate ? indicatorTemplate : defaultIndicator\"></ng-container>\n        </div>\n    }\n\n    <div class=\"igx-stepper__step-title-wrapper\">\n        <ng-container *ngTemplateOutlet=\"defaultTitle\"></ng-container>\n    </div>\n</div>\n\n@if (!isHorizontal) {\n    <div class=\"igx-stepper__step-content-wrapper\">\n        <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n    </div>\n}\n","import { AnimationReferenceMetadata, useAnimation } from '@angular/animations';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { AfterContentInit, Component, ContentChild, ContentChildren, ElementRef, EventEmitter, HostBinding, Input, OnChanges, OnDestroy, OnInit, Output, QueryList, SimpleChanges, TemplateRef, booleanAttribute, inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { IgxCarouselComponentBase } from 'igniteui-angular/carousel';\nimport { IgxStepComponent } from './step/step.component';\nimport {\n    IgxStepper, IgxStepperOrientation, IgxStepperTitlePosition, IgxStepType,\n    IGX_STEPPER_COMPONENT, IStepChangedEventArgs, IStepChangingEventArgs, VerticalAnimationType,\n    HorizontalAnimationType\n} from './stepper.common';\nimport {\n    IgxStepActiveIndicatorDirective,\n    IgxStepCompletedIndicatorDirective,\n    IgxStepInvalidIndicatorDirective\n} from './stepper.directive';\nimport { IgxStepperService } from './stepper.service';\nimport { fadeIn, growVerIn, growVerOut } from 'igniteui-angular/animations';\nimport { ToggleAnimationSettings } from 'igniteui-angular/expansion-panel';\n\n\n// TODO: common interface between IgxCarouselComponentBase and ToggleAnimationPlayer?\n\n/**\n * IgxStepper provides a wizard-like workflow by dividing content into logical steps.\n *\n * @igxModule IgxStepperModule\n *\n * @igxKeywords stepper\n *\n * @igxGroup Layouts\n *\n * @remarks\n * The Ignite UI for Angular Stepper component allows the user to navigate between multiple steps.\n * It supports horizontal and vertical orientation as well as keyboard navigation and provides API methods to control the active step.\n * The component offers keyboard navigation and API to control the active step.\n *\n * @example\n * ```html\n * <igx-stepper>\n *  <igx-step [active]=\"true\">\n *      <igx-icon igxStepIndicator>home</igx-icon>\n *      <p igxStepTitle>Home</p>\n *      <div igxStepContent>\n *         ...\n *      </div>\n *  </igx-step>\n *  <igx-step [optional]=\"true\">\n *      <div igxStepContent>\n *          ...\n *      </div>\n *  </igx-step>\n *  <igx-step>\n *      <div igxStepContent>\n *          ...\n *      </div>\n *  </igx-step>\n * </igx-stepper>\n * ```\n */\n@Component({\n    selector: 'igx-stepper',\n    templateUrl: 'stepper.component.html',\n    providers: [\n        IgxStepperService,\n        { provide: IGX_STEPPER_COMPONENT, useExisting: IgxStepperComponent },\n    ],\n    imports: [NgTemplateOutlet]\n})\nexport class IgxStepperComponent extends IgxCarouselComponentBase implements IgxStepper, OnChanges, OnInit, AfterContentInit, OnDestroy {\n    private stepperService = inject(IgxStepperService);\n    private element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\n    /**\n     * Get/Set the animation type of the stepper when the orientation direction is vertical.\n     *\n     * @remarks\n     * Default value is `grow`. Other possible values are `fade` and `none`.\n     *\n     * ```html\n     * <igx-stepper verticalAnimationType=\"none\">\n     * <igx-stepper>\n     * ```\n     */\n    @Input()\n    public get verticalAnimationType(): VerticalAnimationType {\n        return this._verticalAnimationType;\n    }\n\n    public set verticalAnimationType(value: VerticalAnimationType) {\n        // TODO: activeChange event is not emitted for the collapsing steps (loop through collapsing steps and emit)\n        this.stepperService.collapsingSteps.clear();\n        this._verticalAnimationType = value;\n\n        switch (value) {\n            case 'grow':\n                this.verticalAnimationSettings = this.updateVerticalAnimationSettings(growVerIn, growVerOut);\n                break;\n            case 'fade':\n                this.verticalAnimationSettings = this.updateVerticalAnimationSettings(fadeIn, null);\n                break;\n            case 'none':\n                this.verticalAnimationSettings = this.updateVerticalAnimationSettings(null, null);\n                break;\n        }\n    }\n\n    /**\n     * Get/Set the animation type of the stepper when the orientation direction is horizontal.\n     *\n     * @remarks\n     * Default value is `grow`. Other possible values are `fade` and `none`.\n     *\n     * ```html\n     * <igx-stepper animationType=\"none\">\n     * <igx-stepper>\n     * ```\n     */\n    @Input()\n    public get horizontalAnimationType(): HorizontalAnimationType {\n        return this.animationType;\n    }\n\n    public set horizontalAnimationType(value: HorizontalAnimationType) {\n        // TODO: activeChange event is not emitted for the collapsing steps (loop through collapsing steps and emit)\n        this.stepperService.collapsingSteps.clear();\n        this.animationType = value;\n    }\n\n    /**\n     * Get/Set the animation duration.\n     * ```html\n     * <igx-stepper [animationDuration]=\"500\">\n     * <igx-stepper>\n     * ```\n     */\n    @Input()\n    public get animationDuration(): number {\n        return this.defaultAnimationDuration;\n    }\n\n    public set animationDuration(value: number) {\n        if (value && value > 0) {\n            this.defaultAnimationDuration = value;\n            return;\n        }\n        this.defaultAnimationDuration = this._defaultAnimationDuration;\n    }\n\n    /**\n     * Get/Set whether the stepper is linear.\n     *\n     * @remarks\n     * If the stepper is in linear mode and if the active step is valid only then the user is able to move forward.\n     *\n     * ```html\n     * <igx-stepper [linear]=\"true\"></igx-stepper>\n     * ```\n     */\n    @Input({ transform: booleanAttribute })\n    public get linear(): boolean {\n        return this._linear;\n    }\n\n    public set linear(value: boolean) {\n        this._linear = value;\n        if (this._linear && this.steps.length > 0) {\n            // when the stepper is in linear mode we should calculate which steps should be disabled\n            // and which are visited i.e. their validity should be correctly displayed.\n            this.stepperService.calculateVisitedSteps();\n            this.stepperService.calculateLinearDisabledSteps();\n        } else {\n            this.stepperService.linearDisabledSteps.clear();\n        }\n    }\n\n    /**\n     * Get/Set the stepper orientation.\n     *\n     * ```typescript\n     * this.stepper.orientation = IgxStepperOrientation.Vertical;\n     * ```\n     */\n    @HostBinding('attr.aria-orientation')\n    @Input()\n    public get orientation(): IgxStepperOrientation {\n        return this._orientation;\n    }\n\n    public set orientation(value: IgxStepperOrientation) {\n        if (this._orientation === value) {\n            return;\n        }\n\n        // TODO: activeChange event is not emitted for the collapsing steps\n        this.stepperService.collapsingSteps.clear();\n        this._orientation = value;\n        this._defaultTitlePosition = this._orientation === IgxStepperOrientation.Horizontal ?\n            IgxStepperTitlePosition.Bottom : IgxStepperTitlePosition.End;\n    }\n\n    /**\n     * Get/Set the type of the steps.\n     *\n     * ```typescript\n     * this.stepper.stepType = IgxStepType.Indicator;\n     * ```\n     */\n    @Input()\n    public stepType: IgxStepType = IgxStepType.Full;\n\n    /**\n     * Get/Set whether the content is displayed above the steps.\n     *\n     * @remarks\n     * Default value is `false` and the content is below the steps.\n     *\n     * ```typescript\n     * this.stepper.contentTop = true;\n     * ```\n     */\n    @Input({ transform: booleanAttribute })\n    public contentTop = false;\n\n    /**\n     * Get/Set the position of the steps title.\n     *\n     * @remarks\n     * The default value when the stepper is horizontally orientated is `bottom`.\n     * In vertical layout the default title position is `end`.\n     *\n     * ```typescript\n     * this.stepper.titlePosition = IgxStepperTitlePosition.Top;\n     * ```\n     */\n    @Input()\n    public titlePosition: IgxStepperTitlePosition = null;\n\n    /** @hidden @internal **/\n    @HostBinding('class.igx-stepper')\n    public cssClass = 'igx-stepper';\n\n    /** @hidden @internal **/\n    @HostBinding('attr.role')\n    public role = 'tablist';\n\n    /** @hidden @internal **/\n    @HostBinding('class.igx-stepper--horizontal')\n    public get directionClass() {\n        return this.orientation === IgxStepperOrientation.Horizontal;\n    }\n\n    /**\n     * Emitted when the stepper's active step is changing.\n     *\n     *```html\n     * <igx-stepper (activeStepChanging)=\"handleActiveStepChanging($event)\">\n     * </igx-stepper>\n     * ```\n     *\n     *```typescript\n     * public handleActiveStepChanging(event: IStepChangingEventArgs) {\n     *  if (event.newIndex < event.oldIndex) {\n     *      event.cancel = true;\n     *  }\n     * }\n     *```\n     */\n    @Output()\n    public activeStepChanging = new EventEmitter<IStepChangingEventArgs>();\n\n    /**\n     * Emitted when the active step is changed.\n     *\n     * @example\n     * ```\n     * <igx-stepper (activeStepChanged)=\"handleActiveStepChanged($event)\"></igx-stepper>\n     * ```\n     */\n    @Output()\n    public activeStepChanged = new EventEmitter<IStepChangedEventArgs>();\n\n    /** @hidden @internal */\n    @ContentChild(IgxStepInvalidIndicatorDirective, { read: TemplateRef })\n    public invalidIndicatorTemplate: TemplateRef<IgxStepInvalidIndicatorDirective>;\n\n    /** @hidden @internal */\n    @ContentChild(IgxStepCompletedIndicatorDirective, { read: TemplateRef })\n    public completedIndicatorTemplate: TemplateRef<IgxStepCompletedIndicatorDirective>;\n\n    /** @hidden @internal */\n    @ContentChild(IgxStepActiveIndicatorDirective, { read: TemplateRef })\n    public activeIndicatorTemplate: TemplateRef<IgxStepActiveIndicatorDirective>;\n\n    /** @hidden @internal */\n    @ContentChildren(IgxStepComponent, { descendants: false })\n    private _steps: QueryList<IgxStepComponent>;\n\n    /**\n     * Get all steps.\n     *\n     * ```typescript\n     * const steps: IgxStepComponent[] = this.stepper.steps;\n     * ```\n     */\n    public get steps(): IgxStepComponent[] {\n        return this._steps?.toArray() || [];\n    }\n\n    /** @hidden @internal */\n    public get nativeElement(): HTMLElement {\n        return this.element.nativeElement;\n    }\n\n    /** @hidden @internal */\n    public verticalAnimationSettings: ToggleAnimationSettings = {\n        openAnimation: growVerIn,\n        closeAnimation: growVerOut,\n    };\n    /** @hidden @internal */\n    public _defaultTitlePosition: IgxStepperTitlePosition = IgxStepperTitlePosition.Bottom;\n    private destroy$ = new Subject<void>();\n    private _orientation: IgxStepperOrientation = IgxStepperOrientation.Horizontal;\n    private _verticalAnimationType: VerticalAnimationType = VerticalAnimationType.Grow;\n    private _linear = false;\n    private readonly _defaultAnimationDuration = 350;\n\n    constructor() {\n        super();\n        this.stepperService.stepper = this;\n    }\n\n    /** @hidden @internal */\n    public ngOnChanges(changes: SimpleChanges): void {\n        if (changes['animationDuration']) {\n            this.verticalAnimationType = this._verticalAnimationType;\n        }\n    }\n\n    /** @hidden @internal */\n    public ngOnInit(): void {\n        this.enterAnimationDone.pipe(takeUntil(this.destroy$)).subscribe(() => {\n            this.activeStepChanged.emit({ owner: this, index: this.stepperService.activeStep.index });\n        });\n        this.leaveAnimationDone.pipe(takeUntil(this.destroy$)).subscribe(() => {\n            if (this.stepperService.collapsingSteps.size === 1) {\n                this.stepperService.collapse(this.stepperService.previousActiveStep);\n            } else {\n                Array.from(this.stepperService.collapsingSteps).slice(0, this.stepperService.collapsingSteps.size - 1)\n                    .forEach(step => this.stepperService.collapse(step));\n            }\n        });\n\n\n    }\n\n    /** @hidden @internal */\n    public ngAfterContentInit(): void {\n        let activeStep;\n        this.steps.forEach((step, index) => {\n            this.updateStepAria(step, index);\n            if (!activeStep && step.active) {\n                activeStep = step;\n            }\n        });\n        if (!activeStep) {\n            this.activateFirstStep(true);\n        }\n\n        if (this.linear) {\n            this.stepperService.calculateLinearDisabledSteps();\n        }\n\n        this.handleStepChanges();\n    }\n\n    /** @hidden @internal */\n    public override ngOnDestroy(): void {\n        super.ngOnDestroy();\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n\n    /**\n     * Activates the step at a given index.\n     *\n     *```typescript\n     * this.stepper.navigateTo(1);\n     *```\n     */\n    public navigateTo(index: number): void {\n        const step = this.steps[index];\n        if (!step || this.stepperService.activeStep === step) {\n            return;\n        }\n        this.activateStep(step);\n    }\n\n    /**\n     * Activates the next enabled step.\n     *\n     *```typescript\n     * this.stepper.next();\n     *```\n     */\n    public next(): void {\n        this.moveToNextStep();\n    }\n\n    /**\n     * Activates the previous enabled step.\n     *\n     *```typescript\n     * this.stepper.prev();\n     *```\n     */\n    public prev(): void {\n        this.moveToNextStep(false);\n    }\n\n    /**\n     * Resets the stepper to its initial state i.e. activates the first step.\n     *\n     * @remarks\n     * The steps' content will not be automatically reset.\n     *```typescript\n     * this.stepper.reset();\n     *```\n     */\n    public reset(): void {\n        this.stepperService.visitedSteps.clear();\n        const activeStep = this.steps.find(s => !s.disabled);\n        if (activeStep) {\n            this.activateStep(activeStep);\n        }\n    }\n\n    /** @hidden @internal */\n    public playHorizontalAnimations(): void {\n        this.previousItem = this.stepperService.previousActiveStep;\n        this.currentItem = this.stepperService.activeStep;\n        this.triggerAnimations();\n    }\n\n    protected getPreviousElement(): HTMLElement {\n        return this.stepperService.previousActiveStep?.contentContainer.nativeElement;\n    }\n\n    protected getCurrentElement(): HTMLElement {\n        return this.stepperService.activeStep.contentContainer.nativeElement;\n    }\n\n    private updateVerticalAnimationSettings(\n        openAnimation: AnimationReferenceMetadata,\n        closeAnimation: AnimationReferenceMetadata): ToggleAnimationSettings {\n        const customCloseAnimation = useAnimation(closeAnimation, {\n            params: {\n                duration: this.animationDuration + 'ms'\n            }\n        });\n        const customOpenAnimation = useAnimation(openAnimation, {\n            params: {\n                duration: this.animationDuration + 'ms'\n            }\n        });\n\n        return {\n            openAnimation: openAnimation ? customOpenAnimation : null,\n            closeAnimation: closeAnimation ? customCloseAnimation : null\n        };\n    }\n\n    private updateStepAria(step: IgxStepComponent, index: number): void {\n        step._index = index;\n        step.renderer.setAttribute(step.nativeElement, 'aria-setsize', (this.steps.length).toString());\n        step.renderer.setAttribute(step.nativeElement, 'aria-posinset', (index + 1).toString());\n    }\n\n    private handleStepChanges(): void {\n        this._steps.changes.pipe(takeUntil(this.destroy$)).subscribe(steps => {\n            Promise.resolve().then(() => {\n                steps.forEach((step, index) => {\n                    this.updateStepAria(step, index);\n                });\n\n                // when the active step is removed\n                const hasActiveStep = this.steps.find(s => s === this.stepperService.activeStep);\n                if (!hasActiveStep) {\n                    this.activateFirstStep();\n                }\n                // TO DO: mark step added before the active as visited?\n                if (this.linear) {\n                    this.stepperService.calculateLinearDisabledSteps();\n                }\n            });\n        });\n    }\n\n    private activateFirstStep(activateInitially = false) {\n        const firstEnabledStep = this.steps.find(s => !s.disabled);\n        if (firstEnabledStep) {\n            firstEnabledStep.active = true;\n            if (activateInitially) {\n                firstEnabledStep.activeChange.emit(true);\n                this.activeStepChanged.emit({ owner: this, index: firstEnabledStep.index });\n            }\n        }\n    }\n\n    private activateStep(step: IgxStepComponent) {\n        if (this.orientation === IgxStepperOrientation.Horizontal) {\n            step.changeHorizontalActiveStep();\n        } else {\n            this.stepperService.expand(step);\n        }\n    }\n\n    private moveToNextStep(next = true) {\n        let steps: IgxStepComponent[] = this.steps;\n        let activeStepIndex = this.stepperService.activeStep.index;\n        if (!next) {\n            steps = this.steps.reverse();\n            activeStepIndex = steps.findIndex(s => s === this.stepperService.activeStep);\n        }\n\n        const nextStep = steps.find((s, i) => i > activeStepIndex && s.isAccessible);\n        if (nextStep) {\n            this.activateStep(nextStep);\n        }\n    }\n}\n","@if (!contentTop || orientation !== 'horizontal') {\n    <div class=\"igx-stepper__header\">\n        <ng-template *ngTemplateOutlet=\"stepTemplate\"></ng-template>\n    </div>\n}\n\n@if (orientation === 'horizontal') {\n    <div class=\"igx-stepper__body\">\n        @for (step of steps; track step) {\n            <ng-container *ngTemplateOutlet=\"step.contentTemplate\"></ng-container>\n        }\n    </div>\n}\n\n@if (contentTop && orientation === 'horizontal') {\n    <div class=\"igx-stepper__header\">\n        <ng-template *ngTemplateOutlet=\"stepTemplate\"></ng-template>\n    </div>\n}\n\n<ng-template #stepTemplate>\n    <ng-content select=\"igx-step\"></ng-content>\n</ng-template>\n","import { IgxStepComponent } from './step/step.component';\nimport { IgxStepperComponent } from './stepper.component';\nimport { IgxStepActiveIndicatorDirective, IgxStepCompletedIndicatorDirective, IgxStepContentDirective, IgxStepIndicatorDirective, IgxStepInvalidIndicatorDirective, IgxStepSubtitleDirective, IgxStepTitleDirective } from './stepper.directive';\n\nexport * from './stepper.component';\nexport * from './step/step.component';\nexport {\n    HorizontalAnimationType,\n    IStepChangingEventArgs,\n    IStepChangedEventArgs,\n    IgxStepperOrientation,\n    IgxStepType,\n    IgxStepperTitlePosition,\n    VerticalAnimationType\n} from './stepper.common';\nexport * from './stepper.directive';\n\n/* NOTE: Stepper directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_STEPPER_DIRECTIVES = [\n    IgxStepComponent,\n    IgxStepperComponent,\n    IgxStepTitleDirective,\n    IgxStepSubtitleDirective,\n    IgxStepIndicatorDirective,\n    IgxStepContentDirective,\n    IgxStepActiveIndicatorDirective,\n    IgxStepCompletedIndicatorDirective,\n    IgxStepInvalidIndicatorDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_STEPPER_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n    imports: [\n        ...IGX_STEPPER_DIRECTIVES\n    ],\n    exports: [\n        ...IGX_STEPPER_DIRECTIVES\n    ]\n})\nexport class IgxStepperModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵIgxDirectionality","i1.IgxStepComponent","i2.IgxStepperComponent","i3.IgxStepTitleDirective","i3.IgxStepSubtitleDirective","i3.IgxStepIndicatorDirective","i3.IgxStepContentDirective","i3.IgxStepActiveIndicatorDirective","i3.IgxStepCompletedIndicatorDirective","i3.IgxStepInvalidIndicatorDirective"],"mappings":"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"}