{"version":3,"file":"verben-ng-ui-src-lib-verbena-textarea.mjs","sources":["../../../projects/verben-ng-ui/src/lib/verbena-textarea/verbena-textarea.component.ts","../../../projects/verben-ng-ui/src/lib/verbena-textarea/verbena-textarea.component.html","../../../projects/verben-ng-ui/src/lib/verbena-textarea/verbena-textarea.module.ts","../../../projects/verben-ng-ui/src/lib/verbena-textarea/verben-ng-ui-src-lib-verbena-textarea.ts"],"sourcesContent":["import { \n  Component, \n  Input, \n  Output, \n  EventEmitter, \n  OnInit, \n  Optional, \n  Self, \n  Inject, \n  forwardRef \n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\n\n@Component({\n  selector: 'verbena-textarea',\n  templateUrl: './verbena-textarea.component.html',\n  styleUrls: ['./verbena-textarea.component.css']\n})\nexport class VerbenaTextareaComponent implements ControlValueAccessor, OnInit {\n  @Input() disabled: boolean = false;\n  @Input() label: string = '';\n  @Input() required: boolean = false;\n  @Input() rows: number = 5;\n  @Input() cols: number = 40;\n  @Input() bgColor: string = '#fff';\n  @Input() textColor: string = '#000';\n  @Input() border: string = '1px solid #ccc';\n  @Input() borderRadius: string = '4px';\n  @Input() pd: string = '10px';\n  @Input() width: string = '100%';\n  @Input() height: string = 'auto';\n  @Input() value: string = '';\n  @Input() errorMessageColor: string = 'red';\n\n  @Output() valueChange = new EventEmitter<string>();\n\n  errorMessage: string | undefined;\n  textareaId: string = '';\n  isInvalid: boolean = false;\n  \n  // NEW: Track disabled state from form control\n  isDisabled: boolean = false;\n\n  onChange: any = () => {};\n  onTouch: any = () => {};\n\n  constructor(@Optional() @Self() @Inject(forwardRef(() => NgControl)) private ngControl: NgControl) {\n    if (this.ngControl) {\n      this.ngControl.valueAccessor = this;\n      this.ngControl.statusChanges?.subscribe((status) => {\n        this.isInvalid = this.ngControl.touched\n          ? status === 'INVALID' && this.ngControl.touched\n          : false;\n      });\n    }\n  }\n\n  ngOnInit() {\n    this.textareaId = `verbena-textarea-${Math.random().toString(36).substr(2, 9)}`;\n  }\n\n  onInput(event: Event) {\n    const target = event.target as HTMLTextAreaElement;\n    this.value = target.value.trim();\n    this.validate();\n    this.onChange(this.value);\n    this.onTouch();\n    this.valueChange.emit(this.value);\n  }\n\n  validate() {\n    if (this.required && !this.value) {\n      this.errorMessage = 'This field is required';\n      this.isInvalid = true;\n    } else {\n      this.errorMessage = undefined;\n      this.isInvalid = false;\n    }\n  }\n\n  writeValue(value: any): void {\n    this.value = value ? value.trim() : '';\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouch = fn;\n  }\n\n  // FIXED: Store disabled state in component property instead of DOM manipulation\n  setDisabledState(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n  }\n\n  onValueChange(newValue: string) {\n    this.value = newValue;\n    this.valueChange.emit(this.value);\n    this.validate();\n  }\n}","<label [for]=\"textareaId\">{{ label }}</label>\n\n<textarea\n  [id]=\"textareaId\"\n  [required]=\"required\"\n  [attr.rows]=\"rows\"\n  [attr.cols]=\"cols\"\n  [disabled]=\"disabled || isDisabled\"\n  [ngStyle]=\"{\n    'background-color': bgColor,\n    'color': textColor,\n    'border': border,\n    'border-radius': borderRadius,\n    'padding': pd,\n    'width': width,\n    'height': height\n  }\"\n  [ngModel]=\"value\"\n  (ngModelChange)=\"onValueChange($event)\"  \n></textarea>\n\n<span *ngIf=\"errorMessage\" class=\"error\" [ngStyle]=\"{ color: errorMessageColor }\">\n  {{ errorMessage }}\n</span>","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { VerbenaTextareaComponent } from './verbena-textarea.component';\n\n@NgModule({\n  declarations: [VerbenaTextareaComponent],\n  imports: [CommonModule, FormsModule],\n  exports: [VerbenaTextareaComponent]\n})\nexport class VerbenaTextareaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}