{"version":3,"file":"takkion-components-fields.mjs","sources":["../../../libraries/components/fields/error/error-equals.pipe.ts","../../../libraries/components/fields/error/lang/_en.ts","../../../libraries/components/fields/error/lang/_es.ts","../../../libraries/components/fields/error/error.msg.pipe.ts","../../../libraries/components/fields/error/error.component.ts","../../../libraries/components/fields/error/error.component.html","../../../libraries/components/fields/fields.common.ts","../../../libraries/components/fields/select-field/select-field.component.ts","../../../libraries/components/fields/select-field/select-field.component.html","../../../libraries/components/fields/date-field/date-field.component.ts","../../../libraries/components/fields/date-field/date-field.component.html","../../../libraries/components/fields/autocomplete-field/autocomplete-field.component.ts","../../../libraries/components/fields/autocomplete-field/autocomplete-field.component.html","../../../libraries/components/fields/error/error.module.ts","../../../libraries/components/fields/date-range-field/date-range-field.component.ts","../../../libraries/components/fields/date-range-field/date-range-field.component.html","../../../libraries/components/fields/money-field/money-field.component.ts","../../../libraries/components/fields/money-field/money-field.component.html","../../../libraries/components/fields/general-field/general-field.component.ts","../../../libraries/components/fields/general-field/general-field.component.html","../../../libraries/components/fields/number-field/number-field.component.ts","../../../libraries/components/fields/number-field/number-field.component.html","../../../libraries/components/fields/text-area/textarea.component.ts","../../../libraries/components/fields/text-area/textarea.component.html","../../../libraries/components/fields/fields.module.ts","../../../libraries/components/fields/index.ts","../../../libraries/components/fields/takkion-components-fields.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'errorEquals' })\nexport class TakErrorEqualsPipe implements PipeTransform {\n  transform(errors: any, error: any, args?: any): any {\n    if (!errors) return false;\n    const array = Object.keys(errors);\n    if (array && array.length > 0) return errors[array[0]] === error;\n    return false;\n  }\n}\n","export const en: any = {\n  minLengthMsg: (length: number) => `The field contains fewer than ${length} characters`,\n  maxLengthMsg: (length: number) => `The field contains more than ${length} characters`,\n  minMsg: (min: number) => `The number must be bigger than ${min}`,\n  maxMsg: (max: number) => `The number must be lower than ${max}`,\n  patternMsg: 'One or more characters not allowed',\n  requiredMsg: 'This field is required',\n  EmailMsg: 'This field must be an email',\n  badDateMsg: 'Insert a valid date',\n  DateRangeMsg: 'The range is not valid',\n};\n","export const es: any = {\n  minLengthMsg: (length: number) => `El campo contiene menos de ${length} caracteres`,\n  maxLengthMsg: (length: number) => `El campo contiene mas de ${length} caracteres`,\n  minMsg: (min: number) => `El numero debe ser mayor a ${min}`,\n  maxMsg: (max: number) => `El numero debe ser menor a ${max}`,\n  patternMsg: 'Uno o mas caracteres no permitidos',\n  requiredMsg: 'Este campo es requerido',\n  EmailMsg: 'Este campo debe ser un email',\n  badDateMsg: 'Inserte una fecha valida',\n  DateRangeMsg: 'El rango no es valido',\n};\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as lang from './lang';\n\n@Pipe({ name: 'errorMsg' })\nexport class TakErrorMsgPipe implements PipeTransform {\n  transform(parameter: string, aditionalValue?: any): string {\n    let resources = lang.es;\n    if (aditionalValue) return resources[parameter](aditionalValue);\n    else return resources[parameter];\n  }\n}\n","import { ElementRef, Component, ViewChild, Input } from '@angular/core';\nimport { FormControl, ValidationErrors } from '@angular/forms';\n\n@Component({\n  selector: 'tak-error',\n  templateUrl: './error.component.html',\n})\nexport class TakErrorComponent {\n  @ViewChild('error') error: ElementRef | undefined;\n\n  @Input() control!: FormControl;\n\n  @Input() start!: FormControl;\n\n  @Input() end!: FormControl;\n\n  @Input() isDateField: boolean = false;\n\n  @Input() isNumberField: boolean = false;\n\n  @Input() marginTop = -20;\n\n  public hasPatternError: boolean = false;\n\n  get required(): ValidationErrors {\n    return this.control?.errors?.['required'];\n  }\n\n  get pattern(): ValidationErrors {\n    return this.control?.errors?.['pattern'];\n  }\n\n  get max() {\n    return this.control?.errors?.['max'];\n  }\n\n  get min() {\n    return this.control?.errors?.['min'];\n  }\n\n  get maxlength() {\n    return this.control?.errors?.['maxlength'];\n  }\n\n  get minlength() {\n    return this.control?.errors?.['minlength'];\n  }\n\n  get email(): ValidationErrors {\n    return this.control?.errors?.['email'];\n  }\n}\n","<div class=\"tak-custom-error tak-fade-in--800ms\" #error [style.marginTop.px]=\"marginTop\">\n  @if (control !== undefined && isDateField && control.valid) {\n    <div>\n      {{ 'badDateMsg' | errorMsg }}\n    </div>\n  }\n  @if (control !== undefined && control.errors | errorEquals: required) {\n    <div>\n      {{ 'requiredMsg' | errorMsg }}\n    </div>\n  }\n  @if (control !== undefined && control.errors | errorEquals: pattern) {\n    <div>\n      {{\n        isNumberField\n          ? 'El campo solo debe contener caracteres numericos'\n          : ('patternMsg' | errorMsg)\n      }}\n    </div>\n  }\n  @if (control !== undefined && control.errors | errorEquals: max) {\n    <div>\n      {{ 'maxMsg' | errorMsg: max.max }}\n    </div>\n  }\n  @if (control !== undefined && control.errors | errorEquals: min) {\n    <div>\n      {{ 'minMsg' | errorMsg: min.min }}\n    </div>\n  }\n  @if (control !== undefined && control.errors | errorEquals: maxlength) {\n    <div>\n      {{ 'maxLengthMsg' | errorMsg: maxlength.requiredLength }}\n    </div>\n  }\n  @if (control !== undefined && control.errors | errorEquals: minlength) {\n    <div>\n      {{ 'minLengthMsg' | errorMsg: minlength.requiredLength }}\n    </div>\n  }\n  @if (control !== undefined && control.errors | errorEquals: email) {\n    <div>\n      {{ 'EmailMsg' | errorMsg }}\n    </div>\n  }\n  @if (control === undefined) {\n    <div>\n      {{\n        start.hasError('required') && end.hasError('required')\n          ? ('requiredMsg' | errorMsg)\n          : ('DateRangeMsg' | errorMsg)\n      }}\n    </div>\n  }\n</div>\n","import { ESCAPE } from '@takkion/cdk/keycodes';\nimport { MatFormFieldAppearance } from '@takkion/material/form-field';\n\nexport const TAK_DEFAULT_APPEARANCE_FORM: MatFormFieldAppearance = 'standard';\n\nexport type TakGeneralFieldType = 'text' | 'password' | 'filter';\nexport type TakAutocompleteFieldType = 'off' | 'on';\n\nexport const TAK_PRESS_ESC_KEY = new KeyboardEvent('keydown', {\n  bubbles: true,\n  cancelable: true,\n  keyCode: ESCAPE,\n});\n","import {\n  ChangeDetectorRef,\n  OnDestroy,\n  Component,\n  Optional,\n  Input,\n  Self,\n  OnInit,\n  EventEmitter,\n  Output,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormGroupDirective, NgControl } from '@angular/forms';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { MatFormFieldAppearance } from '@takkion/material/form-field';\nimport { MatOptionSelectionChange, ThemePalette } from '@takkion/material/core';\nimport { TakAutocompleteFieldType, TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';\n\n@Component({\n  selector: 'tak-select-field',\n  templateUrl: './select-field.component.html',\n})\nexport class TakSelectFieldComponent implements OnInit, OnDestroy, ControlValueAccessor {\n  @Input() autocomplete: TakAutocompleteFieldType = 'off';\n  @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\n  @Input() color: ThemePalette = 'primary';\n  @Input() suggestions: any[] = [];\n  @Input() disabled = false;\n\n  @Input() type: 'menu' | 'select' = 'select';\n  @Input() tooltip = '';\n  @Input() icon = 'filter_list';\n\n  @Input() option = 'option';\n  @Input() extraInfo = '';\n\n  @Input() hasDefaultValue = false;\n\n  @Output() onSelect = new EventEmitter<any>();\n\n  public onChangeFn = (_: any) => {};\n  public onTouchFn = (_: any) => {};\n\n  public isInvalid = false;\n  public isSubmitted = false;\n  private _unsubscribe$ = new Subject<void>();\n\n  constructor(\n    @Self() @Optional() private _ngControl: NgControl,\n    @Optional() private _formGroupDirective: FormGroupDirective,\n    private _cd: ChangeDetectorRef\n  ) {\n    if (_ngControl) this._ngControl.valueAccessor = this;\n    if (_formGroupDirective) {\n      _formGroupDirective.ngSubmit.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n        this.isSubmitted = true;\n        _cd.markForCheck();\n      });\n    }\n  }\n\n  public ngOnInit(): void {\n    if (this.suggestions.length && this.hasDefaultValue) {\n      this._ngControl.control?.setValue(this.suggestions[0]);\n    }\n\n    if (this.disabled) this.control.disable();\n  }\n\n  public writeValue(value: string): void {}\n\n  public registerOnChange(fn: any): void {\n    this.onChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouchFn = fn;\n  }\n\n  public onChange(event: any): void {\n    this.onChangeFn(event.target.value);\n    if (this.control.touched) this._onValidate();\n  }\n\n  public emit(el: MatOptionSelectionChange) {\n    if (el.isUserInput) {\n      this.onSelect.emit(el.source.value);\n      this.isInvalid = false;\n    }\n  }\n\n  public justEmit(el: any) {\n    this.control.setValue(el);\n    this.onSelect.emit(el);\n    this.isInvalid = false;\n  }\n\n  public onFocusOut() {\n    this._onValidate();\n  }\n\n  private _onValidate(): void {\n    if (this.control.invalid) this.isInvalid = true;\n    else this.isInvalid = false;\n  }\n\n  public ngOnDestroy(): void {\n    this._unsubscribe$.next();\n    this._unsubscribe$.complete();\n  }\n\n  get control(): FormControl {\n    return this._ngControl?.control as FormControl;\n  }\n\n  get directive(): FormGroupDirective {\n    return this._formGroupDirective as FormGroupDirective;\n  }\n\n  get isDisabled() {\n    return this._ngControl.disabled;\n  }\n}\n","@if (type === 'select') {\n  <div class=\"tak-form-container\">\n    <mat-form-field [appearance]=\"appearance\" [color]=\"color\">\n      <mat-label><ng-content></ng-content></mat-label>\n      <mat-select [formControl]=\"control\" (focusout)=\"onFocusOut()\">\n        @for (suggestion of suggestions; track suggestion) {\n          <mat-option\n            [value]=\"suggestion\"\n            (onSelectionChange)=\"emit($event)\"\n            title=\"{{ suggestion[option] }} {{\n              extraInfo ? '(' + suggestion[extraInfo] + ')' : ''\n            }}\"\n          >\n            {{ suggestion[option] }}\n            @if (extraInfo) {\n              <span class=\"tak-option-span-extra\">{{ suggestion[extraInfo] }}</span>\n            }\n          </mat-option>\n        }\n      </mat-select>\n    </mat-form-field>\n    @if (isInvalid || (isSubmitted && control.invalid)) {\n      <tak-error [control]=\"control\"></tak-error>\n    }\n  </div>\n} @else {\n  <div [matTooltip]=\"tooltip\">\n    @if (type === 'menu') {\n      <span>\n        <button mat-icon-button type=\"button\" [matMenuTriggerFor]=\"menu\" [disabled]=\"isDisabled\">\n          <mat-icon>{{ icon }}</mat-icon>\n        </button>\n        <mat-menu #menu=\"matMenu\">\n          @for (item of suggestions; track item) {\n            <a tak-menu-item (click)=\"justEmit(item)\">\n              {{ item[option] }}\n            </a>\n          }\n        </mat-menu>\n      </span>\n    }\n  </div>\n}\n","import {\n  ChangeDetectorRef,\n  AfterViewInit,\n  OnDestroy,\n  Component,\n  Optional,\n  OnInit,\n  Input,\n  Self,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThemePalette } from '@takkion/material/core';\nimport { MatFormFieldAppearance } from '@takkion/material/form-field';\nimport { ControlValueAccessor, FormControl, FormGroupDirective, NgControl } from '@angular/forms';\nimport { TAK_DEFAULT_APPEARANCE_FORM, TakAutocompleteFieldType } from '../fields.common';\n\n@Component({\n  selector: 'tak-date-field',\n  templateUrl: './date-field.component.html',\n})\nexport class TakDateFieldComponent\n  implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor\n{\n  private _unsubscribe$ = new Subject<void>();\n\n  @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\n  @Input() autocomplete: TakAutocompleteFieldType = 'off';\n  @Input() color: ThemePalette = 'primary';\n  @Input() placeholder = '';\n  @Input() notInput = false;\n\n  @Input() minDate!: Date | string;\n  @Input() maxDate!: Date | string;\n\n  @Input() disabled = false;\n\n  public onChangeFn = (_: any) => {};\n  public onTouchFn = (_: any) => {};\n\n  private _isSubmitted = false;\n  private _isInvalid = false;\n  private _required = false;\n  private _value = '';\n\n  constructor(\n    @Self() @Optional() private _ngControl: NgControl,\n    @Optional() private _formGroupDirective: FormGroupDirective,\n    private _cd: ChangeDetectorRef\n  ) {\n    if (_ngControl) this._ngControl.valueAccessor = this;\n    if (_formGroupDirective) {\n      _formGroupDirective.ngSubmit.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n        this._isSubmitted = true;\n        _cd.markForCheck();\n      });\n    }\n  }\n\n  public ngOnInit(): void {\n    const form: any = this.control;\n    if (form?._rawValidators) {\n      form._rawValidators.map((r: any) => {\n        if (r.name.includes('required')) {\n          this._required = true;\n        }\n      });\n    }\n    if (this.disabled) this.control.disable();\n  }\n\n  public ngAfterViewInit(): void {\n    const isValidDate = Date.parse(this.control.value);\n    if (isNaN(isValidDate)) this.control.setValue(null);\n    else this.control.setValue(new Date(this.control.value));\n  }\n\n  public writeValue(value: string): void {\n    if (value === null) this._isInvalid = false;\n    this._value = value;\n  }\n\n  public registerOnChange(fn: any): void {\n    this.onChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouchFn = fn;\n  }\n\n  public onChange(event: any): void {\n    this._value = event.target.value;\n    this.onChangeFn(event.target.value);\n    if (this.control.touched) this._onValidate();\n  }\n\n  public onFocusout(): void {\n    this.onTouchFn(true);\n    this._onValidate();\n  }\n\n  public onCloseDatePicker(): void {\n    this.onTouchFn(true);\n    this._onValidate();\n  }\n\n  private _onValidate(): void {\n    const isValidDate = Date.parse(this.control.value);\n    if (\n      this.control.invalid ||\n      ([undefined, null, ''].indexOf(this.control.value) < 0 &&\n        this.control.valid &&\n        isNaN(isValidDate))\n    ) {\n      this._isInvalid = true;\n    } else {\n      this._isInvalid = false;\n    }\n  }\n\n  public ngOnDestroy(): void {\n    this._unsubscribe$.next();\n    this._unsubscribe$.complete();\n  }\n\n  get control(): FormControl {\n    return this._ngControl?.control as FormControl;\n  }\n\n  get directive(): FormGroupDirective {\n    return this._formGroupDirective as FormGroupDirective;\n  }\n\n  get isDisabled() {\n    return this._ngControl.disabled;\n  }\n\n  get isSubmitted() {\n    return this._isSubmitted;\n  }\n\n  get isInvalid() {\n    return this._isInvalid;\n  }\n\n  get required() {\n    return this._required;\n  }\n\n  get value() {\n    return this._value;\n  }\n}\n","@if (!notInput) {\n  <div class=\"tak-form-container\">\n    <mat-form-field\n      [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\n      [appearance]=\"appearance\"\n      [color]=\"color\"\n    >\n      <mat-label>\n        <ng-content></ng-content>{{ ' ' }}\n        @if (required) {\n          <span class=\"tak-field__danger-x\">*</span>\n        }\n      </mat-label>\n      <input\n        matInput\n        [min]=\"minDate\"\n        [max]=\"maxDate\"\n        [autocomplete]=\"autocomplete\"\n        [matDatepicker]=\"picker\"\n        [value]=\"value\"\n        (keyup)=\"onChange($event)\"\n        (dateChange)=\"onChange($event)\"\n        [placeholder]=\"placeholder\"\n        [disabled]=\"isDisabled\"\n        (focusout)=\"onFocusout()\"\n      />\n      <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n      <mat-datepicker (closed)=\"onCloseDatePicker()\" #picker></mat-datepicker>\n    </mat-form-field>\n    @if (isInvalid || (isSubmitted && control.invalid)) {\n      <tak-error [control]=\"control\" [isDateField]=\"true\"> </tak-error>\n    }\n  </div>\n}\n@if (notInput) {\n  <div>\n    <div\n      class=\"tak__date-not-input__picker-container\"\n      [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\n    >\n      <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n      <mat-datepicker (closed)=\"onCloseDatePicker()\" #picker></mat-datepicker>\n    </div>\n    <div class=\"tak__date-not-input__field-container\">\n      <mat-form-field [color]=\"color\">\n        <input\n          matInput\n          [min]=\"minDate\"\n          [max]=\"maxDate\"\n          autocomplete=\"off\"\n          [matDatepicker]=\"picker\"\n          [value]=\"value\"\n          (keyup)=\"onChange($event)\"\n          (dateChange)=\"onChange($event)\"\n          [disabled]=\"isDisabled\"\n          (focusout)=\"onFocusout()\"\n        />\n      </mat-form-field>\n    </div>\n    @if (isInvalid || (isSubmitted && control.invalid)) {\n      <tak-error [control]=\"control\" [isDateField]=\"true\" [marginTop]=\"-60\"> </tak-error>\n    }\n  </div>\n}\n","import {\n  Component,\n  OnDestroy,\n  Optional,\n  Input,\n  Self,\n  OnInit,\n  ChangeDetectorRef,\n  Output,\n  EventEmitter,\n} from '@angular/core';\nimport { ControlValueAccessor, FormGroupDirective, FormControl, NgControl } from '@angular/forms';\nimport { debounceTime, map, Observable, Subject, takeUntil } from 'rxjs';\nimport { MatFormFieldAppearance } from '@takkion/material/form-field';\nimport { MatOptionSelectionChange, ThemePalette } from '@takkion/material/core';\nimport {\n  TakAutocompleteFieldType,\n  TAK_DEFAULT_APPEARANCE_FORM,\n  TAK_PRESS_ESC_KEY,\n} from '../fields.common';\n\n@Component({\n  selector: 'tak-autocomplete-field',\n  templateUrl: './autocomplete-field.component.html',\n})\nexport class TakAutocompleteFieldComponent implements OnInit, OnDestroy, ControlValueAccessor {\n  private _unsubscribe$ = new Subject<void>();\n\n  @Input() option = 'option';\n  @Input() extraInfo = '';\n  @Input() autocomplete: TakAutocompleteFieldType = 'off';\n  @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\n  @Input() color: ThemePalette = 'primary';\n  @Input() hasClearButton = true;\n  @Input() suggestions: any[] = [];\n  @Input() disabled = false;\n  @Input() hasTitle = false;\n\n  @Input() isLoading = false;\n  @Input() isRemoteSearch = false;\n  @Input() debounceTimeForRemoteSearch = 500;\n\n  @Output() onSelect = new EventEmitter<any>();\n  @Output() onSearch = new EventEmitter<any>();\n\n  public onChangeFn = (_: any) => {};\n  public onTouchFn = (_: any) => {};\n\n  private _isSubmitted = false;\n  private _isInvalid = false;\n  private _required = false;\n  private _value = '';\n  private _filteredOptions!: Observable<any[]>;\n  private _notSuggestions = false;\n  private _lastValue = '';\n\n  constructor(\n    @Self() @Optional() private _ngControl: NgControl,\n    @Optional() private _formGroupDirective: FormGroupDirective,\n    private _cd: ChangeDetectorRef\n  ) {\n    if (_ngControl) this._ngControl.valueAccessor = this;\n    if (_formGroupDirective) {\n      _formGroupDirective.ngSubmit.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n        this._isSubmitted = true;\n        _cd.markForCheck();\n      });\n    }\n  }\n\n  public ngOnInit(): void {\n    const form: any = this.control;\n\n    if (form?._rawValidators) {\n      form._rawValidators.map((r: any) => {\n        if (r.name.includes('required')) this._required = true;\n      });\n    }\n\n    this._filteredOptions = this.control.valueChanges.pipe(\n      takeUntil(this._unsubscribe$),\n      map(() => this._filter())\n    );\n\n    if (this.isRemoteSearch) {\n      this.control.valueChanges\n        .pipe(takeUntil(this._unsubscribe$), debounceTime(this.debounceTimeForRemoteSearch))\n        .subscribe(() => {\n          if (this._lastValue !== `${this._value}` && `${this._value}` && !this.control.value) {\n            this.onSearch.emit(`${this._value}`);\n            this._setValue(`${this._value}`);\n          }\n\n          this._lastValue = `${this._value}`;\n        });\n    }\n    if (this.disabled) this.control.disable();\n  }\n\n  private _filter(): any[] {\n    const value =\n      typeof `${this._value}` === 'string'\n        ? `${this._value}`.toLowerCase()\n        : `${this.control.value[this.option]}`.toLowerCase();\n    const option = this.suggestions.filter(res =>\n      `${res[this.option]}`.toLowerCase().includes(value)\n    );\n    if (!option.length) this._notSuggestions = true;\n    else this._notSuggestions = false;\n    return option;\n  }\n\n  public writeValue(value: string): void {\n    if (value === null) this._isInvalid = false;\n    this._value = value || '';\n    this._isSubmitted = false;\n    this._cd.markForCheck();\n  }\n\n  public registerOnChange(fn: any): void {\n    this.onChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouchFn = fn;\n  }\n\n  public onChange(event: any): void {\n    if (event.target.value !== `${this._value}`) {\n      this._value = event.target.value;\n\n      if (!this.isRemoteSearch) this._setValue(`${this._value}`);\n\n      this.onChangeFn(\n        this.suggestions.filter(\n          sug => `${sug[this.option]}`.toLowerCase() === `${`${this._value}`}`.toLowerCase()\n        )[0] || null\n      );\n\n      if (this.control.touched) {\n        this._onValidate();\n      }\n    }\n  }\n\n  private _setValue(value: string) {\n    if (!this.isRemoteSearch) {\n      const suggestionsFiltered = value\n        ? this.suggestions.filter(\n            el =>\n              `${el[this.option]}`.toLowerCase().trim() === (value as string).toLowerCase().trim()\n          )\n        : [];\n\n      if (suggestionsFiltered.length) {\n        document.body.dispatchEvent(TAK_PRESS_ESC_KEY);\n      }\n\n      try {\n        this.control.setValue(suggestionsFiltered[0][this.option], {\n          emitEvent: false,\n        });\n        this.onSelect.emit(suggestionsFiltered[0]);\n      } catch (error) {}\n    }\n  }\n\n  public emit(el: MatOptionSelectionChange) {\n    if (el && el.isUserInput) this._isInvalid = false;\n  }\n\n  public emitWithClick(suggestionOption: any) {\n    this.control.setValue(suggestionOption);\n    this._value = `${suggestionOption[this.option]}`;\n    this._isInvalid = false;\n  }\n\n  public onFocusout(): void {\n    this.onTouchFn(true);\n    this._onValidate();\n  }\n\n  public setValue(value: any) {\n    this.control.setValue(value);\n    this._value = `${value[this.option]}`;\n  }\n\n  public onUpdateSuggestions(suggestions: any[]) {\n    this.suggestions = suggestions;\n    this._cd.markForCheck();\n\n    this.onChangeFn(\n      this.suggestions.filter(\n        sug => `${sug[this.option]}`.toLowerCase() === `${this._value}`.toLowerCase()\n      )[0] || null\n    );\n  }\n\n  private _onValidate(): void {\n    if (this.control.invalid) this._isInvalid = true;\n    else this._isInvalid = false;\n  }\n\n  public onFocus() {\n    if (!`${this._value}`) {\n      this.control.setValue('');\n      this._value = '';\n    }\n  }\n\n  public onClearControl(): void {\n    this.control.setValue('', { emitEvent: false });\n    this._value = '';\n  }\n\n  public ngOnDestroy(): void {\n    this._unsubscribe$.next();\n    this._unsubscribe$.complete();\n  }\n\n  get control(): FormControl {\n    return this._ngControl?.control as FormControl;\n  }\n\n  get directive(): FormGroupDirective {\n    return this._formGroupDirective as FormGroupDirective;\n  }\n\n  get isDisabled() {\n    return this._ngControl.disabled;\n  }\n\n  get isSubmitted() {\n    return this._isSubmitted;\n  }\n\n  get isInvalid() {\n    return this._isInvalid;\n  }\n\n  get required() {\n    return this._required;\n  }\n\n  get value() {\n    return `${this._value}`;\n  }\n\n  get filteredOptions() {\n    return this._filteredOptions;\n  }\n\n  get notSuggestions() {\n    return this._notSuggestions;\n  }\n\n  get lastValue() {\n    return this._lastValue;\n  }\n}\n","<div class=\"tak-form-container\">\n  <mat-form-field\n    [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\n    [appearance]=\"appearance\"\n    [color]=\"color\"\n  >\n    <mat-label>\n      <ng-content></ng-content>{{ ' ' }}\n      @if (required) {\n        <span class=\"tak-field__danger-x\">*</span>\n      }\n    </mat-label>\n    <input\n      matInput\n      [autocomplete]=\"autocomplete\"\n      [matAutocomplete]=\"auto\"\n      [value]=\"value\"\n      (keyup)=\"onChange($event)\"\n      (change)=\"onChange($event)\"\n      [disabled]=\"isDisabled\"\n      (focus)=\"onFocus()\"\n      (focusout)=\"onFocusout()\"\n    />\n    @if (isRemoteSearch && isLoading) {\n      <button matSuffix mat-icon-button type=\"button\">\n        <mat-spinner [diameter]=\"15\" mode=\"indeterminate\"></mat-spinner>\n      </button>\n    }\n    @if ((control.value || value) && hasClearButton && !disabled) {\n      <button matSuffix mat-icon-button type=\"button\" (click)=\"onClearControl()\">\n        <mat-icon>close</mat-icon>\n      </button>\n    }\n    <mat-autocomplete #auto=\"matAutocomplete\">\n      @for (suggestion of filteredOptions | async; track suggestion) {\n        <mat-option\n          [value]=\"suggestion[option]\"\n          [class.tak-option-extra]=\"extraInfo\"\n          (onSelectionChange)=\"emit($event)\"\n          (click)=\"emitWithClick(suggestion)\"\n          title=\"{{ suggestion[option] }} {{ extraInfo ? '(' + suggestion[extraInfo] + ')' : '' }}\"\n        >\n          <span>{{ suggestion[option] }}</span>\n          @if (extraInfo) {\n            <span class=\"tak-option-span-extra\">{{ suggestion[extraInfo] }}</span>\n          }\n        </mat-option>\n      }\n      @if (notSuggestions && control.invalid) {\n        <mat-option>\n          <span class=\"tak-autocomplete-not-records\"> No se encuentran resultados </span>\n        </mat-option>\n      }\n    </mat-autocomplete>\n  </mat-form-field>\n  @if (isInvalid || (isSubmitted && control.invalid)) {\n    <tak-error [control]=\"control\"></tak-error>\n  }\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { TakErrorEqualsPipe } from './error-equals.pipe';\nimport { TakErrorMsgPipe } from './error.msg.pipe';\nimport { TakErrorComponent } from './error.component';\n\n@NgModule({\n  declarations: [TakErrorEqualsPipe, TakErrorMsgPipe, TakErrorComponent],\n  imports: [FormsModule, CommonModule, ReactiveFormsModule],\n  exports: [TakErrorComponent],\n})\nexport class TakErrorModule {}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatFormFieldAppearance } from '@takkion/material/form-field';\nimport { ThemePalette } from '@takkion/material/core';\nimport { TakAutocompleteFieldType, TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';\n\n@Component({\n  selector: 'tak-date-range-field',\n  templateUrl: './date-range-field.component.html',\n})\nexport class TakDateRangeFieldComponent implements OnInit {\n  @Input() autocomplete: TakAutocompleteFieldType = 'off';\n  @Input() startPlaceholder: string = 'Inicio';\n  @Input() endPlaceholder: string = 'Fin';\n\n  @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\n  @Input() color: ThemePalette = 'primary';\n\n  @Input() start!: FormControl;\n  @Input() end!: FormControl;\n  @Input() notInput = false;\n\n  @Input() disabled = false;\n\n  private _required = false;\n\n  public ngOnInit(): void {\n    const start: any = this.start;\n    const end: any = this.end;\n    if (start?._rawValidators) {\n      start._rawValidators.map((r: any) => {\n        if (r.name.includes('required')) this._required = true;\n      });\n    }\n    if (end?._rawValidators) {\n      end._rawValidators.map((r: any) => {\n        if (r.name.includes('required')) this._required = true;\n      });\n    }\n    if (this.disabled) {\n      this.start.disable();\n      this.end.disable();\n    }\n  }\n\n  get required() {\n    return this._required;\n  }\n\n  get isDisabled() {\n    return this.start.disabled || this.end.disabled;\n  }\n}\n","@if (!notInput) {\n  <div class=\"tak-form-container\">\n    <mat-form-field [appearance]=\"appearance\" [color]=\"color\">\n      <mat-label>\n        <ng-content></ng-content>\n      </mat-label>\n      <mat-date-range-input [rangePicker]=\"picker\">\n        <input\n          matStartDate\n          [placeholder]=\"startPlaceholder\"\n          [formControl]=\"start\"\n          [autocomplete]=\"autocomplete\"\n        />\n        <input matEndDate [placeholder]=\"endPlaceholder\" [formControl]=\"end\" />\n      </mat-date-range-input>\n      <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n      <mat-date-range-picker #picker></mat-date-range-picker>\n    </mat-form-field>\n    @if ((start.invalid || end.invalid) && (start.touched || end.touched)) {\n      <tak-error [start]=\"start\" [end]=\"end\"> </tak-error>\n    }\n  </div>\n}\n@if (notInput) {\n  <div>\n    <div\n      class=\"tak__date-not-input__picker-container\"\n      [class.mat-form-field-invalid]=\"\n        (start.invalid || end.invalid) && (start.touched || end.touched)\n      \"\n    >\n      <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n      <mat-date-range-picker #picker [disabled]=\"isDisabled\"></mat-date-range-picker>\n    </div>\n    <div class=\"tak__date-not-input__field-container\">\n      <mat-form-field [color]=\"color\">\n        <mat-date-range-input [rangePicker]=\"picker\">\n          <input matStartDate [formControl]=\"start\" />\n          <input matEndDate [formControl]=\"end\" />\n        </mat-date-range-input>\n      </mat-form-field>\n    </div>\n    @if ((start.invalid || end.invalid) && (start.touched || end.touched)) {\n      <tak-error [start]=\"start\" [end]=\"end\" [marginTop]=\"-60\"></tak-error>\n    }\n  </div>\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  OnDestroy,\n  Optional,\n  OnInit,\n  Input,\n  Self,\n  Output,\n  EventEmitter,\n} from '@angular/core';\nimport {\n  ControlValueAccessor,\n  FormGroupDirective,\n  FormControl,\n  NgControl,\n  Validators,\n} from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';\nimport { FloatLabelType, MatFormFieldAppearance } from '@takkion/material/form-field';\nimport { ThemePalette } from '@takkion/material/core';\n\n@Component({\n  selector: 'tak-money-field',\n  templateUrl: './money-field.component.html',\n})\nexport class TakMoneyFieldComponent implements OnInit, OnDestroy, ControlValueAccessor {\n  @Input() autocomplete: 'off' | 'on' = 'off';\n\n  @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\n  @Input() floatLabel: FloatLabelType = 'auto';\n  @Input() color: ThemePalette = 'primary';\n  @Input() actionIcon = 'search';\n\n  @Input() defaultFilterStyle = true;\n  @Input() hasActionButton = false;\n  @Input() hasClearButton = true;\n  @Input() countCaracters = false;\n  @Input() placeholder = '';\n\n  @Input() maxLength!: number;\n  @Input() minLength!: number;\n\n  @Input() disabled = false;\n\n  @Output() onExecuteAction = new EventEmitter();\n  @Output() onKeyUp = new EventEmitter();\n\n  public onChangeFn = (_: any) => {};\n  public onTouchFn = (_: any) => {};\n\n  private _isSubmitted = false;\n  private _isInvalid = false;\n  private _required = false;\n  private _value = '';\n\n  private _subscription!: Subscription;\n\n  constructor(\n    @Self() @Optional() private _ngControl: NgControl,\n    @Optional() private _formGroupDirective: FormGroupDirective,\n    private _cd: ChangeDetectorRef\n  ) {\n    if (_ngControl) this._ngControl.valueAccessor = this;\n\n    if (_formGroupDirective) {\n      this._subscription = _formGroupDirective.ngSubmit.subscribe(() => {\n        this._isSubmitted = true;\n        _cd.markForCheck();\n      });\n    }\n  }\n\n  public ngOnInit(): void {\n    const form: any = this.control;\n\n    if (form?._rawValidators) {\n      form._rawValidators.forEach((r: any) => {\n        if (r.name.includes('required')) this._required = true;\n      });\n    }\n\n    this.control.addValidators(Validators.pattern(/^[0-9.,-]+$/));\n\n    if (['', null, undefined, '-'].indexOf(this.control.value) < 0) this._addCurrencyMask();\n\n    if (this.disabled) this.control.disable();\n  }\n\n  public writeValue(value: string): void {\n    if (value === null) {\n      this._isInvalid = false;\n    }\n    this._value = value;\n    this._isSubmitted = false;\n    this._cd.markForCheck();\n  }\n\n  public registerOnChange(fn: any): void {\n    this.onChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouchFn = fn;\n  }\n\n  public onChange(event: any): void {\n    this._value = event.target.value;\n    this.onChangeFn(event.target.value);\n    this._addCurrencyMask();\n    if (this.control.touched) this._onValidate();\n  }\n\n  private _addCurrencyMask() {\n    const valueFormatted = this.control.value\n      .toString()\n      .replace(/,/g, '')\n      .replace(/ /g, '')\n      .replace('$', '');\n\n    if (['', null, undefined, '-'].indexOf(valueFormatted) < 0 && !isNaN(Number(valueFormatted))) {\n      const value = '$ ' + Intl.NumberFormat('en-US').format(Number(valueFormatted));\n      this.control.setValue(+valueFormatted);\n      this._value = value;\n    } else if (['-'].indexOf(valueFormatted) >= 0) this.control.setValue('-');\n    else this.control.setValue(null);\n  }\n\n  public onFocusOut(): void {\n    this.onTouchFn(true);\n    //this._executeIfIsMoneyField();\n    this._onValidate();\n  }\n\n  private _onValidate(): void {\n    if (this.control.invalid) this._isInvalid = true;\n    else this._isInvalid = false;\n  }\n\n  public onKeyDown(event: any) {\n    const pattern = /[0-9.-]/i.test(event.key);\n    const validKeyCodes = [8, 46, 37, 39, 9, 17, 16, 67, 86, 109, 189];\n    return pattern || validKeyCodes.indexOf(event.keyCode) >= 0;\n  }\n\n  public onClearControl(): void {\n    if (['', null, undefined].indexOf(this.control.value) >= 0) {\n      this.control.setValue('', { emitEvent: false });\n    } else {\n      this.control.setValue('');\n    }\n\n    this._value = '';\n  }\n\n  public ngOnDestroy(): void {\n    if (this._subscription) this._subscription.unsubscribe();\n  }\n\n  get control(): FormControl {\n    return this._ngControl.control as FormControl;\n  }\n\n  get directive(): FormGroupDirective {\n    return this._formGroupDirective as FormGroupDirective;\n  }\n\n  get isDisabled() {\n    return this._ngControl.disabled;\n  }\n\n  get isSubmitted() {\n    return this._isSubmitted;\n  }\n\n  get isInvalid() {\n    return this._isInvalid;\n  }\n\n  get required() {\n    return this._required;\n  }\n\n  get value() {\n    return this._value;\n  }\n}\n","<div class=\"tak-form-container\">\n  <mat-form-field\n    [floatLabel]=\"floatLabel\"\n    [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\n    [appearance]=\"appearance\"\n    [color]=\"color\"\n  >\n    <mat-label>\n      <ng-content></ng-content>{{ ' ' }}\n      @if (required) {\n        <span class=\"tak-field__danger-x\">*</span>\n      }\n    </mat-label>\n    <input\n      class=\"money-input\"\n      matInput\n      [autocomplete]=\"autocomplete\"\n      [placeholder]=\"placeholder\"\n      [value]=\"value\"\n      (keyup)=\"onChange($event)\"\n      (change)=\"onChange($event)\"\n      (keydown)=\"onKeyDown($event)\"\n      [disabled]=\"isDisabled\"\n      [attr.minLength]=\"minLength\"\n      [attr.maxLength]=\"maxLength\"\n      (focusout)=\"onFocusOut()\"\n    />\n    @if (control.value && hasClearButton && !isDisabled) {\n      <button matSuffix mat-icon-button type=\"button\" (click)=\"onClearControl()\">\n        <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\n      </button>\n    }\n    @if (control.value && hasActionButton && !isDisabled) {\n      <button matSuffix mat-icon-button type=\"button\" (click)=\"onExecuteAction.emit(control.value)\">\n        <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\n      </button>\n    }\n    @if (countCaracters) {\n      <mat-hint align=\"end\" class=\"tak-hint\">\n        {{ control.value?.length || 0 }}/{{ maxLength }}\n      </mat-hint>\n    }\n  </mat-form-field>\n  <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\n    @if (isInvalid || (isSubmitted && control.invalid)) {\n      <tak-error [control]=\"control\"></tak-error>\n    }\n  </div>\n</div>\n","import {\n  ChangeDetectorRef,\n  Component,\n  OnDestroy,\n  Optional,\n  OnInit,\n  Input,\n  Self,\n  Output,\n  EventEmitter,\n} from '@angular/core';\nimport {\n  ControlValueAccessor,\n  FormGroupDirective,\n  FormControl,\n  NgControl,\n  Validators,\n} from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { TAK_DEFAULT_APPEARANCE_FORM, TakGeneralFieldType } from '../fields.common';\nimport { FloatLabelType, MatFormFieldAppearance } from '@takkion/material/form-field';\nimport { ThemePalette } from '@takkion/material/core';\n\n@Component({\n  selector: 'tak-general-field',\n  templateUrl: './general-field.component.html',\n})\nexport class TakGeneralFieldComponent implements OnInit, OnDestroy, ControlValueAccessor {\n  @Input() autocomplete: 'off' | 'on' = 'off';\n\n  @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\n  @Input() type: TakGeneralFieldType = 'text';\n  @Input() floatLabel: FloatLabelType = 'never';\n  @Input() color: ThemePalette = 'primary';\n  @Input() actionIcon = 'search';\n\n  @Input() defaultFilterStyle = true;\n  @Input() hasActionButton = false;\n  @Input() hasClearButton = false;\n  @Input() countCaracters = false;\n  @Input() placeholder = '';\n\n  @Input() maxLength!: number;\n  @Input() minLength!: number;\n\n  @Input() disabled = false;\n\n  @Output() onExecuteAction = new EventEmitter();\n  @Output() onKeyUp = new EventEmitter();\n\n  public onChangeFn = (_: any) => {};\n  public onTouchFn = (_: any) => {};\n\n  private _isSubmitted = false;\n  private _isInvalid = false;\n  private _required = false;\n  private _value = '';\n\n  private _subscription!: Subscription;\n  private _decrypted = false;\n\n  constructor(\n    @Self() @Optional() private _ngControl: NgControl,\n    @Optional() private _formGroupDirective: FormGroupDirective,\n    private _cd: ChangeDetectorRef\n  ) {\n    if (_ngControl) this._ngControl.valueAccessor = this;\n\n    if (_formGroupDirective) {\n      this._subscription = _formGroupDirective.ngSubmit.subscribe(() => {\n        this._isSubmitted = true;\n        _cd.markForCheck();\n      });\n    }\n  }\n\n  public ngOnInit(): void {\n    const form: any = this.control;\n\n    if (this.type === 'filter' && this.defaultFilterStyle) {\n      this.control.removeValidators(Validators.required);\n      this.appearance = 'legacy';\n      this.floatLabel = 'never';\n      if (!this.placeholder) this.placeholder = 'Buscar';\n      this.hasClearButton = true;\n      this._cd.markForCheck();\n    }\n\n    if (form?._rawValidators) {\n      form._rawValidators.forEach((r: any) => {\n        if (r.name.includes('required')) this._required = true;\n      });\n    }\n\n    if (this.disabled) this.control.disable();\n  }\n\n  public writeValue(value: string): void {\n    if (value === null) this._isInvalid = false;\n    this._value = value;\n    this._isSubmitted = false;\n    this._cd.markForCheck();\n  }\n\n  public registerOnChange(fn: any): void {\n    this.onChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouchFn = fn;\n  }\n\n  public onChange(event: any): void {\n    this._value = event.target.value;\n    this.onChangeFn(event.target.value);\n    if (!this.control.value && this.type === 'password') this._decrypted = false;\n    if (this.control.touched) this._onValidate();\n    if (this.type === 'filter') this.onKeyUp.emit(this.control.value);\n  }\n\n  public showPassword(): void {\n    if (this.type === 'password') {\n      if (this._decrypted) this._decrypted = false;\n      else this._decrypted = true;\n    }\n  }\n\n  public onFocusOut(): void {\n    this.onTouchFn(true);\n    this._onValidate();\n  }\n\n  private _onValidate(): void {\n    if (this.control.invalid) this._isInvalid = true;\n    else this._isInvalid = false;\n  }\n\n  public onClearControl(): void {\n    if (['', null, undefined].indexOf(this.control.value) >= 0) {\n      this.control.setValue('', { emitEvent: false });\n    } else this.control.setValue('');\n    this._value = '';\n  }\n\n  public ngOnDestroy(): void {\n    if (this._subscription) this._subscription.unsubscribe();\n  }\n\n  get control(): FormControl {\n    return this._ngControl.control as FormControl;\n  }\n\n  get directive(): FormGroupDirective {\n    return this._formGroupDirective as FormGroupDirective;\n  }\n\n  get decrypted() {\n    return this._decrypted;\n  }\n\n  get isDisabled() {\n    return this._ngControl.disabled;\n  }\n\n  get isSubmitted() {\n    return this._isSubmitted;\n  }\n\n  get isInvalid() {\n    return this._isInvalid;\n  }\n\n  get required() {\n    return this._required;\n  }\n\n  get value() {\n    return this._value;\n  }\n}\n","<div class=\"tak-form-container\">\n  <mat-form-field\n    [floatLabel]=\"floatLabel\"\n    [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\n    [appearance]=\"appearance\"\n    [color]=\"color\"\n  >\n    <mat-label>\n      <ng-content></ng-content>{{ ' ' }}\n      @if (required) {\n        <span class=\"tak-field__danger-x\">*</span>\n      }\n    </mat-label>\n    <input\n      [type]=\"type === 'password' && !decrypted ? 'password' : 'text'\"\n      matInput\n      [autocomplete]=\"autocomplete\"\n      [value]=\"value\"\n      (keyup)=\"onChange($event)\"\n      (change)=\"onChange($event)\"\n      [placeholder]=\"placeholder\"\n      [disabled]=\"isDisabled\"\n      [attr.minLength]=\"minLength\"\n      [attr.maxLength]=\"maxLength\"\n      (focusout)=\"onFocusOut()\"\n    />\n    @if (control.value && hasClearButton && !isDisabled) {\n      <button matSuffix mat-icon-button type=\"button\" (click)=\"onClearControl()\">\n        <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\n      </button>\n    }\n    @if (control.value && hasActionButton && !isDisabled) {\n      <button matSuffix mat-icon-button type=\"button\" (click)=\"onExecuteAction.emit(control.value)\">\n        <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\n      </button>\n    }\n    @if (control.value && type === 'password' && !isDisabled) {\n      <button matSuffix mat-icon-button type=\"button\" (click)=\"showPassword()\">\n        <mat-icon class=\"tak-suffix-icon-button\">{{\n          decrypted ? 'visibility_off' : 'visibility'\n        }}</mat-icon>\n      </button>\n    }\n    @if (countCaracters) {\n      <mat-hint align=\"end\" class=\"tak-hint\">\n        {{ control.value?.length || 0 }}/{{ maxLength }}\n      </mat-hint>\n    }\n  </mat-form-field>\n  <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\n    @if (isInvalid || (isSubmitted && control.invalid)) {\n      <tak-error [control]=\"control\"></tak-error>\n    }\n  </div>\n</div>\n","import {\n  ChangeDetectorRef,\n  Component,\n  OnDestroy,\n  Optional,\n  OnInit,\n  Input,\n  Self,\n  Output,\n  EventEmitter,\n} from '@angular/core';\nimport {\n  ControlValueAccessor,\n  FormGroupDirective,\n  FormControl,\n  NgControl,\n  Validators,\n} from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';\nimport { FloatLabelType, MatFormFieldAppearance } from '@takkion/material/form-field';\nimport { ThemePalette } from '@takkion/material/core';\n\n@Component({\n  selector: 'tak-number-field',\n  templateUrl: './number-field.component.html',\n})\nexport class TakNumberFieldComponent implements OnInit, OnDestroy, ControlValueAccessor {\n  @Input() autocomplete: 'off' | 'on' = 'off';\n\n  @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\n  @Input() floatLabel: FloatLabelType = 'auto';\n  @Input() color: ThemePalette = 'primary';\n  @Input() actionIcon = 'search';\n\n  @Input() hasActionButton = false;\n  @Input() hasClearButton = false;\n  @Input() countCaracters = false;\n  @Input() placeholder = '';\n\n  @Input() min!: number;\n  @Input() max!: number;\n\n  @Input() minLength!: number;\n  @Input() maxLength!: number;\n\n  @Input() disabled = false;\n\n  @Output() onExecuteAction = new EventEmitter();\n  @Output() onKeyUp = new EventEmitter();\n\n  public onChangeFn = (_: any) => {};\n  public onTouchFn = (_: any) => {};\n\n  private _isSubmitted = false;\n  private _isInvalid = false;\n  private _required = false;\n  private _value = '';\n\n  private _subscription!: Subscription;\n\n  constructor(\n    @Self() @Optional() private _ngControl: NgControl,\n    @Optional() private _formGroupDirective: FormGroupDirective,\n    private _cd: ChangeDetectorRef\n  ) {\n    if (_ngControl) this._ngControl.valueAccessor = this;\n\n    if (_formGroupDirective) {\n      this._subscription = _formGroupDirective.ngSubmit.subscribe(() => {\n        this._isSubmitted = true;\n        _cd.markForCheck();\n      });\n    }\n  }\n\n  public ngOnInit(): void {\n    const form: any = this.control;\n\n    if (form?._rawValidators) {\n      form._rawValidators.forEach((r: any) => {\n        if (r.name.includes('required')) this._required = true;\n      });\n    }\n\n    if (this.min) this.control.addValidators(Validators.min(this.min));\n    if (this.max) this.control.addValidators(Validators.max(this.max));\n\n    if (this.disabled) this.control.disable();\n  }\n\n  public writeValue(value: string): void {\n    if (value === null) this._isInvalid = false;\n    this._value = value;\n    this._isSubmitted = false;\n    this._cd.markForCheck();\n  }\n\n  public registerOnChange(fn: any): void {\n    this.onChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouchFn = fn;\n  }\n\n  public onChange(event: any): void {\n    this._value = event.target.value;\n    this.onChangeFn(\n      ['', null, undefined].indexOf(event.target.value) < 0 ? +event.target.value : null\n    );\n    if (this.control.touched) this._onValidate();\n  }\n\n  public onFocusOut(): void {\n    this.onTouchFn(true);\n    this._onValidate();\n  }\n\n  private _onValidate(): void {\n    if (this.control.invalid) this._isInvalid = true;\n    else this._isInvalid = false;\n  }\n\n  public onClearControl(): void {\n    if (['', null, undefined].indexOf(this.control.value) >= 0) {\n      this.control.setValue('', { emitEvent: false });\n    } else this.control.setValue('');\n    this._value = '';\n  }\n\n  public ngOnDestroy(): void {\n    if (this._subscription) this._subscription.unsubscribe();\n  }\n\n  get control(): FormControl {\n    return this._ngControl.control as FormControl;\n  }\n\n  get directive(): FormGroupDirective {\n    return this._formGroupDirective as FormGroupDirective;\n  }\n\n  get isDisabled() {\n    return this._ngControl.disabled;\n  }\n\n  get isSubmitted() {\n    return this._isSubmitted;\n  }\n\n  get isInvalid() {\n    return this._isInvalid;\n  }\n\n  get required() {\n    return this._required;\n  }\n\n  get value() {\n    return this._value;\n  }\n}\n","<div class=\"tak-form-container\">\n  <mat-form-field\n    [floatLabel]=\"floatLabel\"\n    [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\n    [appearance]=\"appearance\"\n    [color]=\"color\"\n  >\n    <mat-label>\n      <ng-content></ng-content>{{ ' ' }}\n      @if (required) {\n        <span class=\"tak-field__danger-x\">*</span>\n      }\n    </mat-label>\n    <input\n      type=\"number\"\n      matInput\n      [min]=\"min\"\n      [max]=\"max\"\n      [autocomplete]=\"autocomplete\"\n      [value]=\"value\"\n      (keyup)=\"onChange($event)\"\n      [placeholder]=\"placeholder\"\n      (change)=\"onChange($event)\"\n      [disabled]=\"isDisabled\"\n      [attr.minLength]=\"minLength\"\n      [attr.maxLength]=\"maxLength\"\n      (focusout)=\"onFocusOut()\"\n    />\n    @if (control.value && hasClearButton && !isDisabled) {\n      <button matSuffix mat-icon-button type=\"button\" (click)=\"onClearControl()\">\n        <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\n      </button>\n    }\n    @if (control.value && hasActionButton && !isDisabled) {\n      <button matSuffix mat-icon-button type=\"button\" (click)=\"onExecuteAction.emit(control.value)\">\n        <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\n      </button>\n    }\n    @if (countCaracters) {\n      <mat-hint align=\"end\" class=\"tak-hint\">\n        {{ control.value?.length || 0 }}/{{ maxLength }}\n      </mat-hint>\n    }\n  </mat-form-field>\n  <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\n    @if (isInvalid || (isSubmitted && control.invalid)) {\n      <tak-error [control]=\"control\"></tak-error>\n    }\n  </div>\n</div>\n","import {\n  ChangeDetectorRef,\n  Component,\n  OnDestroy,\n  Optional,\n  OnInit,\n  Input,\n  Self,\n  Output,\n  EventEmitter,\n} from '@angular/core';\nimport { ControlValueAccessor, FormGroupDirective, FormControl, NgControl } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';\nimport { FloatLabelType, MatFormFieldAppearance } from '@takkion/material/form-field';\nimport { ThemePalette } from '@takkion/material/core';\n\n@Component({\n  selector: 'tak-textarea',\n  templateUrl: './textarea.component.html',\n})\nexport class TakTextareaComponent implements OnInit, OnDestroy, ControlValueAccessor {\n  @Input() autocomplete: 'off' | 'on' = 'off';\n\n  @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\n  @Input() floatLabel: FloatLabelType = 'auto';\n  @Input() color: ThemePalette = 'primary';\n  @Input() actionIcon = 'search';\n\n  @Input() defaultFilterStyle = true;\n  @Input() hasActionButton = false;\n  @Input() hasClearButton = false;\n  @Input() countCaracters = false;\n  @Input() isTextArea = false;\n  @Input() placeholder = '';\n  @Input() heightInPx = 60;\n\n  @Input() minLength!: number;\n  @Input() maxLength!: number;\n\n  @Input() disabled = false;\n\n  @Output() onExecuteAction = new EventEmitter();\n  @Output() onKeyUp = new EventEmitter();\n\n  public onChangeFn = (_: any) => {};\n  public onTouchFn = (_: any) => {};\n\n  public _isSubmitted = false;\n  public _isInvalid = false;\n  public _required = false;\n  public _value = '';\n\n  private _subscription!: Subscription;\n  private _decrypted = false;\n\n  constructor(\n    @Self() @Optional() private _ngControl: NgControl,\n    @Optional() private _formGroupDirective: FormGroupDirective,\n    private _cd: ChangeDetectorRef\n  ) {\n    if (_ngControl) this._ngControl.valueAccessor = this;\n\n    if (_formGroupDirective) {\n      this._subscription = _formGroupDirective.ngSubmit.subscribe(() => {\n        this._isSubmitted = true;\n        _cd.markForCheck();\n      });\n    }\n  }\n\n  public ngOnInit(): void {\n    const form: any = this.control;\n\n    if (form?._rawValidators) {\n      form._rawValidators.forEach((r: any) => {\n        if (r.name.includes('required')) this._required = true;\n      });\n    }\n\n    if (this.disabled) this.control.disable();\n  }\n\n  public writeValue(value: string): void {\n    if (value === null) {\n      this._isInvalid = false;\n    }\n    this._value = value;\n    this._isSubmitted = false;\n    this._cd.markForCheck();\n  }\n\n  public registerOnChange(fn: any): void {\n    this.onChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouchFn = fn;\n  }\n\n  public onChange(event: any): void {\n    this._value = event.target.value;\n    this.onChangeFn(event.target.value);\n    if (this.control.touched) this._onValidate();\n  }\n\n  public onFocusOut(): void {\n    this.onTouchFn(true);\n    this._onValidate();\n  }\n\n  private _onValidate(): void {\n    if (this.control.invalid) this._isInvalid = true;\n    else this._isInvalid = false;\n  }\n\n  public onClearControl(): void {\n    if (['', null, undefined].indexOf(this.control.value) >= 0) {\n      this.control.setValue('', { emitEvent: false });\n    } else {\n      this.control.setValue('');\n    }\n\n    this._value = '';\n  }\n\n  public ngOnDestroy(): void {\n    if (this._subscription) this._subscription.unsubscribe();\n  }\n\n  get control(): FormControl {\n    return this._ngControl.control as FormControl;\n  }\n\n  get directive(): FormGroupDirective {\n    return this._formGroupDirective as FormGroupDirective;\n  }\n\n  get decrypted() {\n    return this._decrypted;\n  }\n\n  get isDisabled() {\n    return this._ngControl.disabled;\n  }\n\n  get isSubmitted() {\n    return this._isSubmitted;\n  }\n\n  get isInvalid() {\n    return this._isInvalid;\n  }\n\n  get required() {\n    return this._required;\n  }\n\n  get value() {\n    return this._value;\n  }\n}\n","<div class=\"tak-form-container\">\n  <mat-form-field\n    [floatLabel]=\"floatLabel\"\n    [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\n    [appearance]=\"appearance\"\n    [color]=\"color\"\n  >\n    <mat-label>\n      <ng-content></ng-content>{{ ' ' }}\n      @if (required) {\n        <span class=\"tak-field__danger-x\">*</span>\n      }\n    </mat-label>\n    <textarea\n      matInput\n      [autocomplete]=\"autocomplete\"\n      [value]=\"value\"\n      [style.height.px]=\"heightInPx\"\n      [placeholder]=\"placeholder\"\n      (keyup)=\"onChange($event)\"\n      (change)=\"onChange($event)\"\n      [disabled]=\"isDisabled\"\n      [attr.minLength]=\"minLength\"\n      [attr.maxLength]=\"maxLength\"\n      (focusout)=\"onFocusOut()\"\n    ></textarea>\n    @if (control.value && hasClearButton && !isDisabled) {\n      <button mat-icon-button type=\"button\" matSuffix (click)=\"onClearControl()\">\n        <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\n      </button>\n    }\n    @if (control.value && hasActionButton) {\n      <button mat-icon-button type=\"button\" matSuffix (click)=\"onExecuteAction.emit(control.value)\">\n        <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\n      </button>\n    }\n    @if (countCaracters) {\n      <mat-hint align=\"end\" class=\"tak-hint\">\n        {{ control.value?.length || 0 }}/{{ maxLength }}\n      </mat-hint>\n    }\n  </mat-form-field>\n  <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\n    @if (isInvalid || (isSubmitted && control.invalid)) {\n      <tak-error [control]=\"control\"></tak-error>\n    }\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\n\nimport { MatFormFieldModule } from '@takkion/material/form-field';\nimport { MatSelectModule } from '@takkion/material/select';\nimport { MatButtonModule } from '@takkion/material/button';\nimport { MatNativeDateModule, MatOptionModule } from '@takkion/material/core';\nimport { MatInputModule } from '@takkion/material/input';\nimport { MatIconModule } from '@takkion/material/icon';\nimport { MatDatepickerModule } from '@takkion/material/datepicker';\nimport { MatTooltipModule } from '@takkion/material/tooltip';\n\nimport { TakSelectFieldComponent } from './select-field/select-field.component';\nimport { TakDateFieldComponent } from './date-field/date-field.component';\n\nimport { TakAutocompleteFieldComponent } from './autocomplete-field/autocomplete-field.component';\nimport { MatAutocompleteModule } from '@takkion/material/autocomplete';\nimport { TakErrorModule } from './error/error.module';\nimport { TakDateRangeFieldComponent } from './date-range-field/date-range-field.component';\nimport { TakMoneyFieldComponent } from './money-field/money-field.component';\nimport { TakGeneralFieldComponent } from './general-field/general-field.component';\nimport { MatProgressSpinnerModule } from '@takkion/material/progress-spinner';\nimport { TakNumberFieldComponent } from './number-field/number-field.component';\nimport { TakTextareaComponent } from './text-area/textarea.component';\nimport { MatMenuModule } from '@takkion/material/menu';\n\nconst components = [\n  TakSelectFieldComponent,\n  TakDateFieldComponent,\n  TakAutocompleteFieldComponent,\n  TakDateRangeFieldComponent,\n  TakGeneralFieldComponent,\n  TakMoneyFieldComponent,\n  TakTextareaComponent,\n  TakNumberFieldComponent,\n];\n\n@NgModule({\n  declarations: components,\n  imports: [\n    FormsModule,\n    CommonModule,\n    ReactiveFormsModule,\n    MatProgressSpinnerModule,\n    MatFormFieldModule,\n    MatButtonModule,\n    MatDatepickerModule,\n    MatAutocompleteModule,\n    TakErrorModule,\n    MatIconModule,\n    MatInputModule,\n    MatOptionModule,\n    MatSelectModule,\n    MatTooltipModule,\n    MatMenuModule,\n  ],\n  exports: [\n    ReactiveFormsModule,\n    MatAutocompleteModule,\n    FormsModule,\n    MatNativeDateModule,\n    ...components,\n  ],\n})\nexport class TakFieldsModule {}\n","/*\n * Public API Surface of @takkion/components/fields\n */\n\nexport * from './error/error-equals.pipe';\nexport * from './error/error.component';\nexport * from './error/error.msg.pipe';\nexport * from './fields.common';\nexport * from './fields.module';\nexport * from './select-field/select-field.component';\nexport * from './date-field/date-field.component';\nexport * from './autocomplete-field/autocomplete-field.component';\nexport * from './general-field/general-field.component';\nexport * from './money-field/money-field.component';\nexport * from './text-area/textarea.component';\nexport * from './date-range-field/date-range-field.component';\nexport * from './number-field/number-field.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["lang.es","i1.TakErrorEqualsPipe","i2.TakErrorMsgPipe","i5.TakErrorComponent","i6","i3","i4.TakErrorComponent","i5","takeUntil","i2","i4","i7.TakErrorComponent","i8","i9"],"mappings":"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"}