{"version":3,"file":"fundamental-ngx-platform-feed-input.mjs","sources":["../../../../libs/platform/feed-input/feed-input.component.ts","../../../../libs/platform/feed-input/feed-input.component.html","../../../../libs/platform/feed-input/feed-input.module.ts","../../../../libs/platform/feed-input/fundamental-ngx-platform-feed-input.ts"],"sourcesContent":["import {\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    Renderer2,\n    ViewChild,\n    ViewEncapsulation,\n    input\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { warnOnce } from '@fundamental-ngx/cdk/utils';\nimport { AvatarComponent } from '@fundamental-ngx/core/avatar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { FormControlComponent } from '@fundamental-ngx/core/form';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\n\nlet feedInputTextareaId = 0;\n\n/**\n * @deprecated\n * Use the `fd-feed-input[modelDriven]` component from `@fundamental-ngx/core/feed-input` instead.\n * The `fd-feed-input` component is a drop-in replacement for the `fdp-feed-input` component.\n */\n@Component({\n    selector: 'fdp-feed-input',\n    templateUrl: './feed-input.component.html',\n    styleUrl: './feed-input.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [AvatarComponent, FormsModule, FormControlComponent, ButtonComponent, FdTranslatePipe]\n})\nexport class FeedInputComponent implements AfterViewInit {\n    /** The user image source, If is not set, then the user image will display placeholder image.  */\n    @Input()\n    avatarSrc: string;\n\n    /** Set placeholder textarea text */\n    @Input()\n    placeholder: string;\n\n    /** Set feed input without user image */\n    @Input()\n    avatarShow = true;\n\n    /** Set disabled state */\n    @Input()\n    disabled = false;\n\n    /** The max number of rows to allow textarea grow */\n    @Input()\n    maxHeight: number;\n\n    /** @hidden Event emitted when user click on send button */\n    @Output()\n    // eslint-disable-next-line @angular-eslint/no-output-native\n    submit = new EventEmitter<string>();\n\n    /** @hidden */\n    @ViewChild('textAreaElement', { read: ElementRef })\n    textarea: ElementRef;\n\n    /** Value for aria label */\n    ariaLabel = input<string>();\n\n    /** @hidden Textarea entered value */\n    value: string | null;\n\n    /** @hidden Unique id for the textarea element */\n    textareaId = `fdp-feed-input-textarea-${feedInputTextareaId++}`;\n\n    /** @hidden */\n    constructor(private _renderer: Renderer2) {\n        warnOnce(\n            'FeedInputComponent is deprecated and will be removed in future release. ' +\n                'Use the `fd-feed-input` component from `@fundamental-ngx/core/feed-input` instead.'\n        );\n    }\n\n    /** @hidden */\n    ngAfterViewInit(): void {\n        const lineHeight = this._getTextareaLineHeight();\n\n        if (this.maxHeight) {\n            this.textarea.nativeElement.style.maxHeight = lineHeight * this.maxHeight + 'px';\n        }\n    }\n\n    /** @hidden */\n    onChange(): void {\n        this.resize();\n    }\n\n    /** @hidden Handle submit feed input value*/\n    onSubmit(): void {\n        if (this.value) {\n            this.submit.emit(this.value);\n        }\n    }\n\n    /** @hidden Make grow textarea */\n    resize(): void {\n        this._renderer.setStyle(this.textarea.nativeElement, 'height', 'inherit');\n\n        const totalHeight = this._getTextareaTotalHeight();\n        this._renderer.setStyle(this.textarea.nativeElement, 'height', `${totalHeight}px`);\n    }\n\n    /** @hidden get line height of textarea */\n    private _getTextareaLineHeight(): number {\n        if (this.textarea && this.textarea.nativeElement) {\n            const lineHeight = window.getComputedStyle(this.textarea.nativeElement).getPropertyValue('line-height');\n            if (lineHeight === 'normal') {\n                return (\n                    parseInt(window.getComputedStyle(this.textarea.nativeElement).getPropertyValue('font-size'), 10) *\n                    1.1\n                );\n            }\n\n            return parseInt(lineHeight, 10);\n        }\n        return 1;\n    }\n\n    /** @hidden Get the total height including borders and scroll height */\n    private _getTextareaTotalHeight(): number {\n        const computed = window.getComputedStyle(this.textarea.nativeElement);\n\n        return (\n            parseInt(computed.getPropertyValue('border-top-width'), 10) +\n            this.textarea.nativeElement.scrollHeight +\n            parseInt(computed.getPropertyValue('border-bottom-width'), 10)\n        );\n    }\n}\n","<div class=\"fd-feed-input\" role=\"group\" [attr.aria-label]=\"ariaLabel()\" [class.is-disabled]=\"disabled\">\n    <div class=\"fd-feed-input__container\">\n        @if (avatarShow) {\n            <fd-avatar\n                class=\"fd-feed-input__thumb\"\n                size=\"s\"\n                role=\"img\"\n                [attr.aria-label]=\"('platformFeedInput.userTitle' | fdTranslate)()\"\n                [title]=\"('platformFeedInput.userTitle' | fdTranslate)()\"\n                [image]=\"avatarSrc\"\n                [class.fd-avatar--placeholder]=\"!avatarSrc\"\n                [class.sap-icon]=\"!avatarSrc\"\n                [glyph]=\"!avatarSrc ? 'person-placeholder' : null\"\n            >\n            </fd-avatar>\n        }\n        <textarea\n            #textAreaElement\n            fd-form-control\n            [id]=\"textareaId\"\n            class=\"fd-textarea fd-feed-input__textarea\"\n            [disabled]=\"disabled\"\n            [placeholder]=\"placeholder\"\n            [(ngModel)]=\"value\"\n            (ngModelChange)=\"onChange()\"\n        ></textarea>\n        <button\n            fd-button\n            class=\"fd-feed-input__submit-button\"\n            glyph=\"feeder-arrow\"\n            [title]=\"('platformFeedInput.sendButton' | fdTranslate)()\"\n            [ariaLabel]=\"('platformFeedInput.sendButton' | fdTranslate)()\"\n            [disabled]=\"!value || disabled\"\n            (click)=\"onSubmit()\"\n        ></button>\n    </div>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { FeedInputComponent } from './feed-input.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n    imports: [FeedInputComponent],\n    exports: [FeedInputComponent]\n})\nexport class PlatformFeedInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}