{"version":3,"file":"ngx-nitro-multiline.mjs","sources":["../../../projects/multiline/src/lib/multiline.service.ts","../../../projects/multiline/src/lib/multiline.component.ts","../../../projects/multiline/src/lib/multiline.module.ts","../../../projects/multiline/src/public-api.ts","../../../projects/multiline/src/ngx-nitro-multiline.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MultilineService {\n\n  constructor() { }\n}\n","import { Component, EventEmitter, Input, Output, ViewChild, forwardRef } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'ngx-nitro-multiline',\r\n  template: `\r\n    <div class=\"multilineInput\" \r\n     [ngClass]=\"{\r\n        hover: isHovered,\r\n        active: isActive,\r\n        focused: isFocused\r\n      }\" #mlInputText>\r\n      <div class=\"scroller\">\r\n        <textarea\r\n        [rows]=\"rows\"\r\n        [value]=\"value\"\r\n        [readonly]=\"readonly\"\r\n        [disabled]=\"disabled\"\r\n        [placeholder]=\"placeholder\"\r\n        (blur)=\"onMlBlur($event)\"\r\n        (focus)=\"onMlFocus($event)\"\r\n        (change)=\"onMlInputChange($event)\"\r\n        (mouseout)=\"onMlMouseOut($event)\"\r\n        (mouseover)=\"onMlMouseOver($event)\"\r\n        (input)=\"updateTextareaRows($event)\"></textarea>\r\n        <div class=\"hidden-textarea\" #hiddenText>{{ value }}</div>\r\n      </div>\r\n    </div>\r\n  `,\r\n  styleUrls: ['./multiline.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => MultilineComponent),\r\n      multi: true\r\n    }\r\n  ]\r\n})\r\nexport class MultilineComponent {\r\n  @Input()\r\n  placeholder: string | undefined;\r\n  @Input()\r\n  formControlName!: string;\r\n  @Input()\r\n  disabled: boolean = false;\r\n  @Input()\r\n  readonly: boolean = false;\r\n  @Input()\r\n  fontSize: number = 16;\r\n  @Input()\r\n  maxRows: number = 4;\r\n\r\n  @Output() input: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() focus: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() change: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() mouseout: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() mouseover: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  rows = 1;\r\n  isActive = false;\r\n  isHovered: boolean = false;\r\n  public isFocused = false;\r\n  private onChange: any = () => { };\r\n  private onTouched: any = () => { };\r\n\r\n  @ViewChild('hiddenText')\r\n  private hiddenText: any;\r\n\r\n  // @ViewChild('mlInputText')\r\n  // private mlInputText: any;\r\n\r\n  private innerValue: string = '';\r\n  textareaRows: number = 1;\r\n  textareaContent: string = '';\r\n\r\n  get value(): string {\r\n    return this.innerValue;\r\n  }\r\n\r\n  set value(value: string) {\r\n    if (this.innerValue !== value) {\r\n      this.innerValue = value;\r\n      this.onChange(value);\r\n    }\r\n  }\r\n\r\n  writeValue(value: string): void {\r\n    if (value !== this.innerValue) {\r\n      this.innerValue = value;\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.disabled = isDisabled;\r\n  }\r\n\r\n  onMlInputChange(event: any): void {\r\n    this.value = event.target.value;\r\n    this.onTouched();\r\n  }\r\n\r\n  onMlFocus(event: any): void {\r\n    this.value = event.target.value;\r\n    this.onTouched();\r\n    this.isActive = true;\r\n    this.isFocused = true;\r\n    this.rows = this.isActive ? this.textareaRows : 1;\r\n    this.updateTextareaRows(event);\r\n    // this.mlInputText.nativeElement.classList.add('focus');\r\n  }\r\n\r\n  onMlBlur(event: any): void {\r\n    this.value = event.target.value;\r\n    this.onTouched();\r\n    this.isActive = false;\r\n    this.isFocused = false;\r\n    this.rows = 1;\r\n    // this.mlInputText.nativeElement.classList.remove('focus');\r\n  }\r\n\r\n  onMlMouseOver(event: any): void {\r\n    this.value = event.target.value;\r\n    // this.onTouched();\r\n    this.isActive = true;\r\n    this.isHovered = true;\r\n    this.rows = this.isActive ? this.textareaRows : 1;\r\n  }\r\n\r\n  onMlMouseOut(event: any): void {\r\n    this.value = event.target.value;\r\n    // this.onTouched();\r\n    this.isHovered = false;\r\n    this.isActive = this.isFocused ? true : false;\r\n    this.rows = this.isActive ? this.textareaRows : 1;\r\n  }\r\n\r\n  updateTextareaRows(ev: any): void {\r\n    const value = ev.target.value;\r\n    this.onMlInputChange(ev);\r\n    this.textareaContent = value;\r\n\r\n    const hiddenTextarea = this.hiddenText.nativeElement;\r\n    hiddenTextarea.textContent = value;\r\n    // console.log(hiddenTextarea);\r\n\r\n    this.textareaRows = hiddenTextarea.scrollHeight / this.fontSize; // Adjust row height based on your desired row height\r\n    // console.log(this.textareaRows);\r\n    this.textareaRows = (this.textareaRows >= this.maxRows || this.textareaRows < 0 || isNaN(this.textareaRows)) ? this.maxRows : this.textareaRows;\r\n\r\n    this.rows = this.isActive ? this.textareaRows : 1;\r\n\r\n    // Reset the textarea scroll position\r\n    hiddenTextarea.scrollTop = 0;\r\n\r\n    this.input.emit(ev);\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { MultilineComponent } from './multiline.component';\nimport { CommonModule } from '@angular/common';\n\n\n\n@NgModule({\n  declarations: [\n    MultilineComponent\n  ],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    MultilineComponent\n  ]\n})\nexport class MultilineModule { }\n","/*\n * Public API Surface of multiline\n */\n\nexport * from './lib/multiline.service';\nexport * from './lib/multiline.component';\nexport * from './lib/multiline.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}