{"version":3,"file":"fundamental-ngx-core-upload-collection.mjs","sources":["../../../../libs/core/upload-collection/upload-collection-button-group/upload-collection-button-group.component.ts","../../../../libs/core/upload-collection/upload-collection-button-group/upload-collection-button-group.component.html","../../../../libs/core/upload-collection/upload-collection-form-item/upload-collection-form-item.component.ts","../../../../libs/core/upload-collection/upload-collection-form-item/upload-collection-form-item.component.html","../../../../libs/core/upload-collection/upload-collection-simple.directives.ts","../../../../libs/core/upload-collection/upload-collection-item.directive.ts","../../../../libs/core/upload-collection/upload-collection.component.ts","../../../../libs/core/upload-collection/upload-collection.module.ts","../../../../libs/core/upload-collection/fundamental-ngx-core-upload-collection.ts"],"sourcesContent":["import {\n    ChangeDetectionStrategy,\n    Component,\n    EventEmitter,\n    Input,\n    Output,\n    ViewChild,\n    ViewEncapsulation\n} from '@angular/core';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\n\n@Component({\n    selector: 'fd-upload-collection-button-group',\n    host: { class: 'fd-upload-collection__button-group' },\n    templateUrl: './upload-collection-button-group.component.html',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [ButtonComponent, FdTranslatePipe]\n})\nexport class UploadCollectionButtonGroupComponent {\n    /** Event emitted when the user clicks the edit button. */\n    @Output()\n    readonly editClicked = new EventEmitter<boolean>();\n\n    /** Event emitted when the user clicks the OK button to conform a file name change. */\n    @Output()\n    readonly okClicked = new EventEmitter<any>();\n\n    /** Event emitted when the user clicks the delete button. */\n    @Output()\n    readonly deleteClicked = new EventEmitter<any>();\n\n    /** Whether or not to allow file name editing. Default is true. */\n    @Input()\n    allowFileNameEdit = true;\n\n    /** Whether or not to show the delete button. Default is true. */\n    @Input()\n    allowFileDeletion = true;\n\n    /** Whether or not to disable the file name edit button. Default is false. */\n    @Input()\n    disableFileNameEdit = false;\n\n    /** Whether or not to disable the delete button. Default is false. */\n    @Input()\n    disableFileDeletion = false;\n\n    /** @hidden */\n    @ViewChild('okButton')\n    _okButton: ButtonComponent;\n\n    /** @hidden */\n    _editMode = false;\n\n    /** @hidden */\n    _editButtonClicked(event?: MouseEvent): void {\n        if (event) {\n            event.stopPropagation();\n        }\n        this.editClicked.emit(true);\n        this._editMode = true;\n    }\n\n    /** @hidden */\n    _deleteButtonClicked(event?: MouseEvent): void {\n        if (event) {\n            event.stopPropagation();\n        }\n        this.deleteClicked.emit();\n    }\n\n    /** @hidden */\n    _okButtonClicked(event?: MouseEvent): void {\n        if (event) {\n            event.stopPropagation();\n        }\n        this.okClicked.emit();\n    }\n\n    /** @hidden */\n    _cancelButtonClicked(event?: MouseEvent): void {\n        if (event) {\n            event.stopPropagation();\n        }\n        this.editClicked.emit(false);\n        this._editMode = false;\n    }\n}\n","@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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { ControlValueAccessor, FormsModule } from '@angular/forms';\nimport { FormControlComponent } from '@fundamental-ngx/core/form';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\n\n@Component({\n    selector: 'fd-upload-collection-form-item',\n    host: { class: 'fd-upload-collection__form-item' },\n    templateUrl: './upload-collection-form-item.component.html',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [FormControlComponent, FormsModule, FdTranslatePipe]\n})\nexport class UploadCollectionFormItemComponent implements ControlValueAccessor {\n    /** @hidden */\n    @Input()\n    _editMode = false;\n\n    /** Event emitted when the dragged file exits the dropzone. */\n    @Output()\n    readonly fileNameChanged = new EventEmitter<string>();\n\n    /** @hidden */\n    _fileNameValue: string;\n\n    /** @hidden */\n    _extension: string;\n\n    /** Value of the text input. */\n    set fileName(value) {\n        this._fileNameValue = value;\n        this.onChange(value);\n        this.onTouched();\n        this.fileNameChanged.emit(value);\n    }\n    get fileName(): string {\n        return this._fileNameValue;\n    }\n\n    /** @hidden */\n    onChange: (value: string) => void = () => {};\n\n    /** @hidden */\n    onTouched = (): void => {};\n\n    /** @hidden */\n    writeValue(value: string): void {\n        this.fileName = value;\n    }\n\n    /** @hidden */\n    registerOnChange(fn: (value: string) => void): void {\n        this.onChange = fn;\n    }\n\n    /** @hidden */\n    registerOnTouched(fn: () => void): void {\n        this.onTouched = fn;\n    }\n}\n","@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","import {\n    ContentChildren,\n    Directive,\n    ElementRef,\n    HostBinding,\n    Inject,\n    OnInit,\n    Optional,\n    QueryList,\n    inject\n} from '@angular/core';\nimport { ObjectMarkerComponent } from '@fundamental-ngx/core/object-marker';\nimport { FD_OBJECT_STATUS_COMPONENT, ObjectStatusComponent } from '@fundamental-ngx/core/object-status';\n\n@Directive({\n    // eslint-disable-next-line @angular-eslint/directive-selector\n    selector: '[fd-upload-collection-thumbnail]',\n    host: { class: 'fd-upload-collection__thumbnail' },\n    standalone: true\n})\nexport class UploadCollectionThumbnailDirective {}\n\n@Directive({\n    // eslint-disable-next-line @angular-eslint/directive-selector\n    selector: '[fd-upload-collection-title]',\n    host: { class: 'fd-upload-collection__title' },\n    standalone: true\n})\nexport class UploadCollectionTitleDirective {\n    /** @hidden */\n    readonly elRef = inject(ElementRef);\n}\n\n@Directive({\n    // eslint-disable-next-line @angular-eslint/directive-selector\n    selector: '[fd-upload-collection-description]',\n    host: { class: 'fd-upload-collection__description' },\n    standalone: true\n})\nexport class UploadCollectionDescriptionDirective {}\n\n@Directive({\n    // eslint-disable-next-line @angular-eslint/directive-selector\n    selector: '[fd-upload-collection-text-separator], fd-upload-collection-text-separator',\n    host: { class: 'fd-upload-collection__text-separator' },\n    standalone: true\n})\nexport class UploadCollectionTextSeparatorDirective {}\n\n@Directive({\n    // eslint-disable-next-line @angular-eslint/directive-selector\n    selector: '[fd-upload-collection-status-group]',\n    host: { class: 'fd-upload-collection__status-group' },\n    standalone: true\n})\nexport class UploadCollectionStatusGroupDirective {}\n\n@Directive({\n    // eslint-disable-next-line @angular-eslint/directive-selector\n    selector: '[fd-upload-collection-status-item]',\n    host: { class: 'fd-upload-collection__status-group-item' },\n    standalone: true\n})\nexport class UploadCollectionStatusItemDirective implements OnInit {\n    /** @hidden */\n    constructor(@Optional() @Inject(FD_OBJECT_STATUS_COMPONENT) private _objectStatus: ObjectStatusComponent) {}\n\n    /** @hidden */\n    ngOnInit(): void {\n        if (this._objectStatus) {\n            this._objectStatus._textClass += ' fd-upload-collection__status-group-item-text';\n        }\n    }\n}\n\n@Directive({\n    // eslint-disable-next-line @angular-eslint/directive-selector\n    selector: '[fd-upload-collection-title-container]',\n    standalone: true\n})\nexport class UploadCollectionTitleContainerDirective {\n    /** @hidden */\n    @ContentChildren(ObjectMarkerComponent)\n    _objectMarkerComponents: QueryList<ObjectMarkerComponent>;\n\n    /** Whether or not this is in edit mode. */\n    @HostBinding('class.fd-upload-collection__title-container')\n    applyContainerClass = true;\n}\n","import {\n    AfterContentInit,\n    AfterViewInit,\n    ContentChild,\n    Directive,\n    ElementRef,\n    EventEmitter,\n    HostListener,\n    Input,\n    OnDestroy,\n    Output,\n    inject\n} from '@angular/core';\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\nimport { LINK_CLASS_NAME } from '@fundamental-ngx/core/link';\nimport { Subscription } from 'rxjs';\nimport { UploadCollectionButtonGroupComponent } from './upload-collection-button-group/upload-collection-button-group.component';\nimport { UploadCollectionFormItemComponent } from './upload-collection-form-item/upload-collection-form-item.component';\nimport {\n    UploadCollectionTitleContainerDirective,\n    UploadCollectionTitleDirective\n} from './upload-collection-simple.directives';\n\n@Directive({\n    // eslint-disable-next-line @angular-eslint/directive-selector\n    selector: '[fd-upload-collection-item]',\n    host: { class: 'fd-upload-collection__item' },\n    standalone: true\n})\nexport class UploadCollectionItemDirective implements AfterContentInit, OnDestroy, AfterViewInit, HasElementRef {\n    /** The name of the file, not including the type extension. */\n    @Input()\n    fileName: string;\n\n    /** The file type extension. */\n    @Input()\n    extension: string;\n\n    /** @hidden */\n    @ContentChild(UploadCollectionFormItemComponent)\n    _formItemComponent: UploadCollectionFormItemComponent;\n\n    /** @hidden */\n    @ContentChild(UploadCollectionTitleDirective)\n    _titleDirective: UploadCollectionTitleDirective;\n\n    /** @hidden */\n    @ContentChild(UploadCollectionButtonGroupComponent)\n    _buttonGroupComponent: UploadCollectionButtonGroupComponent;\n\n    /** @hidden */\n    @ContentChild(UploadCollectionTitleContainerDirective)\n    _titleContainerDirective: UploadCollectionTitleContainerDirective;\n\n    /** Event emitted when the user changes a file name. */\n    @Output()\n    readonly fileNameChanged = new EventEmitter<any>();\n\n    /** Event emitted when presses the delete button. */\n    @Output()\n    readonly deleteClicked = new EventEmitter<any>();\n\n    /** @hidden */\n    fileNameFull: string;\n\n    /** @hidden */\n    titleWidth: number;\n\n    /** @hidden used to compare to the current width to know whether to collapse or expand title */\n    previousContainerWidth: number;\n\n    /** @hidden */\n    containerWidth: number;\n\n    /** @hidden */\n    readonly elementRef = inject(ElementRef);\n\n    /** @hidden */\n    private _subscriptions = new Subscription();\n\n    /** @hidden */\n    @HostListener('window:resize', [])\n    onResize(): void {\n        if (!this.elementRef.nativeElement.parentElement) {\n            return;\n        }\n        this.titleWidth = this.getTitleWidth();\n        this.containerWidth = this.getContainerWidth();\n\n        // if first load and no previous container width, or if container boundary is resized to smaller than before\n        if (!this.previousContainerWidth || this.containerWidth < this.previousContainerWidth) {\n            // and the title extends past the container, 1.05x padding to prevent jaggy resizing.\n            if (this.titleWidth * 1.05 >= this.containerWidth) {\n                this.resizeFileTitle(this._titleDirective.elRef.nativeElement.innerHTML);\n            }\n        } else if (this.previousContainerWidth && this.containerWidth > this.previousContainerWidth) {\n            // Looks to expand file title if container width is resized to greater than before\n            // reset file title to initial\n            this._titleDirective.elRef.nativeElement.innerHTML = this.fileNameFull;\n            this.resizeFileTitle(this.fileNameFull);\n        }\n\n        this.previousContainerWidth = this.containerWidth;\n    }\n\n    /** @hidden */\n    ngAfterContentInit(): void {\n        this.fileNameFull = this.fileName + '.' + this.extension;\n        this._titleDirective.elRef.nativeElement.tabIndex = '0';\n        this._titleDirective.elRef.nativeElement.innerHTML =\n            '<span class=\"' + LINK_CLASS_NAME.linkContent + '\">' + this.fileNameFull + '</span>';\n        this._handleDeleteClickedSubscription();\n        this._handleOkClickedSubscription();\n        this._handleEditClickedSubscription();\n        this._handleFormItemInputChangedSubscription();\n    }\n\n    /** @hidden */\n    ngAfterViewInit(): void {\n        // Process resize after all the children views is initialized\n        setTimeout(() => this.onResize());\n    }\n\n    /** @hidden */\n    ngOnDestroy(): void {\n        this._subscriptions.unsubscribe();\n    }\n\n    /** @hidden */\n    private _handleOkClickedSubscription(): void {\n        this._subscriptions.add(\n            this._buttonGroupComponent.okClicked.subscribe(() => {\n                if (this._formItemComponent.fileName && this._formItemComponent.fileName !== '') {\n                    this.fileName = this._formItemComponent.fileName;\n                    this._titleDirective.elRef.nativeElement.style.display = 'inline-block';\n                    this.fileNameFull = this.fileName + '.' + this.extension;\n                    this._titleDirective.elRef.nativeElement.innerHTML = this.fileNameFull;\n                    this.resizeFileTitle(this.fileNameFull);\n                    this._formItemComponent._editMode = false;\n                    this._buttonGroupComponent._editMode = false;\n                    this.fileNameChanged.emit(this);\n                }\n            })\n        );\n    }\n\n    /** @hidden */\n    private _handleEditClickedSubscription(): void {\n        this._subscriptions.add(\n            this._buttonGroupComponent.editClicked.subscribe((event) => {\n                this._formItemComponent._editMode = event;\n                if (this._titleContainerDirective) {\n                    this._titleContainerDirective.applyContainerClass = !event;\n                }\n                const styles: CSSStyleDeclaration[] = [];\n                styles.push((this._titleDirective.elRef.nativeElement as HTMLElement).style);\n                this._titleContainerDirective?._objectMarkerComponents?.forEach((objectMarker) => {\n                    styles.push(objectMarker.elementRef.nativeElement.style);\n                });\n                event\n                    ? styles.forEach((style) => (style.display = 'none'))\n                    : styles.forEach((style) => (style.display = 'inline-block'));\n                if (event) {\n                    this._formItemComponent._extension = this.extension;\n                    this._formItemComponent.fileName = this.fileName;\n                }\n            })\n        );\n    }\n\n    /** @hidden */\n    private _handleDeleteClickedSubscription(): void {\n        this._subscriptions.add(\n            this._buttonGroupComponent.deleteClicked.subscribe(() => {\n                this.deleteClicked.emit(this);\n            })\n        );\n    }\n\n    /** @hidden */\n    private _handleFormItemInputChangedSubscription(): void {\n        this._subscriptions.add(\n            this._formItemComponent.fileNameChanged.subscribe((event) => {\n                this._buttonGroupComponent._okButton.setDisabled(event === '');\n            })\n        );\n    }\n\n    /** @hidden */\n    private getTitleWidth(): number {\n        return this._titleDirective.elRef.nativeElement.getBoundingClientRect().width;\n    }\n\n    /** @hidden */\n    private getContainerWidth(): number {\n        return this._titleDirective.elRef.nativeElement.parentElement.getBoundingClientRect().width;\n    }\n\n    /**\n     * @hidden\n     *\n     * truncates the string by cutting out excess length in the middle and replacing with '...'\n     */\n    private truncateTitle(str: string): string {\n        const cutLength = Math.floor(str.length * 0.8);\n\n        if (str.length > cutLength) {\n            const stringLeftIndex = Math.floor(cutLength / 2);\n            const stringRightIndex = str.length - stringLeftIndex + 3;\n            return str.substring(0, stringLeftIndex) + '...' + str.substring(stringRightIndex, str.length);\n        }\n        return str;\n    }\n\n    /**\n     * @hidden\n     *\n     * determines if file title needs to be truncated given container constraint.\n     */\n    private resizeFileTitle(titleStr: string): void {\n        let curTitle = titleStr;\n        this.containerWidth = this.getContainerWidth();\n        this.titleWidth = this.getTitleWidth();\n\n        // repeatedly truncate the title until it fits inside container\n        while (this.titleWidth * 1.05 >= this.containerWidth) {\n            const truncatedTitleStr = this.truncateTitle(curTitle);\n            this._titleDirective.elRef.nativeElement.innerHTML = truncatedTitleStr;\n            curTitle = truncatedTitleStr;\n            this.titleWidth = this.getTitleWidth();\n            this.containerWidth = this.getContainerWidth();\n        }\n    }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\nimport { ListComponent } from '@fundamental-ngx/core/list';\n\n@Component({\n    selector: 'fd-upload-collection',\n    host: { class: 'fd-upload-collection' },\n    styleUrl: './upload-collection.component.scss',\n    template: `<ul fd-list [byline]=\"true\" [selection]=\"selection\">\n        <ng-content></ng-content>\n    </ul>`,\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [ListComponent]\n})\nexport class UploadCollectionComponent {\n    /** Whether or not this is the small upload collection. */\n    @Input()\n    @HostBinding('class.fd-upload-collection--sm')\n    small = false;\n\n    /** Whether or not this upload collection supports selection. */\n    @Input()\n    selection = false;\n}\n","import { NgModule } from '@angular/core';\nimport { UploadCollectionButtonGroupComponent } from './upload-collection-button-group/upload-collection-button-group.component';\nimport { UploadCollectionFormItemComponent } from './upload-collection-form-item/upload-collection-form-item.component';\nimport { UploadCollectionItemDirective } from './upload-collection-item.directive';\nimport {\n    UploadCollectionDescriptionDirective,\n    UploadCollectionStatusGroupDirective,\n    UploadCollectionStatusItemDirective,\n    UploadCollectionTextSeparatorDirective,\n    UploadCollectionThumbnailDirective,\n    UploadCollectionTitleContainerDirective,\n    UploadCollectionTitleDirective\n} from './upload-collection-simple.directives';\nimport { UploadCollectionComponent } from './upload-collection.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n    imports: [\n        UploadCollectionComponent,\n        UploadCollectionItemDirective,\n        UploadCollectionThumbnailDirective,\n        UploadCollectionTitleDirective,\n        UploadCollectionDescriptionDirective,\n        UploadCollectionTextSeparatorDirective,\n        UploadCollectionStatusGroupDirective,\n        UploadCollectionStatusItemDirective,\n        UploadCollectionButtonGroupComponent,\n        UploadCollectionFormItemComponent,\n        UploadCollectionTitleContainerDirective\n    ],\n    exports: [\n        UploadCollectionComponent,\n        UploadCollectionItemDirective,\n        UploadCollectionThumbnailDirective,\n        UploadCollectionTitleDirective,\n        UploadCollectionDescriptionDirective,\n        UploadCollectionTextSeparatorDirective,\n        UploadCollectionStatusGroupDirective,\n        UploadCollectionStatusItemDirective,\n        UploadCollectionButtonGroupComponent,\n        UploadCollectionFormItemComponent,\n        UploadCollectionTitleContainerDirective\n    ]\n})\nexport class UploadCollectionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}