{"version":3,"file":"deja-js-component-input-autosize.mjs","sources":["../../../../projects/deja-js/component/input-autosize/input-autosize.directive.ts","../../../../projects/deja-js/component/input-autosize/index.ts","../../../../projects/deja-js/component/input-autosize/deja-js-component-input-autosize.ts"],"sourcesContent":["/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { Directive, ElementRef, NgZone, OnInit } from '@angular/core';\nimport { MatInput } from '@angular/material/input';\nimport { Destroy } from '@deja-js/component/core';\nimport { debounceTime, fromEvent, mergeWith, of, startWith, takeUntil } from 'rxjs';\n\n@Directive({\n    selector: '[inputAutosize][matInput], [inputAutosize] [matInput]',\n    exportAs: 'inputAutosize'\n})\nexport class InputAutosizeDirective extends Destroy implements OnInit {\n\n    public constructor(\n        private elementRef: ElementRef<HTMLInputElement>,\n        private ngZone: NgZone,\n        private matInput: MatInput\n    ) {\n        super();\n    }\n\n    public ngOnInit(): void {\n        const inputElement = this.elementRef.nativeElement;\n        const valueChanges$ = this.matInput?.ngControl?.valueChanges || of(null as unknown);\n\n        this.ngZone.runOutsideAngular(() => {\n            fromEvent<Event>(inputElement, 'input').pipe(\n                mergeWith(fromEvent<Event>(inputElement, 'paste'), valueChanges$),\n                startWith(inputElement.value),\n                debounceTime(5),\n                takeUntil(this.destroyed$)\n            ).subscribe(() => {\n                const nbChar = inputElement.value?.length;\n\n                // Forced to have a fallback value as the \"style\" is higher than class/usual style in the hierarchy\n                inputElement.style.width = nbChar ? `${nbChar}ch` : '1ch';\n                inputElement.style.maxWidth = '100%';\n            });\n        });\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { InputAutosizeDirective } from './input-autosize.directive';\n\n@NgModule({\n    imports: [\n        CommonModule\n    ],\n    exports: [InputAutosizeDirective],\n    declarations: [InputAutosizeDirective]\n})\nexport class InputAutosizeModule { }\n\nexport * from './input-autosize.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}