import * as i0 from '@angular/core';
import { EventEmitter, ViewChild, Input, Output, ChangeDetectionStrategy, ViewEncapsulation, Component, Directive, inject, ElementRef, Optional, Inject, HostBinding, ContentChildren, HostListener, ContentChild, NgModule } from '@angular/core';
import { ButtonComponent } from '@fundamental-ngx/core/button';
import { FdTranslatePipe } from '@fundamental-ngx/i18n';
import * as i1 from '@angular/forms';
import { FormsModule } from '@angular/forms';
import { FormControlComponent } from '@fundamental-ngx/core/form';
import { LINK_CLASS_NAME } from '@fundamental-ngx/core/link';
import { Subscription } from 'rxjs';
import { ObjectMarkerComponent } from '@fundamental-ngx/core/object-marker';
import * as i1$1 from '@fundamental-ngx/core/object-status';
import { FD_OBJECT_STATUS_COMPONENT } from '@fundamental-ngx/core/object-status';
import { ListComponent } from '@fundamental-ngx/core/list';

class UploadCollectionButtonGroupComponent {
    constructor() {
        /** Event emitted when the user clicks the edit button. */
        this.editClicked = new EventEmitter();
        /** Event emitted when the user clicks the OK button to conform a file name change. */
        this.okClicked = new EventEmitter();
        /** Event emitted when the user clicks the delete button. */
        this.deleteClicked = new EventEmitter();
        /** Whether or not to allow file name editing. Default is true. */
        this.allowFileNameEdit = true;
        /** Whether or not to show the delete button. Default is true. */
        this.allowFileDeletion = true;
        /** Whether or not to disable the file name edit button. Default is false. */
        this.disableFileNameEdit = false;
        /** Whether or not to disable the delete button. Default is false. */
        this.disableFileDeletion = false;
        /** @hidden */
        this._editMode = false;
    }
    /** @hidden */
    _editButtonClicked(event) {
        if (event) {
            event.stopPropagation();
        }
        this.editClicked.emit(true);
        this._editMode = true;
    }
    /** @hidden */
    _deleteButtonClicked(event) {
        if (event) {
            event.stopPropagation();
        }
        this.deleteClicked.emit();
    }
    /** @hidden */
    _okButtonClicked(event) {
        if (event) {
            event.stopPropagation();
        }
        this.okClicked.emit();
    }
    /** @hidden */
    _cancelButtonClicked(event) {
        if (event) {
            event.stopPropagation();
        }
        this.editClicked.emit(false);
        this._editMode = false;
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionButtonGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: UploadCollectionButtonGroupComponent, isStandalone: true, selector: "fd-upload-collection-button-group", inputs: { allowFileNameEdit: "allowFileNameEdit", allowFileDeletion: "allowFileDeletion", disableFileNameEdit: "disableFileNameEdit", disableFileDeletion: "disableFileDeletion" }, outputs: { editClicked: "editClicked", okClicked: "okClicked", deleteClicked: "deleteClicked" }, host: { classAttribute: "fd-upload-collection__button-group" }, viewQueries: [{ propertyName: "_okButton", first: true, predicate: ["okButton"], descendants: true }], ngImport: i0, template: "@if (!_editMode && allowFileNameEdit) {\n    <button\n        [disabled]=\"disableFileNameEdit\"\n        (click)=\"_editButtonClicked($event)\"\n        fd-button\n        fdType=\"transparent\"\n        glyph=\"edit\"\n        [ariaLabel]=\"('coreUploadCollection.menuEditAriaLabel' | fdTranslate)()\"\n    ></button>\n}\n@if (!_editMode && allowFileDeletion) {\n    <button\n        [disabled]=\"disableFileDeletion\"\n        (click)=\"_deleteButtonClicked($event)\"\n        fd-button\n        fdType=\"transparent\"\n        glyph=\"decline\"\n        [ariaLabel]=\"('coreUploadCollection.menuDeleteAriaLabel' | fdTranslate)()\"\n    ></button>\n}\n<button\n    #okButton\n    [style.display]=\"_editMode ? 'inline-flex' : 'none'\"\n    (click)=\"_okButtonClicked($event)\"\n    fd-button\n    fdType=\"transparent\"\n    [ariaLabel]=\"('coreUploadCollection.menuOkAriaLabel' | fdTranslate)()\"\n>\n    {{ ('coreUploadCollection.menuOkText' | fdTranslate)() }}\n</button>\n@if (_editMode) {\n    <button\n        (click)=\"_cancelButtonClicked($event)\"\n        fd-button\n        fdType=\"transparent\"\n        [ariaLabel]=\"('coreUploadCollection.menuCancelAriaLabel' | fdTranslate)()\"\n    >\n        {{ ('coreUploadCollection.menuCancelText' | fdTranslate)() }}\n    </button>\n}\n", dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionButtonGroupComponent, decorators: [{
            type: Component,
            args: [{ selector: 'fd-upload-collection-button-group', host: { class: 'fd-upload-collection__button-group' }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [ButtonComponent, FdTranslatePipe], template: "@if (!_editMode && allowFileNameEdit) {\n    <button\n        [disabled]=\"disableFileNameEdit\"\n        (click)=\"_editButtonClicked($event)\"\n        fd-button\n        fdType=\"transparent\"\n        glyph=\"edit\"\n        [ariaLabel]=\"('coreUploadCollection.menuEditAriaLabel' | fdTranslate)()\"\n    ></button>\n}\n@if (!_editMode && allowFileDeletion) {\n    <button\n        [disabled]=\"disableFileDeletion\"\n        (click)=\"_deleteButtonClicked($event)\"\n        fd-button\n        fdType=\"transparent\"\n        glyph=\"decline\"\n        [ariaLabel]=\"('coreUploadCollection.menuDeleteAriaLabel' | fdTranslate)()\"\n    ></button>\n}\n<button\n    #okButton\n    [style.display]=\"_editMode ? 'inline-flex' : 'none'\"\n    (click)=\"_okButtonClicked($event)\"\n    fd-button\n    fdType=\"transparent\"\n    [ariaLabel]=\"('coreUploadCollection.menuOkAriaLabel' | fdTranslate)()\"\n>\n    {{ ('coreUploadCollection.menuOkText' | fdTranslate)() }}\n</button>\n@if (_editMode) {\n    <button\n        (click)=\"_cancelButtonClicked($event)\"\n        fd-button\n        fdType=\"transparent\"\n        [ariaLabel]=\"('coreUploadCollection.menuCancelAriaLabel' | fdTranslate)()\"\n    >\n        {{ ('coreUploadCollection.menuCancelText' | fdTranslate)() }}\n    </button>\n}\n" }]
        }], propDecorators: { editClicked: [{
                type: Output
            }], okClicked: [{
                type: Output
            }], deleteClicked: [{
                type: Output
            }], allowFileNameEdit: [{
                type: Input
            }], allowFileDeletion: [{
                type: Input
            }], disableFileNameEdit: [{
                type: Input
            }], disableFileDeletion: [{
                type: Input
            }], _okButton: [{
                type: ViewChild,
                args: ['okButton']
            }] } });

class UploadCollectionFormItemComponent {
    constructor() {
        /** @hidden */
        this._editMode = false;
        /** Event emitted when the dragged file exits the dropzone. */
        this.fileNameChanged = new EventEmitter();
        /** @hidden */
        this.onChange = () => { };
        /** @hidden */
        this.onTouched = () => { };
    }
    /** Value of the text input. */
    set fileName(value) {
        this._fileNameValue = value;
        this.onChange(value);
        this.onTouched();
        this.fileNameChanged.emit(value);
    }
    get fileName() {
        return this._fileNameValue;
    }
    /** @hidden */
    writeValue(value) {
        this.fileName = value;
    }
    /** @hidden */
    registerOnChange(fn) {
        this.onChange = fn;
    }
    /** @hidden */
    registerOnTouched(fn) {
        this.onTouched = fn;
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionFormItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: UploadCollectionFormItemComponent, isStandalone: true, selector: "fd-upload-collection-form-item", inputs: { _editMode: "_editMode" }, outputs: { fileNameChanged: "fileNameChanged" }, host: { classAttribute: "fd-upload-collection__form-item" }, ngImport: i0, template: "@if (_editMode) {\n    <input\n        fd-form-control\n        required\n        [style.pointer-events]=\"'all'\"\n        class=\"fd-input\"\n        type=\"text\"\n        [attr.placeholder]=\"('coreUploadCollection.formItemPlaceholder' | fdTranslate)()\"\n        [(ngModel)]=\"fileName\"\n        [state]=\"!fileName ? 'error' : null\"\n        (click)=\"$event.stopPropagation()\"\n    />\n}\n@if (_editMode) {\n    <span class=\"fd-upload-collection__extension\">.{{ _extension }}</span>\n}\n", dependencies: [{ kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionFormItemComponent, decorators: [{
            type: Component,
            args: [{ selector: 'fd-upload-collection-form-item', host: { class: 'fd-upload-collection__form-item' }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormControlComponent, FormsModule, FdTranslatePipe], template: "@if (_editMode) {\n    <input\n        fd-form-control\n        required\n        [style.pointer-events]=\"'all'\"\n        class=\"fd-input\"\n        type=\"text\"\n        [attr.placeholder]=\"('coreUploadCollection.formItemPlaceholder' | fdTranslate)()\"\n        [(ngModel)]=\"fileName\"\n        [state]=\"!fileName ? 'error' : null\"\n        (click)=\"$event.stopPropagation()\"\n    />\n}\n@if (_editMode) {\n    <span class=\"fd-upload-collection__extension\">.{{ _extension }}</span>\n}\n" }]
        }], propDecorators: { _editMode: [{
                type: Input
            }], fileNameChanged: [{
                type: Output
            }] } });

class UploadCollectionThumbnailDirective {
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionThumbnailDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: UploadCollectionThumbnailDirective, isStandalone: true, selector: "[fd-upload-collection-thumbnail]", host: { classAttribute: "fd-upload-collection__thumbnail" }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionThumbnailDirective, decorators: [{
            type: Directive,
            args: [{
                    // eslint-disable-next-line @angular-eslint/directive-selector
                    selector: '[fd-upload-collection-thumbnail]',
                    host: { class: 'fd-upload-collection__thumbnail' },
                    standalone: true
                }]
        }] });
class UploadCollectionTitleDirective {
    constructor() {
        /** @hidden */
        this.elRef = inject(ElementRef);
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: UploadCollectionTitleDirective, isStandalone: true, selector: "[fd-upload-collection-title]", host: { classAttribute: "fd-upload-collection__title" }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionTitleDirective, decorators: [{
            type: Directive,
            args: [{
                    // eslint-disable-next-line @angular-eslint/directive-selector
                    selector: '[fd-upload-collection-title]',
                    host: { class: 'fd-upload-collection__title' },
                    standalone: true
                }]
        }] });
class UploadCollectionDescriptionDirective {
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionDescriptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: UploadCollectionDescriptionDirective, isStandalone: true, selector: "[fd-upload-collection-description]", host: { classAttribute: "fd-upload-collection__description" }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionDescriptionDirective, decorators: [{
            type: Directive,
            args: [{
                    // eslint-disable-next-line @angular-eslint/directive-selector
                    selector: '[fd-upload-collection-description]',
                    host: { class: 'fd-upload-collection__description' },
                    standalone: true
                }]
        }] });
class UploadCollectionTextSeparatorDirective {
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionTextSeparatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: UploadCollectionTextSeparatorDirective, isStandalone: true, selector: "[fd-upload-collection-text-separator], fd-upload-collection-text-separator", host: { classAttribute: "fd-upload-collection__text-separator" }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionTextSeparatorDirective, decorators: [{
            type: Directive,
            args: [{
                    // eslint-disable-next-line @angular-eslint/directive-selector
                    selector: '[fd-upload-collection-text-separator], fd-upload-collection-text-separator',
                    host: { class: 'fd-upload-collection__text-separator' },
                    standalone: true
                }]
        }] });
class UploadCollectionStatusGroupDirective {
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionStatusGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: UploadCollectionStatusGroupDirective, isStandalone: true, selector: "[fd-upload-collection-status-group]", host: { classAttribute: "fd-upload-collection__status-group" }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionStatusGroupDirective, decorators: [{
            type: Directive,
            args: [{
                    // eslint-disable-next-line @angular-eslint/directive-selector
                    selector: '[fd-upload-collection-status-group]',
                    host: { class: 'fd-upload-collection__status-group' },
                    standalone: true
                }]
        }] });
class UploadCollectionStatusItemDirective {
    /** @hidden */
    constructor(_objectStatus) {
        this._objectStatus = _objectStatus;
    }
    /** @hidden */
    ngOnInit() {
        if (this._objectStatus) {
            this._objectStatus._textClass += ' fd-upload-collection__status-group-item-text';
        }
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionStatusItemDirective, deps: [{ token: FD_OBJECT_STATUS_COMPONENT, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: UploadCollectionStatusItemDirective, isStandalone: true, selector: "[fd-upload-collection-status-item]", host: { classAttribute: "fd-upload-collection__status-group-item" }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionStatusItemDirective, decorators: [{
            type: Directive,
            args: [{
                    // eslint-disable-next-line @angular-eslint/directive-selector
                    selector: '[fd-upload-collection-status-item]',
                    host: { class: 'fd-upload-collection__status-group-item' },
                    standalone: true
                }]
        }], ctorParameters: () => [{ type: i1$1.ObjectStatusComponent, decorators: [{
                    type: Optional
                }, {
                    type: Inject,
                    args: [FD_OBJECT_STATUS_COMPONENT]
                }] }] });
class UploadCollectionTitleContainerDirective {
    constructor() {
        /** Whether or not this is in edit mode. */
        this.applyContainerClass = true;
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionTitleContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: UploadCollectionTitleContainerDirective, isStandalone: true, selector: "[fd-upload-collection-title-container]", host: { properties: { "class.fd-upload-collection__title-container": "this.applyContainerClass" } }, queries: [{ propertyName: "_objectMarkerComponents", predicate: ObjectMarkerComponent }], ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionTitleContainerDirective, decorators: [{
            type: Directive,
            args: [{
                    // eslint-disable-next-line @angular-eslint/directive-selector
                    selector: '[fd-upload-collection-title-container]',
                    standalone: true
                }]
        }], propDecorators: { _objectMarkerComponents: [{
                type: ContentChildren,
                args: [ObjectMarkerComponent]
            }], applyContainerClass: [{
                type: HostBinding,
                args: ['class.fd-upload-collection__title-container']
            }] } });

class UploadCollectionItemDirective {
    constructor() {
        /** Event emitted when the user changes a file name. */
        this.fileNameChanged = new EventEmitter();
        /** Event emitted when presses the delete button. */
        this.deleteClicked = new EventEmitter();
        /** @hidden */
        this.elementRef = inject(ElementRef);
        /** @hidden */
        this._subscriptions = new Subscription();
    }
    /** @hidden */
    onResize() {
        if (!this.elementRef.nativeElement.parentElement) {
            return;
        }
        this.titleWidth = this.getTitleWidth();
        this.containerWidth = this.getContainerWidth();
        // if first load and no previous container width, or if container boundary is resized to smaller than before
        if (!this.previousContainerWidth || this.containerWidth < this.previousContainerWidth) {
            // and the title extends past the container, 1.05x padding to prevent jaggy resizing.
            if (this.titleWidth * 1.05 >= this.containerWidth) {
                this.resizeFileTitle(this._titleDirective.elRef.nativeElement.innerHTML);
            }
        }
        else if (this.previousContainerWidth && this.containerWidth > this.previousContainerWidth) {
            // Looks to expand file title if container width is resized to greater than before
            // reset file title to initial
            this._titleDirective.elRef.nativeElement.innerHTML = this.fileNameFull;
            this.resizeFileTitle(this.fileNameFull);
        }
        this.previousContainerWidth = this.containerWidth;
    }
    /** @hidden */
    ngAfterContentInit() {
        this.fileNameFull = this.fileName + '.' + this.extension;
        this._titleDirective.elRef.nativeElement.tabIndex = '0';
        this._titleDirective.elRef.nativeElement.innerHTML =
            '<span class="' + LINK_CLASS_NAME.linkContent + '">' + this.fileNameFull + '</span>';
        this._handleDeleteClickedSubscription();
        this._handleOkClickedSubscription();
        this._handleEditClickedSubscription();
        this._handleFormItemInputChangedSubscription();
    }
    /** @hidden */
    ngAfterViewInit() {
        // Process resize after all the children views is initialized
        setTimeout(() => this.onResize());
    }
    /** @hidden */
    ngOnDestroy() {
        this._subscriptions.unsubscribe();
    }
    /** @hidden */
    _handleOkClickedSubscription() {
        this._subscriptions.add(this._buttonGroupComponent.okClicked.subscribe(() => {
            if (this._formItemComponent.fileName && this._formItemComponent.fileName !== '') {
                this.fileName = this._formItemComponent.fileName;
                this._titleDirective.elRef.nativeElement.style.display = 'inline-block';
                this.fileNameFull = this.fileName + '.' + this.extension;
                this._titleDirective.elRef.nativeElement.innerHTML = this.fileNameFull;
                this.resizeFileTitle(this.fileNameFull);
                this._formItemComponent._editMode = false;
                this._buttonGroupComponent._editMode = false;
                this.fileNameChanged.emit(this);
            }
        }));
    }
    /** @hidden */
    _handleEditClickedSubscription() {
        this._subscriptions.add(this._buttonGroupComponent.editClicked.subscribe((event) => {
            this._formItemComponent._editMode = event;
            if (this._titleContainerDirective) {
                this._titleContainerDirective.applyContainerClass = !event;
            }
            const styles = [];
            styles.push(this._titleDirective.elRef.nativeElement.style);
            this._titleContainerDirective?._objectMarkerComponents?.forEach((objectMarker) => {
                styles.push(objectMarker.elementRef.nativeElement.style);
            });
            event
                ? styles.forEach((style) => (style.display = 'none'))
                : styles.forEach((style) => (style.display = 'inline-block'));
            if (event) {
                this._formItemComponent._extension = this.extension;
                this._formItemComponent.fileName = this.fileName;
            }
        }));
    }
    /** @hidden */
    _handleDeleteClickedSubscription() {
        this._subscriptions.add(this._buttonGroupComponent.deleteClicked.subscribe(() => {
            this.deleteClicked.emit(this);
        }));
    }
    /** @hidden */
    _handleFormItemInputChangedSubscription() {
        this._subscriptions.add(this._formItemComponent.fileNameChanged.subscribe((event) => {
            this._buttonGroupComponent._okButton.setDisabled(event === '');
        }));
    }
    /** @hidden */
    getTitleWidth() {
        return this._titleDirective.elRef.nativeElement.getBoundingClientRect().width;
    }
    /** @hidden */
    getContainerWidth() {
        return this._titleDirective.elRef.nativeElement.parentElement.getBoundingClientRect().width;
    }
    /**
     * @hidden
     *
     * truncates the string by cutting out excess length in the middle and replacing with '...'
     */
    truncateTitle(str) {
        const cutLength = Math.floor(str.length * 0.8);
        if (str.length > cutLength) {
            const stringLeftIndex = Math.floor(cutLength / 2);
            const stringRightIndex = str.length - stringLeftIndex + 3;
            return str.substring(0, stringLeftIndex) + '...' + str.substring(stringRightIndex, str.length);
        }
        return str;
    }
    /**
     * @hidden
     *
     * determines if file title needs to be truncated given container constraint.
     */
    resizeFileTitle(titleStr) {
        let curTitle = titleStr;
        this.containerWidth = this.getContainerWidth();
        this.titleWidth = this.getTitleWidth();
        // repeatedly truncate the title until it fits inside container
        while (this.titleWidth * 1.05 >= this.containerWidth) {
            const truncatedTitleStr = this.truncateTitle(curTitle);
            this._titleDirective.elRef.nativeElement.innerHTML = truncatedTitleStr;
            curTitle = truncatedTitleStr;
            this.titleWidth = this.getTitleWidth();
            this.containerWidth = this.getContainerWidth();
        }
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: UploadCollectionItemDirective, isStandalone: true, selector: "[fd-upload-collection-item]", inputs: { fileName: "fileName", extension: "extension" }, outputs: { fileNameChanged: "fileNameChanged", deleteClicked: "deleteClicked" }, host: { listeners: { "window:resize": "onResize()" }, classAttribute: "fd-upload-collection__item" }, queries: [{ propertyName: "_formItemComponent", first: true, predicate: UploadCollectionFormItemComponent, descendants: true }, { propertyName: "_titleDirective", first: true, predicate: UploadCollectionTitleDirective, descendants: true }, { propertyName: "_buttonGroupComponent", first: true, predicate: UploadCollectionButtonGroupComponent, descendants: true }, { propertyName: "_titleContainerDirective", first: true, predicate: UploadCollectionTitleContainerDirective, descendants: true }], ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionItemDirective, decorators: [{
            type: Directive,
            args: [{
                    // eslint-disable-next-line @angular-eslint/directive-selector
                    selector: '[fd-upload-collection-item]',
                    host: { class: 'fd-upload-collection__item' },
                    standalone: true
                }]
        }], propDecorators: { fileName: [{
                type: Input
            }], extension: [{
                type: Input
            }], _formItemComponent: [{
                type: ContentChild,
                args: [UploadCollectionFormItemComponent]
            }], _titleDirective: [{
                type: ContentChild,
                args: [UploadCollectionTitleDirective]
            }], _buttonGroupComponent: [{
                type: ContentChild,
                args: [UploadCollectionButtonGroupComponent]
            }], _titleContainerDirective: [{
                type: ContentChild,
                args: [UploadCollectionTitleContainerDirective]
            }], fileNameChanged: [{
                type: Output
            }], deleteClicked: [{
                type: Output
            }], onResize: [{
                type: HostListener,
                args: ['window:resize', []]
            }] } });

class UploadCollectionComponent {
    constructor() {
        /** Whether or not this is the small upload collection. */
        this.small = false;
        /** Whether or not this upload collection supports selection. */
        this.selection = false;
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: UploadCollectionComponent, isStandalone: true, selector: "fd-upload-collection", inputs: { small: "small", selection: "selection" }, host: { properties: { "class.fd-upload-collection--sm": "this.small" }, classAttribute: "fd-upload-collection" }, ngImport: i0, template: `<ul fd-list [byline]="true" [selection]="selection">
        <ng-content></ng-content>
    </ul>`, isInline: true, styles: ["@charset \"UTF-8\";:root{--fdList_Item_Background_Color:var(--sapList_Background);--fdList_Item_Text_Color:var(--sapList_TextColor);--fdList_Item_Border_Color:var(--sapList_BorderColor);--fdList_Item_Text_Font_Size:var(--sapFontLargeSize);--fdList_Item_Icon_Font_Size:1.125rem;--fdList_Item_Height:var(--sapElement_LineHeight);--fdList_Status_Text_Color:var(--sapNeutralTextColor);--fdList_Message_Background_Color:var(--sapNeutralBackground)}.fd-list--byline .fd-list__item{height:auto;min-height:5rem;padding-block:.9375rem;padding-inline:1rem;width:100%;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.fd-list--byline .fd-list__item.is-focus,.fd-list--byline .fd-list__item:focus{pointer-events:all;z-index:5}.fd-list--byline .fd-list__item .fd-list__item-counter{-ms-flex-align:center;-ms-flex-item-align:center;align-self:center;-webkit-box-pack:end;-ms-flex-pack:end;height:100%;justify-content:flex-end;min-width:2rem}.fd-list--byline .fd-list__item .fd-list__item-counter,.fd-list--byline .fd-list__thumbnail{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;align-items:center}.fd-list--byline .fd-list__thumbnail{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;pointer-events:none;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;-webkit-margin-end:.75rem;border-radius:.25rem;color:var(--sapContent_NonInteractiveIconColor);font-size:2rem;height:3rem;margin-inline-end:.75rem;max-height:3rem;max-width:3rem;min-height:3rem;min-width:3rem;width:3rem}.fd-list--byline .fd-list__thumbnail:after,.fd-list--byline .fd-list__thumbnail:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-list--byline .fd-list__thumbnail [class*=sap-icon],.fd-list--byline .fd-list__thumbnail[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;font-size:inherit;line-height:1}.fd-list--byline .fd-list__thumbnail>svg{height:100%}.fd-list--byline .fd-list__notification{color:var(--sapAccentColor6);font-size:.375rem;left:1rem;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.fd-list--byline .fd-list__notification[dir=rtl],[dir=rtl] .fd-list--byline .fd-list__notification{left:auto;right:1rem}.fd-list--byline .fd-list__notification+.fd-list__link .fd-list__content .fd-list__title,.fd-list--byline .fd-list__notification~.fd-list__content .fd-list__title{font-weight:700}.fd-list--byline .fd-list__content{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;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;pointer-events:none;-ms-flex-line-pack:justify;align-content:space-between;height:100%;min-height:3rem;min-width:3rem;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding-block:.125rem;padding-inline:0}.fd-list--byline .fd-list__content:after,.fd-list--byline .fd-list__content:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-list--byline .fd-list__title{font-size:var(--sapFontLargeSize);min-height:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-list--byline .fd-list__byline{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1rem;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap;-webkit-padding-before:.5rem;padding-block-start:.5rem}.fd-list--byline .fd-list__byline:after,.fd-list--byline .fd-list__byline:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-list--byline .fd-list__byline--2-col{display:-webkit-box;display:-ms-flexbox;display:flex;pointer-events:all}.fd-list--byline .fd-list__byline--wrap .fd-list__byline-left,.fd-list--byline .fd-list__byline--wrap .fd-list__byline-right{display:inline;padding-block:0;padding-inline:0;white-space:normal;width:100%}.fd-list--byline .fd-list__byline--wrap .fd-list__byline-right{float:right;width:auto}.fd-list--byline .fd-list__link--more{pointer-events:all;text-transform:capitalize}.fd-list--byline .fd-list__byline--wrap,.fd-list--byline .fd-list__title--wrap{white-space:normal}.fd-list--byline .fd-list__byline-left{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1rem;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap;width:60%;-ms-flex-item-align:end;align-self:flex-end;-webkit-padding-end:.5rem;padding-inline-end:.5rem}.fd-list--byline .fd-list__byline-left:after,.fd-list--byline .fd-list__byline-left:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-list--byline .fd-list__byline-right{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1rem;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-align:right;text-overflow:ellipsis;white-space:nowrap;width:40%;-ms-flex-item-align:end;align-self:flex-end;-webkit-padding-start:.5rem;padding-inline-start:.5rem}.fd-list--byline .fd-list__byline-right:after,.fd-list--byline .fd-list__byline-right:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-list--byline .fd-list__byline-right[dir=rtl],[dir=rtl] .fd-list--byline .fd-list__byline-right{text-align:left}.fd-list--byline .fd-list__byline-right--neutral{color:var(--sapNeutralTextColor)}.fd-list--byline .fd-list__byline-right--positive{color:var(--sapPositiveTextColor)}.fd-list--byline .fd-list__byline-right--critical{color:var(--sapCriticalTextColor)}.fd-list--byline .fd-list__byline-right--negative{color:var(--sapNegativeTextColor)}.fd-list--byline .fd-list__byline-right--informative{color:var(--sapInformativeTextColor)}.fd-list--byline .fd-list__group-header{height:var(--sapElement_LineHeight);max-height:var(--sapElement_LineHeight);min-height:var(--sapElement_LineHeight)}.fd-list--byline.fd-list--unread-indicator .fd-list__item{padding-inline:2.125rem 1rem}.fd-list--byline[class*=-compact] .fd-list__title,.fd-list--byline[class*=-condensed] .fd-list__title,[class*=-compact] .fd-list--byline:not([class*=-cozy]) .fd-list__title,[class*=-condensed] .fd-list--byline:not([class*=-cozy]) .fd-list__title{font-size:var(--sapFontSize)}.fd-list--byline.fd-list--no-border .fd-list__item{height:100%;max-height:5rem;padding-block:.5rem}.fd-list--byline.fd-list--no-border .fd-list__item:first-child{-webkit-padding-before:.9375rem;padding-block-start:.9375rem}.fd-list--byline.fd-list--no-border .fd-list__item:last-child{-webkit-padding-after:.9375rem;padding-block-end:.9375rem}.fd-upload-collection .fd-upload-collection__item{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.fd-upload-collection .fd-upload-collection__item--interactive .fd-upload-collection__thumbnail{color:var(--sapContent_IconColor)}.fd-upload-collection__thumbnail{-ms-flex-item-align:start;align-self:flex-start}.fd-upload-collection__button-group{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-margin-start:1rem;margin-inline-start:1rem}.fd-upload-collection__button-group:after,.fd-upload-collection__button-group:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-upload-collection__button-group button{-webkit-margin-start:.125rem;margin-inline-start:.125rem}.fd-upload-collection__title-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fd-upload-collection__title-container:after,.fd-upload-collection__title-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-upload-collection__title-container .fd-upload-collection__title{-webkit-box-flex:0;-ms-flex:none;flex:none;-ms-flex-negative:1;flex-shrink:1}.fd-upload-collection .fd-upload-collection__title-container .fd-upload-collection__title{-webkit-margin-end:.5rem;margin-inline-end:.5rem}.fd-upload-collection__description,.fd-upload-collection__extension,.fd-upload-collection__status-group{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1rem;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap}.fd-upload-collection__description:after,.fd-upload-collection__description:before,.fd-upload-collection__extension:after,.fd-upload-collection__extension:before,.fd-upload-collection__status-group:after,.fd-upload-collection__status-group:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-upload-collection__description{-webkit-padding-before:.625rem;padding-block-start:.625rem}.fd-upload-collection .fd-upload-collection__status-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin-top:.375rem}.fd-upload-collection .fd-upload-collection__status-group-item{margin-inline:.25rem;-ms-flex-negative:1;flex-shrink:1;min-width:0}.fd-upload-collection .fd-upload-collection__status-group-item:first-child{margin-inline:0 .25rem}.fd-upload-collection .fd-upload-collection__status-group-item-text{line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-upload-collection__extension{-webkit-margin-start:.375rem;display:inline-block;margin-inline-start:.375rem}.fd-upload-collection__text-separator:before{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);content:\"\\2022\";font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-upload-collection__text-separator:before:after,.fd-upload-collection__text-separator:before:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-upload-collection__form-item{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-upload-collection__form-item:after,.fd-upload-collection__form-item:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-upload-collection__form-item input{width:60%}.fd-upload-collection--sm .fd-upload-collection__item{-ms-flex-wrap:wrap;flex-wrap:wrap}.fd-upload-collection--sm .fd-upload-collection__button-group{margin-inline:0;-ms-flex-preferred-size:100%;flex-basis:100%;margin-top:.75rem}.fd-upload-collection--sm .fd-upload-collection__button-group button:not(:first-child){-webkit-margin-start:.5rem;margin-inline-start:.5rem}.fd-upload-collection--sm .fd-upload-collection__form-item input{width:75%}\n/*! Bundled license information:\n\nfundamental-styles/dist/upload-collection.css:\n  (*!\n   * Fundamental Library Styles v0.41.7\n   * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n   * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n   *)\n*/\n"], dependencies: [{ kind: "component", type: ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "theme", "unreadIndicator", "role", "settingsList", "settingsListFooter", "searchResultsList"], outputs: ["focusEscapeList"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionComponent, decorators: [{
            type: Component,
            args: [{ selector: 'fd-upload-collection', host: { class: 'fd-upload-collection' }, template: `<ul fd-list [byline]="true" [selection]="selection">
        <ng-content></ng-content>
    </ul>`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [ListComponent], styles: ["@charset \"UTF-8\";:root{--fdList_Item_Background_Color:var(--sapList_Background);--fdList_Item_Text_Color:var(--sapList_TextColor);--fdList_Item_Border_Color:var(--sapList_BorderColor);--fdList_Item_Text_Font_Size:var(--sapFontLargeSize);--fdList_Item_Icon_Font_Size:1.125rem;--fdList_Item_Height:var(--sapElement_LineHeight);--fdList_Status_Text_Color:var(--sapNeutralTextColor);--fdList_Message_Background_Color:var(--sapNeutralBackground)}.fd-list--byline .fd-list__item{height:auto;min-height:5rem;padding-block:.9375rem;padding-inline:1rem;width:100%;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.fd-list--byline .fd-list__item.is-focus,.fd-list--byline .fd-list__item:focus{pointer-events:all;z-index:5}.fd-list--byline .fd-list__item .fd-list__item-counter{-ms-flex-align:center;-ms-flex-item-align:center;align-self:center;-webkit-box-pack:end;-ms-flex-pack:end;height:100%;justify-content:flex-end;min-width:2rem}.fd-list--byline .fd-list__item .fd-list__item-counter,.fd-list--byline .fd-list__thumbnail{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;align-items:center}.fd-list--byline .fd-list__thumbnail{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;pointer-events:none;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;-webkit-margin-end:.75rem;border-radius:.25rem;color:var(--sapContent_NonInteractiveIconColor);font-size:2rem;height:3rem;margin-inline-end:.75rem;max-height:3rem;max-width:3rem;min-height:3rem;min-width:3rem;width:3rem}.fd-list--byline .fd-list__thumbnail:after,.fd-list--byline .fd-list__thumbnail:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-list--byline .fd-list__thumbnail [class*=sap-icon],.fd-list--byline .fd-list__thumbnail[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;font-size:inherit;line-height:1}.fd-list--byline .fd-list__thumbnail>svg{height:100%}.fd-list--byline .fd-list__notification{color:var(--sapAccentColor6);font-size:.375rem;left:1rem;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.fd-list--byline .fd-list__notification[dir=rtl],[dir=rtl] .fd-list--byline .fd-list__notification{left:auto;right:1rem}.fd-list--byline .fd-list__notification+.fd-list__link .fd-list__content .fd-list__title,.fd-list--byline .fd-list__notification~.fd-list__content .fd-list__title{font-weight:700}.fd-list--byline .fd-list__content{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;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;pointer-events:none;-ms-flex-line-pack:justify;align-content:space-between;height:100%;min-height:3rem;min-width:3rem;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding-block:.125rem;padding-inline:0}.fd-list--byline .fd-list__content:after,.fd-list--byline .fd-list__content:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-list--byline .fd-list__title{font-size:var(--sapFontLargeSize);min-height:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-list--byline .fd-list__byline{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1rem;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap;-webkit-padding-before:.5rem;padding-block-start:.5rem}.fd-list--byline .fd-list__byline:after,.fd-list--byline .fd-list__byline:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-list--byline .fd-list__byline--2-col{display:-webkit-box;display:-ms-flexbox;display:flex;pointer-events:all}.fd-list--byline .fd-list__byline--wrap .fd-list__byline-left,.fd-list--byline .fd-list__byline--wrap .fd-list__byline-right{display:inline;padding-block:0;padding-inline:0;white-space:normal;width:100%}.fd-list--byline .fd-list__byline--wrap .fd-list__byline-right{float:right;width:auto}.fd-list--byline .fd-list__link--more{pointer-events:all;text-transform:capitalize}.fd-list--byline .fd-list__byline--wrap,.fd-list--byline .fd-list__title--wrap{white-space:normal}.fd-list--byline .fd-list__byline-left{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1rem;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap;width:60%;-ms-flex-item-align:end;align-self:flex-end;-webkit-padding-end:.5rem;padding-inline-end:.5rem}.fd-list--byline .fd-list__byline-left:after,.fd-list--byline .fd-list__byline-left:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-list--byline .fd-list__byline-right{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1rem;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-align:right;text-overflow:ellipsis;white-space:nowrap;width:40%;-ms-flex-item-align:end;align-self:flex-end;-webkit-padding-start:.5rem;padding-inline-start:.5rem}.fd-list--byline .fd-list__byline-right:after,.fd-list--byline .fd-list__byline-right:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-list--byline .fd-list__byline-right[dir=rtl],[dir=rtl] .fd-list--byline .fd-list__byline-right{text-align:left}.fd-list--byline .fd-list__byline-right--neutral{color:var(--sapNeutralTextColor)}.fd-list--byline .fd-list__byline-right--positive{color:var(--sapPositiveTextColor)}.fd-list--byline .fd-list__byline-right--critical{color:var(--sapCriticalTextColor)}.fd-list--byline .fd-list__byline-right--negative{color:var(--sapNegativeTextColor)}.fd-list--byline .fd-list__byline-right--informative{color:var(--sapInformativeTextColor)}.fd-list--byline .fd-list__group-header{height:var(--sapElement_LineHeight);max-height:var(--sapElement_LineHeight);min-height:var(--sapElement_LineHeight)}.fd-list--byline.fd-list--unread-indicator .fd-list__item{padding-inline:2.125rem 1rem}.fd-list--byline[class*=-compact] .fd-list__title,.fd-list--byline[class*=-condensed] .fd-list__title,[class*=-compact] .fd-list--byline:not([class*=-cozy]) .fd-list__title,[class*=-condensed] .fd-list--byline:not([class*=-cozy]) .fd-list__title{font-size:var(--sapFontSize)}.fd-list--byline.fd-list--no-border .fd-list__item{height:100%;max-height:5rem;padding-block:.5rem}.fd-list--byline.fd-list--no-border .fd-list__item:first-child{-webkit-padding-before:.9375rem;padding-block-start:.9375rem}.fd-list--byline.fd-list--no-border .fd-list__item:last-child{-webkit-padding-after:.9375rem;padding-block-end:.9375rem}.fd-upload-collection .fd-upload-collection__item{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.fd-upload-collection .fd-upload-collection__item--interactive .fd-upload-collection__thumbnail{color:var(--sapContent_IconColor)}.fd-upload-collection__thumbnail{-ms-flex-item-align:start;align-self:flex-start}.fd-upload-collection__button-group{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-margin-start:1rem;margin-inline-start:1rem}.fd-upload-collection__button-group:after,.fd-upload-collection__button-group:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-upload-collection__button-group button{-webkit-margin-start:.125rem;margin-inline-start:.125rem}.fd-upload-collection__title-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fd-upload-collection__title-container:after,.fd-upload-collection__title-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-upload-collection__title-container .fd-upload-collection__title{-webkit-box-flex:0;-ms-flex:none;flex:none;-ms-flex-negative:1;flex-shrink:1}.fd-upload-collection .fd-upload-collection__title-container .fd-upload-collection__title{-webkit-margin-end:.5rem;margin-inline-end:.5rem}.fd-upload-collection__description,.fd-upload-collection__extension,.fd-upload-collection__status-group{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1rem;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap}.fd-upload-collection__description:after,.fd-upload-collection__description:before,.fd-upload-collection__extension:after,.fd-upload-collection__extension:before,.fd-upload-collection__status-group:after,.fd-upload-collection__status-group:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-upload-collection__description{-webkit-padding-before:.625rem;padding-block-start:.625rem}.fd-upload-collection .fd-upload-collection__status-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin-top:.375rem}.fd-upload-collection .fd-upload-collection__status-group-item{margin-inline:.25rem;-ms-flex-negative:1;flex-shrink:1;min-width:0}.fd-upload-collection .fd-upload-collection__status-group-item:first-child{margin-inline:0 .25rem}.fd-upload-collection .fd-upload-collection__status-group-item-text{line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-upload-collection__extension{-webkit-margin-start:.375rem;display:inline-block;margin-inline-start:.375rem}.fd-upload-collection__text-separator:before{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);content:\"\\2022\";font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-upload-collection__text-separator:before:after,.fd-upload-collection__text-separator:before:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-upload-collection__form-item{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-upload-collection__form-item:after,.fd-upload-collection__form-item:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-upload-collection__form-item input{width:60%}.fd-upload-collection--sm .fd-upload-collection__item{-ms-flex-wrap:wrap;flex-wrap:wrap}.fd-upload-collection--sm .fd-upload-collection__button-group{margin-inline:0;-ms-flex-preferred-size:100%;flex-basis:100%;margin-top:.75rem}.fd-upload-collection--sm .fd-upload-collection__button-group button:not(:first-child){-webkit-margin-start:.5rem;margin-inline-start:.5rem}.fd-upload-collection--sm .fd-upload-collection__form-item input{width:75%}\n/*! Bundled license information:\n\nfundamental-styles/dist/upload-collection.css:\n  (*!\n   * Fundamental Library Styles v0.41.7\n   * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n   * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n   *)\n*/\n"] }]
        }], propDecorators: { small: [{
                type: Input
            }, {
                type: HostBinding,
                args: ['class.fd-upload-collection--sm']
            }], selection: [{
                type: Input
            }] } });

/**
 * @deprecated
 * Use direct imports of components and directives.
 */
class UploadCollectionModule {
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionModule, imports: [UploadCollectionComponent,
            UploadCollectionItemDirective,
            UploadCollectionThumbnailDirective,
            UploadCollectionTitleDirective,
            UploadCollectionDescriptionDirective,
            UploadCollectionTextSeparatorDirective,
            UploadCollectionStatusGroupDirective,
            UploadCollectionStatusItemDirective,
            UploadCollectionButtonGroupComponent,
            UploadCollectionFormItemComponent,
            UploadCollectionTitleContainerDirective], exports: [UploadCollectionComponent,
            UploadCollectionItemDirective,
            UploadCollectionThumbnailDirective,
            UploadCollectionTitleDirective,
            UploadCollectionDescriptionDirective,
            UploadCollectionTextSeparatorDirective,
            UploadCollectionStatusGroupDirective,
            UploadCollectionStatusItemDirective,
            UploadCollectionButtonGroupComponent,
            UploadCollectionFormItemComponent,
            UploadCollectionTitleContainerDirective] }); }
    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionModule, imports: [UploadCollectionComponent,
            UploadCollectionButtonGroupComponent,
            UploadCollectionFormItemComponent] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UploadCollectionModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [
                        UploadCollectionComponent,
                        UploadCollectionItemDirective,
                        UploadCollectionThumbnailDirective,
                        UploadCollectionTitleDirective,
                        UploadCollectionDescriptionDirective,
                        UploadCollectionTextSeparatorDirective,
                        UploadCollectionStatusGroupDirective,
                        UploadCollectionStatusItemDirective,
                        UploadCollectionButtonGroupComponent,
                        UploadCollectionFormItemComponent,
                        UploadCollectionTitleContainerDirective
                    ],
                    exports: [
                        UploadCollectionComponent,
                        UploadCollectionItemDirective,
                        UploadCollectionThumbnailDirective,
                        UploadCollectionTitleDirective,
                        UploadCollectionDescriptionDirective,
                        UploadCollectionTextSeparatorDirective,
                        UploadCollectionStatusGroupDirective,
                        UploadCollectionStatusItemDirective,
                        UploadCollectionButtonGroupComponent,
                        UploadCollectionFormItemComponent,
                        UploadCollectionTitleContainerDirective
                    ]
                }]
        }] });

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

export { UploadCollectionButtonGroupComponent, UploadCollectionComponent, UploadCollectionDescriptionDirective, UploadCollectionFormItemComponent, UploadCollectionItemDirective, UploadCollectionModule, UploadCollectionStatusGroupDirective, UploadCollectionStatusItemDirective, UploadCollectionTextSeparatorDirective, UploadCollectionThumbnailDirective, UploadCollectionTitleContainerDirective, UploadCollectionTitleDirective };
//# sourceMappingURL=fundamental-ngx-core-upload-collection.mjs.map
