{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/textarea/src/textarea.props.ts","../../../../../projects/components/widgets/input/textarea/src/textarea.component.ts","../../../../../projects/components/widgets/input/textarea/src/textarea.component.html","../../../../../projects/components/widgets/input/textarea/src/index.ts"],"sourcesContent":["import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget} from '@wm/components/base';\nimport {FormWidgetType} from '@wm/core';\n\nexport const textareaProps = new Map(\n    [\n        ['autofocus', PROP_BOOLEAN],\n        ['autotrim', {value: true, ...PROP_BOOLEAN}],\n        ['class', PROP_STRING],\n        ['datavaluesource', PROP_ANY],\n        ['datavalue', PROP_STRING],\n        ['disabled', PROP_BOOLEAN],\n        ['hint', PROP_STRING],\n        ['arialabel', PROP_STRING],\n        ['maxchars', PROP_NUMBER],\n        ['name', PROP_STRING],\n        ['placeholder', {value: 'Place your text', ...PROP_STRING}],\n        ['readonly', PROP_BOOLEAN],\n        ['required', PROP_BOOLEAN],\n        ['shortcutkey', PROP_STRING],\n        ['show', {value: true, ...PROP_BOOLEAN}],\n        ['tabindex', {value: 0, ...PROP_NUMBER}],\n        ['updateon', PROP_STRING],\n        ['limitdisplaytext', PROP_STRING],\n        ['charlength', PROP_NUMBER],\n        ['conditionalclass', PROP_ANY],\n        ['conditionalstyle', PROP_ANY]\n    ]\n);\n\nexport const registerProps = () => {\n    register(\n        'wm-textarea',\n        textareaProps\n    );\n    registerFormWidget(\n        FormWidgetType.TEXTAREA,\n        new Map(textareaProps)\n    );\n};\n","import { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport {AfterViewChecked, Component, ElementRef, Inject, Injector, OnDestroy, Optional, ViewChild} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\n\nimport {provideAs, provideAsWidgetRef} from '@wm/components/base';\n\nimport {registerProps} from './textarea.props';\nimport { BaseInput } from '@wm/components/input/text';\n\nconst WIDGET_CONFIG = {\n    widgetType: 'wm-textarea',\n    hostClass: 'app-input-wrapper'\n};\n\n@Component({\n    standalone: true,\n    imports: [CommonModule, FormsModule],\n    selector: 'wm-textarea',\n    templateUrl: './textarea.component.html',\n    providers: [\n        provideAs(TextareaComponent, NG_VALUE_ACCESSOR, true),\n        provideAs(TextareaComponent, NG_VALIDATORS, true),\n        provideAsWidgetRef(TextareaComponent)\n    ]\n})\nexport class TextareaComponent extends BaseInput implements AfterViewChecked, OnDestroy {\n    static initializeProps = registerProps();\n    public required: boolean;\n    public maxchars: number;\n    public disabled: boolean;\n    public name: string;\n    public readonly: boolean;\n    public conditionalclass: any;\n    public conditionalstyle: any;\n    public tabindex: any;\n    public placeholder: any;\n    public shortcutkey: string;\n    public autofocus: boolean;\n    public hint: string;\n    public arialabel: string;\n    public limitdisplaytext: string;\n    public charlength: number = 0;\n\n    @ViewChild('textarea', {static: true}) inputEl: ElementRef;\n    @ViewChild(NgModel) ngModel: NgModel;\n\n    constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n        super(inj, WIDGET_CONFIG, explicitContext);\n    }\n\n    public onInputChange() {\n        this.charlength = this.inputEl.nativeElement.value.length;\n    }\n    ngAfterViewChecked(): void {\n        this.charlength = this.inputEl.nativeElement.value.length;\n      }\n\n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Clear ViewChild references\n        this.inputEl = null;\n        this.ngModel = null;\n\n        // Call parent ngOnDestroy\n        super.ngOnDestroy();\n    }\n}\n","<textarea class=\"form-control app-textarea\"\n  focus-target\n  [attr.name]=\"name\"\n  [(ngModel)]=\"datavalue\"\n  [ngModelOptions]=\"ngModelOptions\"\n  [readonly]=\"readonly\"\n  [required]=\"required\"\n  [disabled]=\"disabled\"\n  [maxlength]=\"maxchars\"\n  [attr.tabindex]=\"tabindex\"\n  [attr.placeholder]=\"placeholder\"\n  [attr.accesskey]=\"shortcutkey\"\n  [attr.aria-label]=\"arialabel\"\n  aria-multiline=\"true\"\n  [autofocus]=\"autofocus\"\n  [ngClass]=\"conditionalclass\"\n  [ngStyle]=\"conditionalstyle\"\n  (blur)=\"handleBlur($event)\"\n  (input)=\"onInputChange()\"\n  (ngModelChange)=\"handleChange($event); onInputChange();\"\n  #textarea\n></textarea>\n\n@if (maxchars) {\n  <div class=\"textarea-count\"  >{{limitdisplaytext}}</div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}