{"version":3,"file":"fundamental-ngx-core-wizard.mjs","sources":["../../../../libs/core/wizard/wizard-next-step/wizard-next-step.component.ts","../../../../libs/core/wizard/wizard-next-step/wizard-next-step.component.html","../../../../libs/core/wizard/wizard-content/wizard-content.component.ts","../../../../libs/core/wizard/wizard-content/wizard-content.component.html","../../../../libs/core/wizard/wizard-injection-token.ts","../../../../libs/core/wizard/wizard-navigation/wizard-navigation.component.ts","../../../../libs/core/wizard/wizard-navigation/wizard-navigation.component.html","../../../../libs/core/wizard/wizard-progress-bar/wizard-progress-bar.directive.ts","../../../../libs/core/wizard/constants.ts","../../../../libs/core/wizard/wizard-step-indicator/wizard-step-indicator.component.ts","../../../../libs/core/wizard/wizard-step-indicator/wizard-step-indicator.component.html","../../../../libs/core/wizard/wizard-step/wizard-step.component.ts","../../../../libs/core/wizard/wizard-step/wizard-step.component.html","../../../../libs/core/wizard/wizard.service.ts","../../../../libs/core/wizard/wizard.component.ts","../../../../libs/core/wizard/wizard.component.html","../../../../libs/core/wizard/wizard.module.ts","../../../../libs/core/wizard/fundamental-ngx-core-wizard.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, Input, inject } from '@angular/core';\n\n@Component({\n    selector: 'fd-wizard-next-step',\n    templateUrl: './wizard-next-step.component.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: true\n})\nexport class WizardNextStepComponent {\n    /**\n     * Whether or not the next step button should float directly above the footer.\n     */\n    @Input()\n    floating = false;\n\n    /**\n     * Whether or not element can be hidden when step status is completed.\n     */\n    @Input()\n    set canHide(value: boolean) {\n        this._canHide = value;\n\n        if (!value) {\n            this._showElement();\n        }\n    }\n\n    get canHide(): boolean {\n        return this._canHide;\n    }\n\n    /** @hidden */\n    private _canHide = true;\n\n    /** @hidden */\n    private readonly _elRef = inject(ElementRef);\n\n    /** @hidden */\n    _getElRef(): ElementRef {\n        return this._elRef;\n    }\n\n    /** @hidden */\n    _showElement(): void {\n        this._elRef.nativeElement.style.removeProperty('display');\n    }\n\n    /** @hidden */\n    _hideElement(): void {\n        this._elRef.nativeElement.style.display = 'none';\n    }\n}\n","<div class=\"fd-wizard__next-step\" [class.fd-wizard__next-step--floating]=\"floating\">\n    <ng-content></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component, ContentChild, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { WizardNextStepComponent } from '../wizard-next-step/wizard-next-step.component';\nimport { WizardSize } from '../wizard-progress-bar/wizard-progress-bar.directive';\n\nexport type WizardContentBackground = 'solid' | 'list' | 'transparent';\n\n@Component({\n    selector: 'fd-wizard-content',\n    templateUrl: './wizard-content.component.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    styleUrl: './wizard-content.component.scss',\n    standalone: true\n})\nexport class WizardContentComponent {\n    /**\n     * The type of wizard background ('solid', 'list', or 'transparent').\n     */\n    @Input()\n    contentBackground: WizardContentBackground;\n\n    /**\n     * Size (horizontal paddings) of the wizard content.\n     */\n    @Input()\n    size: WizardSize;\n\n    /** @hidden */\n    @ViewChild('contentTemplate')\n    contentTemplate: TemplateRef<any>;\n\n    /** @hidden */\n    @ContentChild(WizardNextStepComponent)\n    nextStep: WizardNextStepComponent;\n\n    /** @hidden */\n    wizardContentId: string;\n\n    /** @hidden */\n    tallContent = false;\n}\n","<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","import { InjectionToken } from '@angular/core';\n\nexport interface WizardComponentInterface {\n    displaySummaryStep: boolean;\n    ariaLabel: string;\n}\n\nexport const WIZARD = new InjectionToken<WizardComponentInterface>('Wizard component dependency');\n","import { ChangeDetectionStrategy, Component, Inject, Input, Optional } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { WIZARD, WizardComponentInterface } from '../wizard-injection-token';\n\n@Component({\n    selector: 'fd-wizard-navigation',\n    templateUrl: './wizard-navigation.component.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: true\n})\nexport class WizardNavigationComponent {\n    /** Aria label for the wizard navigation component element. */\n    @Input()\n    set ariaLabel(value: Nullable<string>) {\n        this._ariaLabel = value;\n    }\n    get ariaLabel(): string | undefined {\n        return this._ariaLabel ?? this._wizard?.ariaLabel;\n    }\n\n    /** @hidden */\n    private _ariaLabel: Nullable<string>;\n\n    /** @hidden */\n    constructor(@Optional() @Inject(WIZARD) private _wizard?: WizardComponentInterface) {}\n}\n","<nav class=\"fd-wizard__navigation\" [attr.aria-label]=\"ariaLabel\">\n    <ng-content></ng-content>\n</nav>\n","import { Directive, Input } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nexport type WizardSize = 'sm' | 'md' | 'lg' | 'xl';\n\n@Directive({\n    // eslint-disable-next-line @angular-eslint/directive-selector\n    selector: '[fd-wizard-progress-bar]',\n    host: {\n        class: 'fd-wizard__progress-bar',\n        '[class.fd-wizard__progress-bar--sm]': 'size === \"sm\"',\n        '[class.fd-wizard__progress-bar--md]': 'size === \"md\"',\n        '[class.fd-wizard__progress-bar--lg]': 'size === \"lg\"',\n        '[class.fd-wizard__progress-bar--xl]': 'size === \"xl\"',\n        '[style.display]': 'visible ? \"\" : \"none\"'\n    },\n    standalone: true\n})\nexport class WizardProgressBarDirective {\n    /**\n     * Size (horizontal paddings) of the wizard progress bar.\n     */\n    @Input()\n    size: Nullable<WizardSize> = null;\n\n    /** @hidden */\n    visible = true;\n}\n","import { InjectionToken } from '@angular/core';\nimport { WizardStepIndicator } from './models/wizard-step';\n\nexport const ACTIVE_STEP_STATUS = 'active';\nexport const CURRENT_STEP_STATUS = 'current';\nexport const UPCOMING_STEP_STATUS = 'upcoming';\nexport const COMPLETED_STEP_STATUS = 'completed';\nexport const FD_WIZARD_STEP_INDICATOR = new InjectionToken<WizardStepIndicator>('FdWizardStepindicator');\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    EventEmitter,\n    Input,\n    OnDestroy,\n    Output,\n    ViewChild,\n    signal\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport {\n    ActionSheetBodyComponent,\n    ActionSheetComponent,\n    ActionSheetControlComponent,\n    ActionSheetItemComponent\n} from '@fundamental-ngx/core/action-sheet';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent, IconFont } from '@fundamental-ngx/core/icon';\nimport { Subscription } from 'rxjs';\nimport { FD_WIZARD_STEP_INDICATOR } from '../constants';\nimport { WizardStepIndicator } from '../models/wizard-step';\nimport { WizardStepComponent } from '../wizard-step/wizard-step.component';\n\n@Component({\n    selector: 'fd-wizard-step-indicator',\n    templateUrl: './wizard-step-indicator.component.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        {\n            provide: FD_WIZARD_STEP_INDICATOR,\n            useExisting: WizardStepIndicatorComponent\n        }\n    ],\n    imports: [\n        ActionSheetComponent,\n        ActionSheetControlComponent,\n        NgTemplateOutlet,\n        ActionSheetBodyComponent,\n        ActionSheetItemComponent,\n        IconComponent\n    ]\n})\nexport class WizardStepIndicatorComponent implements WizardStepIndicator, OnDestroy {\n    /**\n     * The icon to use for this step.\n     */\n    @Input()\n    glyph: Nullable<string>;\n\n    /** Glyph font family */\n    @Input()\n    glyphFont: IconFont = FD_DEFAULT_ICON_FONT_FAMILY;\n\n    /**\n     * Event emitted when this step indicator is clicked.\n     */\n    @Output()\n    stepIndicatorItemClicked = new EventEmitter<WizardStepComponent>();\n\n    /** @hidden */\n    @ViewChild(ActionSheetComponent)\n    actionSheet: ActionSheetComponent;\n\n    /** @hidden */\n    stackedItems$ = signal<WizardStepComponent[]>([]);\n\n    /** @hidden */\n    private _subscriptions = new Subscription();\n\n    /** @hidden */\n    ngOnDestroy(): void {\n        this._subscriptions.unsubscribe();\n    }\n\n    /** @hidden */\n    stepItemClicked(step?: WizardStepComponent, event?: MouseEvent): void {\n        if (step && step.visited) {\n            if (this.actionSheet) {\n                this.actionSheet.close();\n            }\n            event?.preventDefault();\n            this.stepIndicatorItemClicked.emit(step);\n        }\n    }\n\n    /** @hidden */\n    setStackedItems(items: WizardStepComponent[]): void {\n        this.stackedItems$.set(items || []);\n    }\n}\n","@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","import { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport {\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ContentChild,\n    ElementRef,\n    EventEmitter,\n    Inject,\n    Input,\n    OnChanges,\n    OnDestroy,\n    Optional,\n    Output,\n    SimpleChanges,\n    ViewChild\n} from '@angular/core';\nimport { KeyUtil, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Subscription } from 'rxjs';\nimport { WizardContentComponent } from '../wizard-content/wizard-content.component';\n\nexport type WizardStepStatus = 'completed' | 'current' | 'upcoming' | 'active';\n\nimport { COMPLETED_STEP_STATUS, CURRENT_STEP_STATUS, FD_WIZARD_STEP_INDICATOR } from '../constants';\nimport { WizardStepIndicator } from '../models/wizard-step';\nimport { WIZARD, WizardComponentInterface } from '../wizard-injection-token';\n\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: '[fd-wizard-step]',\n    host: {\n        class: 'fd-wizard__step',\n        '[class.fd-wizard__step--completed]': 'status === \"completed\" || completed',\n        '[class.fd-wizard__step--current]': 'status === \"current\"',\n        '[class.fd-wizard__step--upcoming]': 'status === \"upcoming\"',\n        '[class.fd-wizard__step--active]': 'status === \"active\"',\n        '[attr.aria-label]': 'ariaLabel'\n    },\n    templateUrl: './wizard-step.component.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: []\n})\nexport class WizardStepComponent implements OnChanges, AfterViewInit, OnDestroy {\n    /**\n     * The aria-label for the step container.\n     */\n    @Input()\n    ariaLabel: Nullable<string>;\n\n    /**\n     * @deprecated\n     */\n    @Input()\n    ariaRoleDecription = 'Navigation';\n\n    /**\n     * The type of step ('completed', 'current', 'upcoming', and 'active'.)\n     */\n    @Input()\n    status: WizardStepStatus;\n\n    /**\n     * Whether or not this is a 'branching' step.\n     */\n    @Input()\n    branching = false;\n\n    /**\n     * The label text.\n     */\n    @Input()\n    label: string;\n\n    /**\n     * The smaller text for labeling the step as optional.\n     */\n    @Input()\n    optionalText: string;\n\n    /**\n     * Whether or not this step is the summary page.\n     */\n    @Input()\n    isSummary = false;\n\n    /**\n     * User-defined validation function which determines if user can navigate between steps.\n     */\n    @Input()\n    stepClickValidator: (visited: boolean, completed: boolean) => boolean | Promise<boolean>;\n\n    /**\n     * Event emitted when the wizard step's status changes.\n     */\n    @Output()\n    statusChange = new EventEmitter<WizardStepStatus>();\n\n    /**\n     * Event emitted when a step is clicked.\n     */\n    @Output()\n    stepClicked = new EventEmitter<WizardStepComponent>();\n\n    /**\n     * Event emitted when a step indicator is clicked.\n     */\n    @Output()\n    stepIndicatorItemClicked = new EventEmitter<WizardStepComponent>();\n\n    /** @hidden */\n    @ContentChild(WizardContentComponent)\n    content: WizardContentComponent;\n\n    /** @hidden */\n    @ContentChild(FD_WIZARD_STEP_INDICATOR)\n    stepIndicator: WizardStepIndicator<WizardStepComponent>;\n\n    /** The wizard label span element. */\n    @ViewChild('wizardLabel', { read: ElementRef })\n    wizardLabel: ElementRef;\n\n    /** @hidden */\n    @ViewChild('progressBarLink', { read: ElementRef })\n    progressBarLink: ElementRef;\n\n    /** @hidden */\n    glyph: string;\n\n    /** @hidden */\n    visited = false;\n\n    /** @hidden */\n    completed = false;\n\n    /** @hidden */\n    _stepId: number;\n\n    /** @hidden */\n    _finalStep = false;\n\n    /** @hidden */\n    _isValidated = true;\n\n    /** @hidden */\n    private _subscriptions: Subscription = new Subscription();\n\n    /** @hidden */\n    constructor(\n        private _elRef: ElementRef,\n        private _cdRef: ChangeDetectorRef,\n        @Optional() @Inject(WIZARD) private _wizard: WizardComponentInterface\n    ) {}\n\n    /** @hidden */\n    ngOnChanges(changes: SimpleChanges): void {\n        if (changes && changes.status) {\n            if (\n                changes.status.previousValue === CURRENT_STEP_STATUS &&\n                changes.status.currentValue === COMPLETED_STEP_STATUS\n            ) {\n                this.completed = true;\n            }\n            this.statusChange.emit(this.status);\n        }\n    }\n\n    /** @hidden */\n    ngAfterViewInit(): void {\n        if (this.isSummary && !this._wizard?.displaySummaryStep) {\n            this._summaryInit();\n        } else if (this.stepIndicator) {\n            this._notSummaryInit();\n        }\n    }\n\n    /** @hidden */\n    ngOnDestroy(): void {\n        this._subscriptions.unsubscribe();\n    }\n\n    /** @hidden */\n    setFinalStep(val: boolean): void {\n        this._finalStep = val;\n        this._cdRef.detectChanges();\n    }\n\n    /** @hidden */\n    async stepContainerKeypress(event?: KeyboardEvent): Promise<void> {\n        if (event) {\n            event.preventDefault();\n        }\n\n        if (\n            this.visited &&\n            (!event || KeyUtil.isKeyCode(event, [SPACE, ENTER])) &&\n            (!this.stepIndicator ||\n                !this.stepIndicator.stackedItems$() ||\n                !this.stepIndicator.stackedItems$().length) &&\n            (this.stepClickValidator === undefined ||\n                (await this.stepClickValidator(this.visited, this.completed)) === true)\n        ) {\n            this.stepClicked.emit(this);\n            this._isValidated = true;\n        } else {\n            this._isValidated = false;\n        }\n    }\n\n    /** @hidden */\n    getClassList(): DOMTokenList {\n        return this._elRef.nativeElement.classList;\n    }\n\n    /** @hidden */\n    hasLabel(label: string): boolean {\n        return this._elRef.nativeElement.classList.contains(label);\n    }\n\n    /** @hidden */\n    getStepClientWidth(): number {\n        return this._elRef.nativeElement.clientWidth;\n    }\n\n    /** @hidden */\n    removeFromDom(): void {\n        if (this._elRef.nativeElement.parentNode) {\n            this._elRef.nativeElement.parentNode.removeChild(this._elRef.nativeElement);\n        }\n    }\n\n    /** @hidden */\n    _summaryInit(): void {\n        this._elRef.nativeElement.style.display = 'none';\n        this.content.tallContent = true;\n    }\n\n    /** @hidden */\n    _notSummaryInit(): void {\n        this._subscriptions.add(\n            this.stepIndicator.stepIndicatorItemClicked.subscribe((step) => {\n                this.stepIndicatorItemClicked.emit(step);\n            })\n        );\n        if (this.stepIndicator.glyph) {\n            this.glyph = this.stepIndicator.glyph;\n        }\n    }\n}\n","<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","import { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport { Injectable, QueryList, inject } from '@angular/core';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { COMPLETED_STEP_STATUS, CURRENT_STEP_STATUS } from './constants';\nimport { WizardStepComponent } from './wizard-step/wizard-step.component';\n\n@Injectable()\nexport class WizardService {\n    /** @hidden */\n    private readonly _rtlService = inject(RtlService, { optional: true });\n\n    /** @hidden */\n    progressBarKeyHandler(event: any, steps: QueryList<WizardStepComponent>, index: number): void {\n        const rtlDirection = this._rtlService?.rtl();\n        if (KeyUtil.isKeyCode(event, LEFT_ARROW)) {\n            if (\n                steps.get(index - 1)?.status === COMPLETED_STEP_STATUS ||\n                steps.get(index - 1)?.status === CURRENT_STEP_STATUS\n            ) {\n                if (!rtlDirection) {\n                    this._focusPrevious(index, steps);\n                } else {\n                    this._focusNext(index, steps);\n                }\n            }\n        } else if (KeyUtil.isKeyCode(event, RIGHT_ARROW)) {\n            if (steps.get(index)?.status === COMPLETED_STEP_STATUS) {\n                if (!rtlDirection) {\n                    this._focusNext(index, steps);\n                } else {\n                    this._focusPrevious(index, steps);\n                }\n            }\n        }\n    }\n\n    /** @hidden */\n    private _focusNext(index: number, steps: QueryList<WizardStepComponent>): void {\n        if (index + 1 < steps.length) {\n            steps.get(index + 1)?.progressBarLink.nativeElement.focus();\n        } else {\n            steps.get(0)?.progressBarLink.nativeElement.focus();\n        }\n    }\n\n    /** @hidden */\n    private _focusPrevious(index: number, steps: QueryList<WizardStepComponent>): void {\n        if (index - 1 >= 0) {\n            steps.get(index - 1)?.progressBarLink.nativeElement.focus();\n        } else {\n            steps.get(steps.length - 1)?.progressBarLink.nativeElement.focus();\n        }\n    }\n}\n","import { CdkScrollable } from '@angular/cdk/scrolling';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ContentChild,\n    ContentChildren,\n    ElementRef,\n    HostBinding,\n    HostListener,\n    Inject,\n    Input,\n    OnDestroy,\n    Optional,\n    QueryList,\n    TemplateRef,\n    ViewChild,\n    ViewEncapsulation,\n    inject\n} from '@angular/core';\nimport { Nullable, TabbableElementService, scrollTop } from '@fundamental-ngx/cdk/utils';\nimport { DialogBodyComponent, FD_DIALOG_BODY_COMPONENT } from '@fundamental-ngx/core/dialog';\nimport { ScrollSpyDirective } from '@fundamental-ngx/core/scroll-spy';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { resolveTranslationSignal } from '@fundamental-ngx/i18n';\nimport { Subscription } from 'rxjs';\nimport { ACTIVE_STEP_STATUS, COMPLETED_STEP_STATUS, CURRENT_STEP_STATUS, UPCOMING_STEP_STATUS } from './constants';\nimport { WizardContentComponent } from './wizard-content/wizard-content.component';\nimport { WIZARD } from './wizard-injection-token';\nimport { WizardProgressBarDirective } from './wizard-progress-bar/wizard-progress-bar.directive';\nimport { WizardStepComponent } from './wizard-step/wizard-step.component';\nimport { WizardService } from './wizard.service';\n\nexport const STEP_MIN_WIDTH = 168;\nexport const STEP_STACKED_TOP_CLASS = 'fd-wizard__step--stacked-top';\nexport const STEP_STACKED_CLASS = 'fd-wizard__step--stacked';\nexport const STEP_NO_LABEL_CLASS = 'fd-wizard__step--no-label';\n\nexport const WIZARD_NAVIGATION_CLASS = 'fd-wizard__navigation';\nexport const WIZARD_CONTENT_CLASS = 'fd-wizard__content';\nexport const WIZARD_CONTAINER_WRAPPER_CLASS = 'fd-wizard-container-wrapper';\nexport const WIZARD_TALL_CONTENT_CLASS = 'fd-wizard-tall-content';\nexport const SHELLBAR_CLASS = 'fd-shellbar';\nexport const BAR_FOOTER_CLASS = 'fd-bar--footer';\nexport const BAR_FLOATING_FOOTER_CLASS = 'fd-bar--floating-footer';\n\nexport let _fromScrollToCurrentStep;\nexport let timer: any = null;\nexport const handleTimeoutReference = (): void => {\n    if (timer !== null) {\n        clearTimeout(timer);\n    }\n    timer = setTimeout(() => {\n        _fromScrollToCurrentStep = false;\n    }, 150);\n};\n\n@Component({\n    selector: 'fd-wizard',\n    templateUrl: './wizard.component.html',\n    styleUrl: './wizard.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        WizardService,\n        {\n            provide: WIZARD,\n            useExisting: WizardComponent\n        }\n    ],\n    host: {\n        role: 'region',\n        '[attr.aria-label]': 'ariaLabel || _defaultAriaLabel()'\n    },\n    imports: [ScrollSpyDirective, CdkScrollable, ScrollbarDirective, NgTemplateOutlet]\n})\nexport class WizardComponent implements AfterViewInit, OnDestroy {\n    /**\n     * Whether or not to append the step to the wizard. If false, each step will be displayed on a different page.\n     * Default is true.\n     */\n    @Input()\n    appendToWizard = true;\n\n    /**\n     * Custom height to use for the wizard's content pane. By default, this value is calc(100vh - 144px), where 144px\n     * is the combined height of the shellbar, wizard header and wizard footer.\n     */\n    @Input()\n    contentHeight: Nullable<string | null>;\n\n    /**\n     * Whether or not apply responsive paddings styling.\n     */\n    @Input()\n    @HostBinding('class.fd-wizard--responsive-paddings')\n    responsivePaddings = false;\n\n    /** Whether to display a summary step.  */\n    @Input()\n    displaySummaryStep = false;\n\n    /**\n     * adding aria label to the component\n     * If not provided, is being translated by i18n package\n     */\n    @Input()\n    ariaLabel: string;\n\n    /** @hidden */\n    @ContentChildren(WizardStepComponent, { descendants: true })\n    steps: QueryList<WizardStepComponent>;\n\n    /** @hidden */\n    @ContentChild(WizardProgressBarDirective)\n    progressBar: WizardProgressBarDirective;\n\n    /** @hidden */\n    @ContentChildren(WizardContentComponent)\n    wizardContent: WizardContentComponent;\n\n    /** @hidden */\n    @ViewChild('wrapperContainer')\n    wrapperContainer: ElementRef<HTMLElement>;\n\n    /** @hidden */\n    @ViewChild(ScrollbarDirective)\n    scrollbar: ScrollbarDirective;\n\n    /** @hidden */\n    contentTemplates: TemplateRef<any>[] = [];\n\n    /** @hidden */\n    stackedStepsLeft: WizardStepComponent[] = [];\n\n    /** @hidden */\n    stackedStepsRight: WizardStepComponent[] = [];\n\n    /** @hidden */\n    protected _defaultAriaLabel = resolveTranslationSignal('coreWizard.ariaLabel');\n\n    /** @hidden */\n    private _stepEventSubscriptions: Subscription = new Subscription();\n\n    /** @hidden */\n    private _subscriptions: Subscription = new Subscription();\n\n    /** @hidden */\n    private _previousWidth: number;\n\n    /** @hidden */\n    private readonly _tabbableService = inject(TabbableElementService);\n\n    /** @hidden */\n    constructor(\n        private _elRef: ElementRef,\n        private readonly _cdRef: ChangeDetectorRef,\n        @Optional() @Inject(FD_DIALOG_BODY_COMPONENT) private _dialogBodyComponent: DialogBodyComponent\n    ) {}\n\n    /** @hidden */\n    @HostListener('window:resize')\n    resizeHandler(): void {\n        const wizardWidth = this._elRef.nativeElement.getBoundingClientRect().width;\n        if (!this._previousWidth || wizardWidth <= this._previousWidth) {\n            this._wizardShrinking();\n        } else if (wizardWidth > this._previousWidth) {\n            this._shrinkWhileAnyStepIsTooNarrow();\n        }\n        this._previousWidth = wizardWidth;\n        if (this.contentHeight) {\n            this._elRef.nativeElement.querySelector('.' + WIZARD_CONTAINER_WRAPPER_CLASS).style.height =\n                this.contentHeight;\n        } else {\n            this._setContainerAndTallContentHeight();\n        }\n    }\n\n    /** @hidden */\n    ngAfterViewInit(): void {\n        setTimeout(() => {\n            if (this._subscriptions.closed) {\n                return;\n            }\n\n            // fixes ExpressionChangedAfterItHasBeenCheckedError\n            this._setContentTemplates();\n            this._subscriptions.add(\n                this.steps.changes.subscribe(() => {\n                    this._handleStepOrStatusChanges();\n                    this._setupStepEvents();\n                })\n            );\n            this._setupStepEvents();\n            this._cdRef.detectChanges();\n            this._handleStepOrStatusChanges();\n            this.resizeHandler();\n        });\n    }\n\n    /** @hidden */\n    ngOnDestroy(): void {\n        this._stepEventSubscriptions.unsubscribe();\n        this._subscriptions.unsubscribe();\n        this.wrapperContainer?.nativeElement.removeEventListener('scroll', handleTimeoutReference);\n    }\n\n    /** @hidden */\n    scrollSpyChange($event: HTMLElement | undefined): void {\n        if (!$event || _fromScrollToCurrentStep) {\n            return;\n        }\n\n        const eventStepId = $event?.children[0].children[0].id;\n        this.steps.forEach((step) => {\n            if (step._stepId.toString() === eventStepId) {\n                step.status = CURRENT_STEP_STATUS;\n            } else if (step._stepId < parseInt(eventStepId, 10)) {\n                step.status = COMPLETED_STEP_STATUS;\n            } else {\n                step.status = UPCOMING_STEP_STATUS;\n            }\n        });\n        this._shrinkWhileAnyStepIsTooNarrow();\n    }\n\n    /**\n     * @hidden\n     * @private\n     * This function determines the height of the wizard content by looking for the document's shellbar, the wizard\n     * navigation and the wizard footer, and calculating the height based on their presence.\n     */\n    private _calculateContentHeight(): number {\n        let wizardNavHeight = 0;\n        const shellbarHeight = this._getShellbarHeight();\n        if (!this._isCurrentStepSummary() || this.displaySummaryStep) {\n            wizardNavHeight = this._getWizardNavHeight();\n        }\n        const wizardFooterHeight = this._getWizardFooterHeight();\n        const dialogOffset = this._getDialogOffset();\n\n        return shellbarHeight + wizardNavHeight + wizardFooterHeight + dialogOffset;\n    }\n\n    /** @hidden */\n    private _getShellbarHeight(): number {\n        return document.querySelector<HTMLElement>('.' + SHELLBAR_CLASS)?.clientHeight ?? 0;\n    }\n\n    /** @hidden */\n    private _getWizardNavHeight(): number {\n        const wizard = this._elRef.nativeElement;\n        let retVal;\n        if (wizard.querySelector('.' + WIZARD_NAVIGATION_CLASS)) {\n            retVal = wizard.querySelector('.' + WIZARD_NAVIGATION_CLASS).clientHeight;\n        } else {\n            retVal = 0;\n        }\n        return retVal;\n    }\n\n    /** @hidden */\n    private _getWizardFooterHeight(): number {\n        const container = this._dialogBodyComponent?.elementRef.nativeElement ?? this._elRef.nativeElement;\n        const footer =\n            container.querySelector(`.${BAR_FOOTER_CLASS}`) ?? container.querySelector(`.${BAR_FLOATING_FOOTER_CLASS}`);\n        return footer ? footer.offsetHeight : 0;\n    }\n\n    /** @hidden */\n    private _getDialogOffset(): number {\n        let retVal = 0;\n        if (this._dialogBodyComponent) {\n            const dialogBody = this._dialogBodyComponent.elementRef.nativeElement;\n\n            if (dialogBody.tagName.toLowerCase() === 'fd-dialog-body') {\n                this._dialogBodyComponent.dialogConfig.verticalPadding = false;\n                const dialogBodyTitle = dialogBody.querySelector('.fd-title--h2');\n                if (dialogBodyTitle) {\n                    retVal = dialogBodyTitle.offsetHeight;\n                }\n                retVal = retVal + window.innerHeight - dialogBody.offsetHeight;\n            }\n        }\n\n        return retVal;\n    }\n\n    /** @hidden */\n    private _setContainerAndTallContentHeight(): void {\n        const wizard = this._elRef.nativeElement;\n        const combinedHeight = this.contentHeight ? this.contentHeight : this._calculateContentHeight();\n        if (wizard.querySelector('.' + WIZARD_CONTAINER_WRAPPER_CLASS)) {\n            wizard.querySelector('.' + WIZARD_CONTAINER_WRAPPER_CLASS).style.height =\n                'calc(100vh - ' + combinedHeight + 'px)';\n        }\n        wizard.querySelectorAll('.' + WIZARD_CONTENT_CLASS).forEach((node) => {\n            node.style.height = 'auto';\n        });\n        if (wizard.querySelector('.' + WIZARD_TALL_CONTENT_CLASS)) {\n            if (\n                wizard.querySelector('.' + WIZARD_TALL_CONTENT_CLASS).offsetHeight <\n                wizard.querySelector('.' + WIZARD_CONTAINER_WRAPPER_CLASS).offsetHeight\n            ) {\n                wizard.querySelector('.' + WIZARD_TALL_CONTENT_CLASS).style.height =\n                    'calc(100vh - ' + combinedHeight + 'px)';\n            } else {\n                wizard.querySelector('.' + WIZARD_TALL_CONTENT_CLASS).style.paddingBottom = '24px';\n            }\n        }\n    }\n\n    /** @hidden */\n    private _setupStepEvents(): void {\n        this._stepEventSubscriptions.unsubscribe();\n        this._stepEventSubscriptions = new Subscription();\n        this.steps.forEach((step) => {\n            this._stepEventSubscriptions.add(\n                step.stepClicked.subscribe((event) => {\n                    this._stepClicked(event);\n                })\n            );\n            this._stepEventSubscriptions.add(\n                step.statusChange.subscribe(() => {\n                    this._handleStepOrStatusChanges();\n                })\n            );\n            this._stepEventSubscriptions.add(\n                step.stepIndicatorItemClicked.subscribe((event) => {\n                    this._stepClicked(event);\n                })\n            );\n            // need to call wizardShrinking for each step < 168px on first load\n            if (step.wizardLabel && step.getStepClientWidth() < STEP_MIN_WIDTH) {\n                this._wizardShrinking();\n            }\n        });\n    }\n\n    /** @hidden */\n    private _wizardShrinking(): void {\n        const currentStep = this._getCurrentStep();\n        if (\n            currentStep &&\n            (!currentStep.isSummary || this.displaySummaryStep) &&\n            currentStep.wizardLabel &&\n            currentStep.getStepClientWidth() < STEP_MIN_WIDTH\n        ) {\n            this._hideSomeStep(currentStep);\n            this._setStackedTop();\n        }\n    }\n\n    /** @hidden */\n    private _setContentTemplates(): void {\n        const templatesLength = this.contentTemplates.length;\n        this.contentTemplates = [];\n        let _stepId = 0;\n        const steps = this.steps.toArray();\n        for (const step of steps) {\n            if (step.content) {\n                if (!step.isSummary || this.displaySummaryStep) {\n                    step.content.tallContent = false;\n                }\n                step.content.wizardContentId = _stepId.toString();\n            }\n            step._stepId = _stepId;\n            _stepId++;\n            step.setFinalStep(false);\n            /*\n             If the step is completed and appendToWizard is true, hide the nextStep button, unless it's the last step,\n             or if there's a summary and it is the second to last step\n             */\n            if (\n                step.completed &&\n                this.appendToWizard &&\n                step.content?.nextStep?.canHide &&\n                step !== this._getLastNonSummaryStep()\n            ) {\n                step.content.nextStep._hideElement();\n            } else if (\n                step.content?.nextStep &&\n                ((step.completed && this.appendToWizard) ||\n                    (step.visited && step.branching && step.status === CURRENT_STEP_STATUS))\n            ) {\n                step.content.nextStep._showElement();\n            }\n            if (\n                step.visited ||\n                ((step.status === CURRENT_STEP_STATUS || step.status === COMPLETED_STEP_STATUS) && step.content)\n            ) {\n                step.visited = true;\n                if (step.status === CURRENT_STEP_STATUS && (!step.completed || !this.appendToWizard)) {\n                    step.content.tallContent = true;\n                }\n\n                const isCurrentStep = !this.appendToWizard && step.status === CURRENT_STEP_STATUS;\n\n                if (!templatesLength || isCurrentStep) {\n                    this.contentTemplates = [step.content.contentTemplate];\n\n                    // If we found needed step, break the cycle, since it might set wrong step later.\n                    if (isCurrentStep) {\n                        break;\n                    }\n                } else if (this.appendToWizard && (!step.isSummary || this.displaySummaryStep)) {\n                    this.contentTemplates.push(step.content.contentTemplate);\n                }\n            }\n        }\n\n        const lastVisibleTemplate = steps[this.contentTemplates.length - 1];\n        if (lastVisibleTemplate && lastVisibleTemplate.content) {\n            lastVisibleTemplate.content.tallContent = true;\n        }\n        this._setFinalStep();\n    }\n\n    /** @hidden */\n    private _scrollToCurrentStep(): void {\n        if (this.appendToWizard) {\n            _fromScrollToCurrentStep = true;\n            this.steps.forEach((step, index) => {\n                if (step.status === CURRENT_STEP_STATUS && (!step.isSummary || this.displaySummaryStep)) {\n                    const child = this.wrapperContainer.nativeElement.children[0].children[index] as HTMLElement;\n                    const wizardNavigationHeight = this._elRef.nativeElement.querySelector(\n                        '.' + WIZARD_NAVIGATION_CLASS\n                    ).clientHeight;\n\n                    scrollTop(this.wrapperContainer.nativeElement, child.offsetTop - wizardNavigationHeight);\n\n                    if (index === 0) {\n                        this._focusFirstTabbableElement(index);\n                    } else {\n                        // setTimeout needed to allow for smooth scroll animation\n                        setTimeout(() => {\n                            this._focusFirstTabbableElement(index);\n                        }, 500);\n                    }\n                }\n            });\n            this._setUpScrollListener();\n        }\n    }\n\n    /** @hidden */\n    private _focusFirstTabbableElement(index = 0): void {\n        const contentContainer = this._elRef.nativeElement.querySelectorAll('.fd-wizard__content')[index];\n        this._tabbableService.getTabbableElement(contentContainer)?.focus();\n    }\n\n    /** @hidden */\n    private _setUpScrollListener(): void {\n        this.wrapperContainer?.nativeElement.addEventListener('scroll', handleTimeoutReference, false);\n    }\n\n    /** @hidden */\n    private _hideSomeStep(currentStep: WizardStepComponent): void {\n        // If a small step was found, get the step with a visible label furthest away from the current step and hide the label\n        let stepsArray = this.steps.toArray();\n        stepsArray = stepsArray.filter((step) => !step.hasLabel(STEP_NO_LABEL_CLASS));\n        if (this.steps.last.isSummary && !this.displaySummaryStep) {\n            stepsArray.pop();\n        }\n        if (stepsArray.length > 1) {\n            let currentStepIndex = 0,\n                stepToHide;\n            if (currentStep) {\n                currentStepIndex = stepsArray.indexOf(currentStep);\n            }\n            currentStepIndex > (stepsArray.length - 1) / 2\n                ? (stepToHide = stepsArray[0])\n                : (stepToHide = stepsArray[stepsArray.length - 1]);\n            stepToHide.getClassList().add(STEP_NO_LABEL_CLASS);\n            stepToHide.getClassList().add(STEP_STACKED_CLASS);\n            if (stepsArray.indexOf(stepToHide) < currentStepIndex && !this.stackedStepsLeft.includes(stepToHide)) {\n                this.stackedStepsLeft.splice(this.steps.toArray().indexOf(stepToHide), 0, stepToHide);\n            } else if (\n                stepsArray.indexOf(stepToHide) > currentStepIndex &&\n                !this.stackedStepsRight.includes(stepToHide)\n            ) {\n                this.stackedStepsRight.unshift(stepToHide);\n            }\n            this._cdRef.detectChanges();\n        }\n    }\n\n    /** @hidden */\n    private _setStackedTop(): void {\n        const currentStep = this._getCurrentStep();\n        this.steps.forEach((step, index) => {\n            if (step.stepIndicator) {\n                step.getClassList().remove(STEP_STACKED_TOP_CLASS);\n                if (this.steps.toArray()[index + 1] === currentStep) {\n                    if (this.steps.length > 1) {\n                        step.getClassList().add(STEP_STACKED_TOP_CLASS);\n                        if (!this.stackedStepsLeft.includes(step) && this.stackedStepsLeft.length >= 1) {\n                            this.stackedStepsLeft.splice(index, 0, step);\n                        }\n                    }\n                    step.stepIndicator.setStackedItems(this.stackedStepsLeft);\n                } else {\n                    step.stepIndicator.stackedItems$.set([]);\n                }\n            }\n        });\n        this._getLastNonSummaryStep().stepIndicator?.setStackedItems(this.stackedStepsRight);\n    }\n\n    /** @hidden */\n    private _resetStepClasses(): void {\n        this.steps.forEach((step) => {\n            step.getClassList().remove(STEP_STACKED_TOP_CLASS);\n            step.getClassList().remove(STEP_STACKED_CLASS);\n            step.getClassList().remove(STEP_NO_LABEL_CLASS);\n        });\n    }\n\n    /** @hidden */\n    private _handleStepOrStatusChanges(): void {\n        if (this._isCurrentStepSummary() && !this.displaySummaryStep) {\n            setTimeout(() => {\n                this.progressBar.visible = false;\n            });\n            this._showSummary();\n        } else {\n            this.progressBar.visible = true;\n\n            this._setContentTemplates();\n            this._shrinkWhileAnyStepIsTooNarrow();\n        }\n        if (!this.appendToWizard) {\n            this._focusFirstTabbableElement();\n        }\n        setTimeout(() => {\n            this._cdRef.detectChanges();\n            this.resizeHandler();\n            if (!this._isCurrentStepSummary() || this.displaySummaryStep) {\n                this._scrollToCurrentStep();\n            }\n        });\n        this._setFinalStep();\n    }\n\n    /** @hidden */\n    private _setFinalStep(): void {\n        const lastNonSummaryStep = this._getLastNonSummaryStep();\n        if (lastNonSummaryStep) {\n            if (this.steps.last.isSummary && !this.displaySummaryStep) {\n                this.steps.last.removeFromDom();\n            }\n            if (lastNonSummaryStep.content) {\n                lastNonSummaryStep.content.tallContent = true;\n            }\n            lastNonSummaryStep.setFinalStep(true);\n        }\n    }\n\n    /** @hidden */\n    private _showSummary(): void {\n        this.steps.forEach((step) => {\n            if (!step.isSummary) {\n                step.completed = true;\n            }\n        });\n        const summary = this.steps.find((step) => step.isSummary);\n        if (summary) {\n            summary.content.tallContent = true;\n            this.contentTemplates = [summary.content.contentTemplate];\n        }\n    }\n\n    /** @hidden */\n    private _isCurrentStepSummary(): boolean {\n        return this.steps.some((step) => step.status === CURRENT_STEP_STATUS && step.isSummary);\n    }\n\n    /** @hidden */\n    private _getCurrentStep(): WizardStepComponent {\n        return this.steps.filter(\n            (step) => step.status === CURRENT_STEP_STATUS || step.status === ACTIVE_STEP_STATUS\n        )[0];\n    }\n\n    /** @hidden */\n    private _shrinkWhileAnyStepIsTooNarrow(): void {\n        // Add small delay for elements to render appropriately.\n        setTimeout(() => {\n            this.stackedStepsLeft = [];\n            this.stackedStepsRight = [];\n            this.steps.first.stepIndicator?.setStackedItems(this.stackedStepsLeft);\n            this._getLastNonSummaryStep().stepIndicator?.setStackedItems(this.stackedStepsRight);\n            this._resetStepClasses();\n            let i = 0;\n            while (this._anyStepIsTooNarrow() && i < this.steps.length - 1) {\n                i++;\n                this._wizardShrinking();\n            }\n        }, 10);\n    }\n\n    /** @hidden */\n    private _anyStepIsTooNarrow(): boolean {\n        return this.steps.some((step) => step.getStepClientWidth() < STEP_MIN_WIDTH);\n    }\n\n    /** @hidden */\n    private _stepClicked(clickedStep: WizardStepComponent): void {\n        if (!clickedStep) {\n            clickedStep = this.steps.first;\n        }\n        const clickedStepIndex = this.steps.toArray().indexOf(clickedStep);\n        this.steps.forEach((step) => {\n            if (step === clickedStep) {\n                step.status = CURRENT_STEP_STATUS;\n                step.statusChange.emit(CURRENT_STEP_STATUS);\n            } else if (step !== clickedStep) {\n                if (this.steps.toArray().indexOf(step) < clickedStepIndex) {\n                    step.status = COMPLETED_STEP_STATUS;\n                    step.statusChange.emit(COMPLETED_STEP_STATUS);\n                } else if (this.steps.toArray().indexOf(step) > clickedStepIndex) {\n                    step.status = UPCOMING_STEP_STATUS;\n                    step.statusChange.emit(UPCOMING_STEP_STATUS);\n                }\n            }\n        });\n        setTimeout(() => {\n            (document.activeElement as HTMLElement).blur(); // this function can focus step indicators undesirably\n        });\n    }\n\n    /** @hidden */\n    private _getLastNonSummaryStep(): WizardStepComponent {\n        if (this.steps.last.isSummary && !this.displaySummaryStep) {\n            return this.steps.toArray()[this.steps.length - 2];\n        }\n\n        return this.steps.last;\n    }\n}\n","<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","import { NgModule } from '@angular/core';\nimport { WizardContentComponent } from './wizard-content/wizard-content.component';\nimport { WizardNavigationComponent } from './wizard-navigation/wizard-navigation.component';\nimport { WizardNextStepComponent } from './wizard-next-step/wizard-next-step.component';\nimport { WizardProgressBarDirective } from './wizard-progress-bar/wizard-progress-bar.directive';\nimport { WizardStepIndicatorComponent } from './wizard-step-indicator/wizard-step-indicator.component';\nimport { WizardStepComponent } from './wizard-step/wizard-step.component';\nimport { WizardComponent } from './wizard.component';\nimport { WizardService } from './wizard.service';\n\nconst components = [\n    WizardComponent,\n    WizardNavigationComponent,\n    WizardProgressBarDirective,\n    WizardStepComponent,\n    WizardStepIndicatorComponent,\n    WizardContentComponent,\n    WizardNextStepComponent\n];\n\n/**\n * @deprecated\n * Use direct imports of `WizardComponent`,\n    `WizardNavigationComponent`,\n    `WizardProgressBarDirective`,\n    `WizardStepComponent`,\n    `WizardStepIndicatorComponent`,\n    `WizardContentComponent`,\n    `WizardNextStepComponent`\n */\n@NgModule({\n    imports: [...components],\n    exports: [...components],\n    providers: [WizardService]\n})\nexport class WizardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}