import * as i0 from '@angular/core';
import { input, booleanAttribute, output, signal, ChangeDetectionStrategy, Component, viewChild, contentChildren, linkedSignal, computed, untracked, NgModule } from '@angular/core';
import { __decorate } from 'tslib';
import { NgTemplateOutlet } from '@angular/common';
import { elementWarningFilled, elementRadioChecked, elementRight4, elementNotChecked, elementLeft4, elementCheckedFilled, elementChecked, elementCancel } from '@siemens/element-icons';
import { WebComponentContentChildren } from '@siemens/element-ng/common';
import { addIcons, SiIconComponent } from '@siemens/element-ng/icon';
import { SiResizeObserverDirective } from '@siemens/element-ng/resize-observer';
import { t, SiTranslatePipe } from '@siemens/element-translate-ng/translate';

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiWizardStepComponent {
    /** @defaultValue '' */
    heading = input('', ...(ngDevMode ? [{ debugName: "heading" }] : []));
    /** @defaultValue true */
    isValid = input(true, { ...(ngDevMode ? { debugName: "isValid" } : {}), transform: booleanAttribute });
    /** @defaultValue true */
    isNextNavigable = input(true, { ...(ngDevMode ? { debugName: "isNextNavigable" } : {}), transform: booleanAttribute });
    /** @defaultValue false */
    failed = input(false, { ...(ngDevMode ? { debugName: "failed" } : {}), transform: booleanAttribute });
    next = output();
    back = output();
    save = output();
    /**
     * Whether this step is currently active or not.
     * @defaultValue false
     */
    isActive = signal(false, ...(ngDevMode ? [{ debugName: "isActive" }] : []));
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiWizardStepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiWizardStepComponent, isStandalone: true, selector: "si-wizard-step", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, isValid: { classPropertyName: "isValid", publicName: "isValid", isSignal: true, isRequired: false, transformFunction: null }, isNextNavigable: { classPropertyName: "isNextNavigable", publicName: "isNextNavigable", isSignal: true, isRequired: false, transformFunction: null }, failed: { classPropertyName: "failed", publicName: "failed", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { next: "next", back: "back", save: "save" }, ngImport: i0, template: "@if (isActive()) {\n  <div class=\"h-100\">\n    <ng-content />\n  </div>\n}\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiWizardStepComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-wizard-step', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (isActive()) {\n  <div class=\"h-100\">\n    <ng-content />\n  </div>\n}\n" }]
        }], propDecorators: { heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], isValid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isValid", required: false }] }], isNextNavigable: [{ type: i0.Input, args: [{ isSignal: true, alias: "isNextNavigable", required: false }] }], failed: [{ type: i0.Input, args: [{ isSignal: true, alias: "failed", required: false }] }], next: [{ type: i0.Output, args: ["next"] }], back: [{ type: i0.Output, args: ["back"] }], save: [{ type: i0.Output, args: ["save"] }] } });

class SiWizardComponent {
    containerSteps = viewChild('containerSteps', ...(ngDevMode ? [{ debugName: "containerSteps" }] : []));
    /**
     * Description of back button.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_WIZARD.BACK:Back`)
     * ```
     */
    backText = input(t(() => $localize `:@@SI_WIZARD.BACK:Back`), ...(ngDevMode ? [{ debugName: "backText" }] : []));
    /**
     * Description of next button.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_WIZARD.NEXT:Next`)
     * ```
     */
    nextText = input(t(() => $localize `:@@SI_WIZARD.NEXT:Next`), ...(ngDevMode ? [{ debugName: "nextText" }] : []));
    /**
     * Hide the navigation buttons previous/next.
     *
     * @defaultValue false
     */
    hideNavigation = input(false, { ...(ngDevMode ? { debugName: "hideNavigation" } : {}), transform: booleanAttribute });
    /**
     * Description of save button.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_WIZARD.SAVE:Save`)
     * ```
     */
    saveText = input(t(() => $localize `:@@SI_WIZARD.SAVE:Save`), ...(ngDevMode ? [{ debugName: "saveText" }] : []));
    /**
     * Hide the save button.
     *
     * @defaultValue false
     */
    hideSave = input(false, { ...(ngDevMode ? { debugName: "hideSave" } : {}), transform: booleanAttribute });
    /**
     * Text shown if you complete the wizard.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_WIZARD.COMPLETED:Wizard completed!`)
     * ```
     */
    completionText = input(t(() => $localize `:@@SI_WIZARD.COMPLETED:Wizard completed!`), ...(ngDevMode ? [{ debugName: "completionText" }] : []));
    /**
     * Description of cancel button.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_WIZARD.CANCEL:Cancel`)
     * ```
     */
    cancelText = input(t(() => $localize `:@@SI_WIZARD.CANCEL:Cancel`), ...(ngDevMode ? [{ debugName: "cancelText" }] : []));
    /**
     * Show the cancel button
     *
     * @defaultValue false
     */
    hasCancel = input(false, { ...(ngDevMode ? { debugName: "hasCancel" } : {}), transform: booleanAttribute });
    /**
     * Display a predefined page by the end of the wizard.
     *
     * @defaultValue false
     */
    enableCompletionPage = input(false, { ...(ngDevMode ? { debugName: "enableCompletionPage" } : {}), transform: booleanAttribute });
    /**
     * Define how many milliseconds the completion page is visible.
     *
     * @defaultValue 3000
     */
    completionPageVisibleTime = input(3000, ...(ngDevMode ? [{ debugName: "completionPageVisibleTime" }] : []));
    /**
     * Class name of icon shown for current and upcoming steps.
     *
     * @defaultValue 'elementNotChecked'
     */
    stepIcon = input('elementNotChecked', ...(ngDevMode ? [{ debugName: "stepIcon" }] : []));
    /**
     * Class name of icon shown for the active step.
     *
     * @defaultValue 'elementRadioChecked'
     */
    stepActiveIcon = input('elementRadioChecked', ...(ngDevMode ? [{ debugName: "stepActiveIcon" }] : []));
    /**
     * Class name of icon shown when a step was completed.
     *
     * @defaultValue 'elementCheckedFilled'
     */
    stepCompletedIcon = input('elementCheckedFilled', ...(ngDevMode ? [{ debugName: "stepCompletedIcon" }] : []));
    /**
     * Class name of icon shown when a step had an error.
     *
     * @defaultValue 'elementWarningFilled'
     */
    stepFailedIcon = input('elementWarningFilled', ...(ngDevMode ? [{ debugName: "stepFailedIcon" }] : []));
    /**
     * Set the orientation of the wizard to vertical.
     *
     * @defaultValue false
     */
    verticalLayout = input(false, { ...(ngDevMode ? { debugName: "verticalLayout" } : {}), transform: booleanAttribute });
    /**
     * Set false to show navigation buttons in footer instead of inline.
     *
     * @defaultValue false
     */
    inlineNavigation = input(false, { ...(ngDevMode ? { debugName: "inlineNavigation" } : {}), transform: booleanAttribute });
    /**
     * Use number representation for steps.
     *
     * @defaultValue false
     */
    showStepNumbers = input(false, { ...(ngDevMode ? { debugName: "showStepNumbers" } : {}), transform: booleanAttribute });
    /**
     * Set to true to display a divider between the steps and the content in the vertical
     *
     * @defaultValue false
     */
    showVerticalDivider = input(false, { ...(ngDevMode ? { debugName: "showVerticalDivider" } : {}), transform: booleanAttribute });
    /** Set the wizard step container min size in vertical layout. */
    verticalMinSize = input(...(ngDevMode ? [undefined, { debugName: "verticalMinSize" }] : []));
    /** Set the wizard step container max size in vertical layout. */
    verticalMaxSize = input(...(ngDevMode ? [undefined, { debugName: "verticalMaxSize" }] : []));
    /** Callback function triggered after the wizard has been completed. */
    completionAction = output();
    /** Callback function triggered if the wizard has been canceled. */
    wizardCancel = output();
    /** Get the current step wizard step index. */
    get index() {
        return this._index();
    }
    /** Get number of wizard steps. */
    get stepCount() {
        return this.steps().length;
    }
    /** Get current visible wizard step. */
    get currentStep() {
        return this._currentStep();
    }
    steps = contentChildren(SiWizardStepComponent, ...(ngDevMode ? [{ debugName: "steps" }] : []));
    visibleSteps = linkedSignal(() => this.calculateVisibleStepCount(), ...(ngDevMode ? [{ debugName: "visibleSteps" }] : []));
    showCompletionPage = signal(false, ...(ngDevMode ? [{ debugName: "showCompletionPage" }] : []));
    /** The list of visible steps. */
    activeSteps = computed(() => this.computeVisibleSteps(), ...(ngDevMode ? [{ debugName: "activeSteps" }] : []));
    _index = linkedSignal(() => {
        const currentStep = this._currentStep();
        const currentStepIndex = currentStep ? this.steps().indexOf(currentStep) : 0;
        return currentStepIndex < 0 ? 0 : currentStepIndex;
    }, ...(ngDevMode ? [{ debugName: "_index" }] : []));
    _currentStep = linkedSignal(() => {
        const steps = this.steps();
        const currentActive = steps.find(step => step.isActive());
        if (currentActive) {
            return currentActive;
        }
        else if (steps.length) {
            untracked(() => steps[0].isActive.set(true));
            return steps[0];
        }
        else {
            return undefined;
        }
    }, ...(ngDevMode ? [{ debugName: "_currentStep" }] : []));
    icons = addIcons({
        elementCancel,
        elementChecked,
        elementCheckedFilled,
        elementLeft4,
        elementNotChecked,
        elementRight4,
        elementRadioChecked,
        elementWarningFilled
    });
    canActivate(stepIndex) {
        if (stepIndex < 0) {
            return false;
        }
        // Can always activate previous steps
        if (stepIndex < this.index) {
            return true;
        }
        // We are already in the step. Nothing to activate.
        if (stepIndex === this.index) {
            return false;
        }
        // Fast-forward: check all steps if they are valid
        for (let i = this.index; i < stepIndex; i++) {
            const theStep = this.steps()[i];
            if (!theStep.isValid()) {
                return false;
            }
        }
        return true;
    }
    activateStep(event, stepIndex) {
        event.preventDefault();
        if (this.canActivate(stepIndex)) {
            if (stepIndex > this.index) {
                this.next(stepIndex - this.index);
            }
            if (stepIndex < this.index) {
                this.back(this.index - stepIndex);
            }
        }
    }
    getStateClass(stepIndex) {
        if (stepIndex === this.index) {
            return 'active';
        }
        if (!this.canActivate(stepIndex)) {
            return 'disabled';
        }
        if (stepIndex < this.index) {
            return 'completed';
        }
        return '';
    }
    getAriaDisabled(stepIndex) {
        if (!this.canActivate(stepIndex)) {
            return 'true';
        }
        return 'false';
    }
    getAriaCurrent(stepIndex) {
        if (stepIndex === this.index) {
            return 'step';
        }
        return 'false';
    }
    /**
     * Go to the next wizard step.
     * @param delta - optional number of steps to move forward.
     */
    next(delta = 1) {
        const steps = this.steps();
        if (this.index === steps.length - 1) {
            return;
        }
        const stepIndex = this.index + delta;
        const nextStep = steps[stepIndex];
        if (this.canActivate(stepIndex)) {
            this.currentStep?.next.emit();
            if (this.currentStep?.isNextNavigable()) {
                this.activate(nextStep);
            }
        }
    }
    /**
     * Go to the previous wizard step.
     * @param delta - optional number of steps to move backwards.
     */
    back(delta = 1) {
        if (this.index === 0) {
            return;
        }
        this.currentStep?.back.emit();
        this.activate(this.steps()[this.index - delta]);
    }
    /** Triggers the save action to complete the wizard. */
    save() {
        this.currentStep?.save.emit();
        if (this.enableCompletionPage() && this.completionPageVisibleTime() > 0) {
            this.showCompletionPage.set(true);
            setTimeout(() => {
                this.showCompletionPage.set(false);
                this.completionAction.emit();
            }, this.completionPageVisibleTime());
        }
        else {
            this.completionAction.emit();
        }
    }
    getState(step, stepIndex) {
        if (step.failed() === true) {
            return this.stepFailedIcon();
        }
        const txtStyle = step.isActive() ? this.stepActiveIcon() : this.stepIcon();
        return stepIndex >= this.index ? txtStyle : this.stepCompletedIcon();
    }
    activate(step) {
        if (this.currentStep) {
            this.currentStep.isActive.set(false);
        }
        step.isActive.set(true);
        this._currentStep.set(step);
        this._index.set(this.steps().indexOf(step));
    }
    updateVisibleSteps() {
        const newVisibleSteps = this.calculateVisibleStepCount();
        if (newVisibleSteps !== this.visibleSteps()) {
            this.visibleSteps.set(newVisibleSteps);
        }
    }
    calculateVisibleStepCount() {
        const containerSteps = this.containerSteps();
        if (!containerSteps) {
            return 0;
        }
        if (this.verticalLayout()) {
            const computedStyle = getComputedStyle(containerSteps.nativeElement);
            const clientHeight = containerSteps.nativeElement.clientHeight -
                parseInt(computedStyle.paddingBlockStart) -
                parseInt(computedStyle.paddingBlockEnd);
            return Math.max(Math.floor(clientHeight / 48), 1);
        }
        else {
            const clientWidth = containerSteps.nativeElement.clientWidth;
            return Math.max(Math.floor(clientWidth / 150), 1);
        }
    }
    computeVisibleSteps() {
        const create = (index) => ({ index, step: this.steps()[index] });
        if (this.steps().length === 0) {
            return [];
        }
        else if (this.visibleSteps() <= 1) {
            return [create(this.index)];
        }
        else if (this.stepCount <= this.visibleSteps()) {
            return this.steps().map((_, i) => create(i));
        }
        else {
            const steps = [this.index];
            for (let i = 1, left = this.index - 1, right = this.index + 1; i < this.visibleSteps(); right++, left--) {
                // Iterate in both directions to check current step is in visible range.
                if (right < this.stepCount) {
                    steps.push(right);
                    i++;
                }
                if (left >= 0 && i < this.visibleSteps()) {
                    steps.push(left);
                    i++;
                }
            }
            return steps.sort((l, r) => l - r).map(i => create(i));
        }
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiWizardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiWizardComponent, isStandalone: true, selector: "si-wizard", inputs: { backText: { classPropertyName: "backText", publicName: "backText", isSignal: true, isRequired: false, transformFunction: null }, nextText: { classPropertyName: "nextText", publicName: "nextText", isSignal: true, isRequired: false, transformFunction: null }, hideNavigation: { classPropertyName: "hideNavigation", publicName: "hideNavigation", isSignal: true, isRequired: false, transformFunction: null }, saveText: { classPropertyName: "saveText", publicName: "saveText", isSignal: true, isRequired: false, transformFunction: null }, hideSave: { classPropertyName: "hideSave", publicName: "hideSave", isSignal: true, isRequired: false, transformFunction: null }, completionText: { classPropertyName: "completionText", publicName: "completionText", isSignal: true, isRequired: false, transformFunction: null }, cancelText: { classPropertyName: "cancelText", publicName: "cancelText", isSignal: true, isRequired: false, transformFunction: null }, hasCancel: { classPropertyName: "hasCancel", publicName: "hasCancel", isSignal: true, isRequired: false, transformFunction: null }, enableCompletionPage: { classPropertyName: "enableCompletionPage", publicName: "enableCompletionPage", isSignal: true, isRequired: false, transformFunction: null }, completionPageVisibleTime: { classPropertyName: "completionPageVisibleTime", publicName: "completionPageVisibleTime", isSignal: true, isRequired: false, transformFunction: null }, stepIcon: { classPropertyName: "stepIcon", publicName: "stepIcon", isSignal: true, isRequired: false, transformFunction: null }, stepActiveIcon: { classPropertyName: "stepActiveIcon", publicName: "stepActiveIcon", isSignal: true, isRequired: false, transformFunction: null }, stepCompletedIcon: { classPropertyName: "stepCompletedIcon", publicName: "stepCompletedIcon", isSignal: true, isRequired: false, transformFunction: null }, stepFailedIcon: { classPropertyName: "stepFailedIcon", publicName: "stepFailedIcon", isSignal: true, isRequired: false, transformFunction: null }, verticalLayout: { classPropertyName: "verticalLayout", publicName: "verticalLayout", isSignal: true, isRequired: false, transformFunction: null }, inlineNavigation: { classPropertyName: "inlineNavigation", publicName: "inlineNavigation", isSignal: true, isRequired: false, transformFunction: null }, showStepNumbers: { classPropertyName: "showStepNumbers", publicName: "showStepNumbers", isSignal: true, isRequired: false, transformFunction: null }, showVerticalDivider: { classPropertyName: "showVerticalDivider", publicName: "showVerticalDivider", isSignal: true, isRequired: false, transformFunction: null }, verticalMinSize: { classPropertyName: "verticalMinSize", publicName: "verticalMinSize", isSignal: true, isRequired: false, transformFunction: null }, verticalMaxSize: { classPropertyName: "verticalMaxSize", publicName: "verticalMaxSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { completionAction: "completionAction", wizardCancel: "wizardCancel" }, host: { properties: { "class.vertical": "verticalLayout()", "style.--wizard-vertical-min-size": "verticalMinSize()", "style.--wizard-vertical-max-size": "verticalMaxSize()" }, classAttribute: "py-6 px-8 d-flex flex-column" }, queries: [{ propertyName: "steps", predicate: SiWizardStepComponent, isSignal: true }], viewQueries: [{ propertyName: "containerSteps", first: true, predicate: ["containerSteps"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (!showCompletionPage()) {\n  @if (!verticalLayout()) {\n    <div class=\"container-wizard\" [class.justify-content-center]=\"!inlineNavigation()\">\n      @if (inlineNavigation()) {\n        <ng-container *ngTemplateOutlet=\"cancelBtnHorizontal\" />\n        <ng-container *ngTemplateOutlet=\"backBtnHorizontal\" />\n      }\n      <ng-container *ngTemplateOutlet=\"stepsTemplate\" />\n      @if (inlineNavigation()) {\n        <ng-container *ngTemplateOutlet=\"nextBtnHorizontal\" />\n      }\n    </div>\n\n    <ng-container *ngTemplateOutlet=\"stepContent\" />\n    @if (inlineNavigation()) {\n      <ng-container *ngTemplateOutlet=\"saveBtn\" />\n    } @else {\n      <ng-container *ngTemplateOutlet=\"footer\" />\n    }\n  } @else {\n    @if (showVerticalDivider()) {\n      <div class=\"container-wizard vertical\">\n        <ng-container *ngTemplateOutlet=\"stepsTemplate\" />\n        <div class=\"vertical-divider\"></div>\n        <div class=\"d-flex flex-column w-100\">\n          <div class=\"steps-content\">\n            <ng-container *ngTemplateOutlet=\"stepContent\" />\n          </div>\n          <ng-container *ngTemplateOutlet=\"footer\" />\n        </div>\n      </div>\n    } @else {\n      <div class=\"container-wizard vertical\">\n        <ng-container *ngTemplateOutlet=\"stepsTemplate\" />\n        <div class=\"steps-content\">\n          <ng-container *ngTemplateOutlet=\"stepContent\" />\n        </div>\n      </div>\n      <ng-container *ngTemplateOutlet=\"footer\" />\n    }\n  }\n} @else {\n  <div class=\"text-center\">\n    <si-icon class=\"completion-icon-size text-success\" [icon]=\"icons.elementChecked\" />\n    <p class=\"si-h4\"> {{ completionText() | translate }}</p>\n  </div>\n}\n\n<ng-template #stepsTemplate>\n  <div\n    #containerSteps\n    class=\"container-steps\"\n    [class.vertical]=\"verticalLayout()\"\n    [class.mx-4]=\"inlineNavigation()\"\n    [class.mt-4]=\"!verticalLayout() && inlineNavigation()\"\n    (siResizeObserver)=\"updateVisibleSteps()\"\n  >\n    @for (item of activeSteps(); track item.index) {\n      <div class=\"step\">\n        <div\n          [class]=\"['line', 'previous', getStateClass(item.index)]\"\n          [class.dashed]=\"$first && item.index > 0\"\n          [class.vertical]=\"verticalLayout()\"\n          [class.spacer]=\"$first && item.index === 0\"\n        ></div>\n        <a\n          [class]=\"['focus-none', getStateClass(item.index)]\"\n          [attr.aria-current]=\"getAriaCurrent(item.index)\"\n          [attr.href]=\"!canActivate(item.index) || !currentStep?.isNextNavigable() ? null : '#'\"\n          (click)=\"activateStep($event, item.index)\"\n        >\n          @if (showStepNumbers() && !item.step.failed()) {\n            <div\n              class=\"step-icon number-step d-flex justify-content-center align-items-center px-1\"\n            >\n              <div class=\"circle\" [class.status-warning]=\"item.step.failed()\">\n                <span class=\"si-h5 px-2\" [class.completed-color]=\"item.index < index\">\n                  {{ item.index + 1 }}\n                </span>\n              </div>\n            </div>\n          } @else {\n            <si-icon\n              class=\"icon-lg step-icon\"\n              [class.status-warning]=\"item.step.failed()\"\n              [icon]=\"getState(item.step!, item.index)\"\n            />\n          }\n          <div\n            class=\"title si-h5\"\n            [class.text-center]=\"!verticalLayout()\"\n            [class.px-6]=\"!verticalLayout()\"\n            [attr.aria-disabled]=\"getAriaDisabled(item.index)\"\n            >{{ item.step.heading() | translate }}</div\n          >\n        </a>\n        @if (item.index + 1 < stepCount) {\n          <div\n            [class]=\"['line', getStateClass(item.index + 1)]\"\n            [class.vertical]=\"verticalLayout()\"\n            [class.dashed]=\"$last\"\n          ></div>\n        }\n      </div>\n    }\n  </div>\n</ng-template>\n\n<ng-template #stepContent>\n  <div [class.flex-grow-1]=\"!verticalLayout()\" [class.h-100]=\"verticalLayout()\">\n    <ng-content />\n  </div>\n</ng-template>\n\n<ng-template #cancelBtnHorizontal>\n  @if (hasCancel()) {\n    <div class=\"me-7\">\n      <div class=\"wizard-btn-container\" (click)=\"wizardCancel.emit()\">\n        <button\n          type=\"button\"\n          class=\"btn btn-circle btn-secondary mt-2 mb-4\"\n          [attr.aria-label]=\"cancelText() | translate\"\n        >\n          <si-icon [icon]=\"icons.elementCancel\" />\n        </button>\n        <div class=\"si-h5 text-primary\">{{ cancelText() | translate }}</div>\n      </div>\n    </div>\n  }\n</ng-template>\n\n<ng-template #footer>\n  <div class=\"wizard-footer pt-6\">\n    <div class=\"wizard-footer-inner\" [class.ms-6]=\"showVerticalDivider()\">\n      @if (hasCancel()) {\n        <button\n          type=\"button\"\n          class=\"btn btn-tertiary\"\n          [attr.aria-label]=\"cancelText() | translate\"\n          (click)=\"wizardCancel.emit()\"\n        >\n          {{ cancelText() | translate }}\n        </button>\n      }\n      @if (!hideNavigation()) {\n        <button\n          type=\"button\"\n          class=\"btn btn-secondary\"\n          [class.d-none]=\"index === 0\"\n          [class.end]=\"index !== 0\"\n          [attr.aria-label]=\"backText() | translate\"\n          (click)=\"back(1)\"\n        >\n          {{ backText() | translate }}\n        </button>\n\n        <button\n          type=\"button\"\n          class=\"btn btn-primary\"\n          [attr.aria-label]=\"nextText() | translate\"\n          [disabled]=\"!currentStep?.isValid()\"\n          [class.d-none]=\"index === steps().length - 1\"\n          [class.end]=\"index === 0\"\n          (click)=\"next(1)\"\n        >\n          {{ nextText() | translate }}\n        </button>\n      }\n\n      @if (!hideSave()) {\n        @if (index === steps().length - 1) {\n          <button\n            type=\"button\"\n            class=\"btn btn-primary save\"\n            [class.end]=\"hideNavigation()\"\n            [disabled]=\"!currentStep?.isValid() || !currentStep?.isNextNavigable()\"\n            (click)=\"save()\"\n            >{{ saveText() | translate }}</button\n          >\n        }\n      }\n    </div>\n  </div>\n</ng-template>\n\n<ng-template #backBtnHorizontal>\n  <div class=\"wizard-btn-container\">\n    @if (!hideNavigation()) {\n      <div class=\"back\" [class.invisible]=\"index === 0\" (click)=\"back(1)\">\n        <button\n          type=\"button\"\n          class=\"btn btn-secondary btn-circle mb-2\"\n          [attr.aria-label]=\"backText() | translate\"\n        >\n          <si-icon class=\"flip-rtl\" [icon]=\"icons.elementLeft4\" />\n        </button>\n        <div class=\"si-h5 text-primary\">{{ backText() | translate }}</div>\n      </div>\n    }\n  </div>\n</ng-template>\n\n<ng-template #nextBtnHorizontal>\n  <div class=\"wizard-btn-container\" [class.wizard-text-deactivate]=\"!currentStep?.isValid()\">\n    @if (!hideNavigation()) {\n      <div class=\"next\" [class.invisible]=\"index === steps().length - 1\" (click)=\"next(1)\">\n        <button\n          type=\"button\"\n          class=\"btn btn-primary btn-circle mb-2\"\n          [disabled]=\"!currentStep?.isValid()\"\n          [attr.aria-label]=\"nextText() | translate\"\n        >\n          <si-icon class=\"flip-rtl\" [icon]=\"icons.elementRight4\" />\n        </button>\n        <div\n          class=\"si-h5 text-primary\"\n          [class.text-muted]=\"!currentStep?.isValid()\"\n          [attr.aria-disabled]=\"!currentStep?.isValid()\"\n          >{{ nextText() | translate }}</div\n        >\n      </div>\n    }\n  </div>\n</ng-template>\n\n<ng-template #saveBtn>\n  @if (!hideSave()) {\n    <div [class.center-save]=\"!verticalLayout() && inlineNavigation()\">\n      @if (index === steps().length - 1) {\n        <button\n          type=\"button\"\n          class=\"btn btn-primary save\"\n          [disabled]=\"!currentStep?.isValid() || !currentStep?.isNextNavigable()\"\n          (click)=\"save()\"\n          >{{ saveText() | translate }}</button\n        >\n      }\n    </div>\n  }\n</ng-template>\n", styles: [":host.vertical{display:flex;flex-direction:column;block-size:100%}.container-steps{display:flex}.container-steps .step{display:grid}.container-steps:not(.vertical){inline-size:100%;justify-content:center;align-items:flex-start;padding-block:0}.container-steps:not(.vertical) .step{grid-template-columns:1fr auto 1fr;grid-template-rows:auto auto}.container-steps:not(.vertical) .step .step-icon{grid-row:1/2;grid-column:2/3;justify-self:center}.container-steps:not(.vertical) .step .title{margin-block-start:12px}.container-steps.vertical{flex-direction:column;block-size:100%;padding-block-start:32px;min-inline-size:var(--wizard-vertical-min-size, 180px);max-inline-size:var(--wizard-vertical-max-size, initial)}.container-steps.vertical .step{grid-template-columns:24px 1fr;grid-template-rows:auto auto auto;align-items:center;flex:0 1 auto}.container-steps.vertical .step .step-icon{grid-row:2/3;grid-column:1/2;justify-self:center}.container-steps.vertical .step .title{grid-row:2/3;grid-column:2/3;padding-inline-start:8px}.container-steps .completed-color{color:var(--element-text-inverse)}.line{grid-row:1;justify-self:stretch}.line.vertical{grid-column:1/2;align-self:stretch;justify-self:center;border-inline-start-color:var(--element-ui-2);border-inline-start-width:2px;border-inline-start-style:solid;min-block-size:12px}.line.vertical.dashed{border-inline-start-style:dashed}.line.vertical.spacer{block-size:12px;border:0}.line.vertical:not(.previous){grid-row:3}.line:not(.vertical){grid-column:3/4;border-block-start-width:2px;border-block-start-style:solid;border-block-start-color:var(--element-ui-2);align-self:center}.line:not(.vertical).previous{grid-column:1/2}.line:not(.vertical).dashed{inline-size:32px;border-block-start-style:dashed}.line:not(.vertical).spacer{display:none}.line:not(.vertical).dashed.previous{justify-self:end}.line.active,.line.completed{border-color:var(--element-ui-0)}.line.dashed.vertical{min-block-size:12px;inline-size:auto}.step{inline-size:100%;flex-shrink:1}.step a{display:grid;grid-template-columns:subgrid;grid-template-rows:subgrid;grid-row:1/-1;grid-column:1/-1;align-items:center;justify-self:center;color:var(--element-ui-2)}.step a:hover{text-decoration:none}.step a:focus-visible .step-icon{outline:var(--element-button-focus-width) solid var(--element-focus-default);outline-offset:calc(-1 * var(--element-button-focus-width));border-radius:12px}.step a:focus-visible .step-icon.number-step{outline:none}.step a:focus-visible .step-icon.number-step .circle{outline:var(--element-button-focus-width) solid var(--element-focus-default);outline-offset:var(--element-button-focus-overlay-width)}.step .title{grid-row:2/3;grid-column:1/-1;color:var(--element-text-secondary);display:-webkit-box;overflow:hidden;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical}.step .active,.step .active .title{color:var(--element-ui-0);cursor:default}.step .disabled,.step .disabled:hover,.step a.disabled>*{cursor:default}.step .disabled .title,.step .disabled:hover .title,.step a.disabled>* .title{color:var(--element-text-disabled)}.step .disabled .step-icon,.step .disabled:hover .step-icon,.step a.disabled>* .step-icon{color:var(--element-ui-3)}.step a:not(.disabled):hover,.step a:not(.disabled):hover .step-icon,.step a:not(.disabled):hover .title{color:var(--element-ui-0-hover)!important}.step .completed .title{color:var(--element-text-primary)}.step .completed .step-icon{color:var(--element-ui-0)}.step .completed .circle{background-color:currentColor}.container-wizard{inline-size:100%;display:flex;flex-wrap:nowrap}.container-wizard:not(.vertical){justify-content:center;padding-block-end:16px}.container-wizard.vertical{justify-content:start;block-size:100%}.container-wizard.vertical .steps-content{flex:100%;padding-inline-start:16px}.container-wizard .vertical-divider{border-inline-end:1px solid var(--element-ui-4);margin-block:0}.center-save{display:flex;justify-content:center;padding-block-start:16px}.wizard-btn-container{max-inline-size:50px;min-inline-size:40px;text-align:center;cursor:pointer}.wizard-btn-container.wizard-text-deactivate:hover{cursor:default}.wizard-btn-container:not(.wizard-text-deactivate):hover .text-primary{color:var(--element-ui-0-hover)!important}.completion-icon-size{font-size:96px}.circle{min-inline-size:18px;min-block-size:18px;border-radius:9px;border-width:1px;border-style:solid;border-color:currentColor;color:currentColor}.number-step{min-inline-size:24px;min-block-size:24px}.wizard-footer{container-type:inline-size}.wizard-footer-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:start;gap:16px}.wizard-footer-inner>.end{margin-inline-start:auto}@container (max-width: 400px){.wizard-footer-inner{flex-direction:column;align-items:stretch}.wizard-footer-inner>.end{margin-inline-start:unset}}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiResizeObserverDirective, selector: "[siResizeObserver]", inputs: ["resizeThrottle", "emitInitial"], outputs: ["siResizeObserver"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
__decorate([
    WebComponentContentChildren(SiWizardStepComponent)
], SiWizardComponent.prototype, "steps", void 0);
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiWizardComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-wizard', imports: [SiIconComponent, SiResizeObserverDirective, SiTranslatePipe, NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, host: {
                        class: 'py-6 px-8 d-flex flex-column',
                        '[class.vertical]': 'verticalLayout()',
                        '[style.--wizard-vertical-min-size]': 'verticalMinSize()',
                        '[style.--wizard-vertical-max-size]': 'verticalMaxSize()'
                    }, template: "@if (!showCompletionPage()) {\n  @if (!verticalLayout()) {\n    <div class=\"container-wizard\" [class.justify-content-center]=\"!inlineNavigation()\">\n      @if (inlineNavigation()) {\n        <ng-container *ngTemplateOutlet=\"cancelBtnHorizontal\" />\n        <ng-container *ngTemplateOutlet=\"backBtnHorizontal\" />\n      }\n      <ng-container *ngTemplateOutlet=\"stepsTemplate\" />\n      @if (inlineNavigation()) {\n        <ng-container *ngTemplateOutlet=\"nextBtnHorizontal\" />\n      }\n    </div>\n\n    <ng-container *ngTemplateOutlet=\"stepContent\" />\n    @if (inlineNavigation()) {\n      <ng-container *ngTemplateOutlet=\"saveBtn\" />\n    } @else {\n      <ng-container *ngTemplateOutlet=\"footer\" />\n    }\n  } @else {\n    @if (showVerticalDivider()) {\n      <div class=\"container-wizard vertical\">\n        <ng-container *ngTemplateOutlet=\"stepsTemplate\" />\n        <div class=\"vertical-divider\"></div>\n        <div class=\"d-flex flex-column w-100\">\n          <div class=\"steps-content\">\n            <ng-container *ngTemplateOutlet=\"stepContent\" />\n          </div>\n          <ng-container *ngTemplateOutlet=\"footer\" />\n        </div>\n      </div>\n    } @else {\n      <div class=\"container-wizard vertical\">\n        <ng-container *ngTemplateOutlet=\"stepsTemplate\" />\n        <div class=\"steps-content\">\n          <ng-container *ngTemplateOutlet=\"stepContent\" />\n        </div>\n      </div>\n      <ng-container *ngTemplateOutlet=\"footer\" />\n    }\n  }\n} @else {\n  <div class=\"text-center\">\n    <si-icon class=\"completion-icon-size text-success\" [icon]=\"icons.elementChecked\" />\n    <p class=\"si-h4\"> {{ completionText() | translate }}</p>\n  </div>\n}\n\n<ng-template #stepsTemplate>\n  <div\n    #containerSteps\n    class=\"container-steps\"\n    [class.vertical]=\"verticalLayout()\"\n    [class.mx-4]=\"inlineNavigation()\"\n    [class.mt-4]=\"!verticalLayout() && inlineNavigation()\"\n    (siResizeObserver)=\"updateVisibleSteps()\"\n  >\n    @for (item of activeSteps(); track item.index) {\n      <div class=\"step\">\n        <div\n          [class]=\"['line', 'previous', getStateClass(item.index)]\"\n          [class.dashed]=\"$first && item.index > 0\"\n          [class.vertical]=\"verticalLayout()\"\n          [class.spacer]=\"$first && item.index === 0\"\n        ></div>\n        <a\n          [class]=\"['focus-none', getStateClass(item.index)]\"\n          [attr.aria-current]=\"getAriaCurrent(item.index)\"\n          [attr.href]=\"!canActivate(item.index) || !currentStep?.isNextNavigable() ? null : '#'\"\n          (click)=\"activateStep($event, item.index)\"\n        >\n          @if (showStepNumbers() && !item.step.failed()) {\n            <div\n              class=\"step-icon number-step d-flex justify-content-center align-items-center px-1\"\n            >\n              <div class=\"circle\" [class.status-warning]=\"item.step.failed()\">\n                <span class=\"si-h5 px-2\" [class.completed-color]=\"item.index < index\">\n                  {{ item.index + 1 }}\n                </span>\n              </div>\n            </div>\n          } @else {\n            <si-icon\n              class=\"icon-lg step-icon\"\n              [class.status-warning]=\"item.step.failed()\"\n              [icon]=\"getState(item.step!, item.index)\"\n            />\n          }\n          <div\n            class=\"title si-h5\"\n            [class.text-center]=\"!verticalLayout()\"\n            [class.px-6]=\"!verticalLayout()\"\n            [attr.aria-disabled]=\"getAriaDisabled(item.index)\"\n            >{{ item.step.heading() | translate }}</div\n          >\n        </a>\n        @if (item.index + 1 < stepCount) {\n          <div\n            [class]=\"['line', getStateClass(item.index + 1)]\"\n            [class.vertical]=\"verticalLayout()\"\n            [class.dashed]=\"$last\"\n          ></div>\n        }\n      </div>\n    }\n  </div>\n</ng-template>\n\n<ng-template #stepContent>\n  <div [class.flex-grow-1]=\"!verticalLayout()\" [class.h-100]=\"verticalLayout()\">\n    <ng-content />\n  </div>\n</ng-template>\n\n<ng-template #cancelBtnHorizontal>\n  @if (hasCancel()) {\n    <div class=\"me-7\">\n      <div class=\"wizard-btn-container\" (click)=\"wizardCancel.emit()\">\n        <button\n          type=\"button\"\n          class=\"btn btn-circle btn-secondary mt-2 mb-4\"\n          [attr.aria-label]=\"cancelText() | translate\"\n        >\n          <si-icon [icon]=\"icons.elementCancel\" />\n        </button>\n        <div class=\"si-h5 text-primary\">{{ cancelText() | translate }}</div>\n      </div>\n    </div>\n  }\n</ng-template>\n\n<ng-template #footer>\n  <div class=\"wizard-footer pt-6\">\n    <div class=\"wizard-footer-inner\" [class.ms-6]=\"showVerticalDivider()\">\n      @if (hasCancel()) {\n        <button\n          type=\"button\"\n          class=\"btn btn-tertiary\"\n          [attr.aria-label]=\"cancelText() | translate\"\n          (click)=\"wizardCancel.emit()\"\n        >\n          {{ cancelText() | translate }}\n        </button>\n      }\n      @if (!hideNavigation()) {\n        <button\n          type=\"button\"\n          class=\"btn btn-secondary\"\n          [class.d-none]=\"index === 0\"\n          [class.end]=\"index !== 0\"\n          [attr.aria-label]=\"backText() | translate\"\n          (click)=\"back(1)\"\n        >\n          {{ backText() | translate }}\n        </button>\n\n        <button\n          type=\"button\"\n          class=\"btn btn-primary\"\n          [attr.aria-label]=\"nextText() | translate\"\n          [disabled]=\"!currentStep?.isValid()\"\n          [class.d-none]=\"index === steps().length - 1\"\n          [class.end]=\"index === 0\"\n          (click)=\"next(1)\"\n        >\n          {{ nextText() | translate }}\n        </button>\n      }\n\n      @if (!hideSave()) {\n        @if (index === steps().length - 1) {\n          <button\n            type=\"button\"\n            class=\"btn btn-primary save\"\n            [class.end]=\"hideNavigation()\"\n            [disabled]=\"!currentStep?.isValid() || !currentStep?.isNextNavigable()\"\n            (click)=\"save()\"\n            >{{ saveText() | translate }}</button\n          >\n        }\n      }\n    </div>\n  </div>\n</ng-template>\n\n<ng-template #backBtnHorizontal>\n  <div class=\"wizard-btn-container\">\n    @if (!hideNavigation()) {\n      <div class=\"back\" [class.invisible]=\"index === 0\" (click)=\"back(1)\">\n        <button\n          type=\"button\"\n          class=\"btn btn-secondary btn-circle mb-2\"\n          [attr.aria-label]=\"backText() | translate\"\n        >\n          <si-icon class=\"flip-rtl\" [icon]=\"icons.elementLeft4\" />\n        </button>\n        <div class=\"si-h5 text-primary\">{{ backText() | translate }}</div>\n      </div>\n    }\n  </div>\n</ng-template>\n\n<ng-template #nextBtnHorizontal>\n  <div class=\"wizard-btn-container\" [class.wizard-text-deactivate]=\"!currentStep?.isValid()\">\n    @if (!hideNavigation()) {\n      <div class=\"next\" [class.invisible]=\"index === steps().length - 1\" (click)=\"next(1)\">\n        <button\n          type=\"button\"\n          class=\"btn btn-primary btn-circle mb-2\"\n          [disabled]=\"!currentStep?.isValid()\"\n          [attr.aria-label]=\"nextText() | translate\"\n        >\n          <si-icon class=\"flip-rtl\" [icon]=\"icons.elementRight4\" />\n        </button>\n        <div\n          class=\"si-h5 text-primary\"\n          [class.text-muted]=\"!currentStep?.isValid()\"\n          [attr.aria-disabled]=\"!currentStep?.isValid()\"\n          >{{ nextText() | translate }}</div\n        >\n      </div>\n    }\n  </div>\n</ng-template>\n\n<ng-template #saveBtn>\n  @if (!hideSave()) {\n    <div [class.center-save]=\"!verticalLayout() && inlineNavigation()\">\n      @if (index === steps().length - 1) {\n        <button\n          type=\"button\"\n          class=\"btn btn-primary save\"\n          [disabled]=\"!currentStep?.isValid() || !currentStep?.isNextNavigable()\"\n          (click)=\"save()\"\n          >{{ saveText() | translate }}</button\n        >\n      }\n    </div>\n  }\n</ng-template>\n", styles: [":host.vertical{display:flex;flex-direction:column;block-size:100%}.container-steps{display:flex}.container-steps .step{display:grid}.container-steps:not(.vertical){inline-size:100%;justify-content:center;align-items:flex-start;padding-block:0}.container-steps:not(.vertical) .step{grid-template-columns:1fr auto 1fr;grid-template-rows:auto auto}.container-steps:not(.vertical) .step .step-icon{grid-row:1/2;grid-column:2/3;justify-self:center}.container-steps:not(.vertical) .step .title{margin-block-start:12px}.container-steps.vertical{flex-direction:column;block-size:100%;padding-block-start:32px;min-inline-size:var(--wizard-vertical-min-size, 180px);max-inline-size:var(--wizard-vertical-max-size, initial)}.container-steps.vertical .step{grid-template-columns:24px 1fr;grid-template-rows:auto auto auto;align-items:center;flex:0 1 auto}.container-steps.vertical .step .step-icon{grid-row:2/3;grid-column:1/2;justify-self:center}.container-steps.vertical .step .title{grid-row:2/3;grid-column:2/3;padding-inline-start:8px}.container-steps .completed-color{color:var(--element-text-inverse)}.line{grid-row:1;justify-self:stretch}.line.vertical{grid-column:1/2;align-self:stretch;justify-self:center;border-inline-start-color:var(--element-ui-2);border-inline-start-width:2px;border-inline-start-style:solid;min-block-size:12px}.line.vertical.dashed{border-inline-start-style:dashed}.line.vertical.spacer{block-size:12px;border:0}.line.vertical:not(.previous){grid-row:3}.line:not(.vertical){grid-column:3/4;border-block-start-width:2px;border-block-start-style:solid;border-block-start-color:var(--element-ui-2);align-self:center}.line:not(.vertical).previous{grid-column:1/2}.line:not(.vertical).dashed{inline-size:32px;border-block-start-style:dashed}.line:not(.vertical).spacer{display:none}.line:not(.vertical).dashed.previous{justify-self:end}.line.active,.line.completed{border-color:var(--element-ui-0)}.line.dashed.vertical{min-block-size:12px;inline-size:auto}.step{inline-size:100%;flex-shrink:1}.step a{display:grid;grid-template-columns:subgrid;grid-template-rows:subgrid;grid-row:1/-1;grid-column:1/-1;align-items:center;justify-self:center;color:var(--element-ui-2)}.step a:hover{text-decoration:none}.step a:focus-visible .step-icon{outline:var(--element-button-focus-width) solid var(--element-focus-default);outline-offset:calc(-1 * var(--element-button-focus-width));border-radius:12px}.step a:focus-visible .step-icon.number-step{outline:none}.step a:focus-visible .step-icon.number-step .circle{outline:var(--element-button-focus-width) solid var(--element-focus-default);outline-offset:var(--element-button-focus-overlay-width)}.step .title{grid-row:2/3;grid-column:1/-1;color:var(--element-text-secondary);display:-webkit-box;overflow:hidden;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical}.step .active,.step .active .title{color:var(--element-ui-0);cursor:default}.step .disabled,.step .disabled:hover,.step a.disabled>*{cursor:default}.step .disabled .title,.step .disabled:hover .title,.step a.disabled>* .title{color:var(--element-text-disabled)}.step .disabled .step-icon,.step .disabled:hover .step-icon,.step a.disabled>* .step-icon{color:var(--element-ui-3)}.step a:not(.disabled):hover,.step a:not(.disabled):hover .step-icon,.step a:not(.disabled):hover .title{color:var(--element-ui-0-hover)!important}.step .completed .title{color:var(--element-text-primary)}.step .completed .step-icon{color:var(--element-ui-0)}.step .completed .circle{background-color:currentColor}.container-wizard{inline-size:100%;display:flex;flex-wrap:nowrap}.container-wizard:not(.vertical){justify-content:center;padding-block-end:16px}.container-wizard.vertical{justify-content:start;block-size:100%}.container-wizard.vertical .steps-content{flex:100%;padding-inline-start:16px}.container-wizard .vertical-divider{border-inline-end:1px solid var(--element-ui-4);margin-block:0}.center-save{display:flex;justify-content:center;padding-block-start:16px}.wizard-btn-container{max-inline-size:50px;min-inline-size:40px;text-align:center;cursor:pointer}.wizard-btn-container.wizard-text-deactivate:hover{cursor:default}.wizard-btn-container:not(.wizard-text-deactivate):hover .text-primary{color:var(--element-ui-0-hover)!important}.completion-icon-size{font-size:96px}.circle{min-inline-size:18px;min-block-size:18px;border-radius:9px;border-width:1px;border-style:solid;border-color:currentColor;color:currentColor}.number-step{min-inline-size:24px;min-block-size:24px}.wizard-footer{container-type:inline-size}.wizard-footer-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:start;gap:16px}.wizard-footer-inner>.end{margin-inline-start:auto}@container (max-width: 400px){.wizard-footer-inner{flex-direction:column;align-items:stretch}.wizard-footer-inner>.end{margin-inline-start:unset}}\n"] }]
        }], propDecorators: { containerSteps: [{ type: i0.ViewChild, args: ['containerSteps', { isSignal: true }] }], backText: [{ type: i0.Input, args: [{ isSignal: true, alias: "backText", required: false }] }], nextText: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextText", required: false }] }], hideNavigation: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideNavigation", required: false }] }], saveText: [{ type: i0.Input, args: [{ isSignal: true, alias: "saveText", required: false }] }], hideSave: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideSave", required: false }] }], completionText: [{ type: i0.Input, args: [{ isSignal: true, alias: "completionText", required: false }] }], cancelText: [{ type: i0.Input, args: [{ isSignal: true, alias: "cancelText", required: false }] }], hasCancel: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasCancel", required: false }] }], enableCompletionPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableCompletionPage", required: false }] }], completionPageVisibleTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "completionPageVisibleTime", required: false }] }], stepIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepIcon", required: false }] }], stepActiveIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepActiveIcon", required: false }] }], stepCompletedIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepCompletedIcon", required: false }] }], stepFailedIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepFailedIcon", required: false }] }], verticalLayout: [{ type: i0.Input, args: [{ isSignal: true, alias: "verticalLayout", required: false }] }], inlineNavigation: [{ type: i0.Input, args: [{ isSignal: true, alias: "inlineNavigation", required: false }] }], showStepNumbers: [{ type: i0.Input, args: [{ isSignal: true, alias: "showStepNumbers", required: false }] }], showVerticalDivider: [{ type: i0.Input, args: [{ isSignal: true, alias: "showVerticalDivider", required: false }] }], verticalMinSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "verticalMinSize", required: false }] }], verticalMaxSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "verticalMaxSize", required: false }] }], completionAction: [{ type: i0.Output, args: ["completionAction"] }], wizardCancel: [{ type: i0.Output, args: ["wizardCancel"] }], steps: [] } });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiWizardModule {
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiWizardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
    static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: SiWizardModule, imports: [SiWizardComponent, SiWizardStepComponent], exports: [SiWizardComponent, SiWizardStepComponent] });
    static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiWizardModule, imports: [SiWizardComponent] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiWizardModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [SiWizardComponent, SiWizardStepComponent],
                    exports: [SiWizardComponent, SiWizardStepComponent]
                }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */

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

export { SiWizardComponent, SiWizardModule, SiWizardStepComponent };
//# sourceMappingURL=siemens-element-ng-wizard.mjs.map
