import * as i0 from '@angular/core';
import { InjectionToken, input, viewChild, inject, ElementRef, ChangeDetectionStrategy, ViewEncapsulation, Component, contentChild, effect, Directive, NgModule } from '@angular/core';
import { TAB } from '@angular/cdk/keycodes';
import { toSignal } from '@angular/core/rxjs-interop';
import { KeyUtil } from '@fundamental-ngx/cdk/utils';
import { FD_LANGUAGE, TranslationResolver } from '@fundamental-ngx/i18n';
import { map } from 'rxjs';

const FD_BUSY_INDICATOR_COMPONENT = new InjectionToken('FdBusyIndicatorComponent');

class BusyIndicatorComponent {
    constructor() {
        /** Whether to display the loading indicator animation. */
        this.loading = input(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
        /** The size of the loading indicator, default will be medium */
        this.size = input('m', ...(ngDevMode ? [{ debugName: "size" }] : []));
        /** Whether to use loader as block element */
        this.block = input(false, ...(ngDevMode ? [{ debugName: "block" }] : []));
        /** Aria label attribute value. */
        this.ariaLabel = input(null, ...(ngDevMode ? [{ debugName: "ariaLabel" }] : []));
        /** Aria-valuetext attribute value. */
        this.ariaValueText = input(null, ...(ngDevMode ? [{ debugName: "ariaValueText" }] : []));
        /** title attribute value for tooltip. */
        this.title = input(undefined, ...(ngDevMode ? [{ debugName: "title" }] : []));
        /** add loading label value */
        this.label = input(undefined, ...(ngDevMode ? [{ debugName: "label" }] : []));
        /** Aria live attribute value. */
        this.ariaLive = input(null, ...(ngDevMode ? [{ debugName: "ariaLive" }] : []));
        /** @hidden */
        this.fakeFocusElement = viewChild('fakeFocusElement', ...(ngDevMode ? [{ debugName: "fakeFocusElement" }] : []));
        /** @hidden */
        this._lang$ = inject(FD_LANGUAGE);
        /** @hidden */
        this._translationResolver = inject(TranslationResolver);
        /** @hidden */
        this._ariaValueText = toSignal(this._lang$.pipe(map((lang) => this._translationResolver.resolve(lang, 'coreBusyIndicator.defaultAriaValueText'))), { initialValue: 'Busy' });
        /** @hidden */
        this._titleValue = toSignal(this._lang$.pipe(map((lang) => this._translationResolver.resolve(lang, 'coreBusyIndicator.defaultTitle'))), { initialValue: 'Please wait' });
        /** @hidden */
        this._elementRef = inject(ElementRef);
    }
    /** @hidden If focus escapes busy container focus element after wrapped content */
    hostFocusChangeHandler(event) {
        if (this.loading() && KeyUtil.isKeyCode(event, TAB) && !event.shiftKey) {
            const element = this.fakeFocusElement();
            if (element) {
                element.nativeElement.focus();
            }
        }
    }
    /** @hidden If busy container is navigated as "previous focusable element",
     * focus busy indicator to prevent from focusing wrapped content */
    fakeElementFocusHandler(event) {
        if (this.loading() && event.relatedTarget !== this._elementRef.nativeElement) {
            event.stopPropagation();
            this._elementRef.nativeElement.focus();
        }
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: BusyIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: BusyIndicatorComponent, isStandalone: true, selector: "fd-busy-indicator", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, block: { classPropertyName: "block", publicName: "block", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaValueText: { classPropertyName: "ariaValueText", publicName: "ariaValueText", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, ariaLive: { classPropertyName: "ariaLive", publicName: "ariaLive", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown": "hostFocusChangeHandler($event)" }, properties: { "attr.role": "loading() ? 'progressbar' : 'presentation'", "attr.tabindex": "loading() ? 0 : -1", "attr.aria-busy": "loading()", "attr.aria-live": "ariaLive()", "attr.aria-label": "ariaLabel()", "attr.aria-valuetext": "loading() ? ariaValueText() || _ariaValueText() : null", "attr.aria-valuemin": "0", "attr.aria-valuemax": "100", "attr.title": "loading() ? title() || _titleValue() : null", "class.fd-busy-indicator__container": "true", "class.fd-busy-indicator__container--inline": "!block()" } }, providers: [
            {
                provide: FD_BUSY_INDICATOR_COMPONENT,
                useExisting: BusyIndicatorComponent
            }
        ], viewQueries: [{ propertyName: "fakeFocusElement", first: true, predicate: ["fakeFocusElement"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content></ng-content>\n@if (loading()) {\n    <div\n        #busyIndicator\n        class=\"fd-busy-indicator\"\n        [class.fd-busy-indicator--l]=\"size() === 'l'\"\n        [class.fd-busy-indicator--m]=\"size() === 'm'\"\n        [class.fd-busy-indicator--s]=\"size() === 's'\"\n    >\n        <div class=\"fd-busy-indicator__circle\"></div>\n        <div class=\"fd-busy-indicator__circle\"></div>\n        <div class=\"fd-busy-indicator__circle\"></div>\n    </div>\n    @if (label()) {\n        <span class=\"fd-busy-indicator-extended__label\">{{ label() }}</span>\n    }\n    <div class=\"fd-busy-indicator__overlay\"></div>\n    <div #fakeFocusElement tabindex=\"0\" aria-hidden=\"true\" (focusin)=\"fakeElementFocusHandler($event)\"></div>\n}\n", styles: [".fd-busy-indicator{--Dot_Color:var(--fdBusy_Indicator_Dot_Color);--Dot_Size:.5rem;--Dot_Spacing:.0625rem;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--Dot_Color);display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:0;font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative;text-align:center}.fd-busy-indicator--contrast{--Dot_Color:var(--fdBusy_Indicator_Dot_Contrast_Color)}.fd-busy-indicator--m{--Dot_Size:1rem;--Dot_Spacing:.1875rem}.fd-busy-indicator--l{--Dot_Size:2rem;--Dot_Spacing:.25rem}.fd-busy-indicator:after,.fd-busy-indicator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-busy-indicator-extended{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:1rem;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.fd-busy-indicator-extended:after,.fd-busy-indicator-extended:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-busy-indicator-extended.fd-busy-indicator-extended--message-toast{background-color:var(--sapPageFooter_Background);-webkit-box-shadow:var(--sapContent_Shadow2);box-shadow:var(--sapContent_Shadow2);max-width:23.125rem;text-shadow:var(--sapContent_TextShadow);width:23.125rem}.fd-busy-indicator-extended__label{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapPageFooter_TextColor);display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;text-align:center}.fd-busy-indicator-extended__label:after,.fd-busy-indicator-extended__label:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-busy-indicator__circle{background-color:currentColor;border:0;border-radius:50%;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--Dot_Color);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--Dot_Size);line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative;width:var(--Dot_Size);-webkit-margin-end:var(--Dot_Spacing);-webkit-animation:grow 1.6s cubic-bezier(.32,.06,.85,1.11) infinite;animation:grow 1.6s cubic-bezier(.32,.06,.85,1.11) infinite;margin-inline-end:var(--Dot_Spacing)}.fd-busy-indicator__circle:after,.fd-busy-indicator__circle:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-busy-indicator__circle:nth-child(2){-webkit-animation-delay:.2s;animation-delay:.2s;-webkit-margin-end:var(--Dot_Spacing);margin-inline-end:var(--Dot_Spacing)}.fd-busy-indicator__circle:nth-child(3){-webkit-animation-delay:.4s;animation-delay:.4s;-webkit-margin-end:0;margin-inline-end:0}.fd-busy-indicator-dialog{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:1rem;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.fd-busy-indicator-dialog:after,.fd-busy-indicator-dialog:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-busy-indicator-dialog .fd-busy-indicator{margin-block:.5rem;margin-inline:auto;width:100%}@-webkit-keyframes grow{0%,50%,to{-webkit-transform:scale(.5);transform:scale(.5)}25%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes grow{0%,50%,to{-webkit-transform:scale(.5);transform:scale(.5)}25%{-webkit-transform:scale(1);transform:scale(1)}}*+.fd-busy-indicator,*+.fd-busy-indicator+.fd-busy-indicator-extended__label{white-space:nowrap;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}*+.fd-busy-indicator+.fd-busy-indicator-extended__label{z-index:11;transform:translate(-50%,50%)!important}.fd-busy-indicator:first-child~.fd-busy-indicator__overlay{background-color:transparent}.fd-busy-indicator{z-index:11}.fd-busy-indicator__container{display:block;position:relative}.fd-busy-indicator__container:focus{outline-width:var(--sapContent_FocusWidth, .0625rem);outline-color:var(--sapContent_FocusColor, #000);outline-style:var(--sapContent_FocusStyle, dotted)}.fd-busy-indicator__container[tabindex=\"-1\"]{outline:none}.fd-busy-indicator__container--inline{display:inline-block}.fd-busy-indicator__overlay{position:absolute;inset:0;z-index:10;background-color:var(--sapBaseColor);opacity:.72}\n/*! Bundled license information:\n\nfundamental-styles/dist/busy-indicator.css:\n  (*!\n   * Fundamental Library Styles v0.40.1\n   * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n   * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n   *)\n*/\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: BusyIndicatorComponent, decorators: [{
            type: Component,
            args: [{ selector: 'fd-busy-indicator', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, providers: [
                        {
                            provide: FD_BUSY_INDICATOR_COMPONENT,
                            useExisting: BusyIndicatorComponent
                        }
                    ], host: {
                        '[attr.role]': "loading() ? 'progressbar' : 'presentation'",
                        '[attr.tabindex]': 'loading() ? 0 : -1',
                        '[attr.aria-busy]': 'loading()',
                        '[attr.aria-live]': 'ariaLive()',
                        '[attr.aria-label]': 'ariaLabel()',
                        '[attr.aria-valuetext]': 'loading() ? ariaValueText() || _ariaValueText() : null',
                        '[attr.aria-valuemin]': '0',
                        '[attr.aria-valuemax]': '100',
                        '[attr.title]': 'loading() ? title() || _titleValue() : null',
                        '[class.fd-busy-indicator__container]': 'true',
                        '[class.fd-busy-indicator__container--inline]': '!block()',
                        '(keydown)': 'hostFocusChangeHandler($event)'
                    }, template: "<ng-content></ng-content>\n@if (loading()) {\n    <div\n        #busyIndicator\n        class=\"fd-busy-indicator\"\n        [class.fd-busy-indicator--l]=\"size() === 'l'\"\n        [class.fd-busy-indicator--m]=\"size() === 'm'\"\n        [class.fd-busy-indicator--s]=\"size() === 's'\"\n    >\n        <div class=\"fd-busy-indicator__circle\"></div>\n        <div class=\"fd-busy-indicator__circle\"></div>\n        <div class=\"fd-busy-indicator__circle\"></div>\n    </div>\n    @if (label()) {\n        <span class=\"fd-busy-indicator-extended__label\">{{ label() }}</span>\n    }\n    <div class=\"fd-busy-indicator__overlay\"></div>\n    <div #fakeFocusElement tabindex=\"0\" aria-hidden=\"true\" (focusin)=\"fakeElementFocusHandler($event)\"></div>\n}\n", styles: [".fd-busy-indicator{--Dot_Color:var(--fdBusy_Indicator_Dot_Color);--Dot_Size:.5rem;--Dot_Spacing:.0625rem;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--Dot_Color);display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:0;font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative;text-align:center}.fd-busy-indicator--contrast{--Dot_Color:var(--fdBusy_Indicator_Dot_Contrast_Color)}.fd-busy-indicator--m{--Dot_Size:1rem;--Dot_Spacing:.1875rem}.fd-busy-indicator--l{--Dot_Size:2rem;--Dot_Spacing:.25rem}.fd-busy-indicator:after,.fd-busy-indicator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-busy-indicator-extended{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:1rem;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.fd-busy-indicator-extended:after,.fd-busy-indicator-extended:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-busy-indicator-extended.fd-busy-indicator-extended--message-toast{background-color:var(--sapPageFooter_Background);-webkit-box-shadow:var(--sapContent_Shadow2);box-shadow:var(--sapContent_Shadow2);max-width:23.125rem;text-shadow:var(--sapContent_TextShadow);width:23.125rem}.fd-busy-indicator-extended__label{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapPageFooter_TextColor);display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;text-align:center}.fd-busy-indicator-extended__label:after,.fd-busy-indicator-extended__label:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-busy-indicator__circle{background-color:currentColor;border:0;border-radius:50%;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--Dot_Color);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--Dot_Size);line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative;width:var(--Dot_Size);-webkit-margin-end:var(--Dot_Spacing);-webkit-animation:grow 1.6s cubic-bezier(.32,.06,.85,1.11) infinite;animation:grow 1.6s cubic-bezier(.32,.06,.85,1.11) infinite;margin-inline-end:var(--Dot_Spacing)}.fd-busy-indicator__circle:after,.fd-busy-indicator__circle:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-busy-indicator__circle:nth-child(2){-webkit-animation-delay:.2s;animation-delay:.2s;-webkit-margin-end:var(--Dot_Spacing);margin-inline-end:var(--Dot_Spacing)}.fd-busy-indicator__circle:nth-child(3){-webkit-animation-delay:.4s;animation-delay:.4s;-webkit-margin-end:0;margin-inline-end:0}.fd-busy-indicator-dialog{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:1rem;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.fd-busy-indicator-dialog:after,.fd-busy-indicator-dialog:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-busy-indicator-dialog .fd-busy-indicator{margin-block:.5rem;margin-inline:auto;width:100%}@-webkit-keyframes grow{0%,50%,to{-webkit-transform:scale(.5);transform:scale(.5)}25%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes grow{0%,50%,to{-webkit-transform:scale(.5);transform:scale(.5)}25%{-webkit-transform:scale(1);transform:scale(1)}}*+.fd-busy-indicator,*+.fd-busy-indicator+.fd-busy-indicator-extended__label{white-space:nowrap;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}*+.fd-busy-indicator+.fd-busy-indicator-extended__label{z-index:11;transform:translate(-50%,50%)!important}.fd-busy-indicator:first-child~.fd-busy-indicator__overlay{background-color:transparent}.fd-busy-indicator{z-index:11}.fd-busy-indicator__container{display:block;position:relative}.fd-busy-indicator__container:focus{outline-width:var(--sapContent_FocusWidth, .0625rem);outline-color:var(--sapContent_FocusColor, #000);outline-style:var(--sapContent_FocusStyle, dotted)}.fd-busy-indicator__container[tabindex=\"-1\"]{outline:none}.fd-busy-indicator__container--inline{display:inline-block}.fd-busy-indicator__overlay{position:absolute;inset:0;z-index:10;background-color:var(--sapBaseColor);opacity:.72}\n/*! Bundled license information:\n\nfundamental-styles/dist/busy-indicator.css:\n  (*!\n   * Fundamental Library Styles v0.40.1\n   * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n   * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n   *)\n*/\n"] }]
        }], propDecorators: { loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], block: [{ type: i0.Input, args: [{ isSignal: true, alias: "block", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], ariaValueText: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaValueText", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], ariaLive: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLive", required: false }] }], fakeFocusElement: [{ type: i0.ViewChild, args: ['fakeFocusElement', { isSignal: true }] }] } });

const messageToastClass = 'fd-message-toast';
class BusyIndicatorExtendedDirective {
    /** @hidden */
    constructor() {
        /** @hidden */
        this.elementRef = inject(ElementRef);
        /** @hidden */
        this.busyIndicator = contentChild(FD_BUSY_INDICATOR_COMPONENT, { ...(ngDevMode ? { debugName: "busyIndicator" } : {}), read: BusyIndicatorComponent });
        effect(() => {
            const indicator = this.busyIndicator();
            if (indicator) {
                this._appendCssToParent();
            }
        });
    }
    /** @hidden */
    _appendCssToParent() {
        const hasLabel = this.busyIndicator()?.label();
        if (!hasLabel) {
            return;
        }
        const classList = this.elementRef.nativeElement.parentElement?.classList;
        if (classList) {
            classList.add('fd-busy-indicator-extended');
            if (classList.contains(messageToastClass)) {
                classList.add('fd-busy-indicator-extended--message-toast');
            }
        }
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: BusyIndicatorExtendedDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.1.0", type: BusyIndicatorExtendedDirective, isStandalone: true, selector: "[fd-busy-indicator-extended]", queries: [{ propertyName: "busyIndicator", first: true, predicate: FD_BUSY_INDICATOR_COMPONENT, descendants: true, read: BusyIndicatorComponent, isSignal: true }], ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: BusyIndicatorExtendedDirective, decorators: [{
            type: Directive,
            args: [{
                    // eslint-disable-next-line @angular-eslint/directive-selector
                    selector: '[fd-busy-indicator-extended]',
                    standalone: true
                }]
        }], ctorParameters: () => [], propDecorators: { busyIndicator: [{ type: i0.ContentChild, args: [i0.forwardRef(() => FD_BUSY_INDICATOR_COMPONENT), { ...{
                            read: BusyIndicatorComponent
                        }, isSignal: true }] }] } });

/**
 * @deprecated
 * Use direct imports of components and directives.
 */
class BusyIndicatorModule {
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: BusyIndicatorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.0", ngImport: i0, type: BusyIndicatorModule, imports: [BusyIndicatorComponent, BusyIndicatorExtendedDirective], exports: [BusyIndicatorComponent, BusyIndicatorExtendedDirective] }); }
    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: BusyIndicatorModule }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: BusyIndicatorModule, decorators: [{
            type: NgModule,
            args: [{
                    exports: [BusyIndicatorComponent, BusyIndicatorExtendedDirective],
                    imports: [BusyIndicatorComponent, BusyIndicatorExtendedDirective]
                }]
        }] });

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

export { BusyIndicatorComponent, BusyIndicatorExtendedDirective, BusyIndicatorModule, FD_BUSY_INDICATOR_COMPONENT };
//# sourceMappingURL=fundamental-ngx-core-busy-indicator.mjs.map
