@kato-lee/components 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/fields/fields.validators.mjs +11 -0
- package/esm2022/fields/index.mjs +3 -1
- package/esm2022/fields/remote-autocomplete-field/remote-autocomplete-field.component.mjs +188 -0
- package/esm2022/tables/index.mjs +2 -1
- package/esm2022/tables/no-records.component.mjs +58 -0
- package/esm2022/tables/tables.module.mjs +4 -3
- package/fesm2022/kato-lee-components-fields.mjs +180 -4
- package/fesm2022/kato-lee-components-fields.mjs.map +1 -1
- package/fesm2022/kato-lee-components-tables.mjs +60 -4
- package/fesm2022/kato-lee-components-tables.mjs.map +1 -1
- package/fields/fields.validators.d.ts +9 -0
- package/fields/index.d.ts +2 -0
- package/fields/remote-autocomplete-field/remote-autocomplete-field.component.d.ts +43 -0
- package/package.json +20 -20
- package/tables/index.d.ts +1 -0
- package/tables/no-records.component.d.ts +12 -0
- package/tables/tables.module.d.ts +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kato-lee-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/kato-lee-components-fields.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'errorEquals' })\r\nexport class TakErrorEqualsPipe implements PipeTransform {\r\n transform(errors: any, error: any, args?: any): any {\r\n if (!errors) return false;\r\n const array = Object.keys(errors);\r\n if (array && array.length > 0) return errors[array[0]] === error;\r\n return false;\r\n }\r\n}\r\n","export const en: any = {\r\n minLengthMsg: (length: number) => `The field contains fewer than ${length} characters`,\r\n maxLengthMsg: (length: number) => `The field contains more than ${length} characters`,\r\n minMsg: (min: number) => `The number must be bigger than ${min}`,\r\n maxMsg: (max: number) => `The number must be lower than ${max}`,\r\n patternMsg: 'One or more characters not allowed',\r\n requiredMsg: 'This field is required',\r\n EmailMsg: 'This field must be an email',\r\n badDateMsg: 'Insert a valid date',\r\n DateRangeMsg: 'The range is not valid',\r\n};\r\n","export const es: any = {\r\n minLengthMsg: (length: number) => `El campo contiene menos de ${length} caracteres`,\r\n maxLengthMsg: (length: number) => `El campo contiene mas de ${length} caracteres`,\r\n minMsg: (min: number) => `El numero debe ser mayor a ${min}`,\r\n maxMsg: (max: number) => `El numero debe ser menor a ${max}`,\r\n patternMsg: 'Uno o mas caracteres no permitidos',\r\n requiredMsg: 'Este campo es requerido',\r\n EmailMsg: 'Este campo debe ser un email',\r\n badDateMsg: 'Inserte una fecha valida',\r\n DateRangeMsg: 'El rango no es valido',\r\n};\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport * as lang from './lang';\r\n\r\n@Pipe({ name: 'errorMsg' })\r\nexport class TakErrorMsgPipe implements PipeTransform {\r\n transform(parameter: string, aditionalValue?: any): string {\r\n let resources = lang.es;\r\n if (aditionalValue) return resources[parameter](aditionalValue);\r\n else return resources[parameter];\r\n }\r\n}\r\n","import { ElementRef, Component, ViewChild, Input } from '@angular/core';\r\nimport { FormControl, ValidationErrors } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'tak-error',\r\n templateUrl: './error.component.html',\r\n})\r\nexport class TakErrorComponent {\r\n @ViewChild('error') error: ElementRef | undefined;\r\n\r\n @Input() control!: FormControl;\r\n\r\n @Input() start!: FormControl;\r\n\r\n @Input() end!: FormControl;\r\n\r\n @Input() isDateField: boolean = false;\r\n\r\n @Input() isNumberField: boolean = false;\r\n\r\n @Input() marginTop = -20;\r\n\r\n public hasPatternError: boolean = false;\r\n\r\n get required(): ValidationErrors {\r\n return this.control?.errors?.['required'];\r\n }\r\n\r\n get pattern(): ValidationErrors {\r\n return this.control?.errors?.['pattern'];\r\n }\r\n\r\n get max() {\r\n return this.control?.errors?.['max'];\r\n }\r\n\r\n get min() {\r\n return this.control?.errors?.['min'];\r\n }\r\n\r\n get maxlength() {\r\n return this.control?.errors?.['maxlength'];\r\n }\r\n\r\n get minlength() {\r\n return this.control?.errors?.['minlength'];\r\n }\r\n\r\n get email(): ValidationErrors {\r\n return this.control?.errors?.['email'];\r\n }\r\n}\r\n","<div class=\"tak-custom-error tak-fade-in--800ms\" #error [style.marginTop.px]=\"marginTop\">\r\n @if (control !== undefined && isDateField && control.valid) {\r\n <div>\r\n {{ 'badDateMsg' | errorMsg }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: required) {\r\n <div>\r\n {{ 'requiredMsg' | errorMsg }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: pattern) {\r\n <div>\r\n {{\r\n isNumberField\r\n ? 'El campo solo debe contener caracteres numericos'\r\n : ('patternMsg' | errorMsg)\r\n }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: max) {\r\n <div>\r\n {{ 'maxMsg' | errorMsg: max.max }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: min) {\r\n <div>\r\n {{ 'minMsg' | errorMsg: min.min }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: maxlength) {\r\n <div>\r\n {{ 'maxLengthMsg' | errorMsg: maxlength.requiredLength }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: minlength) {\r\n <div>\r\n {{ 'minLengthMsg' | errorMsg: minlength.requiredLength }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: email) {\r\n <div>\r\n {{ 'EmailMsg' | errorMsg }}\r\n </div>\r\n }\r\n @if (control === undefined) {\r\n <div>\r\n {{\r\n start.hasError('required') && end.hasError('required')\r\n ? ('requiredMsg' | errorMsg)\r\n : ('DateRangeMsg' | errorMsg)\r\n }}\r\n </div>\r\n }\r\n</div>\r\n","import { ESCAPE } from '@kato-lee/cdk/keycodes';\r\nimport { MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\n\r\nexport const TAK_DEFAULT_APPEARANCE_FORM: MatFormFieldAppearance = 'standard';\r\n\r\nexport type TakGeneralFieldType = 'text' | 'password' | 'filter';\r\nexport type TakAutocompleteFieldType = 'off' | 'on';\r\n\r\nexport const TAK_PRESS_ESC_KEY = new KeyboardEvent('keydown', {\r\n bubbles: true,\r\n cancelable: true,\r\n keyCode: ESCAPE,\r\n});\r\n\r\nexport const TAK_PTRN_EMAIL = '^[^@]+@[^@]+.[a-zA-Z]{2,}$';\r\nexport const TAK_PTRN_NUMRC = /^[0-9.]+$/;\r\nexport const TAK_PTRN_NONSP = /^[^\\s]+$/;\r\n","import {\r\n ChangeDetectorRef,\r\n OnDestroy,\r\n Component,\r\n Optional,\r\n Input,\r\n Self,\r\n OnInit,\r\n EventEmitter,\r\n Output,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, FormGroupDirective, NgControl } from '@angular/forms';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { MatOptionSelectionChange, ThemePalette } from '@kato-lee/material/core';\r\nimport { TakAutocompleteFieldType, TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';\r\n\r\n@Component({\r\n selector: 'tak-select-field',\r\n templateUrl: './select-field.component.html',\r\n})\r\nexport class TakSelectFieldComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n @Input() autocomplete: TakAutocompleteFieldType = 'off';\r\n @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\r\n @Input() color: ThemePalette = 'primary';\r\n @Input() suggestions: any[] = [];\r\n @Input() disabled = false;\r\n\r\n @Input() type: 'menu' | 'select' = 'select';\r\n @Input() tooltip = '';\r\n @Input() icon = 'filter_list';\r\n\r\n @Input() option = 'option';\r\n @Input() extraInfo = '';\r\n\r\n @Input() hasDefaultValue = false;\r\n\r\n @Output() onSelect = new EventEmitter<any>();\r\n\r\n public onChangeFn = (_: any) => {};\r\n public onTouchFn = (_: any) => {};\r\n\r\n public isInvalid = false;\r\n public isSubmitted = false;\r\n private _unsubscribe$ = new Subject<void>();\r\n\r\n constructor(\r\n @Self() @Optional() private _ngControl: NgControl,\r\n @Optional() private _formGroupDirective: FormGroupDirective,\r\n private _cd: ChangeDetectorRef\r\n ) {\r\n if (_ngControl) this._ngControl.valueAccessor = this;\r\n if (_formGroupDirective) {\r\n _formGroupDirective.ngSubmit.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\r\n this.isSubmitted = true;\r\n _cd.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n if (this.suggestions.length && this.hasDefaultValue) {\r\n this._ngControl.control?.setValue(this.suggestions[0]);\r\n }\r\n\r\n if (this.disabled) this.control.disable();\r\n }\r\n\r\n public writeValue(value: string): void {}\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchFn = fn;\r\n }\r\n\r\n public onChange(event: any): void {\r\n this.onChangeFn(event.target.value);\r\n if (this.control.touched) this._onValidate();\r\n }\r\n\r\n public emit(el: MatOptionSelectionChange) {\r\n if (el.isUserInput) {\r\n this.onSelect.emit(el.source.value);\r\n this.isInvalid = false;\r\n }\r\n }\r\n\r\n public justEmit(el: any) {\r\n this.control.setValue(el);\r\n this.onSelect.emit(el);\r\n this.isInvalid = false;\r\n }\r\n\r\n public onFocusOut() {\r\n this._onValidate();\r\n }\r\n\r\n private _onValidate(): void {\r\n if (this.control.invalid) this.isInvalid = true;\r\n else this.isInvalid = false;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._unsubscribe$.next();\r\n this._unsubscribe$.complete();\r\n }\r\n\r\n get control(): FormControl {\r\n return this._ngControl?.control as FormControl;\r\n }\r\n\r\n get directive(): FormGroupDirective {\r\n return this._formGroupDirective as FormGroupDirective;\r\n }\r\n\r\n get isDisabled() {\r\n return this._ngControl.disabled;\r\n }\r\n}\r\n","@if (type === 'select') {\r\n <div class=\"tak-form-container\">\r\n <mat-form-field [appearance]=\"appearance\" [color]=\"color\">\r\n <mat-label><ng-content></ng-content></mat-label>\r\n <mat-select [formControl]=\"control\" (focusout)=\"onFocusOut()\">\r\n @for (suggestion of suggestions; track suggestion) {\r\n <mat-option\r\n [value]=\"suggestion\"\r\n (onSelectionChange)=\"emit($event)\"\r\n title=\"{{ suggestion[option] }} {{\r\n extraInfo ? '(' + suggestion[extraInfo] + ')' : ''\r\n }}\"\r\n >\r\n {{ suggestion[option] }}\r\n @if (extraInfo) {\r\n <span class=\"tak-option-span-extra\">{{ suggestion[extraInfo] }}</span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n} @else {\r\n <div [matTooltip]=\"tooltip\">\r\n @if (type === 'menu') {\r\n <span>\r\n <button mat-icon-button type=\"button\" [matMenuTriggerFor]=\"menu\" [disabled]=\"isDisabled\">\r\n <mat-icon>{{ icon }}</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n @for (item of suggestions; track item) {\r\n <a tak-menu-item (click)=\"justEmit(item)\">\r\n {{ item[option] }}\r\n </a>\r\n }\r\n </mat-menu>\r\n </span>\r\n }\r\n </div>\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n AfterViewInit,\r\n OnDestroy,\r\n Component,\r\n Optional,\r\n OnInit,\r\n Input,\r\n Self,\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ThemePalette } from '@kato-lee/material/core';\r\nimport { MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { ControlValueAccessor, FormControl, FormGroupDirective, NgControl } from '@angular/forms';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM, TakAutocompleteFieldType } from '../fields.common';\r\n\r\n@Component({\r\n selector: 'tak-date-field',\r\n templateUrl: './date-field.component.html',\r\n})\r\nexport class TakDateFieldComponent\r\n implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor\r\n{\r\n private _unsubscribe$ = new Subject<void>();\r\n\r\n @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\r\n @Input() autocomplete: TakAutocompleteFieldType = 'off';\r\n @Input() color: ThemePalette = 'primary';\r\n @Input() placeholder = '';\r\n @Input() notInput = false;\r\n\r\n @Input() minDate!: Date | string;\r\n @Input() maxDate!: Date | string;\r\n\r\n @Input() disabled = false;\r\n\r\n public onChangeFn = (_: any) => {};\r\n public onTouchFn = (_: any) => {};\r\n\r\n private _isSubmitted = false;\r\n private _isInvalid = false;\r\n private _required = false;\r\n private _value = '';\r\n\r\n constructor(\r\n @Self() @Optional() private _ngControl: NgControl,\r\n @Optional() private _formGroupDirective: FormGroupDirective,\r\n private _cd: ChangeDetectorRef\r\n ) {\r\n if (_ngControl) this._ngControl.valueAccessor = this;\r\n if (_formGroupDirective) {\r\n _formGroupDirective.ngSubmit.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\r\n this._isSubmitted = true;\r\n _cd.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n const form: any = this.control;\r\n if (form?._rawValidators) {\r\n form._rawValidators.map((r: any) => {\r\n if (r.name.includes('required')) {\r\n this._required = true;\r\n }\r\n });\r\n }\r\n if (this.disabled) this.control.disable();\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n const isValidDate = Date.parse(this.control.value);\r\n if (isNaN(isValidDate)) this.control.setValue(null);\r\n else this.control.setValue(new Date(this.control.value));\r\n }\r\n\r\n public writeValue(value: string): void {\r\n if (value === null) this._isInvalid = false;\r\n this._value = value;\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchFn = fn;\r\n }\r\n\r\n public onChange(event: any): void {\r\n this._value = event.target.value;\r\n this.onChangeFn(event.target.value);\r\n if (this.control.touched) this._onValidate();\r\n }\r\n\r\n public onFocusout(): void {\r\n this.onTouchFn(true);\r\n this._onValidate();\r\n }\r\n\r\n public onCloseDatePicker(): void {\r\n this.onTouchFn(true);\r\n this._onValidate();\r\n }\r\n\r\n private _onValidate(): void {\r\n const isValidDate = Date.parse(this.control.value);\r\n if (\r\n this.control.invalid ||\r\n ([undefined, null, ''].indexOf(this.control.value) < 0 &&\r\n this.control.valid &&\r\n isNaN(isValidDate))\r\n ) {\r\n this._isInvalid = true;\r\n } else {\r\n this._isInvalid = false;\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._unsubscribe$.next();\r\n this._unsubscribe$.complete();\r\n }\r\n\r\n get control(): FormControl {\r\n return this._ngControl?.control as FormControl;\r\n }\r\n\r\n get directive(): FormGroupDirective {\r\n return this._formGroupDirective as FormGroupDirective;\r\n }\r\n\r\n get isDisabled() {\r\n return this._ngControl.disabled;\r\n }\r\n\r\n get isSubmitted() {\r\n return this._isSubmitted;\r\n }\r\n\r\n get isInvalid() {\r\n return this._isInvalid;\r\n }\r\n\r\n get required() {\r\n return this._required;\r\n }\r\n\r\n get value() {\r\n return this._value;\r\n }\r\n}\r\n","@if (!notInput) {\r\n <div class=\"tak-form-container\">\r\n <mat-form-field\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <input\r\n matInput\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n [autocomplete]=\"autocomplete\"\r\n [matDatepicker]=\"picker\"\r\n [value]=\"value\"\r\n (keyup)=\"onChange($event)\"\r\n (dateChange)=\"onChange($event)\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"isDisabled\"\r\n (focusout)=\"onFocusout()\"\r\n />\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker (closed)=\"onCloseDatePicker()\" #picker></mat-datepicker>\r\n </mat-form-field>\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\" [isDateField]=\"true\"> </tak-error>\r\n }\r\n </div>\r\n}\r\n@if (notInput) {\r\n <div>\r\n <div\r\n class=\"tak__date-not-input__picker-container\"\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n >\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker (closed)=\"onCloseDatePicker()\" #picker></mat-datepicker>\r\n </div>\r\n <div class=\"tak__date-not-input__field-container\">\r\n <mat-form-field [color]=\"color\">\r\n <input\r\n matInput\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n autocomplete=\"off\"\r\n [matDatepicker]=\"picker\"\r\n [value]=\"value\"\r\n (keyup)=\"onChange($event)\"\r\n (dateChange)=\"onChange($event)\"\r\n [disabled]=\"isDisabled\"\r\n (focusout)=\"onFocusout()\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\" [isDateField]=\"true\" [marginTop]=\"-60\"> </tak-error>\r\n }\r\n </div>\r\n}\r\n","import {\r\n Component,\r\n OnDestroy,\r\n Optional,\r\n Input,\r\n Self,\r\n OnInit,\r\n ChangeDetectorRef,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormGroupDirective, FormControl, NgControl } from '@angular/forms';\r\nimport { debounceTime, map, Observable, Subject, takeUntil } from 'rxjs';\r\nimport { MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { MatOptionSelectionChange, ThemePalette } from '@kato-lee/material/core';\r\nimport {\r\n TakAutocompleteFieldType,\r\n TAK_DEFAULT_APPEARANCE_FORM,\r\n TAK_PRESS_ESC_KEY,\r\n} from '../fields.common';\r\n\r\n@Component({\r\n selector: 'tak-autocomplete-field',\r\n templateUrl: './autocomplete-field.component.html',\r\n})\r\nexport class TakAutocompleteFieldComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n private _unsubscribe$ = new Subject<void>();\r\n\r\n @Input() option = 'option';\r\n @Input() extraInfo = '';\r\n @Input() autocomplete: TakAutocompleteFieldType = 'off';\r\n @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\r\n @Input() color: ThemePalette = 'primary';\r\n @Input() hasClearButton = true;\r\n @Input() suggestions: any[] = [];\r\n @Input() disabled = false;\r\n @Input() hasTitle = false;\r\n\r\n @Input() isLoading = false;\r\n @Input() isRemoteSearch = false;\r\n @Input() debounceTimeForRemoteSearch = 500;\r\n\r\n @Output() onSelect = new EventEmitter<any>();\r\n @Output() onSearch = new EventEmitter<any>();\r\n\r\n public onChangeFn = (_: any) => {};\r\n public onTouchFn = (_: any) => {};\r\n\r\n private _isSubmitted = false;\r\n private _isInvalid = false;\r\n private _required = false;\r\n private _value = '';\r\n private _filteredOptions!: Observable<any[]>;\r\n private _notSuggestions = false;\r\n private _lastValue = '';\r\n\r\n constructor(\r\n @Self() @Optional() private _ngControl: NgControl,\r\n @Optional() private _formGroupDirective: FormGroupDirective,\r\n private _cd: ChangeDetectorRef\r\n ) {\r\n if (_ngControl) this._ngControl.valueAccessor = this;\r\n if (_formGroupDirective) {\r\n _formGroupDirective.ngSubmit.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\r\n this._isSubmitted = true;\r\n _cd.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n const form: any = this.control;\r\n\r\n if (form?._rawValidators) {\r\n form._rawValidators.map((r: any) => {\r\n if (r.name.includes('required')) this._required = true;\r\n });\r\n }\r\n\r\n this._filteredOptions = this.control.valueChanges.pipe(\r\n takeUntil(this._unsubscribe$),\r\n map(() => this._filter())\r\n );\r\n\r\n if (this.isRemoteSearch) {\r\n this.control.valueChanges\r\n .pipe(takeUntil(this._unsubscribe$), debounceTime(this.debounceTimeForRemoteSearch))\r\n .subscribe(() => {\r\n if (this._lastValue !== `${this._value}` && `${this._value}` && !this.control.value) {\r\n this.onSearch.emit(`${this._value}`);\r\n this._setValue(`${this._value}`);\r\n }\r\n\r\n this._lastValue = `${this._value}`;\r\n });\r\n }\r\n if (this.disabled) this.control.disable();\r\n }\r\n\r\n private _filter(): any[] {\r\n const value =\r\n typeof `${this._value}` === 'string'\r\n ? `${this._value}`.toLowerCase()\r\n : `${this.control.value[this.option]}`.toLowerCase();\r\n const option = this.suggestions.filter(res =>\r\n `${res[this.option]}`.toLowerCase().includes(value)\r\n );\r\n if (!option.length) this._notSuggestions = true;\r\n else this._notSuggestions = false;\r\n return option;\r\n }\r\n\r\n public writeValue(value: string): void {\r\n if (value === null) this._isInvalid = false;\r\n this._value = value || '';\r\n this._isSubmitted = false;\r\n this._cd.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchFn = fn;\r\n }\r\n\r\n public onChange(event: any): void {\r\n if (event.target.value !== `${this._value}`) {\r\n this._value = event.target.value;\r\n\r\n if (!this.isRemoteSearch) this._setValue(`${this._value}`);\r\n\r\n this.onChangeFn(\r\n this.suggestions.filter(\r\n sug => `${sug[this.option]}`.toLowerCase() === `${`${this._value}`}`.toLowerCase()\r\n )[0] || null\r\n );\r\n\r\n if (this.control.touched) {\r\n this._onValidate();\r\n }\r\n }\r\n }\r\n\r\n private _setValue(value: string) {\r\n if (!this.isRemoteSearch) {\r\n const suggestionsFiltered = value\r\n ? this.suggestions.filter(\r\n el =>\r\n `${el[this.option]}`.toLowerCase().trim() === (value as string).toLowerCase().trim()\r\n )\r\n : [];\r\n\r\n if (suggestionsFiltered.length) {\r\n document.body.dispatchEvent(TAK_PRESS_ESC_KEY);\r\n }\r\n\r\n try {\r\n this.control.setValue(suggestionsFiltered[0][this.option], {\r\n emitEvent: false,\r\n });\r\n this.onSelect.emit(suggestionsFiltered[0]);\r\n } catch (error) {}\r\n }\r\n }\r\n\r\n public emit(el: MatOptionSelectionChange) {\r\n if (el && el.isUserInput) this._isInvalid = false;\r\n }\r\n\r\n public emitWithClick(suggestionOption: any) {\r\n this.control.setValue(suggestionOption);\r\n this._value = `${suggestionOption[this.option]}`;\r\n this._isInvalid = false;\r\n }\r\n\r\n public onFocusout(): void {\r\n this.onTouchFn(true);\r\n this._onValidate();\r\n }\r\n\r\n public setValue(value: any) {\r\n this.control.setValue(value);\r\n this._value = `${value[this.option]}`;\r\n }\r\n\r\n public onUpdateSuggestions(suggestions: any[]) {\r\n this.suggestions = suggestions;\r\n this._cd.markForCheck();\r\n\r\n this.onChangeFn(\r\n this.suggestions.filter(\r\n sug => `${sug[this.option]}`.toLowerCase() === `${this._value}`.toLowerCase()\r\n )[0] || null\r\n );\r\n }\r\n\r\n private _onValidate(): void {\r\n if (this.control.invalid) this._isInvalid = true;\r\n else this._isInvalid = false;\r\n }\r\n\r\n public onFocus() {\r\n if (!`${this._value}`) {\r\n this.control.setValue('');\r\n this._value = '';\r\n }\r\n }\r\n\r\n public onClearControl(): void {\r\n this.control.setValue('', { emitEvent: false });\r\n this._value = '';\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._unsubscribe$.next();\r\n this._unsubscribe$.complete();\r\n }\r\n\r\n get control(): FormControl {\r\n return this._ngControl?.control as FormControl;\r\n }\r\n\r\n get directive(): FormGroupDirective {\r\n return this._formGroupDirective as FormGroupDirective;\r\n }\r\n\r\n get isDisabled() {\r\n return this._ngControl.disabled;\r\n }\r\n\r\n get isSubmitted() {\r\n return this._isSubmitted;\r\n }\r\n\r\n get isInvalid() {\r\n return this._isInvalid;\r\n }\r\n\r\n get required() {\r\n return this._required;\r\n }\r\n\r\n get value() {\r\n return `${this._value}`;\r\n }\r\n\r\n get filteredOptions() {\r\n return this._filteredOptions;\r\n }\r\n\r\n get notSuggestions() {\r\n return this._notSuggestions;\r\n }\r\n\r\n get lastValue() {\r\n return this._lastValue;\r\n }\r\n}\r\n","<div class=\"tak-form-container\">\r\n <mat-form-field\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <input\r\n matInput\r\n [autocomplete]=\"autocomplete\"\r\n [matAutocomplete]=\"auto\"\r\n [value]=\"value\"\r\n (keyup)=\"onChange($event)\"\r\n (change)=\"onChange($event)\"\r\n [disabled]=\"isDisabled\"\r\n (focus)=\"onFocus()\"\r\n (focusout)=\"onFocusout()\"\r\n />\r\n @if (isRemoteSearch && isLoading) {\r\n <button matSuffix mat-icon-button type=\"button\">\r\n <mat-spinner [diameter]=\"15\" mode=\"indeterminate\"></mat-spinner>\r\n </button>\r\n }\r\n @if ((control.value || value) && hasClearButton && !disabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onClearControl()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-autocomplete #auto=\"matAutocomplete\">\r\n @for (suggestion of filteredOptions | async; track suggestion) {\r\n <mat-option\r\n [value]=\"suggestion[option]\"\r\n [class.tak-option-extra]=\"extraInfo\"\r\n (onSelectionChange)=\"emit($event)\"\r\n (click)=\"emitWithClick(suggestion)\"\r\n title=\"{{ suggestion[option] }} {{ extraInfo ? '(' + suggestion[extraInfo] + ')' : '' }}\"\r\n >\r\n <span>{{ suggestion[option] }}</span>\r\n @if (extraInfo) {\r\n <span class=\"tak-option-span-extra\">{{ suggestion[extraInfo] }}</span>\r\n }\r\n </mat-option>\r\n }\r\n @if (notSuggestions && control.invalid) {\r\n <mat-option>\r\n <span class=\"tak-autocomplete-not-records\"> No se encuentran resultados </span>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { TakErrorEqualsPipe } from './error-equals.pipe';\r\nimport { TakErrorMsgPipe } from './error.msg.pipe';\r\nimport { TakErrorComponent } from './error.component';\r\n\r\n@NgModule({\r\n declarations: [TakErrorEqualsPipe, TakErrorMsgPipe, TakErrorComponent],\r\n imports: [FormsModule, CommonModule, ReactiveFormsModule],\r\n exports: [TakErrorComponent],\r\n})\r\nexport class TakErrorModule {}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { ThemePalette } from '@kato-lee/material/core';\r\nimport { TakAutocompleteFieldType, TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';\r\n\r\n@Component({\r\n selector: 'tak-date-range-field',\r\n templateUrl: './date-range-field.component.html',\r\n})\r\nexport class TakDateRangeFieldComponent implements OnInit {\r\n @Input() autocomplete: TakAutocompleteFieldType = 'off';\r\n @Input() startPlaceholder: string = 'Inicio';\r\n @Input() endPlaceholder: string = 'Fin';\r\n\r\n @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\r\n @Input() color: ThemePalette = 'primary';\r\n\r\n @Input() start!: FormControl;\r\n @Input() end!: FormControl;\r\n @Input() notInput = false;\r\n\r\n @Input() disabled = false;\r\n\r\n private _required = false;\r\n\r\n public ngOnInit(): void {\r\n const start: any = this.start;\r\n const end: any = this.end;\r\n if (start?._rawValidators) {\r\n start._rawValidators.map((r: any) => {\r\n if (r.name.includes('required')) this._required = true;\r\n });\r\n }\r\n if (end?._rawValidators) {\r\n end._rawValidators.map((r: any) => {\r\n if (r.name.includes('required')) this._required = true;\r\n });\r\n }\r\n if (this.disabled) {\r\n this.start.disable();\r\n this.end.disable();\r\n }\r\n }\r\n\r\n get required() {\r\n return this._required;\r\n }\r\n\r\n get isDisabled() {\r\n return this.start.disabled || this.end.disabled;\r\n }\r\n}\r\n","@if (!notInput) {\r\n <div class=\"tak-form-container\">\r\n <mat-form-field [appearance]=\"appearance\" [color]=\"color\">\r\n <mat-label>\r\n <ng-content></ng-content>\r\n </mat-label>\r\n <mat-date-range-input [rangePicker]=\"picker\">\r\n <input\r\n matStartDate\r\n [placeholder]=\"startPlaceholder\"\r\n [formControl]=\"start\"\r\n [autocomplete]=\"autocomplete\"\r\n />\r\n <input matEndDate [placeholder]=\"endPlaceholder\" [formControl]=\"end\" />\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker></mat-date-range-picker>\r\n </mat-form-field>\r\n @if ((start.invalid || end.invalid) && (start.touched || end.touched)) {\r\n <tak-error [start]=\"start\" [end]=\"end\"> </tak-error>\r\n }\r\n </div>\r\n}\r\n@if (notInput) {\r\n <div>\r\n <div\r\n class=\"tak__date-not-input__picker-container\"\r\n [class.mat-form-field-invalid]=\"\r\n (start.invalid || end.invalid) && (start.touched || end.touched)\r\n \"\r\n >\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker [disabled]=\"isDisabled\"></mat-date-range-picker>\r\n </div>\r\n <div class=\"tak__date-not-input__field-container\">\r\n <mat-form-field [color]=\"color\">\r\n <mat-date-range-input [rangePicker]=\"picker\">\r\n <input matStartDate [formControl]=\"start\" />\r\n <input matEndDate [formControl]=\"end\" />\r\n </mat-date-range-input>\r\n </mat-form-field>\r\n </div>\r\n @if ((start.invalid || end.invalid) && (start.touched || end.touched)) {\r\n <tak-error [start]=\"start\" [end]=\"end\" [marginTop]=\"-60\"></tak-error>\r\n }\r\n </div>\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n OnDestroy,\r\n Optional,\r\n OnInit,\r\n Input,\r\n Self,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n FormGroupDirective,\r\n FormControl,\r\n NgControl,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';\r\nimport { FloatLabelType, MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { ThemePalette } from '@kato-lee/material/core';\r\n\r\n@Component({\r\n selector: 'tak-money-field',\r\n templateUrl: './money-field.component.html',\r\n})\r\nexport class TakMoneyFieldComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n @Input() autocomplete: 'off' | 'on' = 'off';\r\n\r\n @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\r\n @Input() floatLabel: FloatLabelType = 'auto';\r\n @Input() color: ThemePalette = 'primary';\r\n @Input() actionIcon = 'search';\r\n\r\n @Input() defaultFilterStyle = true;\r\n @Input() hasActionButton = false;\r\n @Input() hasClearButton = true;\r\n @Input() countCaracters = false;\r\n @Input() placeholder = '';\r\n\r\n @Input() maxLength!: number;\r\n @Input() minLength!: number;\r\n\r\n @Input() disabled = false;\r\n\r\n @Output() onExecuteAction = new EventEmitter();\r\n @Output() onKeyUp = new EventEmitter();\r\n\r\n public onChangeFn = (_: any) => {};\r\n public onTouchFn = (_: any) => {};\r\n\r\n private _isSubmitted = false;\r\n private _isInvalid = false;\r\n private _required = false;\r\n private _value = '';\r\n\r\n private _subscription!: Subscription;\r\n\r\n constructor(\r\n @Self() @Optional() private _ngControl: NgControl,\r\n @Optional() private _formGroupDirective: FormGroupDirective,\r\n private _cd: ChangeDetectorRef\r\n ) {\r\n if (_ngControl) this._ngControl.valueAccessor = this;\r\n\r\n if (_formGroupDirective) {\r\n this._subscription = _formGroupDirective.ngSubmit.subscribe(() => {\r\n this._isSubmitted = true;\r\n _cd.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n const form: any = this.control;\r\n\r\n if (form?._rawValidators) {\r\n form._rawValidators.forEach((r: any) => {\r\n if (r.name.includes('required')) this._required = true;\r\n });\r\n }\r\n\r\n this.control.addValidators(Validators.pattern(/^[0-9.,-]+$/));\r\n\r\n if (['', null, undefined, '-'].indexOf(this.control.value) < 0) this._addCurrencyMask();\r\n\r\n if (this.disabled) this.control.disable();\r\n }\r\n\r\n public writeValue(value: string): void {\r\n if (value === null) {\r\n this._isInvalid = false;\r\n }\r\n this._value = value;\r\n this._isSubmitted = false;\r\n this._cd.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchFn = fn;\r\n }\r\n\r\n public onChange(event: any): void {\r\n this._value = event.target.value;\r\n this.onChangeFn(event.target.value);\r\n this._addCurrencyMask();\r\n if (this.control.touched) this._onValidate();\r\n }\r\n\r\n private _addCurrencyMask() {\r\n const valueFormatted = this.control.value\r\n .toString()\r\n .replace(/,/g, '')\r\n .replace(/ /g, '')\r\n .replace('$', '');\r\n\r\n if (['', null, undefined, '-'].indexOf(valueFormatted) < 0 && !isNaN(Number(valueFormatted))) {\r\n const value = '$ ' + Intl.NumberFormat('en-US').format(Number(valueFormatted));\r\n this.control.setValue(+valueFormatted);\r\n this._value = value;\r\n } else if (['-'].indexOf(valueFormatted) >= 0) this.control.setValue('-');\r\n else this.control.setValue(null);\r\n }\r\n\r\n public onFocusOut(): void {\r\n this.onTouchFn(true);\r\n //this._executeIfIsMoneyField();\r\n this._onValidate();\r\n }\r\n\r\n private _onValidate(): void {\r\n if (this.control.invalid) this._isInvalid = true;\r\n else this._isInvalid = false;\r\n }\r\n\r\n public onKeyDown(event: any) {\r\n const pattern = /[0-9.-]/i.test(event.key);\r\n const validKeyCodes = [8, 46, 37, 39, 9, 17, 16, 67, 86, 109, 189];\r\n return pattern || validKeyCodes.indexOf(event.keyCode) >= 0;\r\n }\r\n\r\n public onClearControl(): void {\r\n if (['', null, undefined].indexOf(this.control.value) >= 0) {\r\n this.control.setValue('', { emitEvent: false });\r\n } else {\r\n this.control.setValue('');\r\n }\r\n\r\n this._value = '';\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this._subscription) this._subscription.unsubscribe();\r\n }\r\n\r\n get control(): FormControl {\r\n return this._ngControl.control as FormControl;\r\n }\r\n\r\n get directive(): FormGroupDirective {\r\n return this._formGroupDirective as FormGroupDirective;\r\n }\r\n\r\n get isDisabled() {\r\n return this._ngControl.disabled;\r\n }\r\n\r\n get isSubmitted() {\r\n return this._isSubmitted;\r\n }\r\n\r\n get isInvalid() {\r\n return this._isInvalid;\r\n }\r\n\r\n get required() {\r\n return this._required;\r\n }\r\n\r\n get value() {\r\n return this._value;\r\n }\r\n}\r\n","<div class=\"tak-form-container\">\r\n <mat-form-field\r\n [floatLabel]=\"floatLabel\"\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <input\r\n class=\"money-input\"\r\n matInput\r\n [autocomplete]=\"autocomplete\"\r\n [placeholder]=\"placeholder\"\r\n [value]=\"value\"\r\n (keyup)=\"onChange($event)\"\r\n (change)=\"onChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n [disabled]=\"isDisabled\"\r\n [attr.minLength]=\"minLength\"\r\n [attr.maxLength]=\"maxLength\"\r\n (focusout)=\"onFocusOut()\"\r\n />\r\n @if (control.value && hasClearButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onClearControl()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && hasActionButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onExecuteAction.emit(control.value)\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\r\n </button>\r\n }\r\n @if (countCaracters) {\r\n <mat-hint align=\"end\" class=\"tak-hint\">\r\n {{ control.value?.length || 0 }}/{{ maxLength }}\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n</div>\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n OnDestroy,\r\n Optional,\r\n OnInit,\r\n Input,\r\n Self,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n FormGroupDirective,\r\n FormControl,\r\n NgControl,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM, TakGeneralFieldType } from '../fields.common';\r\nimport { FloatLabelType, MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { ThemePalette } from '@kato-lee/material/core';\r\n\r\n@Component({\r\n selector: 'tak-general-field',\r\n templateUrl: './general-field.component.html',\r\n})\r\nexport class TakGeneralFieldComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n @Input() autocomplete: 'off' | 'on' = 'off';\r\n\r\n @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\r\n @Input() type: TakGeneralFieldType = 'text';\r\n @Input() floatLabel: FloatLabelType = 'never';\r\n @Input() color: ThemePalette = 'primary';\r\n @Input() actionIcon = 'search';\r\n\r\n @Input() defaultFilterStyle = true;\r\n @Input() hasActionButton = false;\r\n @Input() hasClearButton = false;\r\n @Input() countCaracters = false;\r\n @Input() placeholder = '';\r\n\r\n @Input() maxLength!: number;\r\n @Input() minLength!: number;\r\n\r\n @Input() disabled = false;\r\n\r\n @Output() onExecuteAction = new EventEmitter();\r\n @Output() onKeyUp = new EventEmitter();\r\n\r\n public onChangeFn = (_: any) => {};\r\n public onTouchFn = (_: any) => {};\r\n\r\n private _isSubmitted = false;\r\n private _isInvalid = false;\r\n private _required = false;\r\n private _value = '';\r\n\r\n private _subscription!: Subscription;\r\n private _decrypted = false;\r\n\r\n constructor(\r\n @Self() @Optional() private _ngControl: NgControl,\r\n @Optional() private _formGroupDirective: FormGroupDirective,\r\n private _cd: ChangeDetectorRef\r\n ) {\r\n if (_ngControl) this._ngControl.valueAccessor = this;\r\n\r\n if (_formGroupDirective) {\r\n this._subscription = _formGroupDirective.ngSubmit.subscribe(() => {\r\n this._isSubmitted = true;\r\n _cd.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n const form: any = this.control;\r\n\r\n if (this.type === 'filter' && this.defaultFilterStyle) {\r\n this.control.removeValidators(Validators.required);\r\n this.appearance = 'legacy';\r\n this.floatLabel = 'never';\r\n if (!this.placeholder) this.placeholder = 'Buscar';\r\n this.hasClearButton = true;\r\n this._cd.markForCheck();\r\n }\r\n\r\n if (form?._rawValidators) {\r\n form._rawValidators.forEach((r: any) => {\r\n if (r.name.includes('required')) this._required = true;\r\n });\r\n }\r\n\r\n if (this.disabled) this.control.disable();\r\n }\r\n\r\n public writeValue(value: string): void {\r\n if (value === null) this._isInvalid = false;\r\n this._value = value;\r\n this._isSubmitted = false;\r\n this._cd.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchFn = fn;\r\n }\r\n\r\n public onChange(event: any): void {\r\n this._value = event.target.value;\r\n this.onChangeFn(event.target.value);\r\n if (!this.control.value && this.type === 'password') this._decrypted = false;\r\n if (this.control.touched) this._onValidate();\r\n if (this.type === 'filter') this.onKeyUp.emit(this.control.value);\r\n }\r\n\r\n public showPassword(): void {\r\n if (this.type === 'password') {\r\n if (this._decrypted) this._decrypted = false;\r\n else this._decrypted = true;\r\n }\r\n }\r\n\r\n public onFocusOut(): void {\r\n this.onTouchFn(true);\r\n this._onValidate();\r\n }\r\n\r\n private _onValidate(): void {\r\n if (this.control.invalid) this._isInvalid = true;\r\n else this._isInvalid = false;\r\n }\r\n\r\n public onClearControl(): void {\r\n if (['', null, undefined].indexOf(this.control.value) >= 0) {\r\n this.control.setValue('', { emitEvent: false });\r\n } else this.control.setValue('');\r\n this._value = '';\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this._subscription) this._subscription.unsubscribe();\r\n }\r\n\r\n get control(): FormControl {\r\n return this._ngControl.control as FormControl;\r\n }\r\n\r\n get directive(): FormGroupDirective {\r\n return this._formGroupDirective as FormGroupDirective;\r\n }\r\n\r\n get decrypted() {\r\n return this._decrypted;\r\n }\r\n\r\n get isDisabled() {\r\n return this._ngControl.disabled;\r\n }\r\n\r\n get isSubmitted() {\r\n return this._isSubmitted;\r\n }\r\n\r\n get isInvalid() {\r\n return this._isInvalid;\r\n }\r\n\r\n get required() {\r\n return this._required;\r\n }\r\n\r\n get value() {\r\n return this._value;\r\n }\r\n}\r\n","<div class=\"tak-form-container\">\r\n <mat-form-field\r\n [floatLabel]=\"floatLabel\"\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <input\r\n [type]=\"type === 'password' && !decrypted ? 'password' : 'text'\"\r\n matInput\r\n [autocomplete]=\"autocomplete\"\r\n [value]=\"value\"\r\n (keyup)=\"onChange($event)\"\r\n (change)=\"onChange($event)\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"isDisabled\"\r\n [attr.minLength]=\"minLength\"\r\n [attr.maxLength]=\"maxLength\"\r\n (focusout)=\"onFocusOut()\"\r\n />\r\n @if (control.value && hasClearButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onClearControl()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && hasActionButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onExecuteAction.emit(control.value)\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && type === 'password' && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"showPassword()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{\r\n decrypted ? 'visibility_off' : 'visibility'\r\n }}</mat-icon>\r\n </button>\r\n }\r\n @if (countCaracters) {\r\n <mat-hint align=\"end\" class=\"tak-hint\">\r\n {{ control.value?.length || 0 }}/{{ maxLength }}\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n</div>\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n OnDestroy,\r\n Optional,\r\n OnInit,\r\n Input,\r\n Self,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n FormGroupDirective,\r\n FormControl,\r\n NgControl,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';\r\nimport { FloatLabelType, MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { ThemePalette } from '@kato-lee/material/core';\r\n\r\n@Component({\r\n selector: 'tak-number-field',\r\n templateUrl: './number-field.component.html',\r\n})\r\nexport class TakNumberFieldComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n @Input() autocomplete: 'off' | 'on' = 'off';\r\n\r\n @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\r\n @Input() floatLabel: FloatLabelType = 'auto';\r\n @Input() color: ThemePalette = 'primary';\r\n @Input() actionIcon = 'search';\r\n\r\n @Input() hasActionButton = false;\r\n @Input() hasClearButton = false;\r\n @Input() countCaracters = false;\r\n @Input() placeholder = '';\r\n\r\n @Input() min!: number;\r\n @Input() max!: number;\r\n\r\n @Input() minLength!: number;\r\n @Input() maxLength!: number;\r\n\r\n @Input() disabled = false;\r\n\r\n @Output() onExecuteAction = new EventEmitter();\r\n @Output() onKeyUp = new EventEmitter();\r\n\r\n public onChangeFn = (_: any) => {};\r\n public onTouchFn = (_: any) => {};\r\n\r\n private _isSubmitted = false;\r\n private _isInvalid = false;\r\n private _required = false;\r\n private _value = '';\r\n\r\n private _subscription!: Subscription;\r\n\r\n constructor(\r\n @Self() @Optional() private _ngControl: NgControl,\r\n @Optional() private _formGroupDirective: FormGroupDirective,\r\n private _cd: ChangeDetectorRef\r\n ) {\r\n if (_ngControl) this._ngControl.valueAccessor = this;\r\n\r\n if (_formGroupDirective) {\r\n this._subscription = _formGroupDirective.ngSubmit.subscribe(() => {\r\n this._isSubmitted = true;\r\n _cd.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n const form: any = this.control;\r\n\r\n if (form?._rawValidators) {\r\n form._rawValidators.forEach((r: any) => {\r\n if (r.name.includes('required')) this._required = true;\r\n });\r\n }\r\n\r\n if (this.min) this.control.addValidators(Validators.min(this.min));\r\n if (this.max) this.control.addValidators(Validators.max(this.max));\r\n\r\n if (this.disabled) this.control.disable();\r\n }\r\n\r\n public writeValue(value: string): void {\r\n if (value === null) this._isInvalid = false;\r\n this._value = value;\r\n this._isSubmitted = false;\r\n this._cd.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchFn = fn;\r\n }\r\n\r\n public onChange(event: any): void {\r\n this._value = event.target.value;\r\n this.onChangeFn(\r\n ['', null, undefined].indexOf(event.target.value) < 0 ? +event.target.value : null\r\n );\r\n if (this.control.touched) this._onValidate();\r\n }\r\n\r\n public onFocusOut(): void {\r\n this.onTouchFn(true);\r\n this._onValidate();\r\n }\r\n\r\n private _onValidate(): void {\r\n if (this.control.invalid) this._isInvalid = true;\r\n else this._isInvalid = false;\r\n }\r\n\r\n public onClearControl(): void {\r\n if (['', null, undefined].indexOf(this.control.value) >= 0) {\r\n this.control.setValue('', { emitEvent: false });\r\n } else this.control.setValue('');\r\n this._value = '';\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this._subscription) this._subscription.unsubscribe();\r\n }\r\n\r\n get control(): FormControl {\r\n return this._ngControl.control as FormControl;\r\n }\r\n\r\n get directive(): FormGroupDirective {\r\n return this._formGroupDirective as FormGroupDirective;\r\n }\r\n\r\n get isDisabled() {\r\n return this._ngControl.disabled;\r\n }\r\n\r\n get isSubmitted() {\r\n return this._isSubmitted;\r\n }\r\n\r\n get isInvalid() {\r\n return this._isInvalid;\r\n }\r\n\r\n get required() {\r\n return this._required;\r\n }\r\n\r\n get value() {\r\n return this._value;\r\n }\r\n}\r\n","<div class=\"tak-form-container\">\r\n <mat-form-field\r\n [floatLabel]=\"floatLabel\"\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <input\r\n type=\"number\"\r\n matInput\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [autocomplete]=\"autocomplete\"\r\n [value]=\"value\"\r\n (keyup)=\"onChange($event)\"\r\n [placeholder]=\"placeholder\"\r\n (change)=\"onChange($event)\"\r\n [disabled]=\"isDisabled\"\r\n [attr.minLength]=\"minLength\"\r\n [attr.maxLength]=\"maxLength\"\r\n (focusout)=\"onFocusOut()\"\r\n />\r\n @if (control.value && hasClearButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onClearControl()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && hasActionButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onExecuteAction.emit(control.value)\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\r\n </button>\r\n }\r\n @if (countCaracters) {\r\n <mat-hint align=\"end\" class=\"tak-hint\">\r\n {{ control.value?.length || 0 }}/{{ maxLength }}\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n</div>\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n OnDestroy,\r\n Optional,\r\n OnInit,\r\n Input,\r\n Self,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormGroupDirective, FormControl, NgControl } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';\r\nimport { FloatLabelType, MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { ThemePalette } from '@kato-lee/material/core';\r\n\r\n@Component({\r\n selector: 'tak-textarea',\r\n templateUrl: './textarea.component.html',\r\n})\r\nexport class TakTextareaComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n @Input() autocomplete: 'off' | 'on' = 'off';\r\n\r\n @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\r\n @Input() floatLabel: FloatLabelType = 'auto';\r\n @Input() color: ThemePalette = 'primary';\r\n @Input() actionIcon = 'search';\r\n\r\n @Input() defaultFilterStyle = true;\r\n @Input() hasActionButton = false;\r\n @Input() hasClearButton = false;\r\n @Input() countCaracters = false;\r\n @Input() isTextArea = false;\r\n @Input() placeholder = '';\r\n @Input() heightInPx = 60;\r\n\r\n @Input() minLength!: number;\r\n @Input() maxLength!: number;\r\n\r\n @Input() disabled = false;\r\n\r\n @Output() onExecuteAction = new EventEmitter();\r\n @Output() onKeyUp = new EventEmitter();\r\n\r\n public onChangeFn = (_: any) => {};\r\n public onTouchFn = (_: any) => {};\r\n\r\n public _isSubmitted = false;\r\n public _isInvalid = false;\r\n public _required = false;\r\n public _value = '';\r\n\r\n private _subscription!: Subscription;\r\n private _decrypted = false;\r\n\r\n constructor(\r\n @Self() @Optional() private _ngControl: NgControl,\r\n @Optional() private _formGroupDirective: FormGroupDirective,\r\n private _cd: ChangeDetectorRef\r\n ) {\r\n if (_ngControl) this._ngControl.valueAccessor = this;\r\n\r\n if (_formGroupDirective) {\r\n this._subscription = _formGroupDirective.ngSubmit.subscribe(() => {\r\n this._isSubmitted = true;\r\n _cd.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n const form: any = this.control;\r\n\r\n if (form?._rawValidators) {\r\n form._rawValidators.forEach((r: any) => {\r\n if (r.name.includes('required')) this._required = true;\r\n });\r\n }\r\n\r\n if (this.disabled) this.control.disable();\r\n }\r\n\r\n public writeValue(value: string): void {\r\n if (value === null) {\r\n this._isInvalid = false;\r\n }\r\n this._value = value;\r\n this._isSubmitted = false;\r\n this._cd.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchFn = fn;\r\n }\r\n\r\n public onChange(event: any): void {\r\n this._value = event.target.value;\r\n this.onChangeFn(event.target.value);\r\n if (this.control.touched) this._onValidate();\r\n }\r\n\r\n public onFocusOut(): void {\r\n this.onTouchFn(true);\r\n this._onValidate();\r\n }\r\n\r\n private _onValidate(): void {\r\n if (this.control.invalid) this._isInvalid = true;\r\n else this._isInvalid = false;\r\n }\r\n\r\n public onClearControl(): void {\r\n if (['', null, undefined].indexOf(this.control.value) >= 0) {\r\n this.control.setValue('', { emitEvent: false });\r\n } else {\r\n this.control.setValue('');\r\n }\r\n\r\n this._value = '';\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this._subscription) this._subscription.unsubscribe();\r\n }\r\n\r\n get control(): FormControl {\r\n return this._ngControl.control as FormControl;\r\n }\r\n\r\n get directive(): FormGroupDirective {\r\n return this._formGroupDirective as FormGroupDirective;\r\n }\r\n\r\n get decrypted() {\r\n return this._decrypted;\r\n }\r\n\r\n get isDisabled() {\r\n return this._ngControl.disabled;\r\n }\r\n\r\n get isSubmitted() {\r\n return this._isSubmitted;\r\n }\r\n\r\n get isInvalid() {\r\n return this._isInvalid;\r\n }\r\n\r\n get required() {\r\n return this._required;\r\n }\r\n\r\n get value() {\r\n return this._value;\r\n }\r\n}\r\n","<div class=\"tak-form-container\">\r\n <mat-form-field\r\n [floatLabel]=\"floatLabel\"\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <textarea\r\n matInput\r\n [autocomplete]=\"autocomplete\"\r\n [value]=\"value\"\r\n [style.height.px]=\"heightInPx\"\r\n [placeholder]=\"placeholder\"\r\n (keyup)=\"onChange($event)\"\r\n (change)=\"onChange($event)\"\r\n [disabled]=\"isDisabled\"\r\n [attr.minLength]=\"minLength\"\r\n [attr.maxLength]=\"maxLength\"\r\n (focusout)=\"onFocusOut()\"\r\n ></textarea>\r\n @if (control.value && hasClearButton && !isDisabled) {\r\n <button mat-icon-button type=\"button\" matSuffix (click)=\"onClearControl()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && hasActionButton) {\r\n <button mat-icon-button type=\"button\" matSuffix (click)=\"onExecuteAction.emit(control.value)\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\r\n </button>\r\n }\r\n @if (countCaracters) {\r\n <mat-hint align=\"end\" class=\"tak-hint\">\r\n {{ control.value?.length || 0 }}/{{ maxLength }}\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\n\r\nimport { MatFormFieldModule } from '@kato-lee/material/form-field';\r\nimport { MatSelectModule } from '@kato-lee/material/select';\r\nimport { MatButtonModule } from '@kato-lee/material/button';\r\nimport { MAT_DATE_LOCALE, MatNativeDateModule, MatOptionModule } from '@kato-lee/material/core';\r\nimport { MatInputModule } from '@kato-lee/material/input';\r\nimport { MatIconModule } from '@kato-lee/material/icon';\r\nimport { MatDatepickerModule } from '@kato-lee/material/datepicker';\r\nimport { MatTooltipModule } from '@kato-lee/material/tooltip';\r\n\r\nimport { TakSelectFieldComponent } from './select-field/select-field.component';\r\nimport { TakDateFieldComponent } from './date-field/date-field.component';\r\n\r\nimport { TakAutocompleteFieldComponent } from './autocomplete-field/autocomplete-field.component';\r\nimport { MatAutocompleteModule } from '@kato-lee/material/autocomplete';\r\nimport { TakErrorModule } from './error/error.module';\r\nimport { TakDateRangeFieldComponent } from './date-range-field/date-range-field.component';\r\nimport { TakMoneyFieldComponent } from './money-field/money-field.component';\r\nimport { TakGeneralFieldComponent } from './general-field/general-field.component';\r\nimport { MatProgressSpinnerModule } from '@kato-lee/material/progress-spinner';\r\nimport { TakNumberFieldComponent } from './number-field/number-field.component';\r\nimport { TakTextareaComponent } from './text-area/textarea.component';\r\nimport { MatMenuModule } from '@kato-lee/material/menu';\r\n\r\nconst components = [\r\n TakSelectFieldComponent,\r\n TakDateFieldComponent,\r\n TakAutocompleteFieldComponent,\r\n TakDateRangeFieldComponent,\r\n TakGeneralFieldComponent,\r\n TakMoneyFieldComponent,\r\n TakTextareaComponent,\r\n TakNumberFieldComponent,\r\n];\r\n\r\n@NgModule({\r\n declarations: components,\r\n imports: [\r\n FormsModule,\r\n CommonModule,\r\n MatNativeDateModule,\r\n ReactiveFormsModule,\r\n MatProgressSpinnerModule,\r\n MatFormFieldModule,\r\n MatButtonModule,\r\n MatDatepickerModule,\r\n MatAutocompleteModule,\r\n TakErrorModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatOptionModule,\r\n MatSelectModule,\r\n MatTooltipModule,\r\n MatMenuModule,\r\n ],\r\n exports: [\r\n ReactiveFormsModule,\r\n MatAutocompleteModule,\r\n FormsModule,\r\n MatNativeDateModule,\r\n ...components,\r\n ],\r\n providers: [{ provide: MAT_DATE_LOCALE, useValue: 'es-ES' }],\r\n})\r\nexport class TakFieldsModule {}\r\n","/*\r\n * Public API Surface of @kato-lee/components/fields\r\n */\r\n\r\nexport * from './error/error-equals.pipe';\r\nexport * from './error/error.component';\r\nexport * from './error/error.msg.pipe';\r\nexport * from './fields.common';\r\nexport * from './fields.module';\r\nexport * from './select-field/select-field.component';\r\nexport * from './date-field/date-field.component';\r\nexport * from './autocomplete-field/autocomplete-field.component';\r\nexport * from './general-field/general-field.component';\r\nexport * from './money-field/money-field.component';\r\nexport * from './text-area/textarea.component';\r\nexport * from './date-range-field/date-range-field.component';\r\nexport * from './number-field/number-field.component';\r\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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"}
|
|
1
|
+
{"version":3,"file":"kato-lee-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/fields.validators.ts","../../../libraries/components/fields/remote-autocomplete-field/remote-autocomplete-field.component.ts","../../../libraries/components/fields/remote-autocomplete-field/remote-autocomplete-field.component.html","../../../libraries/components/fields/index.ts","../../../libraries/components/fields/kato-lee-components-fields.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'errorEquals' })\r\nexport class TakErrorEqualsPipe implements PipeTransform {\r\n transform(errors: any, error: any, args?: any): any {\r\n if (!errors) return false;\r\n const array = Object.keys(errors);\r\n if (array && array.length > 0) return errors[array[0]] === error;\r\n return false;\r\n }\r\n}\r\n","export const en: any = {\r\n minLengthMsg: (length: number) => `The field contains fewer than ${length} characters`,\r\n maxLengthMsg: (length: number) => `The field contains more than ${length} characters`,\r\n minMsg: (min: number) => `The number must be bigger than ${min}`,\r\n maxMsg: (max: number) => `The number must be lower than ${max}`,\r\n patternMsg: 'One or more characters not allowed',\r\n requiredMsg: 'This field is required',\r\n EmailMsg: 'This field must be an email',\r\n badDateMsg: 'Insert a valid date',\r\n DateRangeMsg: 'The range is not valid',\r\n};\r\n","export const es: any = {\r\n minLengthMsg: (length: number) => `El campo contiene menos de ${length} caracteres`,\r\n maxLengthMsg: (length: number) => `El campo contiene mas de ${length} caracteres`,\r\n minMsg: (min: number) => `El numero debe ser mayor a ${min}`,\r\n maxMsg: (max: number) => `El numero debe ser menor a ${max}`,\r\n patternMsg: 'Uno o mas caracteres no permitidos',\r\n requiredMsg: 'Este campo es requerido',\r\n EmailMsg: 'Este campo debe ser un email',\r\n badDateMsg: 'Inserte una fecha valida',\r\n DateRangeMsg: 'El rango no es valido',\r\n};\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport * as lang from './lang';\r\n\r\n@Pipe({ name: 'errorMsg' })\r\nexport class TakErrorMsgPipe implements PipeTransform {\r\n transform(parameter: string, aditionalValue?: any): string {\r\n let resources = lang.es;\r\n if (aditionalValue) return resources[parameter](aditionalValue);\r\n else return resources[parameter];\r\n }\r\n}\r\n","import { ElementRef, Component, ViewChild, Input } from '@angular/core';\r\nimport { FormControl, ValidationErrors } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'tak-error',\r\n templateUrl: './error.component.html',\r\n})\r\nexport class TakErrorComponent {\r\n @ViewChild('error') error: ElementRef | undefined;\r\n\r\n @Input() control!: FormControl;\r\n\r\n @Input() start!: FormControl;\r\n\r\n @Input() end!: FormControl;\r\n\r\n @Input() isDateField: boolean = false;\r\n\r\n @Input() isNumberField: boolean = false;\r\n\r\n @Input() marginTop = -20;\r\n\r\n public hasPatternError: boolean = false;\r\n\r\n get required(): ValidationErrors {\r\n return this.control?.errors?.['required'];\r\n }\r\n\r\n get pattern(): ValidationErrors {\r\n return this.control?.errors?.['pattern'];\r\n }\r\n\r\n get max() {\r\n return this.control?.errors?.['max'];\r\n }\r\n\r\n get min() {\r\n return this.control?.errors?.['min'];\r\n }\r\n\r\n get maxlength() {\r\n return this.control?.errors?.['maxlength'];\r\n }\r\n\r\n get minlength() {\r\n return this.control?.errors?.['minlength'];\r\n }\r\n\r\n get email(): ValidationErrors {\r\n return this.control?.errors?.['email'];\r\n }\r\n}\r\n","<div class=\"tak-custom-error tak-fade-in--800ms\" #error [style.marginTop.px]=\"marginTop\">\r\n @if (control !== undefined && isDateField && control.valid) {\r\n <div>\r\n {{ 'badDateMsg' | errorMsg }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: required) {\r\n <div>\r\n {{ 'requiredMsg' | errorMsg }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: pattern) {\r\n <div>\r\n {{\r\n isNumberField\r\n ? 'El campo solo debe contener caracteres numericos'\r\n : ('patternMsg' | errorMsg)\r\n }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: max) {\r\n <div>\r\n {{ 'maxMsg' | errorMsg: max.max }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: min) {\r\n <div>\r\n {{ 'minMsg' | errorMsg: min.min }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: maxlength) {\r\n <div>\r\n {{ 'maxLengthMsg' | errorMsg: maxlength.requiredLength }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: minlength) {\r\n <div>\r\n {{ 'minLengthMsg' | errorMsg: minlength.requiredLength }}\r\n </div>\r\n }\r\n @if (control !== undefined && control.errors | errorEquals: email) {\r\n <div>\r\n {{ 'EmailMsg' | errorMsg }}\r\n </div>\r\n }\r\n @if (control === undefined) {\r\n <div>\r\n {{\r\n start.hasError('required') && end.hasError('required')\r\n ? ('requiredMsg' | errorMsg)\r\n : ('DateRangeMsg' | errorMsg)\r\n }}\r\n </div>\r\n }\r\n</div>\r\n","import { ESCAPE } from '@kato-lee/cdk/keycodes';\r\nimport { MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\n\r\nexport const TAK_DEFAULT_APPEARANCE_FORM: MatFormFieldAppearance = 'standard';\r\n\r\nexport type TakGeneralFieldType = 'text' | 'password' | 'filter';\r\nexport type TakAutocompleteFieldType = 'off' | 'on';\r\n\r\nexport const TAK_PRESS_ESC_KEY = new KeyboardEvent('keydown', {\r\n bubbles: true,\r\n cancelable: true,\r\n keyCode: ESCAPE,\r\n});\r\n\r\nexport const TAK_PTRN_EMAIL = '^[^@]+@[^@]+.[a-zA-Z]{2,}$';\r\nexport const TAK_PTRN_NUMRC = /^[0-9.]+$/;\r\nexport const TAK_PTRN_NONSP = /^[^\\s]+$/;\r\n","import {\r\n ChangeDetectorRef,\r\n OnDestroy,\r\n Component,\r\n Optional,\r\n Input,\r\n Self,\r\n OnInit,\r\n EventEmitter,\r\n Output,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, FormGroupDirective, NgControl } from '@angular/forms';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { MatOptionSelectionChange, ThemePalette } from '@kato-lee/material/core';\r\nimport { TakAutocompleteFieldType, TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';\r\n\r\n@Component({\r\n selector: 'tak-select-field',\r\n templateUrl: './select-field.component.html',\r\n})\r\nexport class TakSelectFieldComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n @Input() autocomplete: TakAutocompleteFieldType = 'off';\r\n @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\r\n @Input() color: ThemePalette = 'primary';\r\n @Input() suggestions: any[] = [];\r\n @Input() disabled = false;\r\n\r\n @Input() type: 'menu' | 'select' = 'select';\r\n @Input() tooltip = '';\r\n @Input() icon = 'filter_list';\r\n\r\n @Input() option = 'option';\r\n @Input() extraInfo = '';\r\n\r\n @Input() hasDefaultValue = false;\r\n\r\n @Output() onSelect = new EventEmitter<any>();\r\n\r\n public onChangeFn = (_: any) => {};\r\n public onTouchFn = (_: any) => {};\r\n\r\n public isInvalid = false;\r\n public isSubmitted = false;\r\n private _unsubscribe$ = new Subject<void>();\r\n\r\n constructor(\r\n @Self() @Optional() private _ngControl: NgControl,\r\n @Optional() private _formGroupDirective: FormGroupDirective,\r\n private _cd: ChangeDetectorRef\r\n ) {\r\n if (_ngControl) this._ngControl.valueAccessor = this;\r\n if (_formGroupDirective) {\r\n _formGroupDirective.ngSubmit.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\r\n this.isSubmitted = true;\r\n _cd.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n if (this.suggestions.length && this.hasDefaultValue) {\r\n this._ngControl.control?.setValue(this.suggestions[0]);\r\n }\r\n\r\n if (this.disabled) this.control.disable();\r\n }\r\n\r\n public writeValue(value: string): void {}\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchFn = fn;\r\n }\r\n\r\n public onChange(event: any): void {\r\n this.onChangeFn(event.target.value);\r\n if (this.control.touched) this._onValidate();\r\n }\r\n\r\n public emit(el: MatOptionSelectionChange) {\r\n if (el.isUserInput) {\r\n this.onSelect.emit(el.source.value);\r\n this.isInvalid = false;\r\n }\r\n }\r\n\r\n public justEmit(el: any) {\r\n this.control.setValue(el);\r\n this.onSelect.emit(el);\r\n this.isInvalid = false;\r\n }\r\n\r\n public onFocusOut() {\r\n this._onValidate();\r\n }\r\n\r\n private _onValidate(): void {\r\n if (this.control.invalid) this.isInvalid = true;\r\n else this.isInvalid = false;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._unsubscribe$.next();\r\n this._unsubscribe$.complete();\r\n }\r\n\r\n get control(): FormControl {\r\n return this._ngControl?.control as FormControl;\r\n }\r\n\r\n get directive(): FormGroupDirective {\r\n return this._formGroupDirective as FormGroupDirective;\r\n }\r\n\r\n get isDisabled() {\r\n return this._ngControl.disabled;\r\n }\r\n}\r\n","@if (type === 'select') {\r\n <div class=\"tak-form-container\">\r\n <mat-form-field [appearance]=\"appearance\" [color]=\"color\">\r\n <mat-label><ng-content></ng-content></mat-label>\r\n <mat-select [formControl]=\"control\" (focusout)=\"onFocusOut()\">\r\n @for (suggestion of suggestions; track suggestion) {\r\n <mat-option\r\n [value]=\"suggestion\"\r\n (onSelectionChange)=\"emit($event)\"\r\n title=\"{{ suggestion[option] }} {{\r\n extraInfo ? '(' + suggestion[extraInfo] + ')' : ''\r\n }}\"\r\n >\r\n {{ suggestion[option] }}\r\n @if (extraInfo) {\r\n <span class=\"tak-option-span-extra\">{{ suggestion[extraInfo] }}</span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n} @else {\r\n <div [matTooltip]=\"tooltip\">\r\n @if (type === 'menu') {\r\n <span>\r\n <button mat-icon-button type=\"button\" [matMenuTriggerFor]=\"menu\" [disabled]=\"isDisabled\">\r\n <mat-icon>{{ icon }}</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n @for (item of suggestions; track item) {\r\n <a tak-menu-item (click)=\"justEmit(item)\">\r\n {{ item[option] }}\r\n </a>\r\n }\r\n </mat-menu>\r\n </span>\r\n }\r\n </div>\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n AfterViewInit,\r\n OnDestroy,\r\n Component,\r\n Optional,\r\n OnInit,\r\n Input,\r\n Self,\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ThemePalette } from '@kato-lee/material/core';\r\nimport { MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { ControlValueAccessor, FormControl, FormGroupDirective, NgControl } from '@angular/forms';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM, TakAutocompleteFieldType } from '../fields.common';\r\n\r\n@Component({\r\n selector: 'tak-date-field',\r\n templateUrl: './date-field.component.html',\r\n})\r\nexport class TakDateFieldComponent\r\n implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor\r\n{\r\n private _unsubscribe$ = new Subject<void>();\r\n\r\n @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\r\n @Input() autocomplete: TakAutocompleteFieldType = 'off';\r\n @Input() color: ThemePalette = 'primary';\r\n @Input() placeholder = '';\r\n @Input() notInput = false;\r\n\r\n @Input() minDate!: Date | string;\r\n @Input() maxDate!: Date | string;\r\n\r\n @Input() disabled = false;\r\n\r\n public onChangeFn = (_: any) => {};\r\n public onTouchFn = (_: any) => {};\r\n\r\n private _isSubmitted = false;\r\n private _isInvalid = false;\r\n private _required = false;\r\n private _value = '';\r\n\r\n constructor(\r\n @Self() @Optional() private _ngControl: NgControl,\r\n @Optional() private _formGroupDirective: FormGroupDirective,\r\n private _cd: ChangeDetectorRef\r\n ) {\r\n if (_ngControl) this._ngControl.valueAccessor = this;\r\n if (_formGroupDirective) {\r\n _formGroupDirective.ngSubmit.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\r\n this._isSubmitted = true;\r\n _cd.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n const form: any = this.control;\r\n if (form?._rawValidators) {\r\n form._rawValidators.map((r: any) => {\r\n if (r.name.includes('required')) {\r\n this._required = true;\r\n }\r\n });\r\n }\r\n if (this.disabled) this.control.disable();\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n const isValidDate = Date.parse(this.control.value);\r\n if (isNaN(isValidDate)) this.control.setValue(null);\r\n else this.control.setValue(new Date(this.control.value));\r\n }\r\n\r\n public writeValue(value: string): void {\r\n if (value === null) this._isInvalid = false;\r\n this._value = value;\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchFn = fn;\r\n }\r\n\r\n public onChange(event: any): void {\r\n this._value = event.target.value;\r\n this.onChangeFn(event.target.value);\r\n if (this.control.touched) this._onValidate();\r\n }\r\n\r\n public onFocusout(): void {\r\n this.onTouchFn(true);\r\n this._onValidate();\r\n }\r\n\r\n public onCloseDatePicker(): void {\r\n this.onTouchFn(true);\r\n this._onValidate();\r\n }\r\n\r\n private _onValidate(): void {\r\n const isValidDate = Date.parse(this.control.value);\r\n if (\r\n this.control.invalid ||\r\n ([undefined, null, ''].indexOf(this.control.value) < 0 &&\r\n this.control.valid &&\r\n isNaN(isValidDate))\r\n ) {\r\n this._isInvalid = true;\r\n } else {\r\n this._isInvalid = false;\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._unsubscribe$.next();\r\n this._unsubscribe$.complete();\r\n }\r\n\r\n get control(): FormControl {\r\n return this._ngControl?.control as FormControl;\r\n }\r\n\r\n get directive(): FormGroupDirective {\r\n return this._formGroupDirective as FormGroupDirective;\r\n }\r\n\r\n get isDisabled() {\r\n return this._ngControl.disabled;\r\n }\r\n\r\n get isSubmitted() {\r\n return this._isSubmitted;\r\n }\r\n\r\n get isInvalid() {\r\n return this._isInvalid;\r\n }\r\n\r\n get required() {\r\n return this._required;\r\n }\r\n\r\n get value() {\r\n return this._value;\r\n }\r\n}\r\n","@if (!notInput) {\r\n <div class=\"tak-form-container\">\r\n <mat-form-field\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <input\r\n matInput\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n [autocomplete]=\"autocomplete\"\r\n [matDatepicker]=\"picker\"\r\n [value]=\"value\"\r\n (keyup)=\"onChange($event)\"\r\n (dateChange)=\"onChange($event)\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"isDisabled\"\r\n (focusout)=\"onFocusout()\"\r\n />\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker (closed)=\"onCloseDatePicker()\" #picker></mat-datepicker>\r\n </mat-form-field>\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\" [isDateField]=\"true\"> </tak-error>\r\n }\r\n </div>\r\n}\r\n@if (notInput) {\r\n <div>\r\n <div\r\n class=\"tak__date-not-input__picker-container\"\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n >\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker (closed)=\"onCloseDatePicker()\" #picker></mat-datepicker>\r\n </div>\r\n <div class=\"tak__date-not-input__field-container\">\r\n <mat-form-field [color]=\"color\">\r\n <input\r\n matInput\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n autocomplete=\"off\"\r\n [matDatepicker]=\"picker\"\r\n [value]=\"value\"\r\n (keyup)=\"onChange($event)\"\r\n (dateChange)=\"onChange($event)\"\r\n [disabled]=\"isDisabled\"\r\n (focusout)=\"onFocusout()\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\" [isDateField]=\"true\" [marginTop]=\"-60\"> </tak-error>\r\n }\r\n </div>\r\n}\r\n","import {\r\n Component,\r\n OnDestroy,\r\n Optional,\r\n Input,\r\n Self,\r\n OnInit,\r\n ChangeDetectorRef,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormGroupDirective, FormControl, NgControl } from '@angular/forms';\r\nimport { debounceTime, map, Observable, Subject, takeUntil } from 'rxjs';\r\nimport { MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { MatOptionSelectionChange, ThemePalette } from '@kato-lee/material/core';\r\nimport {\r\n TakAutocompleteFieldType,\r\n TAK_DEFAULT_APPEARANCE_FORM,\r\n TAK_PRESS_ESC_KEY,\r\n} from '../fields.common';\r\n\r\n@Component({\r\n selector: 'tak-autocomplete-field',\r\n templateUrl: './autocomplete-field.component.html',\r\n})\r\nexport class TakAutocompleteFieldComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n private _unsubscribe$ = new Subject<void>();\r\n\r\n @Input() option = 'option';\r\n @Input() extraInfo = '';\r\n @Input() autocomplete: TakAutocompleteFieldType = 'off';\r\n @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\r\n @Input() color: ThemePalette = 'primary';\r\n @Input() hasClearButton = true;\r\n @Input() suggestions: any[] = [];\r\n @Input() disabled = false;\r\n @Input() hasTitle = false;\r\n\r\n @Input() isLoading = false;\r\n @Input() isRemoteSearch = false;\r\n @Input() debounceTimeForRemoteSearch = 500;\r\n\r\n @Output() onSelect = new EventEmitter<any>();\r\n @Output() onSearch = new EventEmitter<any>();\r\n\r\n public onChangeFn = (_: any) => {};\r\n public onTouchFn = (_: any) => {};\r\n\r\n private _isSubmitted = false;\r\n private _isInvalid = false;\r\n private _required = false;\r\n private _value = '';\r\n private _filteredOptions!: Observable<any[]>;\r\n private _notSuggestions = false;\r\n private _lastValue = '';\r\n\r\n constructor(\r\n @Self() @Optional() private _ngControl: NgControl,\r\n @Optional() private _formGroupDirective: FormGroupDirective,\r\n private _cd: ChangeDetectorRef\r\n ) {\r\n if (_ngControl) this._ngControl.valueAccessor = this;\r\n if (_formGroupDirective) {\r\n _formGroupDirective.ngSubmit.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\r\n this._isSubmitted = true;\r\n _cd.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n const form: any = this.control;\r\n\r\n if (form?._rawValidators) {\r\n form._rawValidators.map((r: any) => {\r\n if (r.name.includes('required')) this._required = true;\r\n });\r\n }\r\n\r\n this._filteredOptions = this.control.valueChanges.pipe(\r\n takeUntil(this._unsubscribe$),\r\n map(() => this._filter())\r\n );\r\n\r\n if (this.isRemoteSearch) {\r\n this.control.valueChanges\r\n .pipe(takeUntil(this._unsubscribe$), debounceTime(this.debounceTimeForRemoteSearch))\r\n .subscribe(() => {\r\n if (this._lastValue !== `${this._value}` && `${this._value}` && !this.control.value) {\r\n this.onSearch.emit(`${this._value}`);\r\n this._setValue(`${this._value}`);\r\n }\r\n\r\n this._lastValue = `${this._value}`;\r\n });\r\n }\r\n if (this.disabled) this.control.disable();\r\n }\r\n\r\n private _filter(): any[] {\r\n const value =\r\n typeof `${this._value}` === 'string'\r\n ? `${this._value}`.toLowerCase()\r\n : `${this.control.value[this.option]}`.toLowerCase();\r\n const option = this.suggestions.filter(res =>\r\n `${res[this.option]}`.toLowerCase().includes(value)\r\n );\r\n if (!option.length) this._notSuggestions = true;\r\n else this._notSuggestions = false;\r\n return option;\r\n }\r\n\r\n public writeValue(value: string): void {\r\n if (value === null) this._isInvalid = false;\r\n this._value = value || '';\r\n this._isSubmitted = false;\r\n this._cd.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchFn = fn;\r\n }\r\n\r\n public onChange(event: any): void {\r\n if (event.target.value !== `${this._value}`) {\r\n this._value = event.target.value;\r\n\r\n if (!this.isRemoteSearch) this._setValue(`${this._value}`);\r\n\r\n this.onChangeFn(\r\n this.suggestions.filter(\r\n sug => `${sug[this.option]}`.toLowerCase() === `${`${this._value}`}`.toLowerCase()\r\n )[0] || null\r\n );\r\n\r\n if (this.control.touched) {\r\n this._onValidate();\r\n }\r\n }\r\n }\r\n\r\n private _setValue(value: string) {\r\n if (!this.isRemoteSearch) {\r\n const suggestionsFiltered = value\r\n ? this.suggestions.filter(\r\n el =>\r\n `${el[this.option]}`.toLowerCase().trim() === (value as string).toLowerCase().trim()\r\n )\r\n : [];\r\n\r\n if (suggestionsFiltered.length) {\r\n document.body.dispatchEvent(TAK_PRESS_ESC_KEY);\r\n }\r\n\r\n try {\r\n this.control.setValue(suggestionsFiltered[0][this.option], {\r\n emitEvent: false,\r\n });\r\n this.onSelect.emit(suggestionsFiltered[0]);\r\n } catch (error) {}\r\n }\r\n }\r\n\r\n public emit(el: MatOptionSelectionChange) {\r\n if (el && el.isUserInput) this._isInvalid = false;\r\n }\r\n\r\n public emitWithClick(suggestionOption: any) {\r\n this.control.setValue(suggestionOption);\r\n this._value = `${suggestionOption[this.option]}`;\r\n this._isInvalid = false;\r\n }\r\n\r\n public onFocusout(): void {\r\n this.onTouchFn(true);\r\n this._onValidate();\r\n }\r\n\r\n public setValue(value: any) {\r\n this.control.setValue(value);\r\n this._value = `${value[this.option]}`;\r\n }\r\n\r\n public onUpdateSuggestions(suggestions: any[]) {\r\n this.suggestions = suggestions;\r\n this._cd.markForCheck();\r\n\r\n this.onChangeFn(\r\n this.suggestions.filter(\r\n sug => `${sug[this.option]}`.toLowerCase() === `${this._value}`.toLowerCase()\r\n )[0] || null\r\n );\r\n }\r\n\r\n private _onValidate(): void {\r\n if (this.control.invalid) this._isInvalid = true;\r\n else this._isInvalid = false;\r\n }\r\n\r\n public onFocus() {\r\n if (!`${this._value}`) {\r\n this.control.setValue('');\r\n this._value = '';\r\n }\r\n }\r\n\r\n public onClearControl(): void {\r\n this.control.setValue('', { emitEvent: false });\r\n this._value = '';\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._unsubscribe$.next();\r\n this._unsubscribe$.complete();\r\n }\r\n\r\n get control(): FormControl {\r\n return this._ngControl?.control as FormControl;\r\n }\r\n\r\n get directive(): FormGroupDirective {\r\n return this._formGroupDirective as FormGroupDirective;\r\n }\r\n\r\n get isDisabled() {\r\n return this._ngControl.disabled;\r\n }\r\n\r\n get isSubmitted() {\r\n return this._isSubmitted;\r\n }\r\n\r\n get isInvalid() {\r\n return this._isInvalid;\r\n }\r\n\r\n get required() {\r\n return this._required;\r\n }\r\n\r\n get value() {\r\n return `${this._value}`;\r\n }\r\n\r\n get filteredOptions() {\r\n return this._filteredOptions;\r\n }\r\n\r\n get notSuggestions() {\r\n return this._notSuggestions;\r\n }\r\n\r\n get lastValue() {\r\n return this._lastValue;\r\n }\r\n}\r\n","<div class=\"tak-form-container\">\r\n <mat-form-field\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <input\r\n matInput\r\n [autocomplete]=\"autocomplete\"\r\n [matAutocomplete]=\"auto\"\r\n [value]=\"value\"\r\n (keyup)=\"onChange($event)\"\r\n (change)=\"onChange($event)\"\r\n [disabled]=\"isDisabled\"\r\n (focus)=\"onFocus()\"\r\n (focusout)=\"onFocusout()\"\r\n />\r\n @if (isRemoteSearch && isLoading) {\r\n <button matSuffix mat-icon-button type=\"button\">\r\n <mat-spinner [diameter]=\"15\" mode=\"indeterminate\"></mat-spinner>\r\n </button>\r\n }\r\n @if ((control.value || value) && hasClearButton && !disabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onClearControl()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-autocomplete #auto=\"matAutocomplete\">\r\n @for (suggestion of filteredOptions | async; track suggestion) {\r\n <mat-option\r\n [value]=\"suggestion[option]\"\r\n [class.tak-option-extra]=\"extraInfo\"\r\n (onSelectionChange)=\"emit($event)\"\r\n (click)=\"emitWithClick(suggestion)\"\r\n title=\"{{ suggestion[option] }} {{ extraInfo ? '(' + suggestion[extraInfo] + ')' : '' }}\"\r\n >\r\n <span>{{ suggestion[option] }}</span>\r\n @if (extraInfo) {\r\n <span class=\"tak-option-span-extra\">{{ suggestion[extraInfo] }}</span>\r\n }\r\n </mat-option>\r\n }\r\n @if (notSuggestions && control.invalid) {\r\n <mat-option>\r\n <span class=\"tak-autocomplete-not-records\"> No se encuentran resultados </span>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { TakErrorEqualsPipe } from './error-equals.pipe';\r\nimport { TakErrorMsgPipe } from './error.msg.pipe';\r\nimport { TakErrorComponent } from './error.component';\r\n\r\n@NgModule({\r\n declarations: [TakErrorEqualsPipe, TakErrorMsgPipe, TakErrorComponent],\r\n imports: [FormsModule, CommonModule, ReactiveFormsModule],\r\n exports: [TakErrorComponent],\r\n})\r\nexport class TakErrorModule {}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { ThemePalette } from '@kato-lee/material/core';\r\nimport { TakAutocompleteFieldType, TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';\r\n\r\n@Component({\r\n selector: 'tak-date-range-field',\r\n templateUrl: './date-range-field.component.html',\r\n})\r\nexport class TakDateRangeFieldComponent implements OnInit {\r\n @Input() autocomplete: TakAutocompleteFieldType = 'off';\r\n @Input() startPlaceholder: string = 'Inicio';\r\n @Input() endPlaceholder: string = 'Fin';\r\n\r\n @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\r\n @Input() color: ThemePalette = 'primary';\r\n\r\n @Input() start!: FormControl;\r\n @Input() end!: FormControl;\r\n @Input() notInput = false;\r\n\r\n @Input() disabled = false;\r\n\r\n private _required = false;\r\n\r\n public ngOnInit(): void {\r\n const start: any = this.start;\r\n const end: any = this.end;\r\n if (start?._rawValidators) {\r\n start._rawValidators.map((r: any) => {\r\n if (r.name.includes('required')) this._required = true;\r\n });\r\n }\r\n if (end?._rawValidators) {\r\n end._rawValidators.map((r: any) => {\r\n if (r.name.includes('required')) this._required = true;\r\n });\r\n }\r\n if (this.disabled) {\r\n this.start.disable();\r\n this.end.disable();\r\n }\r\n }\r\n\r\n get required() {\r\n return this._required;\r\n }\r\n\r\n get isDisabled() {\r\n return this.start.disabled || this.end.disabled;\r\n }\r\n}\r\n","@if (!notInput) {\r\n <div class=\"tak-form-container\">\r\n <mat-form-field [appearance]=\"appearance\" [color]=\"color\">\r\n <mat-label>\r\n <ng-content></ng-content>\r\n </mat-label>\r\n <mat-date-range-input [rangePicker]=\"picker\">\r\n <input\r\n matStartDate\r\n [placeholder]=\"startPlaceholder\"\r\n [formControl]=\"start\"\r\n [autocomplete]=\"autocomplete\"\r\n />\r\n <input matEndDate [placeholder]=\"endPlaceholder\" [formControl]=\"end\" />\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker></mat-date-range-picker>\r\n </mat-form-field>\r\n @if ((start.invalid || end.invalid) && (start.touched || end.touched)) {\r\n <tak-error [start]=\"start\" [end]=\"end\"> </tak-error>\r\n }\r\n </div>\r\n}\r\n@if (notInput) {\r\n <div>\r\n <div\r\n class=\"tak__date-not-input__picker-container\"\r\n [class.mat-form-field-invalid]=\"\r\n (start.invalid || end.invalid) && (start.touched || end.touched)\r\n \"\r\n >\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker [disabled]=\"isDisabled\"></mat-date-range-picker>\r\n </div>\r\n <div class=\"tak__date-not-input__field-container\">\r\n <mat-form-field [color]=\"color\">\r\n <mat-date-range-input [rangePicker]=\"picker\">\r\n <input matStartDate [formControl]=\"start\" />\r\n <input matEndDate [formControl]=\"end\" />\r\n </mat-date-range-input>\r\n </mat-form-field>\r\n </div>\r\n @if ((start.invalid || end.invalid) && (start.touched || end.touched)) {\r\n <tak-error [start]=\"start\" [end]=\"end\" [marginTop]=\"-60\"></tak-error>\r\n }\r\n </div>\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n OnDestroy,\r\n Optional,\r\n OnInit,\r\n Input,\r\n Self,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n FormGroupDirective,\r\n FormControl,\r\n NgControl,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';\r\nimport { FloatLabelType, MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { ThemePalette } from '@kato-lee/material/core';\r\n\r\n@Component({\r\n selector: 'tak-money-field',\r\n templateUrl: './money-field.component.html',\r\n})\r\nexport class TakMoneyFieldComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n @Input() autocomplete: 'off' | 'on' = 'off';\r\n\r\n @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\r\n @Input() floatLabel: FloatLabelType = 'auto';\r\n @Input() color: ThemePalette = 'primary';\r\n @Input() actionIcon = 'search';\r\n\r\n @Input() defaultFilterStyle = true;\r\n @Input() hasActionButton = false;\r\n @Input() hasClearButton = true;\r\n @Input() countCaracters = false;\r\n @Input() placeholder = '';\r\n\r\n @Input() maxLength!: number;\r\n @Input() minLength!: number;\r\n\r\n @Input() disabled = false;\r\n\r\n @Output() onExecuteAction = new EventEmitter();\r\n @Output() onKeyUp = new EventEmitter();\r\n\r\n public onChangeFn = (_: any) => {};\r\n public onTouchFn = (_: any) => {};\r\n\r\n private _isSubmitted = false;\r\n private _isInvalid = false;\r\n private _required = false;\r\n private _value = '';\r\n\r\n private _subscription!: Subscription;\r\n\r\n constructor(\r\n @Self() @Optional() private _ngControl: NgControl,\r\n @Optional() private _formGroupDirective: FormGroupDirective,\r\n private _cd: ChangeDetectorRef\r\n ) {\r\n if (_ngControl) this._ngControl.valueAccessor = this;\r\n\r\n if (_formGroupDirective) {\r\n this._subscription = _formGroupDirective.ngSubmit.subscribe(() => {\r\n this._isSubmitted = true;\r\n _cd.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n const form: any = this.control;\r\n\r\n if (form?._rawValidators) {\r\n form._rawValidators.forEach((r: any) => {\r\n if (r.name.includes('required')) this._required = true;\r\n });\r\n }\r\n\r\n this.control.addValidators(Validators.pattern(/^[0-9.,-]+$/));\r\n\r\n if (['', null, undefined, '-'].indexOf(this.control.value) < 0) this._addCurrencyMask();\r\n\r\n if (this.disabled) this.control.disable();\r\n }\r\n\r\n public writeValue(value: string): void {\r\n if (value === null) {\r\n this._isInvalid = false;\r\n }\r\n this._value = value;\r\n this._isSubmitted = false;\r\n this._cd.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchFn = fn;\r\n }\r\n\r\n public onChange(event: any): void {\r\n this._value = event.target.value;\r\n this.onChangeFn(event.target.value);\r\n this._addCurrencyMask();\r\n if (this.control.touched) this._onValidate();\r\n }\r\n\r\n private _addCurrencyMask() {\r\n const valueFormatted = this.control.value\r\n .toString()\r\n .replace(/,/g, '')\r\n .replace(/ /g, '')\r\n .replace('$', '');\r\n\r\n if (['', null, undefined, '-'].indexOf(valueFormatted) < 0 && !isNaN(Number(valueFormatted))) {\r\n const value = '$ ' + Intl.NumberFormat('en-US').format(Number(valueFormatted));\r\n this.control.setValue(+valueFormatted);\r\n this._value = value;\r\n } else if (['-'].indexOf(valueFormatted) >= 0) this.control.setValue('-');\r\n else this.control.setValue(null);\r\n }\r\n\r\n public onFocusOut(): void {\r\n this.onTouchFn(true);\r\n //this._executeIfIsMoneyField();\r\n this._onValidate();\r\n }\r\n\r\n private _onValidate(): void {\r\n if (this.control.invalid) this._isInvalid = true;\r\n else this._isInvalid = false;\r\n }\r\n\r\n public onKeyDown(event: any) {\r\n const pattern = /[0-9.-]/i.test(event.key);\r\n const validKeyCodes = [8, 46, 37, 39, 9, 17, 16, 67, 86, 109, 189];\r\n return pattern || validKeyCodes.indexOf(event.keyCode) >= 0;\r\n }\r\n\r\n public onClearControl(): void {\r\n if (['', null, undefined].indexOf(this.control.value) >= 0) {\r\n this.control.setValue('', { emitEvent: false });\r\n } else {\r\n this.control.setValue('');\r\n }\r\n\r\n this._value = '';\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this._subscription) this._subscription.unsubscribe();\r\n }\r\n\r\n get control(): FormControl {\r\n return this._ngControl.control as FormControl;\r\n }\r\n\r\n get directive(): FormGroupDirective {\r\n return this._formGroupDirective as FormGroupDirective;\r\n }\r\n\r\n get isDisabled() {\r\n return this._ngControl.disabled;\r\n }\r\n\r\n get isSubmitted() {\r\n return this._isSubmitted;\r\n }\r\n\r\n get isInvalid() {\r\n return this._isInvalid;\r\n }\r\n\r\n get required() {\r\n return this._required;\r\n }\r\n\r\n get value() {\r\n return this._value;\r\n }\r\n}\r\n","<div class=\"tak-form-container\">\r\n <mat-form-field\r\n [floatLabel]=\"floatLabel\"\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <input\r\n class=\"money-input\"\r\n matInput\r\n [autocomplete]=\"autocomplete\"\r\n [placeholder]=\"placeholder\"\r\n [value]=\"value\"\r\n (keyup)=\"onChange($event)\"\r\n (change)=\"onChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n [disabled]=\"isDisabled\"\r\n [attr.minLength]=\"minLength\"\r\n [attr.maxLength]=\"maxLength\"\r\n (focusout)=\"onFocusOut()\"\r\n />\r\n @if (control.value && hasClearButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onClearControl()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && hasActionButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onExecuteAction.emit(control.value)\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\r\n </button>\r\n }\r\n @if (countCaracters) {\r\n <mat-hint align=\"end\" class=\"tak-hint\">\r\n {{ control.value?.length || 0 }}/{{ maxLength }}\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n</div>\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n OnDestroy,\r\n Optional,\r\n OnInit,\r\n Input,\r\n Self,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n FormGroupDirective,\r\n FormControl,\r\n NgControl,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM, TakGeneralFieldType } from '../fields.common';\r\nimport { FloatLabelType, MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { ThemePalette } from '@kato-lee/material/core';\r\n\r\n@Component({\r\n selector: 'tak-general-field',\r\n templateUrl: './general-field.component.html',\r\n})\r\nexport class TakGeneralFieldComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n @Input() autocomplete: 'off' | 'on' = 'off';\r\n\r\n @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\r\n @Input() type: TakGeneralFieldType = 'text';\r\n @Input() floatLabel: FloatLabelType = 'never';\r\n @Input() color: ThemePalette = 'primary';\r\n @Input() actionIcon = 'search';\r\n\r\n @Input() defaultFilterStyle = true;\r\n @Input() hasActionButton = false;\r\n @Input() hasClearButton = false;\r\n @Input() countCaracters = false;\r\n @Input() placeholder = '';\r\n\r\n @Input() maxLength!: number;\r\n @Input() minLength!: number;\r\n\r\n @Input() disabled = false;\r\n\r\n @Output() onExecuteAction = new EventEmitter();\r\n @Output() onKeyUp = new EventEmitter();\r\n\r\n public onChangeFn = (_: any) => {};\r\n public onTouchFn = (_: any) => {};\r\n\r\n private _isSubmitted = false;\r\n private _isInvalid = false;\r\n private _required = false;\r\n private _value = '';\r\n\r\n private _subscription!: Subscription;\r\n private _decrypted = false;\r\n\r\n constructor(\r\n @Self() @Optional() private _ngControl: NgControl,\r\n @Optional() private _formGroupDirective: FormGroupDirective,\r\n private _cd: ChangeDetectorRef\r\n ) {\r\n if (_ngControl) this._ngControl.valueAccessor = this;\r\n\r\n if (_formGroupDirective) {\r\n this._subscription = _formGroupDirective.ngSubmit.subscribe(() => {\r\n this._isSubmitted = true;\r\n _cd.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n const form: any = this.control;\r\n\r\n if (this.type === 'filter' && this.defaultFilterStyle) {\r\n this.control.removeValidators(Validators.required);\r\n this.appearance = 'legacy';\r\n this.floatLabel = 'never';\r\n if (!this.placeholder) this.placeholder = 'Buscar';\r\n this.hasClearButton = true;\r\n this._cd.markForCheck();\r\n }\r\n\r\n if (form?._rawValidators) {\r\n form._rawValidators.forEach((r: any) => {\r\n if (r.name.includes('required')) this._required = true;\r\n });\r\n }\r\n\r\n if (this.disabled) this.control.disable();\r\n }\r\n\r\n public writeValue(value: string): void {\r\n if (value === null) this._isInvalid = false;\r\n this._value = value;\r\n this._isSubmitted = false;\r\n this._cd.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchFn = fn;\r\n }\r\n\r\n public onChange(event: any): void {\r\n this._value = event.target.value;\r\n this.onChangeFn(event.target.value);\r\n if (!this.control.value && this.type === 'password') this._decrypted = false;\r\n if (this.control.touched) this._onValidate();\r\n if (this.type === 'filter') this.onKeyUp.emit(this.control.value);\r\n }\r\n\r\n public showPassword(): void {\r\n if (this.type === 'password') {\r\n if (this._decrypted) this._decrypted = false;\r\n else this._decrypted = true;\r\n }\r\n }\r\n\r\n public onFocusOut(): void {\r\n this.onTouchFn(true);\r\n this._onValidate();\r\n }\r\n\r\n private _onValidate(): void {\r\n if (this.control.invalid) this._isInvalid = true;\r\n else this._isInvalid = false;\r\n }\r\n\r\n public onClearControl(): void {\r\n if (['', null, undefined].indexOf(this.control.value) >= 0) {\r\n this.control.setValue('', { emitEvent: false });\r\n } else this.control.setValue('');\r\n this._value = '';\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this._subscription) this._subscription.unsubscribe();\r\n }\r\n\r\n get control(): FormControl {\r\n return this._ngControl.control as FormControl;\r\n }\r\n\r\n get directive(): FormGroupDirective {\r\n return this._formGroupDirective as FormGroupDirective;\r\n }\r\n\r\n get decrypted() {\r\n return this._decrypted;\r\n }\r\n\r\n get isDisabled() {\r\n return this._ngControl.disabled;\r\n }\r\n\r\n get isSubmitted() {\r\n return this._isSubmitted;\r\n }\r\n\r\n get isInvalid() {\r\n return this._isInvalid;\r\n }\r\n\r\n get required() {\r\n return this._required;\r\n }\r\n\r\n get value() {\r\n return this._value;\r\n }\r\n}\r\n","<div class=\"tak-form-container\">\r\n <mat-form-field\r\n [floatLabel]=\"floatLabel\"\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <input\r\n [type]=\"type === 'password' && !decrypted ? 'password' : 'text'\"\r\n matInput\r\n [autocomplete]=\"autocomplete\"\r\n [value]=\"value\"\r\n (keyup)=\"onChange($event)\"\r\n (change)=\"onChange($event)\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"isDisabled\"\r\n [attr.minLength]=\"minLength\"\r\n [attr.maxLength]=\"maxLength\"\r\n (focusout)=\"onFocusOut()\"\r\n />\r\n @if (control.value && hasClearButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onClearControl()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && hasActionButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onExecuteAction.emit(control.value)\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && type === 'password' && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"showPassword()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{\r\n decrypted ? 'visibility_off' : 'visibility'\r\n }}</mat-icon>\r\n </button>\r\n }\r\n @if (countCaracters) {\r\n <mat-hint align=\"end\" class=\"tak-hint\">\r\n {{ control.value?.length || 0 }}/{{ maxLength }}\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n</div>\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n OnDestroy,\r\n Optional,\r\n OnInit,\r\n Input,\r\n Self,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n FormGroupDirective,\r\n FormControl,\r\n NgControl,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';\r\nimport { FloatLabelType, MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { ThemePalette } from '@kato-lee/material/core';\r\n\r\n@Component({\r\n selector: 'tak-number-field',\r\n templateUrl: './number-field.component.html',\r\n})\r\nexport class TakNumberFieldComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n @Input() autocomplete: 'off' | 'on' = 'off';\r\n\r\n @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\r\n @Input() floatLabel: FloatLabelType = 'auto';\r\n @Input() color: ThemePalette = 'primary';\r\n @Input() actionIcon = 'search';\r\n\r\n @Input() hasActionButton = false;\r\n @Input() hasClearButton = false;\r\n @Input() countCaracters = false;\r\n @Input() placeholder = '';\r\n\r\n @Input() min!: number;\r\n @Input() max!: number;\r\n\r\n @Input() minLength!: number;\r\n @Input() maxLength!: number;\r\n\r\n @Input() disabled = false;\r\n\r\n @Output() onExecuteAction = new EventEmitter();\r\n @Output() onKeyUp = new EventEmitter();\r\n\r\n public onChangeFn = (_: any) => {};\r\n public onTouchFn = (_: any) => {};\r\n\r\n private _isSubmitted = false;\r\n private _isInvalid = false;\r\n private _required = false;\r\n private _value = '';\r\n\r\n private _subscription!: Subscription;\r\n\r\n constructor(\r\n @Self() @Optional() private _ngControl: NgControl,\r\n @Optional() private _formGroupDirective: FormGroupDirective,\r\n private _cd: ChangeDetectorRef\r\n ) {\r\n if (_ngControl) this._ngControl.valueAccessor = this;\r\n\r\n if (_formGroupDirective) {\r\n this._subscription = _formGroupDirective.ngSubmit.subscribe(() => {\r\n this._isSubmitted = true;\r\n _cd.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n const form: any = this.control;\r\n\r\n if (form?._rawValidators) {\r\n form._rawValidators.forEach((r: any) => {\r\n if (r.name.includes('required')) this._required = true;\r\n });\r\n }\r\n\r\n if (this.min) this.control.addValidators(Validators.min(this.min));\r\n if (this.max) this.control.addValidators(Validators.max(this.max));\r\n\r\n if (this.disabled) this.control.disable();\r\n }\r\n\r\n public writeValue(value: string): void {\r\n if (value === null) this._isInvalid = false;\r\n this._value = value;\r\n this._isSubmitted = false;\r\n this._cd.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchFn = fn;\r\n }\r\n\r\n public onChange(event: any): void {\r\n this._value = event.target.value;\r\n this.onChangeFn(\r\n ['', null, undefined].indexOf(event.target.value) < 0 ? +event.target.value : null\r\n );\r\n if (this.control.touched) this._onValidate();\r\n }\r\n\r\n public onFocusOut(): void {\r\n this.onTouchFn(true);\r\n this._onValidate();\r\n }\r\n\r\n private _onValidate(): void {\r\n if (this.control.invalid) this._isInvalid = true;\r\n else this._isInvalid = false;\r\n }\r\n\r\n public onClearControl(): void {\r\n if (['', null, undefined].indexOf(this.control.value) >= 0) {\r\n this.control.setValue('', { emitEvent: false });\r\n } else this.control.setValue('');\r\n this._value = '';\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this._subscription) this._subscription.unsubscribe();\r\n }\r\n\r\n get control(): FormControl {\r\n return this._ngControl.control as FormControl;\r\n }\r\n\r\n get directive(): FormGroupDirective {\r\n return this._formGroupDirective as FormGroupDirective;\r\n }\r\n\r\n get isDisabled() {\r\n return this._ngControl.disabled;\r\n }\r\n\r\n get isSubmitted() {\r\n return this._isSubmitted;\r\n }\r\n\r\n get isInvalid() {\r\n return this._isInvalid;\r\n }\r\n\r\n get required() {\r\n return this._required;\r\n }\r\n\r\n get value() {\r\n return this._value;\r\n }\r\n}\r\n","<div class=\"tak-form-container\">\r\n <mat-form-field\r\n [floatLabel]=\"floatLabel\"\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <input\r\n type=\"number\"\r\n matInput\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [autocomplete]=\"autocomplete\"\r\n [value]=\"value\"\r\n (keyup)=\"onChange($event)\"\r\n [placeholder]=\"placeholder\"\r\n (change)=\"onChange($event)\"\r\n [disabled]=\"isDisabled\"\r\n [attr.minLength]=\"minLength\"\r\n [attr.maxLength]=\"maxLength\"\r\n (focusout)=\"onFocusOut()\"\r\n />\r\n @if (control.value && hasClearButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onClearControl()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && hasActionButton && !isDisabled) {\r\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onExecuteAction.emit(control.value)\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\r\n </button>\r\n }\r\n @if (countCaracters) {\r\n <mat-hint align=\"end\" class=\"tak-hint\">\r\n {{ control.value?.length || 0 }}/{{ maxLength }}\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n</div>\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n OnDestroy,\r\n Optional,\r\n OnInit,\r\n Input,\r\n Self,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormGroupDirective, FormControl, NgControl } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';\r\nimport { FloatLabelType, MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { ThemePalette } from '@kato-lee/material/core';\r\n\r\n@Component({\r\n selector: 'tak-textarea',\r\n templateUrl: './textarea.component.html',\r\n})\r\nexport class TakTextareaComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n @Input() autocomplete: 'off' | 'on' = 'off';\r\n\r\n @Input() appearance: MatFormFieldAppearance = TAK_DEFAULT_APPEARANCE_FORM;\r\n @Input() floatLabel: FloatLabelType = 'auto';\r\n @Input() color: ThemePalette = 'primary';\r\n @Input() actionIcon = 'search';\r\n\r\n @Input() defaultFilterStyle = true;\r\n @Input() hasActionButton = false;\r\n @Input() hasClearButton = false;\r\n @Input() countCaracters = false;\r\n @Input() isTextArea = false;\r\n @Input() placeholder = '';\r\n @Input() heightInPx = 60;\r\n\r\n @Input() minLength!: number;\r\n @Input() maxLength!: number;\r\n\r\n @Input() disabled = false;\r\n\r\n @Output() onExecuteAction = new EventEmitter();\r\n @Output() onKeyUp = new EventEmitter();\r\n\r\n public onChangeFn = (_: any) => {};\r\n public onTouchFn = (_: any) => {};\r\n\r\n public _isSubmitted = false;\r\n public _isInvalid = false;\r\n public _required = false;\r\n public _value = '';\r\n\r\n private _subscription!: Subscription;\r\n private _decrypted = false;\r\n\r\n constructor(\r\n @Self() @Optional() private _ngControl: NgControl,\r\n @Optional() private _formGroupDirective: FormGroupDirective,\r\n private _cd: ChangeDetectorRef\r\n ) {\r\n if (_ngControl) this._ngControl.valueAccessor = this;\r\n\r\n if (_formGroupDirective) {\r\n this._subscription = _formGroupDirective.ngSubmit.subscribe(() => {\r\n this._isSubmitted = true;\r\n _cd.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n const form: any = this.control;\r\n\r\n if (form?._rawValidators) {\r\n form._rawValidators.forEach((r: any) => {\r\n if (r.name.includes('required')) this._required = true;\r\n });\r\n }\r\n\r\n if (this.disabled) this.control.disable();\r\n }\r\n\r\n public writeValue(value: string): void {\r\n if (value === null) {\r\n this._isInvalid = false;\r\n }\r\n this._value = value;\r\n this._isSubmitted = false;\r\n this._cd.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchFn = fn;\r\n }\r\n\r\n public onChange(event: any): void {\r\n this._value = event.target.value;\r\n this.onChangeFn(event.target.value);\r\n if (this.control.touched) this._onValidate();\r\n }\r\n\r\n public onFocusOut(): void {\r\n this.onTouchFn(true);\r\n this._onValidate();\r\n }\r\n\r\n private _onValidate(): void {\r\n if (this.control.invalid) this._isInvalid = true;\r\n else this._isInvalid = false;\r\n }\r\n\r\n public onClearControl(): void {\r\n if (['', null, undefined].indexOf(this.control.value) >= 0) {\r\n this.control.setValue('', { emitEvent: false });\r\n } else {\r\n this.control.setValue('');\r\n }\r\n\r\n this._value = '';\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this._subscription) this._subscription.unsubscribe();\r\n }\r\n\r\n get control(): FormControl {\r\n return this._ngControl.control as FormControl;\r\n }\r\n\r\n get directive(): FormGroupDirective {\r\n return this._formGroupDirective as FormGroupDirective;\r\n }\r\n\r\n get decrypted() {\r\n return this._decrypted;\r\n }\r\n\r\n get isDisabled() {\r\n return this._ngControl.disabled;\r\n }\r\n\r\n get isSubmitted() {\r\n return this._isSubmitted;\r\n }\r\n\r\n get isInvalid() {\r\n return this._isInvalid;\r\n }\r\n\r\n get required() {\r\n return this._required;\r\n }\r\n\r\n get value() {\r\n return this._value;\r\n }\r\n}\r\n","<div class=\"tak-form-container\">\r\n <mat-form-field\r\n [floatLabel]=\"floatLabel\"\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <textarea\r\n matInput\r\n [autocomplete]=\"autocomplete\"\r\n [value]=\"value\"\r\n [style.height.px]=\"heightInPx\"\r\n [placeholder]=\"placeholder\"\r\n (keyup)=\"onChange($event)\"\r\n (change)=\"onChange($event)\"\r\n [disabled]=\"isDisabled\"\r\n [attr.minLength]=\"minLength\"\r\n [attr.maxLength]=\"maxLength\"\r\n (focusout)=\"onFocusOut()\"\r\n ></textarea>\r\n @if (control.value && hasClearButton && !isDisabled) {\r\n <button mat-icon-button type=\"button\" matSuffix (click)=\"onClearControl()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && hasActionButton) {\r\n <button mat-icon-button type=\"button\" matSuffix (click)=\"onExecuteAction.emit(control.value)\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\r\n </button>\r\n }\r\n @if (countCaracters) {\r\n <mat-hint align=\"end\" class=\"tak-hint\">\r\n {{ control.value?.length || 0 }}/{{ maxLength }}\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\n\r\nimport { MatFormFieldModule } from '@kato-lee/material/form-field';\r\nimport { MatSelectModule } from '@kato-lee/material/select';\r\nimport { MatButtonModule } from '@kato-lee/material/button';\r\nimport { MAT_DATE_LOCALE, MatNativeDateModule, MatOptionModule } from '@kato-lee/material/core';\r\nimport { MatInputModule } from '@kato-lee/material/input';\r\nimport { MatIconModule } from '@kato-lee/material/icon';\r\nimport { MatDatepickerModule } from '@kato-lee/material/datepicker';\r\nimport { MatTooltipModule } from '@kato-lee/material/tooltip';\r\n\r\nimport { TakSelectFieldComponent } from './select-field/select-field.component';\r\nimport { TakDateFieldComponent } from './date-field/date-field.component';\r\n\r\nimport { TakAutocompleteFieldComponent } from './autocomplete-field/autocomplete-field.component';\r\nimport { MatAutocompleteModule } from '@kato-lee/material/autocomplete';\r\nimport { TakErrorModule } from './error/error.module';\r\nimport { TakDateRangeFieldComponent } from './date-range-field/date-range-field.component';\r\nimport { TakMoneyFieldComponent } from './money-field/money-field.component';\r\nimport { TakGeneralFieldComponent } from './general-field/general-field.component';\r\nimport { MatProgressSpinnerModule } from '@kato-lee/material/progress-spinner';\r\nimport { TakNumberFieldComponent } from './number-field/number-field.component';\r\nimport { TakTextareaComponent } from './text-area/textarea.component';\r\nimport { MatMenuModule } from '@kato-lee/material/menu';\r\n\r\nconst components = [\r\n TakSelectFieldComponent,\r\n TakDateFieldComponent,\r\n TakAutocompleteFieldComponent,\r\n TakDateRangeFieldComponent,\r\n TakGeneralFieldComponent,\r\n TakMoneyFieldComponent,\r\n TakTextareaComponent,\r\n TakNumberFieldComponent,\r\n];\r\n\r\n@NgModule({\r\n declarations: components,\r\n imports: [\r\n FormsModule,\r\n CommonModule,\r\n MatNativeDateModule,\r\n ReactiveFormsModule,\r\n MatProgressSpinnerModule,\r\n MatFormFieldModule,\r\n MatButtonModule,\r\n MatDatepickerModule,\r\n MatAutocompleteModule,\r\n TakErrorModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatOptionModule,\r\n MatSelectModule,\r\n MatTooltipModule,\r\n MatMenuModule,\r\n ],\r\n exports: [\r\n ReactiveFormsModule,\r\n MatAutocompleteModule,\r\n FormsModule,\r\n MatNativeDateModule,\r\n ...components,\r\n ],\r\n providers: [{ provide: MAT_DATE_LOCALE, useValue: 'es-ES' }],\r\n})\r\nexport class TakFieldsModule {}\r\n","import { Validators } from '@angular/forms';\r\nimport { TAK_PTRN_EMAIL, TAK_PTRN_NONSP, TAK_PTRN_NUMRC } from './fields.common';\r\n\r\nexport const required = Validators.required;\r\n\r\nexport const max = (max: number) => Validators.max(max);\r\nexport const min = (min: number) => Validators.min(min);\r\n\r\nexport const maxLength = (maxLength: number) => Validators.maxLength(maxLength);\r\nexport const minLength = (minLength: number) => Validators.minLength(minLength);\r\n\r\nexport const withOutSpaces = Validators.pattern(TAK_PTRN_NONSP);\r\nexport const onlyNumber = Validators.pattern(TAK_PTRN_NUMRC);\r\nexport const email = Validators.pattern(TAK_PTRN_EMAIL);\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ChangeDetectorRef,\r\n Output,\r\n EventEmitter,\r\n OnInit,\r\n OnDestroy,\r\n ViewEncapsulation,\r\n Input,\r\n} from '@angular/core';\r\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TakToast } from '@kato-lee/components/toast';\r\nimport {\r\n Observable,\r\n Subject,\r\n debounceTime,\r\n distinctUntilChanged,\r\n firstValueFrom,\r\n map,\r\n takeUntil,\r\n} from 'rxjs';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { MatProgressSpinnerModule } from '@kato-lee/material/progress-spinner';\r\nimport { MatAutocompleteModule } from '@kato-lee/material/autocomplete';\r\nimport { MatFormFieldModule } from '@kato-lee/material/form-field';\r\nimport { MatButtonModule } from '@kato-lee/material/button';\r\nimport { MatInputModule } from '@kato-lee/material/input';\r\nimport { MatIconModule } from '@kato-lee/material/icon';\r\nimport { TAK_PRESS_ESC_KEY } from '../fields.common';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n FormsModule,\r\n MatProgressSpinnerModule,\r\n MatFormFieldModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n ReactiveFormsModule,\r\n MatAutocompleteModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n CommonModule,\r\n ],\r\n selector: 'tak-remote-autocomplete-field',\r\n templateUrl: './remote-autocomplete-field.component.html',\r\n styles: [\r\n `\r\n mat-spinner.spinner-loading {\r\n display: inline;\r\n margin-left: -10px;\r\n & > svg {\r\n margin-top: -5px;\r\n }\r\n }\r\n `,\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TakRemoteAutocompleteFieldComponent implements OnInit, OnDestroy {\r\n @Input() remoteUrl = '';\r\n @Input() params: any = {};\r\n @Input() option = 'option';\r\n @Input() extraInfo = '';\r\n @Input() justOneLoad = false;\r\n\r\n @Output() onSelect = new EventEmitter<any>();\r\n\r\n public suggestions: any[] = [];\r\n public autocomplete = new FormControl();\r\n\r\n private _isLoading = false;\r\n public isValueSelected = false;\r\n\r\n private _unsubscribe$ = new Subject<void>();\r\n private _isLoadingItem = false;\r\n private _isRequired = true;\r\n\r\n private _filteredOptions!: Observable<any[]>;\r\n private _value = '';\r\n private _notSuggestions = false;\r\n\r\n public wasLoaded = false;\r\n\r\n constructor(\r\n private _http: HttpClient,\r\n private _cd: ChangeDetectorRef,\r\n private _toast: TakToast\r\n ) {}\r\n\r\n public async ngOnInit(): Promise<void> {\r\n if (!this.justOneLoad) {\r\n this.autocomplete.valueChanges\r\n .pipe(takeUntil(this._unsubscribe$), debounceTime(500), distinctUntilChanged())\r\n .subscribe(async value => {\r\n if (\r\n value &&\r\n !this.suggestions.filter(suggestion => suggestion.getNombre() === value).length\r\n ) {\r\n this._isLoading = true;\r\n this._cd.markForCheck();\r\n\r\n try {\r\n const result = await firstValueFrom(\r\n this._http.get<any[]>(this.remoteUrl, {\r\n params: this.params,\r\n })\r\n );\r\n\r\n if (result.length !== 0) {\r\n this.suggestions = result;\r\n if (\r\n `${value}`.toLocaleLowerCase() ===\r\n `${this.suggestions[0][this.option]}`.toLocaleLowerCase()\r\n ) {\r\n this.autocomplete.setValue(`${this.suggestions[0][this.option]}`, {\r\n emitEvent: false,\r\n });\r\n this.onSelect.emit(this.suggestions[0]);\r\n document.body.dispatchEvent(TAK_PRESS_ESC_KEY);\r\n }\r\n } else {\r\n this._toast.notification('No existen items que contengan esta palabra clave');\r\n }\r\n } catch (error: any) {\r\n this._toast.danger(error.error.message);\r\n }\r\n\r\n this._isLoading = false;\r\n this._cd.markForCheck();\r\n }\r\n });\r\n } else {\r\n try {\r\n const result = await firstValueFrom(\r\n this._http.get<any[]>(this.remoteUrl, {\r\n params: this.params,\r\n })\r\n );\r\n\r\n this.suggestions = result;\r\n this.wasLoaded = true;\r\n this._cd.markForCheck();\r\n\r\n this._filteredOptions = this.autocomplete.valueChanges.pipe(\r\n takeUntil(this._unsubscribe$),\r\n map(() => this._filter())\r\n );\r\n } catch (error: any) {\r\n this._toast.danger(error.error.message);\r\n }\r\n }\r\n }\r\n\r\n private _filter(): any[] {\r\n const value =\r\n typeof `${this.autocomplete.value}` === 'string'\r\n ? `${this.autocomplete.value}`.toLowerCase()\r\n : `${this.autocomplete.value[this.option]}`.toLowerCase();\r\n const option = this.suggestions.filter(res =>\r\n `${res[this.option]}`.toLowerCase().includes(value)\r\n );\r\n if (!option.length) this._notSuggestions = true;\r\n else this._notSuggestions = false;\r\n return option;\r\n }\r\n\r\n async refresh() {\r\n try {\r\n const result = await firstValueFrom(\r\n this._http.get<any[]>(this.remoteUrl, {\r\n params: this.params,\r\n })\r\n );\r\n\r\n this.suggestions = result;\r\n this.autocomplete.setValue('');\r\n this._toast.notification('Data actualizada correctamente');\r\n this._cd.markForCheck();\r\n } catch (error: any) {\r\n this._toast.danger(error.error.message);\r\n }\r\n }\r\n\r\n public reset() {\r\n if (!this.justOneLoad) {\r\n this.autocomplete.reset();\r\n } else {\r\n this.autocomplete.setValue('');\r\n }\r\n this.onSelect.emit(null as any);\r\n }\r\n\r\n emit(el: any, option: any) {\r\n if (el.isUserInput) {\r\n this.onSelect.emit(option);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._unsubscribe$.next();\r\n this._unsubscribe$.complete();\r\n }\r\n\r\n get isLoading() {\r\n return this._isLoading;\r\n }\r\n\r\n get isRequired() {\r\n return this._isRequired;\r\n }\r\n\r\n get isLoadingItem() {\r\n return this._isLoadingItem;\r\n }\r\n\r\n get filteredOptions() {\r\n return this._filteredOptions;\r\n }\r\n\r\n get value() {\r\n return `${this._value}`;\r\n }\r\n\r\n get notSuggestions() {\r\n return this._notSuggestions;\r\n }\r\n}\r\n","@if (!justOneLoad || (justOneLoad && wasLoaded)) {\r\n <mat-form-field appearance=\"standard\">\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (isRequired) {\r\n <span class=\"gcm-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <input matInput [formControl]=\"autocomplete\" [matAutocomplete]=\"auto\" />\r\n\r\n @if (isLoading || (autocomplete.value === null && isLoadingItem)) {\r\n <mat-spinner\r\n mat-icon-button\r\n [diameter]=\"15\"\r\n mode=\"indeterminate\"\r\n class=\"spinner-loading\"\r\n ></mat-spinner>\r\n }\r\n <!---->\r\n\r\n @if (autocomplete.value) {\r\n <button mat-icon-button matSuffix (click)=\"reset()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n @if (justOneLoad && !autocomplete.value) {\r\n <button mat-icon-button matSuffix (click)=\"refresh()\">\r\n <mat-icon>refresh</mat-icon>\r\n </button>\r\n }\r\n\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\r\n @if (!justOneLoad) {\r\n @for (suggestion of suggestions; track $index) {\r\n <mat-option\r\n [value]=\"suggestion[option]\"\r\n title=\"{{ suggestion[option] }} {{\r\n extraInfo ? '(' + suggestion[extraInfo] + ')' : ''\r\n }}\"\r\n (onSelectionChange)=\"emit($event, suggestion)\"\r\n >\r\n <span>{{ suggestion[option] }}</span>\r\n @if (extraInfo) {\r\n <span class=\"mat-option-span-extra\">{{ suggestion[extraInfo] }}</span>\r\n }\r\n </mat-option>\r\n }\r\n @if (notSuggestions) {\r\n <mat-option>\r\n <span class=\"tak-autocomplete-not-records\"> No se encuentran resultados </span>\r\n </mat-option>\r\n }\r\n } @else {\r\n @for (suggestion of filteredOptions | async; track $index) {\r\n <mat-option\r\n [value]=\"suggestion[option]\"\r\n title=\"{{ suggestion[option] }} {{\r\n extraInfo ? '(' + suggestion[extraInfo] + ')' : ''\r\n }}\"\r\n (onSelectionChange)=\"emit($event, suggestion)\"\r\n >\r\n <span>{{ suggestion[option] }}</span>\r\n @if (extraInfo) {\r\n <span class=\"mat-option-span-extra\">{{ suggestion[extraInfo] }}</span>\r\n }\r\n </mat-option>\r\n }\r\n @if (notSuggestions) {\r\n <mat-option>\r\n <span class=\"tak-autocomplete-not-records\"> No se encuentran resultados </span>\r\n </mat-option>\r\n }\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n}\r\n","/*\r\n * Public API Surface of @kato-lee/components/fields\r\n */\r\n\r\nexport * from './error/error-equals.pipe';\r\nexport * from './error/error.component';\r\nexport * from './error/error.msg.pipe';\r\nexport * from './fields.common';\r\nexport * from './fields.module';\r\nexport * from './fields.validators';\r\nexport * from './select-field/select-field.component';\r\nexport * from './date-field/date-field.component';\r\nexport * from './autocomplete-field/autocomplete-field.component';\r\nexport * from './general-field/general-field.component';\r\nexport * from './money-field/money-field.component';\r\nexport * from './text-area/textarea.component';\r\nexport * from './date-range-field/date-range-field.component';\r\nexport * from './number-field/number-field.component';\r\nexport * from './remote-autocomplete-field/remote-autocomplete-field.component';\r\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","i1","i7","i11"],"mappings":"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"}
|