{"version":3,"file":"ngx-autosize-ssr.mjs","sources":["../../../projects/ngx-autosize-ssr/src/lib/window-ref.service.ts","../../../projects/ngx-autosize-ssr/src/lib/autosize.directive.ts","../../../projects/ngx-autosize-ssr/src/lib/autosize.module.ts","../../../projects/ngx-autosize-ssr/src/public-api.ts","../../../projects/ngx-autosize-ssr/src/ngx-autosize-ssr.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class WindowRef {\r\n  get nativeWindow(): any {\r\n    return window;\r\n  }\r\n}\r\n","import {\r\n    ElementRef,\r\n    HostListener,\r\n    Directive,\r\n    Input,\r\n    NgZone,\r\n    OnDestroy,\r\n    OnChanges,\r\n    AfterContentChecked,\r\n    Output,\r\n    EventEmitter,\r\n    SimpleChanges,\r\n    OnInit,\r\n    Inject,\r\n    PLATFORM_ID,\r\n} from \"@angular/core\";\r\nimport { WindowRef } from \"./window-ref.service\";\r\nimport { isPlatformBrowser } from \"@angular/common\";\r\n\r\nconst MAX_LOOKUP_RETRIES = 3;\r\n\r\n@Directive({\r\n    selector: \"[autosize]\",\r\n})\r\nexport class AutosizeDirective\r\n    implements OnInit, OnDestroy, OnChanges, AfterContentChecked\r\n{\r\n    @Input()\r\n    set minRows(value: number) {\r\n        this._minRows = +value;\r\n        if (this.textAreaEl) {\r\n            this.textAreaEl.rows = this._minRows;\r\n        }\r\n    }\r\n    @Input(\"autosize\")\r\n    set _autosize(autosize: boolean | string) {\r\n        this.autosize = typeof autosize === \"boolean\" ? autosize : true;\r\n    }\r\n    private _minRows!: number;\r\n\r\n    @Input() maxRows!: number;\r\n    @Input() onlyGrow = false;\r\n    @Input() useImportant = false;\r\n\r\n    @Output() resized = new EventEmitter<number>();\r\n\r\n    private autosize = true;\r\n    private retries = 0;\r\n    private textAreaEl: any;\r\n\r\n    private _oldContent!: string;\r\n    private _oldWidth!: number;\r\n\r\n    private _windowResizeHandler!: (...args: Array<any>) => any;\r\n    private _destroyed = false;\r\n    private isBrowser: boolean = false;\r\n\r\n    @HostListener(\"input\", [\"$event.target\"])\r\n    onInput(textArea: HTMLTextAreaElement): void {\r\n        this.adjust();\r\n    }\r\n\r\n    constructor(\r\n        public element: ElementRef,\r\n        private _window: WindowRef,\r\n        private _zone: NgZone,\r\n        @Inject(PLATFORM_ID) private platformId: Object\r\n    ) {\r\n        if (this.element.nativeElement.tagName !== \"TEXTAREA\") {\r\n            this._findNestedTextArea();\r\n        } else {\r\n            this.textAreaEl = this.element.nativeElement;\r\n            this.textAreaEl.style[\"overflow-y\"] = \"hidden\";\r\n            this._onTextAreaFound();\r\n        }\r\n    }\r\n\r\n    ngOnInit(): void {\r\n        this.isBrowser = isPlatformBrowser(this.platformId);\r\n    }\r\n\r\n    ngOnDestroy() {\r\n        this._destroyed = true;\r\n        if (this.isBrowser && this._windowResizeHandler) {\r\n            this._window.nativeWindow.removeEventListener(\r\n                \"resize\",\r\n                this._windowResizeHandler,\r\n                false\r\n            );\r\n        }\r\n    }\r\n\r\n    ngAfterContentChecked() {\r\n        this.adjust();\r\n    }\r\n\r\n    ngOnChanges(changes: SimpleChanges) {\r\n        this.adjust(true);\r\n    }\r\n\r\n    _findNestedTextArea() {\r\n        this.textAreaEl = this.element.nativeElement.querySelector(\"TEXTAREA\");\r\n\r\n        if (!this.textAreaEl && this.element.nativeElement.shadowRoot) {\r\n            this.textAreaEl =\r\n                this.element.nativeElement.shadowRoot.querySelector(\"TEXTAREA\");\r\n        }\r\n\r\n        if (!this.textAreaEl) {\r\n            if (this.retries >= MAX_LOOKUP_RETRIES) {\r\n                console.warn(\"ngx-autosize-ssr: textarea not found\");\r\n            } else {\r\n                this.retries++;\r\n                setTimeout(() => {\r\n                    this._findNestedTextArea();\r\n                }, 100);\r\n            }\r\n            return;\r\n        }\r\n\r\n        this.textAreaEl.style[\"overflow-y\"] = \"hidden\";\r\n        this._onTextAreaFound();\r\n    }\r\n\r\n    _onTextAreaFound() {\r\n        this._addWindowResizeHandler();\r\n        setTimeout(() => {\r\n            this.adjust();\r\n        });\r\n    }\r\n\r\n    _addWindowResizeHandler() {\r\n        this._windowResizeHandler = debounce(() => {\r\n            this._zone.run(() => {\r\n                this.adjust();\r\n            });\r\n        }, 200);\r\n\r\n        if (this.isBrowser) {\r\n            this._zone.runOutsideAngular(() => {\r\n                this._window.nativeWindow.addEventListener(\r\n                    \"resize\",\r\n                    this._windowResizeHandler,\r\n                    false\r\n                );\r\n            });\r\n        }\r\n    }\r\n\r\n    adjust(inputsChanged = false): void {\r\n        if (\r\n            this.isBrowser &&\r\n            this.autosize &&\r\n            !this._destroyed &&\r\n            this.textAreaEl &&\r\n            this.textAreaEl.parentNode\r\n        ) {\r\n            const currentText = this.textAreaEl.value;\r\n\r\n            if (\r\n                inputsChanged === false &&\r\n                currentText === this._oldContent &&\r\n                this.textAreaEl.offsetWidth === this._oldWidth\r\n            ) {\r\n                return;\r\n            }\r\n\r\n            this._oldContent = currentText;\r\n            this._oldWidth = this.textAreaEl.offsetWidth;\r\n\r\n            const clone = this.textAreaEl.cloneNode(true);\r\n            const parent = this.textAreaEl.parentNode;\r\n            clone.style.width = this.textAreaEl.offsetWidth + \"px\";\r\n            clone.style.visibility = \"hidden\";\r\n            clone.style.position = \"absolute\";\r\n            clone.textContent = currentText;\r\n\r\n            parent.appendChild(clone);\r\n\r\n            clone.style[\"overflow-y\"] = \"hidden\";\r\n            clone.style.height = \"auto\";\r\n\r\n            let height = clone.scrollHeight;\r\n\r\n            // add into height top and bottom borders' width\r\n            let computedStyle = this._window.nativeWindow.getComputedStyle(\r\n                clone,\r\n                null\r\n            );\r\n            height += parseInt(\r\n                computedStyle.getPropertyValue(\"border-top-width\")\r\n            );\r\n            height += parseInt(\r\n                computedStyle.getPropertyValue(\"border-bottom-width\")\r\n            );\r\n\r\n            if (\r\n                computedStyle.getPropertyValue(\"box-sizing\") === \"content-box\"\r\n            ) {\r\n                height -= parseInt(\r\n                    computedStyle.getPropertyValue(\"padding-top\")\r\n                );\r\n                height -= parseInt(\r\n                    computedStyle.getPropertyValue(\"padding-bottom\")\r\n                );\r\n            }\r\n\r\n            const oldHeight = this.textAreaEl.offsetHeight;\r\n            const willGrow = height > oldHeight;\r\n\r\n            if (this.onlyGrow === false || willGrow) {\r\n                const lineHeight = this._getLineHeight();\r\n                const rowsCount = height / lineHeight;\r\n\r\n                if (this._minRows && this._minRows >= rowsCount) {\r\n                    height = this._minRows * lineHeight;\r\n                } else if (this.maxRows && this.maxRows <= rowsCount) {\r\n                    // never shrink the textarea if onlyGrow is true\r\n                    const maxHeight = this.maxRows * lineHeight;\r\n                    height = this.onlyGrow\r\n                        ? Math.max(maxHeight, oldHeight)\r\n                        : maxHeight;\r\n                    this.textAreaEl.style[\"overflow-y\"] = \"auto\";\r\n                } else {\r\n                    this.textAreaEl.style[\"overflow-y\"] = \"hidden\";\r\n                }\r\n\r\n                const heightStyle = height + \"px\";\r\n                const important = this.useImportant ? \"important\" : \"\";\r\n\r\n                this.textAreaEl.style.setProperty(\r\n                    \"height\",\r\n                    heightStyle,\r\n                    important\r\n                );\r\n\r\n                this.resized.emit(height);\r\n            }\r\n\r\n            parent.removeChild(clone);\r\n        }\r\n    }\r\n\r\n    private _getLineHeight() {\r\n        let lineHeight = parseInt(this.textAreaEl.style.lineHeight, 10);\r\n        if (\r\n            this.isBrowser &&\r\n            isNaN(lineHeight) &&\r\n            this._window.nativeWindow.getComputedStyle\r\n        ) {\r\n            const styles = this._window.nativeWindow.getComputedStyle(\r\n                this.textAreaEl\r\n            );\r\n            lineHeight = parseInt(styles.lineHeight, 10);\r\n        }\r\n\r\n        if (this.isBrowser && isNaN(lineHeight)) {\r\n            const fontSize = this._window.nativeWindow\r\n                .getComputedStyle(this.textAreaEl, null)\r\n                .getPropertyValue(\"font-size\");\r\n            lineHeight = Math.floor(\r\n                parseInt(fontSize.replace(\"px\", \"\"), 10) * 1.5\r\n            );\r\n        }\r\n\r\n        return lineHeight;\r\n    }\r\n}\r\n\r\nfunction debounce<Params extends Array<any>>(\r\n    func: (...args: Params) => any,\r\n    timeout: number\r\n): (...args: Params) => void {\r\n    let timer: number;\r\n    return (...args: Params) => {\r\n        clearTimeout(timer);\r\n        timer = setTimeout(() => {\r\n            func(...args);\r\n        }, timeout);\r\n    };\r\n}\r\n\r\n// function Debounce(func: any, wait: number, immediate = false) {\r\n//     let timeout: number | undefined;\r\n//     return () => {\r\n//         const context = this;\r\n//         const args = arguments;\r\n//         const later = function () {\r\n//             timeout = undefined;\r\n//             if (!immediate) {\r\n//                 func.apply(this, args);\r\n//             }\r\n//         };\r\n//         const callNow = immediate && !timeout;\r\n//         clearTimeout(timeout);\r\n//         timeout = setTimeout(later, wait);\r\n//         if (callNow) {\r\n//             func.apply(this, args);\r\n//         }\r\n//     };\r\n// }\r\n","import {NgModule} from '@angular/core';\r\nimport {AutosizeDirective} from './autosize.directive';\r\nimport {WindowRef} from './window-ref.service';\r\n\r\n@NgModule({\r\n    declarations: [AutosizeDirective],\r\n    imports: [],\r\n    providers: [\r\n        WindowRef\r\n    ],\r\n    exports: [AutosizeDirective]\r\n})\r\nexport class AutosizeModule {\r\n}\r\n","/*\r\n * Public API Surface of ngx-autosize-ssr\r\n */\r\n\r\nexport * from \"./lib/autosize.directive\";\r\nexport * from \"./lib/autosize.module\";\r\nexport * from \"./lib/window-ref.service\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}