import * as i0 from '@angular/core';
import { inject, ElementRef, Input, ChangeDetectionStrategy, Component, ContentChild, ViewChild, InjectionToken, Optional, Inject, Directive, EventEmitter, signal, Output, Injectable, HostListener, ContentChildren, HostBinding, ViewEncapsulation, NgModule } from '@angular/core';
import { NgTemplateOutlet } from '@angular/common';
import { ActionSheetComponent, ActionSheetControlComponent, ActionSheetBodyComponent, ActionSheetItemComponent } from '@fundamental-ngx/core/action-sheet';
import { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent } from '@fundamental-ngx/core/icon';
import { Subscription } from 'rxjs';
import { SPACE, ENTER, LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';
import { KeyUtil, RtlService, TabbableElementService, scrollTop } from '@fundamental-ngx/cdk/utils';
import { CdkScrollable } from '@angular/cdk/scrolling';
import * as i1 from '@fundamental-ngx/core/dialog';
import { FD_DIALOG_BODY_COMPONENT } from '@fundamental-ngx/core/dialog';
import { ScrollSpyDirective } from '@fundamental-ngx/core/scroll-spy';
import { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';
import { resolveTranslationSignal } from '@fundamental-ngx/i18n';

class WizardNextStepComponent {
    constructor() {
        /**
         * Whether or not the next step button should float directly above the footer.
         */
        this.floating = false;
        /** @hidden */
        this._canHide = true;
        /** @hidden */
        this._elRef = inject(ElementRef);
    }
    /**
     * Whether or not element can be hidden when step status is completed.
     */
    set canHide(value) {
        this._canHide = value;
        if (!value) {
            this._showElement();
        }
    }
    get canHide() {
        return this._canHide;
    }
    /** @hidden */
    _getElRef() {
        return this._elRef;
    }
    /** @hidden */
    _showElement() {
        this._elRef.nativeElement.style.removeProperty('display');
    }
    /** @hidden */
    _hideElement() {
        this._elRef.nativeElement.style.display = 'none';
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardNextStepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: WizardNextStepComponent, isStandalone: true, selector: "fd-wizard-next-step", inputs: { floating: "floating", canHide: "canHide" }, ngImport: i0, template: "<div class=\"fd-wizard__next-step\" [class.fd-wizard__next-step--floating]=\"floating\">\n    <ng-content></ng-content>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardNextStepComponent, decorators: [{
            type: Component,
            args: [{ selector: 'fd-wizard-next-step', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"fd-wizard__next-step\" [class.fd-wizard__next-step--floating]=\"floating\">\n    <ng-content></ng-content>\n</div>\n" }]
        }], propDecorators: { floating: [{
                type: Input
            }], canHide: [{
                type: Input
            }] } });

class WizardContentComponent {
    constructor() {
        /** @hidden */
        this.tallContent = false;
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: WizardContentComponent, isStandalone: true, selector: "fd-wizard-content", inputs: { contentBackground: "contentBackground", size: "size" }, queries: [{ propertyName: "nextStep", first: true, predicate: WizardNextStepComponent, descendants: true }], viewQueries: [{ propertyName: "contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true }], ngImport: i0, template: "<ng-template #contentTemplate>\n    <section\n        role=\"region\"\n        [id]=\"wizardContentId\"\n        class=\"fd-wizard__content\"\n        [class]=\"\n            (contentBackground ? 'fd-wizard__content--' + contentBackground + ' ' : '') +\n            (size ? 'fd-wizard__content--' + size : '')\n        \"\n        [class.fd-wizard-tall-content]=\"tallContent\"\n    >\n        <div class=\"fd-wizard__step-content-container\">\n            <ng-content></ng-content>\n        </div>\n    </section>\n</ng-template>\n", styles: [".fd-wizard-tall-content{height:auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardContentComponent, decorators: [{
            type: Component,
            args: [{ selector: 'fd-wizard-content', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<ng-template #contentTemplate>\n    <section\n        role=\"region\"\n        [id]=\"wizardContentId\"\n        class=\"fd-wizard__content\"\n        [class]=\"\n            (contentBackground ? 'fd-wizard__content--' + contentBackground + ' ' : '') +\n            (size ? 'fd-wizard__content--' + size : '')\n        \"\n        [class.fd-wizard-tall-content]=\"tallContent\"\n    >\n        <div class=\"fd-wizard__step-content-container\">\n            <ng-content></ng-content>\n        </div>\n    </section>\n</ng-template>\n", styles: [".fd-wizard-tall-content{height:auto}\n"] }]
        }], propDecorators: { contentBackground: [{
                type: Input
            }], size: [{
                type: Input
            }], contentTemplate: [{
                type: ViewChild,
                args: ['contentTemplate']
            }], nextStep: [{
                type: ContentChild,
                args: [WizardNextStepComponent]
            }] } });

const WIZARD = new InjectionToken('Wizard component dependency');

class WizardNavigationComponent {
    /** Aria label for the wizard navigation component element. */
    set ariaLabel(value) {
        this._ariaLabel = value;
    }
    get ariaLabel() {
        return this._ariaLabel ?? this._wizard?.ariaLabel;
    }
    /** @hidden */
    constructor(_wizard) {
        this._wizard = _wizard;
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardNavigationComponent, deps: [{ token: WIZARD, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: WizardNavigationComponent, isStandalone: true, selector: "fd-wizard-navigation", inputs: { ariaLabel: "ariaLabel" }, ngImport: i0, template: "<nav class=\"fd-wizard__navigation\" [attr.aria-label]=\"ariaLabel\">\n    <ng-content></ng-content>\n</nav>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardNavigationComponent, decorators: [{
            type: Component,
            args: [{ selector: 'fd-wizard-navigation', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<nav class=\"fd-wizard__navigation\" [attr.aria-label]=\"ariaLabel\">\n    <ng-content></ng-content>\n</nav>\n" }]
        }], ctorParameters: () => [{ type: undefined, decorators: [{
                    type: Optional
                }, {
                    type: Inject,
                    args: [WIZARD]
                }] }], propDecorators: { ariaLabel: [{
                type: Input
            }] } });

class WizardProgressBarDirective {
    constructor() {
        /**
         * Size (horizontal paddings) of the wizard progress bar.
         */
        this.size = null;
        /** @hidden */
        this.visible = true;
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardProgressBarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: WizardProgressBarDirective, isStandalone: true, selector: "[fd-wizard-progress-bar]", inputs: { size: "size" }, host: { properties: { "class.fd-wizard__progress-bar--sm": "size === \"sm\"", "class.fd-wizard__progress-bar--md": "size === \"md\"", "class.fd-wizard__progress-bar--lg": "size === \"lg\"", "class.fd-wizard__progress-bar--xl": "size === \"xl\"", "style.display": "visible ? \"\" : \"none\"" }, classAttribute: "fd-wizard__progress-bar" }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardProgressBarDirective, decorators: [{
            type: Directive,
            args: [{
                    // eslint-disable-next-line @angular-eslint/directive-selector
                    selector: '[fd-wizard-progress-bar]',
                    host: {
                        class: 'fd-wizard__progress-bar',
                        '[class.fd-wizard__progress-bar--sm]': 'size === "sm"',
                        '[class.fd-wizard__progress-bar--md]': 'size === "md"',
                        '[class.fd-wizard__progress-bar--lg]': 'size === "lg"',
                        '[class.fd-wizard__progress-bar--xl]': 'size === "xl"',
                        '[style.display]': 'visible ? "" : "none"'
                    },
                    standalone: true
                }]
        }], propDecorators: { size: [{
                type: Input
            }] } });

const ACTIVE_STEP_STATUS = 'active';
const CURRENT_STEP_STATUS = 'current';
const UPCOMING_STEP_STATUS = 'upcoming';
const COMPLETED_STEP_STATUS = 'completed';
const FD_WIZARD_STEP_INDICATOR = new InjectionToken('FdWizardStepindicator');

class WizardStepIndicatorComponent {
    constructor() {
        /** Glyph font family */
        this.glyphFont = FD_DEFAULT_ICON_FONT_FAMILY;
        /**
         * Event emitted when this step indicator is clicked.
         */
        this.stepIndicatorItemClicked = new EventEmitter();
        /** @hidden */
        this.stackedItems$ = signal([], ...(ngDevMode ? [{ debugName: "stackedItems$" }] : []));
        /** @hidden */
        this._subscriptions = new Subscription();
    }
    /** @hidden */
    ngOnDestroy() {
        this._subscriptions.unsubscribe();
    }
    /** @hidden */
    stepItemClicked(step, event) {
        if (step && step.visited) {
            if (this.actionSheet) {
                this.actionSheet.close();
            }
            event?.preventDefault();
            this.stepIndicatorItemClicked.emit(step);
        }
    }
    /** @hidden */
    setStackedItems(items) {
        this.stackedItems$.set(items || []);
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardStepIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: WizardStepIndicatorComponent, isStandalone: true, selector: "fd-wizard-step-indicator", inputs: { glyph: "glyph", glyphFont: "glyphFont" }, outputs: { stepIndicatorItemClicked: "stepIndicatorItemClicked" }, providers: [
            {
                provide: FD_WIZARD_STEP_INDICATOR,
                useExisting: WizardStepIndicatorComponent
            }
        ], viewQueries: [{ propertyName: "actionSheet", first: true, predicate: ActionSheetComponent, descendants: true }], ngImport: i0, template: "@if (stackedItems$() && stackedItems$().length > 1) {\n    <fd-action-sheet [style.pointer-events]=\"'all'\">\n        <fd-action-sheet-control>\n            <span class=\"fd-wizard__step-indicator\">\n                <ng-template [ngTemplateOutlet]=\"stepIndicatorContent\"></ng-template>\n            </span>\n        </fd-action-sheet-control>\n        <fd-action-sheet-body>\n            @for (step of stackedItems$(); track step) {\n                <li\n                    fd-action-sheet-item\n                    [label]=\"step.label\"\n                    [glyph]=\"step.glyph\"\n                    [glyphFont]=\"glyphFont\"\n                    [disabled]=\"!step.visited\"\n                    (click)=\"stepItemClicked(step, $event)\"\n                ></li>\n            }\n        </fd-action-sheet-body>\n    </fd-action-sheet>\n} @else {\n    <span\n        class=\"fd-wizard__step-indicator\"\n        (click)=\"stepItemClicked(stackedItems$().length ? stackedItems$()[0] : undefined, $event)\"\n    >\n        <ng-template [ngTemplateOutlet]=\"stepIndicatorContent\"></ng-template>\n    </span>\n}\n<ng-template #stepIndicatorContent>\n    @if (glyph) {\n        <fd-icon [glyph]=\"glyph\" class=\"fd-wizard__icon\"></fd-icon>\n    }\n    <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "component", type: ActionSheetComponent, selector: "fd-action-sheet", inputs: ["mobile", "placement", "noArrow", "isOpen", "keyboardSupport", "triggers", "controlTitle", "controlTitleHeading"], outputs: ["focusEscapeList", "isOpenChange"] }, { kind: "component", type: ActionSheetControlComponent, selector: "fd-action-sheet-control", outputs: ["clicked"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ActionSheetBodyComponent, selector: "fd-action-sheet-body", inputs: ["actionSheetBodyId", "mobile", "ariaLabel", "ariaLabelledby"] }, { kind: "component", type: ActionSheetItemComponent, selector: "[fd-action-sheet-item]", inputs: ["label", "glyph", "glyphFont", "negative", "isCloseButton", "disabled", "fdType", "toggled"], outputs: ["keyDown"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "size", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardStepIndicatorComponent, decorators: [{
            type: Component,
            args: [{ selector: 'fd-wizard-step-indicator', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
                        {
                            provide: FD_WIZARD_STEP_INDICATOR,
                            useExisting: WizardStepIndicatorComponent
                        }
                    ], imports: [
                        ActionSheetComponent,
                        ActionSheetControlComponent,
                        NgTemplateOutlet,
                        ActionSheetBodyComponent,
                        ActionSheetItemComponent,
                        IconComponent
                    ], template: "@if (stackedItems$() && stackedItems$().length > 1) {\n    <fd-action-sheet [style.pointer-events]=\"'all'\">\n        <fd-action-sheet-control>\n            <span class=\"fd-wizard__step-indicator\">\n                <ng-template [ngTemplateOutlet]=\"stepIndicatorContent\"></ng-template>\n            </span>\n        </fd-action-sheet-control>\n        <fd-action-sheet-body>\n            @for (step of stackedItems$(); track step) {\n                <li\n                    fd-action-sheet-item\n                    [label]=\"step.label\"\n                    [glyph]=\"step.glyph\"\n                    [glyphFont]=\"glyphFont\"\n                    [disabled]=\"!step.visited\"\n                    (click)=\"stepItemClicked(step, $event)\"\n                ></li>\n            }\n        </fd-action-sheet-body>\n    </fd-action-sheet>\n} @else {\n    <span\n        class=\"fd-wizard__step-indicator\"\n        (click)=\"stepItemClicked(stackedItems$().length ? stackedItems$()[0] : undefined, $event)\"\n    >\n        <ng-template [ngTemplateOutlet]=\"stepIndicatorContent\"></ng-template>\n    </span>\n}\n<ng-template #stepIndicatorContent>\n    @if (glyph) {\n        <fd-icon [glyph]=\"glyph\" class=\"fd-wizard__icon\"></fd-icon>\n    }\n    <ng-content></ng-content>\n</ng-template>\n" }]
        }], propDecorators: { glyph: [{
                type: Input
            }], glyphFont: [{
                type: Input
            }], stepIndicatorItemClicked: [{
                type: Output
            }], actionSheet: [{
                type: ViewChild,
                args: [ActionSheetComponent]
            }] } });

class WizardStepComponent {
    /** @hidden */
    constructor(_elRef, _cdRef, _wizard) {
        this._elRef = _elRef;
        this._cdRef = _cdRef;
        this._wizard = _wizard;
        /**
         * @deprecated
         */
        this.ariaRoleDecription = 'Navigation';
        /**
         * Whether or not this is a 'branching' step.
         */
        this.branching = false;
        /**
         * Whether or not this step is the summary page.
         */
        this.isSummary = false;
        /**
         * Event emitted when the wizard step's status changes.
         */
        this.statusChange = new EventEmitter();
        /**
         * Event emitted when a step is clicked.
         */
        this.stepClicked = new EventEmitter();
        /**
         * Event emitted when a step indicator is clicked.
         */
        this.stepIndicatorItemClicked = new EventEmitter();
        /** @hidden */
        this.visited = false;
        /** @hidden */
        this.completed = false;
        /** @hidden */
        this._finalStep = false;
        /** @hidden */
        this._isValidated = true;
        /** @hidden */
        this._subscriptions = new Subscription();
    }
    /** @hidden */
    ngOnChanges(changes) {
        if (changes && changes.status) {
            if (changes.status.previousValue === CURRENT_STEP_STATUS &&
                changes.status.currentValue === COMPLETED_STEP_STATUS) {
                this.completed = true;
            }
            this.statusChange.emit(this.status);
        }
    }
    /** @hidden */
    ngAfterViewInit() {
        if (this.isSummary && !this._wizard?.displaySummaryStep) {
            this._summaryInit();
        }
        else if (this.stepIndicator) {
            this._notSummaryInit();
        }
    }
    /** @hidden */
    ngOnDestroy() {
        this._subscriptions.unsubscribe();
    }
    /** @hidden */
    setFinalStep(val) {
        this._finalStep = val;
        this._cdRef.detectChanges();
    }
    /** @hidden */
    async stepContainerKeypress(event) {
        if (event) {
            event.preventDefault();
        }
        if (this.visited &&
            (!event || KeyUtil.isKeyCode(event, [SPACE, ENTER])) &&
            (!this.stepIndicator ||
                !this.stepIndicator.stackedItems$() ||
                !this.stepIndicator.stackedItems$().length) &&
            (this.stepClickValidator === undefined ||
                (await this.stepClickValidator(this.visited, this.completed)) === true)) {
            this.stepClicked.emit(this);
            this._isValidated = true;
        }
        else {
            this._isValidated = false;
        }
    }
    /** @hidden */
    getClassList() {
        return this._elRef.nativeElement.classList;
    }
    /** @hidden */
    hasLabel(label) {
        return this._elRef.nativeElement.classList.contains(label);
    }
    /** @hidden */
    getStepClientWidth() {
        return this._elRef.nativeElement.clientWidth;
    }
    /** @hidden */
    removeFromDom() {
        if (this._elRef.nativeElement.parentNode) {
            this._elRef.nativeElement.parentNode.removeChild(this._elRef.nativeElement);
        }
    }
    /** @hidden */
    _summaryInit() {
        this._elRef.nativeElement.style.display = 'none';
        this.content.tallContent = true;
    }
    /** @hidden */
    _notSummaryInit() {
        this._subscriptions.add(this.stepIndicator.stepIndicatorItemClicked.subscribe((step) => {
            this.stepIndicatorItemClicked.emit(step);
        }));
        if (this.stepIndicator.glyph) {
            this.glyph = this.stepIndicator.glyph;
        }
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardStepComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: WIZARD, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: WizardStepComponent, isStandalone: true, selector: "[fd-wizard-step]", inputs: { ariaLabel: "ariaLabel", ariaRoleDecription: "ariaRoleDecription", status: "status", branching: "branching", label: "label", optionalText: "optionalText", isSummary: "isSummary", stepClickValidator: "stepClickValidator" }, outputs: { statusChange: "statusChange", stepClicked: "stepClicked", stepIndicatorItemClicked: "stepIndicatorItemClicked" }, host: { properties: { "class.fd-wizard__step--completed": "status === \"completed\" || completed", "class.fd-wizard__step--current": "status === \"current\"", "class.fd-wizard__step--upcoming": "status === \"upcoming\"", "class.fd-wizard__step--active": "status === \"active\"", "attr.aria-label": "ariaLabel" }, classAttribute: "fd-wizard__step" }, queries: [{ propertyName: "content", first: true, predicate: WizardContentComponent, descendants: true }, { propertyName: "stepIndicator", first: true, predicate: FD_WIZARD_STEP_INDICATOR, descendants: true }], viewQueries: [{ propertyName: "wizardLabel", first: true, predicate: ["wizardLabel"], descendants: true, read: ElementRef }, { propertyName: "progressBarLink", first: true, predicate: ["progressBarLink"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div class=\"fd-wizard__step-wrapper\">\n    @if (label || optionalText) {\n        <a\n            #progressBarLink\n            class=\"fd-wizard__step-container\"\n            (click)=\"stepContainerKeypress()\"\n            (keypress)=\"stepContainerKeypress($event)\"\n            [style.cursor]=\"['completed', 'current'].includes(status) || (visited && _isValidated) ? 'pointer' : 'none'\"\n            [attr.tabindex]=\"status === 'current' ? 0 : -1\"\n            role=\"navigation\"\n        >\n            <ng-content select=\"fd-wizard-step-indicator\"></ng-content>\n            <div class=\"fd-wizard__label-container\" [class.fd-wizard__label-container--optional]=\"optionalText\">\n                <div #wizardLabel>\n                    <span class=\"fd-wizard__label\">{{ label }}</span>\n                    @if (optionalText) {\n                        <span class=\"fd-wizard__optional-text\">\n                            {{ optionalText }}\n                        </span>\n                    }\n                </div>\n            </div>\n        </a>\n    }\n    <ng-content></ng-content>\n    @if (!_finalStep || branching) {\n        <span\n            class=\"fd-wizard__connector\"\n            [class.fd-wizard__connector--active]=\"completed\"\n            [class.fd-wizard__connector--branching]=\"branching\"\n        >\n        </span>\n    }\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardStepComponent, decorators: [{
            type: Component,
            args: [{ selector: '[fd-wizard-step]', host: {
                        class: 'fd-wizard__step',
                        '[class.fd-wizard__step--completed]': 'status === "completed" || completed',
                        '[class.fd-wizard__step--current]': 'status === "current"',
                        '[class.fd-wizard__step--upcoming]': 'status === "upcoming"',
                        '[class.fd-wizard__step--active]': 'status === "active"',
                        '[attr.aria-label]': 'ariaLabel'
                    }, changeDetection: ChangeDetectionStrategy.OnPush, imports: [], template: "<div class=\"fd-wizard__step-wrapper\">\n    @if (label || optionalText) {\n        <a\n            #progressBarLink\n            class=\"fd-wizard__step-container\"\n            (click)=\"stepContainerKeypress()\"\n            (keypress)=\"stepContainerKeypress($event)\"\n            [style.cursor]=\"['completed', 'current'].includes(status) || (visited && _isValidated) ? 'pointer' : 'none'\"\n            [attr.tabindex]=\"status === 'current' ? 0 : -1\"\n            role=\"navigation\"\n        >\n            <ng-content select=\"fd-wizard-step-indicator\"></ng-content>\n            <div class=\"fd-wizard__label-container\" [class.fd-wizard__label-container--optional]=\"optionalText\">\n                <div #wizardLabel>\n                    <span class=\"fd-wizard__label\">{{ label }}</span>\n                    @if (optionalText) {\n                        <span class=\"fd-wizard__optional-text\">\n                            {{ optionalText }}\n                        </span>\n                    }\n                </div>\n            </div>\n        </a>\n    }\n    <ng-content></ng-content>\n    @if (!_finalStep || branching) {\n        <span\n            class=\"fd-wizard__connector\"\n            [class.fd-wizard__connector--active]=\"completed\"\n            [class.fd-wizard__connector--branching]=\"branching\"\n        >\n        </span>\n    }\n</div>\n" }]
        }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
                    type: Optional
                }, {
                    type: Inject,
                    args: [WIZARD]
                }] }], propDecorators: { ariaLabel: [{
                type: Input
            }], ariaRoleDecription: [{
                type: Input
            }], status: [{
                type: Input
            }], branching: [{
                type: Input
            }], label: [{
                type: Input
            }], optionalText: [{
                type: Input
            }], isSummary: [{
                type: Input
            }], stepClickValidator: [{
                type: Input
            }], statusChange: [{
                type: Output
            }], stepClicked: [{
                type: Output
            }], stepIndicatorItemClicked: [{
                type: Output
            }], content: [{
                type: ContentChild,
                args: [WizardContentComponent]
            }], stepIndicator: [{
                type: ContentChild,
                args: [FD_WIZARD_STEP_INDICATOR]
            }], wizardLabel: [{
                type: ViewChild,
                args: ['wizardLabel', { read: ElementRef }]
            }], progressBarLink: [{
                type: ViewChild,
                args: ['progressBarLink', { read: ElementRef }]
            }] } });

class WizardService {
    constructor() {
        /** @hidden */
        this._rtlService = inject(RtlService, { optional: true });
    }
    /** @hidden */
    progressBarKeyHandler(event, steps, index) {
        const rtlDirection = this._rtlService?.rtl();
        if (KeyUtil.isKeyCode(event, LEFT_ARROW)) {
            if (steps.get(index - 1)?.status === COMPLETED_STEP_STATUS ||
                steps.get(index - 1)?.status === CURRENT_STEP_STATUS) {
                if (!rtlDirection) {
                    this._focusPrevious(index, steps);
                }
                else {
                    this._focusNext(index, steps);
                }
            }
        }
        else if (KeyUtil.isKeyCode(event, RIGHT_ARROW)) {
            if (steps.get(index)?.status === COMPLETED_STEP_STATUS) {
                if (!rtlDirection) {
                    this._focusNext(index, steps);
                }
                else {
                    this._focusPrevious(index, steps);
                }
            }
        }
    }
    /** @hidden */
    _focusNext(index, steps) {
        if (index + 1 < steps.length) {
            steps.get(index + 1)?.progressBarLink.nativeElement.focus();
        }
        else {
            steps.get(0)?.progressBarLink.nativeElement.focus();
        }
    }
    /** @hidden */
    _focusPrevious(index, steps) {
        if (index - 1 >= 0) {
            steps.get(index - 1)?.progressBarLink.nativeElement.focus();
        }
        else {
            steps.get(steps.length - 1)?.progressBarLink.nativeElement.focus();
        }
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardService }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardService, decorators: [{
            type: Injectable
        }] });

const STEP_MIN_WIDTH = 168;
const STEP_STACKED_TOP_CLASS = 'fd-wizard__step--stacked-top';
const STEP_STACKED_CLASS = 'fd-wizard__step--stacked';
const STEP_NO_LABEL_CLASS = 'fd-wizard__step--no-label';
const WIZARD_NAVIGATION_CLASS = 'fd-wizard__navigation';
const WIZARD_CONTENT_CLASS = 'fd-wizard__content';
const WIZARD_CONTAINER_WRAPPER_CLASS = 'fd-wizard-container-wrapper';
const WIZARD_TALL_CONTENT_CLASS = 'fd-wizard-tall-content';
const SHELLBAR_CLASS = 'fd-shellbar';
const BAR_FOOTER_CLASS = 'fd-bar--footer';
const BAR_FLOATING_FOOTER_CLASS = 'fd-bar--floating-footer';
let _fromScrollToCurrentStep;
let timer = null;
const handleTimeoutReference = () => {
    if (timer !== null) {
        clearTimeout(timer);
    }
    timer = setTimeout(() => {
        _fromScrollToCurrentStep = false;
    }, 150);
};
class WizardComponent {
    /** @hidden */
    constructor(_elRef, _cdRef, _dialogBodyComponent) {
        this._elRef = _elRef;
        this._cdRef = _cdRef;
        this._dialogBodyComponent = _dialogBodyComponent;
        /**
         * Whether or not to append the step to the wizard. If false, each step will be displayed on a different page.
         * Default is true.
         */
        this.appendToWizard = true;
        /**
         * Whether or not apply responsive paddings styling.
         */
        this.responsivePaddings = false;
        /** Whether to display a summary step.  */
        this.displaySummaryStep = false;
        /** @hidden */
        this.contentTemplates = [];
        /** @hidden */
        this.stackedStepsLeft = [];
        /** @hidden */
        this.stackedStepsRight = [];
        /** @hidden */
        this._defaultAriaLabel = resolveTranslationSignal('coreWizard.ariaLabel');
        /** @hidden */
        this._stepEventSubscriptions = new Subscription();
        /** @hidden */
        this._subscriptions = new Subscription();
        /** @hidden */
        this._tabbableService = inject(TabbableElementService);
    }
    /** @hidden */
    resizeHandler() {
        const wizardWidth = this._elRef.nativeElement.getBoundingClientRect().width;
        if (!this._previousWidth || wizardWidth <= this._previousWidth) {
            this._wizardShrinking();
        }
        else if (wizardWidth > this._previousWidth) {
            this._shrinkWhileAnyStepIsTooNarrow();
        }
        this._previousWidth = wizardWidth;
        if (this.contentHeight) {
            this._elRef.nativeElement.querySelector('.' + WIZARD_CONTAINER_WRAPPER_CLASS).style.height =
                this.contentHeight;
        }
        else {
            this._setContainerAndTallContentHeight();
        }
    }
    /** @hidden */
    ngAfterViewInit() {
        setTimeout(() => {
            if (this._subscriptions.closed) {
                return;
            }
            // fixes ExpressionChangedAfterItHasBeenCheckedError
            this._setContentTemplates();
            this._subscriptions.add(this.steps.changes.subscribe(() => {
                this._handleStepOrStatusChanges();
                this._setupStepEvents();
            }));
            this._setupStepEvents();
            this._cdRef.detectChanges();
            this._handleStepOrStatusChanges();
            this.resizeHandler();
        });
    }
    /** @hidden */
    ngOnDestroy() {
        this._stepEventSubscriptions.unsubscribe();
        this._subscriptions.unsubscribe();
        this.wrapperContainer?.nativeElement.removeEventListener('scroll', handleTimeoutReference);
    }
    /** @hidden */
    scrollSpyChange($event) {
        if (!$event || _fromScrollToCurrentStep) {
            return;
        }
        const eventStepId = $event?.children[0].children[0].id;
        this.steps.forEach((step) => {
            if (step._stepId.toString() === eventStepId) {
                step.status = CURRENT_STEP_STATUS;
            }
            else if (step._stepId < parseInt(eventStepId, 10)) {
                step.status = COMPLETED_STEP_STATUS;
            }
            else {
                step.status = UPCOMING_STEP_STATUS;
            }
        });
        this._shrinkWhileAnyStepIsTooNarrow();
    }
    /**
     * @hidden
     * @private
     * This function determines the height of the wizard content by looking for the document's shellbar, the wizard
     * navigation and the wizard footer, and calculating the height based on their presence.
     */
    _calculateContentHeight() {
        let wizardNavHeight = 0;
        const shellbarHeight = this._getShellbarHeight();
        if (!this._isCurrentStepSummary() || this.displaySummaryStep) {
            wizardNavHeight = this._getWizardNavHeight();
        }
        const wizardFooterHeight = this._getWizardFooterHeight();
        const dialogOffset = this._getDialogOffset();
        return shellbarHeight + wizardNavHeight + wizardFooterHeight + dialogOffset;
    }
    /** @hidden */
    _getShellbarHeight() {
        return document.querySelector('.' + SHELLBAR_CLASS)?.clientHeight ?? 0;
    }
    /** @hidden */
    _getWizardNavHeight() {
        const wizard = this._elRef.nativeElement;
        let retVal;
        if (wizard.querySelector('.' + WIZARD_NAVIGATION_CLASS)) {
            retVal = wizard.querySelector('.' + WIZARD_NAVIGATION_CLASS).clientHeight;
        }
        else {
            retVal = 0;
        }
        return retVal;
    }
    /** @hidden */
    _getWizardFooterHeight() {
        const container = this._dialogBodyComponent?.elementRef.nativeElement ?? this._elRef.nativeElement;
        const footer = container.querySelector(`.${BAR_FOOTER_CLASS}`) ?? container.querySelector(`.${BAR_FLOATING_FOOTER_CLASS}`);
        return footer ? footer.offsetHeight : 0;
    }
    /** @hidden */
    _getDialogOffset() {
        let retVal = 0;
        if (this._dialogBodyComponent) {
            const dialogBody = this._dialogBodyComponent.elementRef.nativeElement;
            if (dialogBody.tagName.toLowerCase() === 'fd-dialog-body') {
                this._dialogBodyComponent.dialogConfig.verticalPadding = false;
                const dialogBodyTitle = dialogBody.querySelector('.fd-title--h2');
                if (dialogBodyTitle) {
                    retVal = dialogBodyTitle.offsetHeight;
                }
                retVal = retVal + window.innerHeight - dialogBody.offsetHeight;
            }
        }
        return retVal;
    }
    /** @hidden */
    _setContainerAndTallContentHeight() {
        const wizard = this._elRef.nativeElement;
        const combinedHeight = this.contentHeight ? this.contentHeight : this._calculateContentHeight();
        if (wizard.querySelector('.' + WIZARD_CONTAINER_WRAPPER_CLASS)) {
            wizard.querySelector('.' + WIZARD_CONTAINER_WRAPPER_CLASS).style.height =
                'calc(100vh - ' + combinedHeight + 'px)';
        }
        wizard.querySelectorAll('.' + WIZARD_CONTENT_CLASS).forEach((node) => {
            node.style.height = 'auto';
        });
        if (wizard.querySelector('.' + WIZARD_TALL_CONTENT_CLASS)) {
            if (wizard.querySelector('.' + WIZARD_TALL_CONTENT_CLASS).offsetHeight <
                wizard.querySelector('.' + WIZARD_CONTAINER_WRAPPER_CLASS).offsetHeight) {
                wizard.querySelector('.' + WIZARD_TALL_CONTENT_CLASS).style.height =
                    'calc(100vh - ' + combinedHeight + 'px)';
            }
            else {
                wizard.querySelector('.' + WIZARD_TALL_CONTENT_CLASS).style.paddingBottom = '24px';
            }
        }
    }
    /** @hidden */
    _setupStepEvents() {
        this._stepEventSubscriptions.unsubscribe();
        this._stepEventSubscriptions = new Subscription();
        this.steps.forEach((step) => {
            this._stepEventSubscriptions.add(step.stepClicked.subscribe((event) => {
                this._stepClicked(event);
            }));
            this._stepEventSubscriptions.add(step.statusChange.subscribe(() => {
                this._handleStepOrStatusChanges();
            }));
            this._stepEventSubscriptions.add(step.stepIndicatorItemClicked.subscribe((event) => {
                this._stepClicked(event);
            }));
            // need to call wizardShrinking for each step < 168px on first load
            if (step.wizardLabel && step.getStepClientWidth() < STEP_MIN_WIDTH) {
                this._wizardShrinking();
            }
        });
    }
    /** @hidden */
    _wizardShrinking() {
        const currentStep = this._getCurrentStep();
        if (currentStep &&
            (!currentStep.isSummary || this.displaySummaryStep) &&
            currentStep.wizardLabel &&
            currentStep.getStepClientWidth() < STEP_MIN_WIDTH) {
            this._hideSomeStep(currentStep);
            this._setStackedTop();
        }
    }
    /** @hidden */
    _setContentTemplates() {
        const templatesLength = this.contentTemplates.length;
        this.contentTemplates = [];
        let _stepId = 0;
        const steps = this.steps.toArray();
        for (const step of steps) {
            if (step.content) {
                if (!step.isSummary || this.displaySummaryStep) {
                    step.content.tallContent = false;
                }
                step.content.wizardContentId = _stepId.toString();
            }
            step._stepId = _stepId;
            _stepId++;
            step.setFinalStep(false);
            /*
             If the step is completed and appendToWizard is true, hide the nextStep button, unless it's the last step,
             or if there's a summary and it is the second to last step
             */
            if (step.completed &&
                this.appendToWizard &&
                step.content?.nextStep?.canHide &&
                step !== this._getLastNonSummaryStep()) {
                step.content.nextStep._hideElement();
            }
            else if (step.content?.nextStep &&
                ((step.completed && this.appendToWizard) ||
                    (step.visited && step.branching && step.status === CURRENT_STEP_STATUS))) {
                step.content.nextStep._showElement();
            }
            if (step.visited ||
                ((step.status === CURRENT_STEP_STATUS || step.status === COMPLETED_STEP_STATUS) && step.content)) {
                step.visited = true;
                if (step.status === CURRENT_STEP_STATUS && (!step.completed || !this.appendToWizard)) {
                    step.content.tallContent = true;
                }
                const isCurrentStep = !this.appendToWizard && step.status === CURRENT_STEP_STATUS;
                if (!templatesLength || isCurrentStep) {
                    this.contentTemplates = [step.content.contentTemplate];
                    // If we found needed step, break the cycle, since it might set wrong step later.
                    if (isCurrentStep) {
                        break;
                    }
                }
                else if (this.appendToWizard && (!step.isSummary || this.displaySummaryStep)) {
                    this.contentTemplates.push(step.content.contentTemplate);
                }
            }
        }
        const lastVisibleTemplate = steps[this.contentTemplates.length - 1];
        if (lastVisibleTemplate && lastVisibleTemplate.content) {
            lastVisibleTemplate.content.tallContent = true;
        }
        this._setFinalStep();
    }
    /** @hidden */
    _scrollToCurrentStep() {
        if (this.appendToWizard) {
            _fromScrollToCurrentStep = true;
            this.steps.forEach((step, index) => {
                if (step.status === CURRENT_STEP_STATUS && (!step.isSummary || this.displaySummaryStep)) {
                    const child = this.wrapperContainer.nativeElement.children[0].children[index];
                    const wizardNavigationHeight = this._elRef.nativeElement.querySelector('.' + WIZARD_NAVIGATION_CLASS).clientHeight;
                    scrollTop(this.wrapperContainer.nativeElement, child.offsetTop - wizardNavigationHeight);
                    if (index === 0) {
                        this._focusFirstTabbableElement(index);
                    }
                    else {
                        // setTimeout needed to allow for smooth scroll animation
                        setTimeout(() => {
                            this._focusFirstTabbableElement(index);
                        }, 500);
                    }
                }
            });
            this._setUpScrollListener();
        }
    }
    /** @hidden */
    _focusFirstTabbableElement(index = 0) {
        const contentContainer = this._elRef.nativeElement.querySelectorAll('.fd-wizard__content')[index];
        this._tabbableService.getTabbableElement(contentContainer)?.focus();
    }
    /** @hidden */
    _setUpScrollListener() {
        this.wrapperContainer?.nativeElement.addEventListener('scroll', handleTimeoutReference, false);
    }
    /** @hidden */
    _hideSomeStep(currentStep) {
        // If a small step was found, get the step with a visible label furthest away from the current step and hide the label
        let stepsArray = this.steps.toArray();
        stepsArray = stepsArray.filter((step) => !step.hasLabel(STEP_NO_LABEL_CLASS));
        if (this.steps.last.isSummary && !this.displaySummaryStep) {
            stepsArray.pop();
        }
        if (stepsArray.length > 1) {
            let currentStepIndex = 0, stepToHide;
            if (currentStep) {
                currentStepIndex = stepsArray.indexOf(currentStep);
            }
            currentStepIndex > (stepsArray.length - 1) / 2
                ? (stepToHide = stepsArray[0])
                : (stepToHide = stepsArray[stepsArray.length - 1]);
            stepToHide.getClassList().add(STEP_NO_LABEL_CLASS);
            stepToHide.getClassList().add(STEP_STACKED_CLASS);
            if (stepsArray.indexOf(stepToHide) < currentStepIndex && !this.stackedStepsLeft.includes(stepToHide)) {
                this.stackedStepsLeft.splice(this.steps.toArray().indexOf(stepToHide), 0, stepToHide);
            }
            else if (stepsArray.indexOf(stepToHide) > currentStepIndex &&
                !this.stackedStepsRight.includes(stepToHide)) {
                this.stackedStepsRight.unshift(stepToHide);
            }
            this._cdRef.detectChanges();
        }
    }
    /** @hidden */
    _setStackedTop() {
        const currentStep = this._getCurrentStep();
        this.steps.forEach((step, index) => {
            if (step.stepIndicator) {
                step.getClassList().remove(STEP_STACKED_TOP_CLASS);
                if (this.steps.toArray()[index + 1] === currentStep) {
                    if (this.steps.length > 1) {
                        step.getClassList().add(STEP_STACKED_TOP_CLASS);
                        if (!this.stackedStepsLeft.includes(step) && this.stackedStepsLeft.length >= 1) {
                            this.stackedStepsLeft.splice(index, 0, step);
                        }
                    }
                    step.stepIndicator.setStackedItems(this.stackedStepsLeft);
                }
                else {
                    step.stepIndicator.stackedItems$.set([]);
                }
            }
        });
        this._getLastNonSummaryStep().stepIndicator?.setStackedItems(this.stackedStepsRight);
    }
    /** @hidden */
    _resetStepClasses() {
        this.steps.forEach((step) => {
            step.getClassList().remove(STEP_STACKED_TOP_CLASS);
            step.getClassList().remove(STEP_STACKED_CLASS);
            step.getClassList().remove(STEP_NO_LABEL_CLASS);
        });
    }
    /** @hidden */
    _handleStepOrStatusChanges() {
        if (this._isCurrentStepSummary() && !this.displaySummaryStep) {
            setTimeout(() => {
                this.progressBar.visible = false;
            });
            this._showSummary();
        }
        else {
            this.progressBar.visible = true;
            this._setContentTemplates();
            this._shrinkWhileAnyStepIsTooNarrow();
        }
        if (!this.appendToWizard) {
            this._focusFirstTabbableElement();
        }
        setTimeout(() => {
            this._cdRef.detectChanges();
            this.resizeHandler();
            if (!this._isCurrentStepSummary() || this.displaySummaryStep) {
                this._scrollToCurrentStep();
            }
        });
        this._setFinalStep();
    }
    /** @hidden */
    _setFinalStep() {
        const lastNonSummaryStep = this._getLastNonSummaryStep();
        if (lastNonSummaryStep) {
            if (this.steps.last.isSummary && !this.displaySummaryStep) {
                this.steps.last.removeFromDom();
            }
            if (lastNonSummaryStep.content) {
                lastNonSummaryStep.content.tallContent = true;
            }
            lastNonSummaryStep.setFinalStep(true);
        }
    }
    /** @hidden */
    _showSummary() {
        this.steps.forEach((step) => {
            if (!step.isSummary) {
                step.completed = true;
            }
        });
        const summary = this.steps.find((step) => step.isSummary);
        if (summary) {
            summary.content.tallContent = true;
            this.contentTemplates = [summary.content.contentTemplate];
        }
    }
    /** @hidden */
    _isCurrentStepSummary() {
        return this.steps.some((step) => step.status === CURRENT_STEP_STATUS && step.isSummary);
    }
    /** @hidden */
    _getCurrentStep() {
        return this.steps.filter((step) => step.status === CURRENT_STEP_STATUS || step.status === ACTIVE_STEP_STATUS)[0];
    }
    /** @hidden */
    _shrinkWhileAnyStepIsTooNarrow() {
        // Add small delay for elements to render appropriately.
        setTimeout(() => {
            this.stackedStepsLeft = [];
            this.stackedStepsRight = [];
            this.steps.first.stepIndicator?.setStackedItems(this.stackedStepsLeft);
            this._getLastNonSummaryStep().stepIndicator?.setStackedItems(this.stackedStepsRight);
            this._resetStepClasses();
            let i = 0;
            while (this._anyStepIsTooNarrow() && i < this.steps.length - 1) {
                i++;
                this._wizardShrinking();
            }
        }, 10);
    }
    /** @hidden */
    _anyStepIsTooNarrow() {
        return this.steps.some((step) => step.getStepClientWidth() < STEP_MIN_WIDTH);
    }
    /** @hidden */
    _stepClicked(clickedStep) {
        if (!clickedStep) {
            clickedStep = this.steps.first;
        }
        const clickedStepIndex = this.steps.toArray().indexOf(clickedStep);
        this.steps.forEach((step) => {
            if (step === clickedStep) {
                step.status = CURRENT_STEP_STATUS;
                step.statusChange.emit(CURRENT_STEP_STATUS);
            }
            else if (step !== clickedStep) {
                if (this.steps.toArray().indexOf(step) < clickedStepIndex) {
                    step.status = COMPLETED_STEP_STATUS;
                    step.statusChange.emit(COMPLETED_STEP_STATUS);
                }
                else if (this.steps.toArray().indexOf(step) > clickedStepIndex) {
                    step.status = UPCOMING_STEP_STATUS;
                    step.statusChange.emit(UPCOMING_STEP_STATUS);
                }
            }
        });
        setTimeout(() => {
            document.activeElement.blur(); // this function can focus step indicators undesirably
        });
    }
    /** @hidden */
    _getLastNonSummaryStep() {
        if (this.steps.last.isSummary && !this.displaySummaryStep) {
            return this.steps.toArray()[this.steps.length - 2];
        }
        return this.steps.last;
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: FD_DIALOG_BODY_COMPONENT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: WizardComponent, isStandalone: true, selector: "fd-wizard", inputs: { appendToWizard: "appendToWizard", contentHeight: "contentHeight", responsivePaddings: "responsivePaddings", displaySummaryStep: "displaySummaryStep", ariaLabel: "ariaLabel" }, host: { attributes: { "role": "region" }, listeners: { "window:resize": "resizeHandler()" }, properties: { "attr.aria-label": "ariaLabel || _defaultAriaLabel()", "class.fd-wizard--responsive-paddings": "this.responsivePaddings" } }, providers: [
            WizardService,
            {
                provide: WIZARD,
                useExisting: WizardComponent
            }
        ], queries: [{ propertyName: "progressBar", first: true, predicate: WizardProgressBarDirective, descendants: true }, { propertyName: "steps", predicate: WizardStepComponent, descendants: true }, { propertyName: "wizardContent", predicate: WizardContentComponent }], viewQueries: [{ propertyName: "wrapperContainer", first: true, predicate: ["wrapperContainer"], descendants: true }, { propertyName: "scrollbar", first: true, predicate: ScrollbarDirective, descendants: true }], ngImport: i0, template: "<section class=\"fd-wizard\">\n    <ng-content select=\"fd-wizard-navigation\"></ng-content>\n    @if (appendToWizard) {\n        <div\n            class=\"fd-wizard-container-wrapper\"\n            #wrapperContainer\n            fdScrollSpy\n            cdkScrollable\n            [trackedTags]=\"['div']\"\n            (spyChange)=\"scrollSpyChange($event)\"\n        >\n            <div fd-scrollbar>\n                @for (contentTemplate of contentTemplates; track contentTemplate) {\n                    <div>\n                        <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\n                    </div>\n                }\n            </div>\n        </div>\n    } @else {\n        <div cdkScrollable class=\"fd-wizard-container-wrapper\">\n            <div fd-scrollbar>\n                @for (contentTemplate of contentTemplates; track contentTemplate) {\n                    <div>\n                        <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\n                    </div>\n                }\n            </div>\n        </div>\n    }\n    <ng-content></ng-content>\n</section>\n", styles: [".fd-wizard{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative}.fd-wizard:after,.fd-wizard:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__navigation{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-wizard__navigation:after,.fd-wizard__navigation:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__progress-bar{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:table;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:4rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;width:100%;-webkit-padding-before:1rem;background:var(--sapObjectHeader_Background);-webkit-box-shadow:var(--sapContent_HeaderShadow);box-shadow:var(--sapContent_HeaderShadow);list-style-type:none;padding-block-start:1rem;position:relative;table-layout:fixed}.fd-wizard__progress-bar:after,.fd-wizard__progress-bar:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__progress-bar--sm{padding-inline:1rem}.fd-wizard__progress-bar--lg,.fd-wizard__progress-bar--md{padding-inline:2rem}.fd-wizard__progress-bar--xl{padding-inline:3rem}.fd-wizard__step-wrapper{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:2rem}.fd-wizard__step-wrapper:after,.fd-wizard__step-wrapper:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__step{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-sizing:content-box;box-sizing:content-box;color:var(--sapTextColor);display:table-cell;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;min-width:10.5rem;padding-block:0;padding-inline:0;position:relative;vertical-align:top;width:100%}.fd-wizard__step:after,.fd-wizard__step:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__step--completed .fd-wizard__label{color:var(--fdWizard_Completed_Step_Label_Color)}.fd-wizard__step--completed .fd-wizard__step-indicator{background:var(--sapObjectHeader_Background);border:var(--fdWizard_Completed_Step_Border);color:var(--fdWizard_Completed_Step_Color)}.fd-wizard__step--completed .fd-wizard__step-indicator .fd-wizard__icon [class*=sap-icon],.fd-wizard__step--completed .fd-wizard__step-indicator .fd-wizard__icon[class*=sap-icon]{color:var(--fdWizard_Completed_Step_Icon_Color)}.fd-wizard__step--current .fd-wizard__label{color:var(--fdWizard_Current_Step_Label_Color)}.fd-wizard__step--current .fd-wizard__step-indicator{background:var(--fdWizard_Current_Step_Background_Color);border:var(--fdWizard_Current_Step_Border);color:var(--fdWizard_Current_Step_Color);position:relative}.fd-wizard__step--current .fd-wizard__step-indicator .fd-wizard__icon [class*=sap-icon],.fd-wizard__step--current .fd-wizard__step-indicator .fd-wizard__icon[class*=sap-icon]{color:var(--fdWizard_Current_Step_Icon_Color)}.fd-wizard__step--current .fd-wizard__step-indicator:after{background:var(--fdWizard_Selection_Bar_Background);border-radius:.125rem .125rem 0 0;bottom:-1rem;content:\"\";display:inline-block;height:var(--fdWizard_Selection_Bar_Height);left:-.1875rem;position:absolute;-webkit-transition:all .125s ease-in;transition:all .125s ease-in;width:calc(100% + .375rem)}.fd-wizard__step--upcoming .fd-wizard__label,.fd-wizard__step--upcoming .fd-wizard__optional-text{color:var(--sapContent_LabelColor)}.fd-wizard__step--upcoming .fd-wizard__step-indicator{background:var(--sapObjectHeader_Background);border:.0625rem solid var(--sapList_BorderColor);color:var(--fdWizard_Upcoming_Step_Color)}.fd-wizard__step--upcoming .fd-wizard__step-indicator .fd-wizard__icon [class*=sap-icon],.fd-wizard__step--upcoming .fd-wizard__step-indicator .fd-wizard__icon[class*=sap-icon]{color:var(--fdWizard_Upcoming_Step_Icon_Color)}.fd-wizard__step--upcoming .fd-wizard__step-container{cursor:default;pointer-events:none}.fd-wizard__step--upcoming.fd-wizard__step--completed .fd-wizard__label{color:var(--fdWizard_Completed_Step_Label_Color)}.fd-wizard__step--upcoming.fd-wizard__step--completed .fd-wizard__step-indicator{background:var(--sapObjectHeader_Background);border:var(--fdWizard_Completed_Step_Border);color:var(--fdWizard_Completed_Step_Color)}.fd-wizard__step--upcoming.fd-wizard__step--completed .fd-wizard__step-indicator .fd-wizard__icon [class*=sap-icon],.fd-wizard__step--upcoming.fd-wizard__step--completed .fd-wizard__step-indicator .fd-wizard__icon[class*=sap-icon]{color:var(--fdWizard_Completed_Step_Icon_Color)}.fd-wizard__step--no-label{min-width:4rem}.fd-wizard__step--no-label .fd-wizard__label-container{display:none}.fd-wizard__step--stacked-top.fd-wizard__step--stacked{min-width:4rem;width:4rem}.fd-wizard__step--stacked-top.fd-wizard__step--stacked .fd-wizard__connector{display:block;min-width:auto}.fd-wizard__step--stacked{min-width:auto;width:.25rem}.fd-wizard__step--stacked:last-child{-webkit-padding-end:2.375rem;padding-inline-end:2.375rem}.fd-wizard__step--stacked .fd-wizard__connector,.fd-wizard__step--stacked .fd-wizard__label-container{display:none}.fd-wizard__step--stacked.fd-wizard__step--upcoming:first-child{z-index:9}.fd-wizard__step--stacked.fd-wizard__step--upcoming:nth-child(2){z-index:8}.fd-wizard__step--stacked.fd-wizard__step--upcoming:nth-child(3){z-index:7}.fd-wizard__step--stacked.fd-wizard__step--upcoming:nth-child(4){z-index:6}.fd-wizard__step--stacked.fd-wizard__step--upcoming:nth-child(5){z-index:5}.fd-wizard__step--stacked.fd-wizard__step--upcoming:nth-child(6){z-index:4}.fd-wizard__step--stacked.fd-wizard__step--upcoming:nth-child(7){z-index:3}.fd-wizard__step--stacked.fd-wizard__step--upcoming:nth-child(8){z-index:2}.fd-wizard__step--active .fd-wizard__step-indicator{background:var(--sapActiveColor);border-color:var(--fdWizard_Active_Step_Border_Color);color:var(--fdWizard_Active_Step_Color)}.fd-wizard__step--active .fd-wizard__icon [class*=sap-icon],.fd-wizard__step--active .fd-wizard__icon[class*=sap-icon]{color:var(--fdWizard_Active_Step_Icon_Color)}.fd-wizard__step-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer}.fd-wizard__step-container:after,.fd-wizard__step-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__step-container.is-focus,.fd-wizard__step-container:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);z-index:5}.fd-wizard__step-indicator{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:50%;height:2rem;margin-block:0;margin-inline:0;margin-inline:.1875rem var(--fdWizard_Step_Indicator_Margin_Right);min-height:2rem;min-width:2rem;width:2rem}.fd-wizard__step-indicator:after,.fd-wizard__step-indicator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__icon [class*=sap-icon],.fd-wizard__icon[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:inherit;line-height:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:var(--sapFontLargeSize);height:100%}.fd-wizard__label-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;color:var(--sapContent_LabelColor);-ms-flex-direction:column;flex-direction:column;max-height:2rem;max-width:100%;overflow:hidden}.fd-wizard__label-container:after,.fd-wizard__label-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__label-container--optional .fd-wizard__label{-webkit-line-clamp:1;max-height:1rem}.fd-wizard__label,.fd-wizard__label-container--optional .fd-wizard__label{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal}.fd-wizard__label{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-family:var(--fdWizard_Label_Font_Family);font-size:var(--sapFontSize);font-weight:400;font-weight:var(--fdWizard_Label_Font_Weight);forced-color-adjust:none;-webkit-line-clamp:2;line-height:normal;line-height:1rem;margin-block:0;margin-inline:0;max-width:100%;padding-block:0;padding-inline:0}.fd-wizard__label:after,.fd-wizard__label:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__optional-text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;-webkit-line-clamp:1;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;color:var(--sapContent_LabelColor);font-size:var(--sapFontSmallSize);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:normal}.fd-wizard__optional-text:after,.fd-wizard__optional-text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__connector{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-flex:1;border-bottom:.0625rem solid var(--sapList_BorderColor);-ms-flex:1 1 auto;flex:1 1 auto;margin-block:.5rem;margin-inline:.5rem;max-width:100%;min-width:1rem}.fd-wizard__connector:after,.fd-wizard__connector:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__connector--active{border-bottom-color:var(--fdWizard_Connector_Active_Border_Color)}.fd-wizard__connector--branching{border-bottom-style:dashed}.fd-wizard__content{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-padding-before:1rem;background:var(--sapBackgroundColor);height:100%;padding-block-start:1rem;width:100%}.fd-wizard__content:after,.fd-wizard__content:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__content--sm{padding-inline:1rem}.fd-wizard__content--lg,.fd-wizard__content--md{padding-inline:2rem}.fd-wizard__content--xl{padding-inline:3rem}.fd-wizard__content--solid{background:var(--fdWizard_Content_Solid_Background)}.fd-wizard__content--list{background:var(--fdWizard_Content_List_Background)}.fd-wizard__content--transparent{background:var(--fdWizard_Content_Transparent_Background)}.fd-wizard__step-content-container{background-color:var(--fdWizard_Step_Content_Container_Background_Color);border:0;border-radius:var(--sapElement_BorderCornerRadius);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-block:var(--fdWizard_Step_Content_Container_Spacing);padding-inline:0;padding-inline:var(--fdWizard_Step_Content_Container_Spacing)}.fd-wizard__step-content-container:after,.fd-wizard__step-content-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__step-content-container--sm{padding-inline:1rem}.fd-wizard__step-content-container--lg,.fd-wizard__step-content-container--md{padding-inline:2rem}.fd-wizard__step-content-container--xl{padding-inline:3rem}.fd-wizard__next-step{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;margin-top:1rem;padding-block:0;padding-inline:0}.fd-wizard__next-step:after,.fd-wizard__next-step:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__next-step--sm{padding-inline:1rem}.fd-wizard__next-step--lg,.fd-wizard__next-step--md{padding-inline:2rem}.fd-wizard__next-step--xl{padding-inline:3rem}.fd-wizard__next-step--floating{bottom:3.5rem;position:absolute}.fd-wizard__label,.fd-wizard__optional-text{display:block;display:-webkit-box}.fd-wizard-container-wrapper{overflow:auto}@media(max-width:599px){.fd-wizard--responsive-paddings .fd-wizard__content,.fd-wizard--responsive-paddings .fd-wizard__progress-bar{padding-left:1rem;padding-right:1rem}}@media(min-width:600px)and (max-width:1439px){.fd-wizard--responsive-paddings .fd-wizard__content,.fd-wizard--responsive-paddings .fd-wizard__progress-bar{padding-left:2rem;padding-right:2rem}}@media(min-width:1440px){.fd-wizard--responsive-paddings .fd-wizard__content,.fd-wizard--responsive-paddings .fd-wizard__progress-bar{padding-left:3rem;padding-right:3rem}}.fd-wizard__progress-bar{z-index:1003}:host .fd-scrollbar{max-height:100%;max-width:100%;width:100%;height:100%}\n/*! Bundled license information:\n\nfundamental-styles/dist/wizard.css:\n  (*!\n   * Fundamental Library Styles v0.41.7\n   * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n   * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n   *)\n*/\n"], dependencies: [{ kind: "directive", type: ScrollSpyDirective, selector: "[fdScrollSpy]", inputs: ["trackedTags", "fireEmpty", "targetPercent", "targetOffset", "scrollSpyDisabled"], outputs: ["spyChange"], exportAs: ["fdScrollSpy"] }, { kind: "directive", type: CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: ScrollbarDirective, selector: "[fdScrollbar], [fd-scrollbar]", inputs: ["noHorizontalScroll", "noVerticalScroll", "alwaysVisible"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardComponent, decorators: [{
            type: Component,
            args: [{ selector: 'fd-wizard', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
                        WizardService,
                        {
                            provide: WIZARD,
                            useExisting: WizardComponent
                        }
                    ], host: {
                        role: 'region',
                        '[attr.aria-label]': 'ariaLabel || _defaultAriaLabel()'
                    }, imports: [ScrollSpyDirective, CdkScrollable, ScrollbarDirective, NgTemplateOutlet], template: "<section class=\"fd-wizard\">\n    <ng-content select=\"fd-wizard-navigation\"></ng-content>\n    @if (appendToWizard) {\n        <div\n            class=\"fd-wizard-container-wrapper\"\n            #wrapperContainer\n            fdScrollSpy\n            cdkScrollable\n            [trackedTags]=\"['div']\"\n            (spyChange)=\"scrollSpyChange($event)\"\n        >\n            <div fd-scrollbar>\n                @for (contentTemplate of contentTemplates; track contentTemplate) {\n                    <div>\n                        <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\n                    </div>\n                }\n            </div>\n        </div>\n    } @else {\n        <div cdkScrollable class=\"fd-wizard-container-wrapper\">\n            <div fd-scrollbar>\n                @for (contentTemplate of contentTemplates; track contentTemplate) {\n                    <div>\n                        <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\n                    </div>\n                }\n            </div>\n        </div>\n    }\n    <ng-content></ng-content>\n</section>\n", styles: [".fd-wizard{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative}.fd-wizard:after,.fd-wizard:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__navigation{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-wizard__navigation:after,.fd-wizard__navigation:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__progress-bar{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:table;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:4rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;width:100%;-webkit-padding-before:1rem;background:var(--sapObjectHeader_Background);-webkit-box-shadow:var(--sapContent_HeaderShadow);box-shadow:var(--sapContent_HeaderShadow);list-style-type:none;padding-block-start:1rem;position:relative;table-layout:fixed}.fd-wizard__progress-bar:after,.fd-wizard__progress-bar:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__progress-bar--sm{padding-inline:1rem}.fd-wizard__progress-bar--lg,.fd-wizard__progress-bar--md{padding-inline:2rem}.fd-wizard__progress-bar--xl{padding-inline:3rem}.fd-wizard__step-wrapper{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:2rem}.fd-wizard__step-wrapper:after,.fd-wizard__step-wrapper:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__step{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-sizing:content-box;box-sizing:content-box;color:var(--sapTextColor);display:table-cell;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;min-width:10.5rem;padding-block:0;padding-inline:0;position:relative;vertical-align:top;width:100%}.fd-wizard__step:after,.fd-wizard__step:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__step--completed .fd-wizard__label{color:var(--fdWizard_Completed_Step_Label_Color)}.fd-wizard__step--completed .fd-wizard__step-indicator{background:var(--sapObjectHeader_Background);border:var(--fdWizard_Completed_Step_Border);color:var(--fdWizard_Completed_Step_Color)}.fd-wizard__step--completed .fd-wizard__step-indicator .fd-wizard__icon [class*=sap-icon],.fd-wizard__step--completed .fd-wizard__step-indicator .fd-wizard__icon[class*=sap-icon]{color:var(--fdWizard_Completed_Step_Icon_Color)}.fd-wizard__step--current .fd-wizard__label{color:var(--fdWizard_Current_Step_Label_Color)}.fd-wizard__step--current .fd-wizard__step-indicator{background:var(--fdWizard_Current_Step_Background_Color);border:var(--fdWizard_Current_Step_Border);color:var(--fdWizard_Current_Step_Color);position:relative}.fd-wizard__step--current .fd-wizard__step-indicator .fd-wizard__icon [class*=sap-icon],.fd-wizard__step--current .fd-wizard__step-indicator .fd-wizard__icon[class*=sap-icon]{color:var(--fdWizard_Current_Step_Icon_Color)}.fd-wizard__step--current .fd-wizard__step-indicator:after{background:var(--fdWizard_Selection_Bar_Background);border-radius:.125rem .125rem 0 0;bottom:-1rem;content:\"\";display:inline-block;height:var(--fdWizard_Selection_Bar_Height);left:-.1875rem;position:absolute;-webkit-transition:all .125s ease-in;transition:all .125s ease-in;width:calc(100% + .375rem)}.fd-wizard__step--upcoming .fd-wizard__label,.fd-wizard__step--upcoming .fd-wizard__optional-text{color:var(--sapContent_LabelColor)}.fd-wizard__step--upcoming .fd-wizard__step-indicator{background:var(--sapObjectHeader_Background);border:.0625rem solid var(--sapList_BorderColor);color:var(--fdWizard_Upcoming_Step_Color)}.fd-wizard__step--upcoming .fd-wizard__step-indicator .fd-wizard__icon [class*=sap-icon],.fd-wizard__step--upcoming .fd-wizard__step-indicator .fd-wizard__icon[class*=sap-icon]{color:var(--fdWizard_Upcoming_Step_Icon_Color)}.fd-wizard__step--upcoming .fd-wizard__step-container{cursor:default;pointer-events:none}.fd-wizard__step--upcoming.fd-wizard__step--completed .fd-wizard__label{color:var(--fdWizard_Completed_Step_Label_Color)}.fd-wizard__step--upcoming.fd-wizard__step--completed .fd-wizard__step-indicator{background:var(--sapObjectHeader_Background);border:var(--fdWizard_Completed_Step_Border);color:var(--fdWizard_Completed_Step_Color)}.fd-wizard__step--upcoming.fd-wizard__step--completed .fd-wizard__step-indicator .fd-wizard__icon [class*=sap-icon],.fd-wizard__step--upcoming.fd-wizard__step--completed .fd-wizard__step-indicator .fd-wizard__icon[class*=sap-icon]{color:var(--fdWizard_Completed_Step_Icon_Color)}.fd-wizard__step--no-label{min-width:4rem}.fd-wizard__step--no-label .fd-wizard__label-container{display:none}.fd-wizard__step--stacked-top.fd-wizard__step--stacked{min-width:4rem;width:4rem}.fd-wizard__step--stacked-top.fd-wizard__step--stacked .fd-wizard__connector{display:block;min-width:auto}.fd-wizard__step--stacked{min-width:auto;width:.25rem}.fd-wizard__step--stacked:last-child{-webkit-padding-end:2.375rem;padding-inline-end:2.375rem}.fd-wizard__step--stacked .fd-wizard__connector,.fd-wizard__step--stacked .fd-wizard__label-container{display:none}.fd-wizard__step--stacked.fd-wizard__step--upcoming:first-child{z-index:9}.fd-wizard__step--stacked.fd-wizard__step--upcoming:nth-child(2){z-index:8}.fd-wizard__step--stacked.fd-wizard__step--upcoming:nth-child(3){z-index:7}.fd-wizard__step--stacked.fd-wizard__step--upcoming:nth-child(4){z-index:6}.fd-wizard__step--stacked.fd-wizard__step--upcoming:nth-child(5){z-index:5}.fd-wizard__step--stacked.fd-wizard__step--upcoming:nth-child(6){z-index:4}.fd-wizard__step--stacked.fd-wizard__step--upcoming:nth-child(7){z-index:3}.fd-wizard__step--stacked.fd-wizard__step--upcoming:nth-child(8){z-index:2}.fd-wizard__step--active .fd-wizard__step-indicator{background:var(--sapActiveColor);border-color:var(--fdWizard_Active_Step_Border_Color);color:var(--fdWizard_Active_Step_Color)}.fd-wizard__step--active .fd-wizard__icon [class*=sap-icon],.fd-wizard__step--active .fd-wizard__icon[class*=sap-icon]{color:var(--fdWizard_Active_Step_Icon_Color)}.fd-wizard__step-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer}.fd-wizard__step-container:after,.fd-wizard__step-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__step-container.is-focus,.fd-wizard__step-container:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);z-index:5}.fd-wizard__step-indicator{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:50%;height:2rem;margin-block:0;margin-inline:0;margin-inline:.1875rem var(--fdWizard_Step_Indicator_Margin_Right);min-height:2rem;min-width:2rem;width:2rem}.fd-wizard__step-indicator:after,.fd-wizard__step-indicator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__icon [class*=sap-icon],.fd-wizard__icon[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:inherit;line-height:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:var(--sapFontLargeSize);height:100%}.fd-wizard__label-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;color:var(--sapContent_LabelColor);-ms-flex-direction:column;flex-direction:column;max-height:2rem;max-width:100%;overflow:hidden}.fd-wizard__label-container:after,.fd-wizard__label-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__label-container--optional .fd-wizard__label{-webkit-line-clamp:1;max-height:1rem}.fd-wizard__label,.fd-wizard__label-container--optional .fd-wizard__label{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal}.fd-wizard__label{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-family:var(--fdWizard_Label_Font_Family);font-size:var(--sapFontSize);font-weight:400;font-weight:var(--fdWizard_Label_Font_Weight);forced-color-adjust:none;-webkit-line-clamp:2;line-height:normal;line-height:1rem;margin-block:0;margin-inline:0;max-width:100%;padding-block:0;padding-inline:0}.fd-wizard__label:after,.fd-wizard__label:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__optional-text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;-webkit-line-clamp:1;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;color:var(--sapContent_LabelColor);font-size:var(--sapFontSmallSize);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:normal}.fd-wizard__optional-text:after,.fd-wizard__optional-text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__connector{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-flex:1;border-bottom:.0625rem solid var(--sapList_BorderColor);-ms-flex:1 1 auto;flex:1 1 auto;margin-block:.5rem;margin-inline:.5rem;max-width:100%;min-width:1rem}.fd-wizard__connector:after,.fd-wizard__connector:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__connector--active{border-bottom-color:var(--fdWizard_Connector_Active_Border_Color)}.fd-wizard__connector--branching{border-bottom-style:dashed}.fd-wizard__content{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-padding-before:1rem;background:var(--sapBackgroundColor);height:100%;padding-block-start:1rem;width:100%}.fd-wizard__content:after,.fd-wizard__content:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__content--sm{padding-inline:1rem}.fd-wizard__content--lg,.fd-wizard__content--md{padding-inline:2rem}.fd-wizard__content--xl{padding-inline:3rem}.fd-wizard__content--solid{background:var(--fdWizard_Content_Solid_Background)}.fd-wizard__content--list{background:var(--fdWizard_Content_List_Background)}.fd-wizard__content--transparent{background:var(--fdWizard_Content_Transparent_Background)}.fd-wizard__step-content-container{background-color:var(--fdWizard_Step_Content_Container_Background_Color);border:0;border-radius:var(--sapElement_BorderCornerRadius);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-block:var(--fdWizard_Step_Content_Container_Spacing);padding-inline:0;padding-inline:var(--fdWizard_Step_Content_Container_Spacing)}.fd-wizard__step-content-container:after,.fd-wizard__step-content-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__step-content-container--sm{padding-inline:1rem}.fd-wizard__step-content-container--lg,.fd-wizard__step-content-container--md{padding-inline:2rem}.fd-wizard__step-content-container--xl{padding-inline:3rem}.fd-wizard__next-step{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;margin-top:1rem;padding-block:0;padding-inline:0}.fd-wizard__next-step:after,.fd-wizard__next-step:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-wizard__next-step--sm{padding-inline:1rem}.fd-wizard__next-step--lg,.fd-wizard__next-step--md{padding-inline:2rem}.fd-wizard__next-step--xl{padding-inline:3rem}.fd-wizard__next-step--floating{bottom:3.5rem;position:absolute}.fd-wizard__label,.fd-wizard__optional-text{display:block;display:-webkit-box}.fd-wizard-container-wrapper{overflow:auto}@media(max-width:599px){.fd-wizard--responsive-paddings .fd-wizard__content,.fd-wizard--responsive-paddings .fd-wizard__progress-bar{padding-left:1rem;padding-right:1rem}}@media(min-width:600px)and (max-width:1439px){.fd-wizard--responsive-paddings .fd-wizard__content,.fd-wizard--responsive-paddings .fd-wizard__progress-bar{padding-left:2rem;padding-right:2rem}}@media(min-width:1440px){.fd-wizard--responsive-paddings .fd-wizard__content,.fd-wizard--responsive-paddings .fd-wizard__progress-bar{padding-left:3rem;padding-right:3rem}}.fd-wizard__progress-bar{z-index:1003}:host .fd-scrollbar{max-height:100%;max-width:100%;width:100%;height:100%}\n/*! Bundled license information:\n\nfundamental-styles/dist/wizard.css:\n  (*!\n   * Fundamental Library Styles v0.41.7\n   * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n   * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n   *)\n*/\n"] }]
        }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.DialogBodyComponent, decorators: [{
                    type: Optional
                }, {
                    type: Inject,
                    args: [FD_DIALOG_BODY_COMPONENT]
                }] }], propDecorators: { appendToWizard: [{
                type: Input
            }], contentHeight: [{
                type: Input
            }], responsivePaddings: [{
                type: Input
            }, {
                type: HostBinding,
                args: ['class.fd-wizard--responsive-paddings']
            }], displaySummaryStep: [{
                type: Input
            }], ariaLabel: [{
                type: Input
            }], steps: [{
                type: ContentChildren,
                args: [WizardStepComponent, { descendants: true }]
            }], progressBar: [{
                type: ContentChild,
                args: [WizardProgressBarDirective]
            }], wizardContent: [{
                type: ContentChildren,
                args: [WizardContentComponent]
            }], wrapperContainer: [{
                type: ViewChild,
                args: ['wrapperContainer']
            }], scrollbar: [{
                type: ViewChild,
                args: [ScrollbarDirective]
            }], resizeHandler: [{
                type: HostListener,
                args: ['window:resize']
            }] } });

const components = [
    WizardComponent,
    WizardNavigationComponent,
    WizardProgressBarDirective,
    WizardStepComponent,
    WizardStepIndicatorComponent,
    WizardContentComponent,
    WizardNextStepComponent
];
/**
 * @deprecated
 * Use direct imports of `WizardComponent`,
    `WizardNavigationComponent`,
    `WizardProgressBarDirective`,
    `WizardStepComponent`,
    `WizardStepIndicatorComponent`,
    `WizardContentComponent`,
    `WizardNextStepComponent`
 */
class WizardModule {
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.0", ngImport: i0, type: WizardModule, imports: [WizardComponent,
            WizardNavigationComponent,
            WizardProgressBarDirective,
            WizardStepComponent,
            WizardStepIndicatorComponent,
            WizardContentComponent,
            WizardNextStepComponent], exports: [WizardComponent,
            WizardNavigationComponent,
            WizardProgressBarDirective,
            WizardStepComponent,
            WizardStepIndicatorComponent,
            WizardContentComponent,
            WizardNextStepComponent] }); }
    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardModule, providers: [WizardService], imports: [WizardStepIndicatorComponent] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: WizardModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [...components],
                    exports: [...components],
                    providers: [WizardService]
                }]
        }] });

/**
 * Generated bundle index. Do not edit.
 */

export { BAR_FLOATING_FOOTER_CLASS, BAR_FOOTER_CLASS, SHELLBAR_CLASS, STEP_MIN_WIDTH, STEP_NO_LABEL_CLASS, STEP_STACKED_CLASS, STEP_STACKED_TOP_CLASS, WIZARD, WIZARD_CONTAINER_WRAPPER_CLASS, WIZARD_CONTENT_CLASS, WIZARD_NAVIGATION_CLASS, WIZARD_TALL_CONTENT_CLASS, WizardComponent, WizardContentComponent, WizardModule, WizardNavigationComponent, WizardNextStepComponent, WizardProgressBarDirective, WizardService, WizardStepComponent, WizardStepIndicatorComponent, _fromScrollToCurrentStep, handleTimeoutReference, timer };
//# sourceMappingURL=fundamental-ngx-core-wizard.mjs.map
