@kato-lee/components 1.1.4 → 3.0.0
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/README.md +1 -1
- package/assets/_fields.scss +82 -21
- package/assets/_grids.scss +8 -0
- package/assets/assets.scss +4 -0
- package/assets/bundle.css +1 -0
- package/assets/{themes/_default.scss → colors.scss} +7 -6
- package/assets/components/_checkbox.scss +11 -0
- package/assets/components/_fields.scss +53 -13
- package/assets/components/_scroll-bar.scss +8 -0
- package/assets/components/_snack-bar.scss +21 -10
- package/assets/components/_tables.scss +75 -84
- package/assets/components/main.scss +9 -10
- package/assets/material/theme.scss +91 -0
- package/box-form/index.d.ts +51 -3
- package/box-form/package.json +3 -0
- package/capsule/index.d.ts +25 -2
- package/capsule/package.json +3 -0
- package/cards/index.d.ts +18 -2
- package/cards/package.json +3 -0
- package/dialogs/index.d.ts +18 -2
- package/dialogs/package.json +3 -0
- package/fesm2022/kato-lee-components-box-form.mjs +19 -19
- package/fesm2022/kato-lee-components-box-form.mjs.map +1 -1
- package/fesm2022/kato-lee-components-capsule.mjs +8 -8
- package/fesm2022/kato-lee-components-capsule.mjs.map +1 -1
- package/fesm2022/kato-lee-components-cards.mjs +8 -8
- package/fesm2022/kato-lee-components-cards.mjs.map +1 -1
- package/fesm2022/kato-lee-components-dialogs.mjs +17 -17
- package/fesm2022/kato-lee-components-dialogs.mjs.map +1 -1
- package/fesm2022/kato-lee-components-fields.mjs +76 -80
- package/fesm2022/kato-lee-components-fields.mjs.map +1 -1
- package/fesm2022/kato-lee-components-modal.mjs +24 -20
- package/fesm2022/kato-lee-components-modal.mjs.map +1 -1
- package/fesm2022/kato-lee-components-pretty-box.mjs +4 -4
- package/fesm2022/kato-lee-components-pretty-box.mjs.map +1 -1
- package/fesm2022/kato-lee-components-tables.mjs +65 -25
- package/fesm2022/kato-lee-components-tables.mjs.map +1 -1
- package/fesm2022/kato-lee-components-toast.mjs +4 -4
- package/fesm2022/kato-lee-components-toast.mjs.map +1 -1
- package/fields/index.d.ts +464 -15
- package/fields/package.json +3 -0
- package/index.d.ts +2 -1
- package/modal/index.d.ts +66 -4
- package/modal/package.json +3 -0
- package/package.json +11 -28
- package/pretty-box/index.d.ts +27 -1
- package/pretty-box/package.json +3 -0
- package/tables/index.d.ts +27 -3
- package/tables/package.json +3 -0
- package/toast/index.d.ts +25 -1
- package/toast/package.json +3 -0
- package/assets/components/_material.scss +0 -15
- package/assets/main.scss +0 -4
- package/assets/material/themes/dark.scss +0 -52
- package/assets/material/themes/default.scss +0 -105
- package/assets/material/themes/main.scss +0 -2907
- package/assets/themes/_dark.scss +0 -16
- package/assets/themes/main.scss +0 -2
- package/assets/variables.scss +0 -7
- package/box-form/common.d.ts +0 -5
- package/box-form/component.d.ts +0 -34
- package/box-form/module.d.ts +0 -8
- package/capsule/component.d.ts +0 -14
- package/capsule/module.d.ts +0 -8
- package/cards/component.d.ts +0 -8
- package/cards/module.d.ts +0 -8
- package/dialogs/dismiss-dialog-button.component.d.ts +0 -8
- package/dialogs/module.d.ts +0 -8
- package/esm2022/box-form/common.mjs +0 -2
- package/esm2022/box-form/component.mjs +0 -112
- package/esm2022/box-form/index.mjs +0 -7
- package/esm2022/box-form/kato-lee-components-box-form.mjs +0 -5
- package/esm2022/box-form/module.mjs +0 -17
- package/esm2022/capsule/component.mjs +0 -78
- package/esm2022/capsule/index.mjs +0 -6
- package/esm2022/capsule/kato-lee-components-capsule.mjs +0 -5
- package/esm2022/capsule/module.mjs +0 -17
- package/esm2022/cards/component.mjs +0 -48
- package/esm2022/cards/index.mjs +0 -6
- package/esm2022/cards/kato-lee-components-cards.mjs +0 -5
- package/esm2022/cards/module.mjs +0 -18
- package/esm2022/dialogs/dismiss-dialog-button.component.mjs +0 -46
- package/esm2022/dialogs/index.mjs +0 -6
- package/esm2022/dialogs/kato-lee-components-dialogs.mjs +0 -5
- package/esm2022/dialogs/module.mjs +0 -18
- package/esm2022/fields/autocomplete/component.mjs +0 -259
- package/esm2022/fields/common.mjs +0 -11
- package/esm2022/fields/date/component.mjs +0 -163
- package/esm2022/fields/date-range/component.mjs +0 -85
- package/esm2022/fields/error/component.mjs +0 -57
- package/esm2022/fields/error/error-equals.pipe.mjs +0 -19
- package/esm2022/fields/error/error.msg.pipe.mjs +0 -19
- package/esm2022/fields/error/lang/_en.mjs +0 -12
- package/esm2022/fields/error/lang/_es.mjs +0 -12
- package/esm2022/fields/error/lang/index.mjs +0 -3
- package/esm2022/fields/general/component.mjs +0 -202
- package/esm2022/fields/index.mjs +0 -19
- package/esm2022/fields/kato-lee-components-fields.mjs +0 -5
- package/esm2022/fields/module.mjs +0 -82
- package/esm2022/fields/money/component.mjs +0 -202
- package/esm2022/fields/number/component.mjs +0 -179
- package/esm2022/fields/remote-autocomplete/component.mjs +0 -188
- package/esm2022/fields/select/component.mjs +0 -158
- package/esm2022/fields/text-area/component.mjs +0 -186
- package/esm2022/fields/validators.mjs +0 -11
- package/esm2022/index.mjs +0 -2
- package/esm2022/kato-lee-components.mjs +0 -5
- package/esm2022/modal/component.mjs +0 -66
- package/esm2022/modal/config.mjs +0 -2
- package/esm2022/modal/index.mjs +0 -8
- package/esm2022/modal/kato-lee-components-modal.mjs +0 -5
- package/esm2022/modal/module.mjs +0 -17
- package/esm2022/modal/service.mjs +0 -33
- package/esm2022/pretty-box/component.mjs +0 -94
- package/esm2022/pretty-box/index.mjs +0 -5
- package/esm2022/pretty-box/kato-lee-components-pretty-box.mjs +0 -5
- package/esm2022/tables/index.mjs +0 -7
- package/esm2022/tables/kato-lee-components-tables.mjs +0 -5
- package/esm2022/tables/mat-paginator.translation.mjs +0 -22
- package/esm2022/tables/module.mjs +0 -22
- package/esm2022/tables/no-records.component.mjs +0 -58
- package/esm2022/toast/index.mjs +0 -5
- package/esm2022/toast/kato-lee-components-toast.mjs +0 -5
- package/esm2022/toast/service.mjs +0 -42
- package/fields/autocomplete/component.d.ts +0 -65
- package/fields/common.d.ts +0 -8
- package/fields/date/component.d.ts +0 -46
- package/fields/date-range/component.d.ts +0 -23
- package/fields/error/component.d.ts +0 -22
- package/fields/error/error-equals.pipe.d.ts +0 -7
- package/fields/error/error.msg.pipe.d.ts +0 -7
- package/fields/error/lang/_en.d.ts +0 -1
- package/fields/error/lang/_es.d.ts +0 -1
- package/fields/error/lang/index.d.ts +0 -2
- package/fields/general/component.d.ts +0 -56
- package/fields/module.d.ts +0 -19
- package/fields/money/component.d.ts +0 -53
- package/fields/number/component.d.ts +0 -52
- package/fields/remote-autocomplete/component.d.ts +0 -43
- package/fields/select/component.d.ts +0 -44
- package/fields/text-area/component.d.ts +0 -55
- package/fields/validators.d.ts +0 -9
- package/modal/component.d.ts +0 -35
- package/modal/config.d.ts +0 -9
- package/modal/module.d.ts +0 -8
- package/modal/service.d.ts +0 -13
- package/pretty-box/component.d.ts +0 -24
- package/tables/mat-paginator.translation.d.ts +0 -2
- package/tables/module.d.ts +0 -10
- package/tables/no-records.component.d.ts +0 -12
- package/toast/service.d.ts +0 -21
|
@@ -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/component.ts","../../../libraries/components/fields/error/component.html","../../../libraries/components/fields/common.ts","../../../libraries/components/fields/select/component.ts","../../../libraries/components/fields/select/component.html","../../../libraries/components/fields/date/component.ts","../../../libraries/components/fields/date/component.html","../../../libraries/components/fields/autocomplete/component.ts","../../../libraries/components/fields/autocomplete/component.html","../../../libraries/components/fields/date-range/component.ts","../../../libraries/components/fields/date-range/component.html","../../../libraries/components/fields/money/component.ts","../../../libraries/components/fields/money/component.html","../../../libraries/components/fields/general/component.ts","../../../libraries/components/fields/general/component.html","../../../libraries/components/fields/number/component.ts","../../../libraries/components/fields/number/component.html","../../../libraries/components/fields/text-area/component.ts","../../../libraries/components/fields/text-area/component.html","../../../libraries/components/fields/remote-autocomplete/component.ts","../../../libraries/components/fields/remote-autocomplete/component.html","../../../libraries/components/fields/module.ts","../../../libraries/components/fields/validators.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({ standalone: true, 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({ standalone: true, 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 { CommonModule } from '@angular/common';\r\nimport { ElementRef, Component, ViewChild, Input } from '@angular/core';\r\nimport { FormControl, ValidationErrors } from '@angular/forms';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { TakErrorEqualsPipe } from './error-equals.pipe';\r\nimport { TakErrorMsgPipe } from './error.msg.pipe';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [FormsModule, CommonModule, TakErrorEqualsPipe, TakErrorMsgPipe, ReactiveFormsModule],\r\n selector: 'tak-error',\r\n templateUrl: './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 {\r\n ControlValueAccessor,\r\n FormControl,\r\n FormGroupDirective,\r\n FormsModule,\r\n NgControl,\r\n ReactiveFormsModule,\r\n} 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 '../common';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatFormFieldModule } from '@kato-lee/material/form-field';\r\nimport { MatTooltipModule } from '@kato-lee/material/tooltip';\r\nimport { TakErrorComponent } from '../error/component';\r\nimport { MatSelectModule } from '@kato-lee/material/select';\r\nimport { MatButtonModule } from '@kato-lee/material/button';\r\nimport { MatOptionModule } from '@kato-lee/material/core';\r\nimport { MatInputModule } from '@kato-lee/material/input';\r\nimport { MatIconModule } from '@kato-lee/material/icon';\r\nimport { MatMenuModule } from '@kato-lee/material/menu';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n MatTooltipModule,\r\n MatMenuModule,\r\n MatSelectModule,\r\n MatOptionModule,\r\n TakErrorComponent,\r\n FormsModule,\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatInputModule,\r\n ],\r\n selector: 'tak-select-field',\r\n templateUrl: './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 /></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 { MAT_DATE_LOCALE, MatNativeDateModule, ThemePalette } from '@kato-lee/material/core';\r\nimport { MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport {\r\n ControlValueAccessor,\r\n FormControl,\r\n FormGroupDirective,\r\n FormsModule,\r\n NgControl,\r\n ReactiveFormsModule,\r\n} from '@angular/forms';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM, TakAutocompleteFieldType } from '../common';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatDatepickerModule } from '@kato-lee/material/datepicker';\r\nimport { MatFormFieldModule } from '@kato-lee/material/form-field';\r\nimport { TakErrorComponent } from '../error/component';\r\nimport { MatInputModule } from '@kato-lee/material/input';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n TakErrorComponent,\r\n FormsModule,\r\n CommonModule,\r\n MatNativeDateModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatDatepickerModule,\r\n MatInputModule,\r\n ],\r\n providers: [{ provide: MAT_DATE_LOCALE, useValue: 'es-ES' }],\r\n selector: 'tak-date-field',\r\n templateUrl: './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 />{{ ' ' }}\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 {\r\n ControlValueAccessor,\r\n FormGroupDirective,\r\n FormControl,\r\n NgControl,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n} 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 '../common';\r\nimport { CommonModule } from '@angular/common';\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 { TakErrorComponent } from '../error/component';\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\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n FormsModule,\r\n CommonModule,\r\n TakErrorComponent,\r\n ReactiveFormsModule,\r\n MatProgressSpinnerModule,\r\n MatFormFieldModule,\r\n MatButtonModule,\r\n MatAutocompleteModule,\r\n MatIconModule,\r\n MatInputModule,\r\n ],\r\n selector: 'tak-autocomplete-field',\r\n templateUrl: './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 />{{ ' ' }}\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 { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { MAT_DATE_LOCALE, MatNativeDateModule, ThemePalette } from '@kato-lee/material/core';\r\nimport { TakAutocompleteFieldType, TAK_DEFAULT_APPEARANCE_FORM } from '../common';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatDatepickerModule } from '@kato-lee/material/datepicker';\r\nimport { MatFormFieldModule } from '@kato-lee/material/form-field';\r\nimport { TakErrorComponent } from '../error/component';\r\nimport { MatInputModule } from '@kato-lee/material/input';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n TakErrorComponent,\r\n FormsModule,\r\n CommonModule,\r\n MatNativeDateModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatDatepickerModule,\r\n MatInputModule,\r\n ],\r\n providers: [{ provide: MAT_DATE_LOCALE, useValue: 'es-ES' }],\r\n selector: 'tak-date-range-field',\r\n templateUrl: './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 />\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 FormsModule,\r\n ReactiveFormsModule,\r\n} from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM } from '../common';\r\nimport { FloatLabelType, MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { ThemePalette } from '@kato-lee/material/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatFormFieldModule } from '@kato-lee/material/form-field';\r\nimport { TakErrorComponent } from '../error/component';\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\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n TakErrorComponent,\r\n FormsModule,\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatInputModule,\r\n ],\r\n selector: 'tak-money-field',\r\n templateUrl: './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 />{{ ' ' }}\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 FormsModule,\r\n ReactiveFormsModule,\r\n} from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM, TakGeneralFieldType } from '../common';\r\nimport { FloatLabelType, MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { ThemePalette } from '@kato-lee/material/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatFormFieldModule } from '@kato-lee/material/form-field';\r\nimport { TakErrorComponent } from '../error/component';\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\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n TakErrorComponent,\r\n FormsModule,\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatInputModule,\r\n ],\r\n selector: 'tak-general-field',\r\n templateUrl: './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 />{{ ' ' }}\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 FormsModule,\r\n ReactiveFormsModule,\r\n} from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM } from '../common';\r\nimport { FloatLabelType, MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { ThemePalette } from '@kato-lee/material/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatFormFieldModule } from '@kato-lee/material/form-field';\r\nimport { TakErrorComponent } from '../error/component';\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\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n TakErrorComponent,\r\n FormsModule,\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatInputModule,\r\n ],\r\n selector: 'tak-number-field',\r\n templateUrl: './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 />{{ ' ' }}\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 {\r\n ControlValueAccessor,\r\n FormGroupDirective,\r\n FormControl,\r\n NgControl,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n} from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM } from '../common';\r\nimport { FloatLabelType, MatFormFieldAppearance } from '@kato-lee/material/form-field';\r\nimport { ThemePalette } from '@kato-lee/material/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatFormFieldModule } from '@kato-lee/material/form-field';\r\nimport { TakErrorComponent } from '../error/component';\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\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n TakErrorComponent,\r\n FormsModule,\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatInputModule,\r\n ],\r\n selector: 'tak-textarea',\r\n templateUrl: './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 />{{ ' ' }}\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 {\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 '../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: './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 />{{ ' ' }}\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","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { MAT_DATE_LOCALE, MatNativeDateModule } from '@kato-lee/material/core';\r\nimport { TakSelectFieldComponent } from './select/component';\r\nimport { TakDateFieldComponent } from './date/component';\r\nimport { TakAutocompleteFieldComponent } from './autocomplete/component';\r\nimport { MatAutocompleteModule } from '@kato-lee/material/autocomplete';\r\nimport { TakDateRangeFieldComponent } from './date-range/component';\r\nimport { TakMoneyFieldComponent } from './money/component';\r\nimport { TakGeneralFieldComponent } from './general/component';\r\nimport { TakNumberFieldComponent } from './number/component';\r\nimport { TakTextareaComponent } from './text-area/component';\r\nimport { TakRemoteAutocompleteFieldComponent } from './remote-autocomplete/component';\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/** @deprecated Use standalone */\r\n@NgModule({\r\n imports: [\r\n ...components,\r\n ReactiveFormsModule,\r\n MatAutocompleteModule,\r\n FormsModule,\r\n MatNativeDateModule,\r\n TakRemoteAutocompleteFieldComponent,\r\n ],\r\n exports: [\r\n ReactiveFormsModule,\r\n MatAutocompleteModule,\r\n FormsModule,\r\n MatNativeDateModule,\r\n TakRemoteAutocompleteFieldComponent,\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 './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","/*\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/component';\r\nexport * from './error/error.msg.pipe';\r\nexport * from './common';\r\nexport * from './module';\r\nexport * from './validators';\r\nexport * from './select/component';\r\nexport * from './date/component';\r\nexport * from './autocomplete/component';\r\nexport * from './general/component';\r\nexport * from './money/component';\r\nexport * from './text-area/component';\r\nexport * from './date-range/component';\r\nexport * from './number/component';\r\nexport * from './remote-autocomplete/component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["lang.es","i4","i7","i8","i2","takeUntil","i3","i6","i9","i5","i1","i11"],"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/component.ts","../../../libraries/components/fields/error/component.html","../../../libraries/components/fields/common.ts","../../../libraries/components/fields/select/component.ts","../../../libraries/components/fields/select/component.html","../../../libraries/components/fields/date/component.ts","../../../libraries/components/fields/date/component.html","../../../libraries/components/fields/autocomplete/component.ts","../../../libraries/components/fields/autocomplete/component.html","../../../libraries/components/fields/date-range/component.ts","../../../libraries/components/fields/date-range/component.html","../../../libraries/components/fields/money/component.ts","../../../libraries/components/fields/money/component.html","../../../libraries/components/fields/general/component.ts","../../../libraries/components/fields/general/component.html","../../../libraries/components/fields/number/component.ts","../../../libraries/components/fields/number/component.html","../../../libraries/components/fields/text-area/component.ts","../../../libraries/components/fields/text-area/component.html","../../../libraries/components/fields/remote-autocomplete/component.ts","../../../libraries/components/fields/remote-autocomplete/component.html","../../../libraries/components/fields/module.ts","../../../libraries/components/fields/validators.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({ standalone: true, 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({ standalone: true, 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 { CommonModule } from '@angular/common';\r\nimport { ElementRef, Component, ViewChild, Input } from '@angular/core';\r\nimport { FormControl, ValidationErrors } from '@angular/forms';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { TakErrorEqualsPipe } from './error-equals.pipe';\r\nimport { TakErrorMsgPipe } from './error.msg.pipe';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [FormsModule, CommonModule, TakErrorEqualsPipe, TakErrorMsgPipe, ReactiveFormsModule],\r\n selector: 'tak-error',\r\n templateUrl: './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 '@angular/cdk/keycodes';\r\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\r\n\r\nexport const TAK_DEFAULT_APPEARANCE_FORM: MatFormFieldAppearance = 'fill';\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 {\r\n ControlValueAccessor,\r\n FormControl,\r\n FormGroupDirective,\r\n FormsModule,\r\n NgControl,\r\n ReactiveFormsModule,\r\n} from '@angular/forms';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\r\nimport { MatOptionSelectionChange, ThemePalette } from '@angular/material/core';\r\nimport { TakAutocompleteFieldType, TAK_DEFAULT_APPEARANCE_FORM } from '../common';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { TakErrorComponent } from '../error/component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n MatTooltipModule,\r\n MatMenuModule,\r\n MatSelectModule,\r\n MatOptionModule,\r\n TakErrorComponent,\r\n FormsModule,\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatInputModule,\r\n ],\r\n selector: 'tak-select-field',\r\n templateUrl: './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 /></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\r\n mat-icon-button\r\n color=\"no-theme\"\r\n type=\"button\"\r\n [matMenuTriggerFor]=\"menu\"\r\n [disabled]=\"isDisabled\"\r\n >\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 { MAT_DATE_LOCALE, MatNativeDateModule, ThemePalette } from '@angular/material/core';\r\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\r\nimport {\r\n ControlValueAccessor,\r\n FormControl,\r\n FormGroupDirective,\r\n FormsModule,\r\n NgControl,\r\n ReactiveFormsModule,\r\n} from '@angular/forms';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM, TakAutocompleteFieldType } from '../common';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { TakErrorComponent } from '../error/component';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n TakErrorComponent,\r\n FormsModule,\r\n CommonModule,\r\n MatNativeDateModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatDatepickerModule,\r\n MatInputModule,\r\n ],\r\n providers: [{ provide: MAT_DATE_LOCALE, useValue: 'es-ES' }],\r\n selector: 'tak-date-field',\r\n templateUrl: './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 />{{ ' ' }} @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\" />\r\n }\r\n</div>\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</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 {\r\n ControlValueAccessor,\r\n FormGroupDirective,\r\n FormControl,\r\n NgControl,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n} from '@angular/forms';\r\nimport { debounceTime, map, Observable, Subject, takeUntil } from 'rxjs';\r\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\r\nimport { MatOptionSelectionChange, ThemePalette } from '@angular/material/core';\r\nimport {\r\n TakAutocompleteFieldType,\r\n TAK_DEFAULT_APPEARANCE_FORM,\r\n TAK_PRESS_ESC_KEY,\r\n} from '../common';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { TakErrorComponent } from '../error/component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n FormsModule,\r\n CommonModule,\r\n TakErrorComponent,\r\n ReactiveFormsModule,\r\n MatProgressSpinnerModule,\r\n MatFormFieldModule,\r\n MatButtonModule,\r\n MatAutocompleteModule,\r\n MatIconModule,\r\n MatInputModule,\r\n ],\r\n selector: 'tak-autocomplete-field',\r\n templateUrl: './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 />{{ ' ' }}\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 color=\"no-theme\" 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 color=\"no-theme\" 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 { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\r\nimport { MAT_DATE_LOCALE, MatNativeDateModule, ThemePalette } from '@angular/material/core';\r\nimport { TakAutocompleteFieldType, TAK_DEFAULT_APPEARANCE_FORM } from '../common';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { TakErrorComponent } from '../error/component';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n TakErrorComponent,\r\n FormsModule,\r\n CommonModule,\r\n MatNativeDateModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatDatepickerModule,\r\n MatInputModule,\r\n ],\r\n providers: [{ provide: MAT_DATE_LOCALE, useValue: 'es-ES' }],\r\n selector: 'tak-date-range-field',\r\n templateUrl: './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 />\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} @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) && !notInput) {\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 FormsModule,\r\n ReactiveFormsModule,\r\n} from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM } from '../common';\r\nimport { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { TakErrorComponent } from '../error/component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n TakErrorComponent,\r\n FormsModule,\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatInputModule,\r\n ],\r\n selector: 'tak-money-field',\r\n templateUrl: './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 />{{ ' ' }}\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 color=\"no-theme\" 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\r\n matSuffix\r\n mat-icon-button\r\n color=\"no-theme\"\r\n type=\"button\"\r\n (click)=\"onExecuteAction.emit(control.value)\"\r\n >\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 FormsModule,\r\n ReactiveFormsModule,\r\n} from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM, TakGeneralFieldType } from '../common';\r\nimport { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { TakErrorComponent } from '../error/component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n TakErrorComponent,\r\n FormsModule,\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatInputModule,\r\n ],\r\n selector: 'tak-general-field',\r\n templateUrl: './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 = '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() 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 = 'fill';\r\n this.floatLabel = 'auto';\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 />{{ ' ' }}\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 color=\"no-theme\" 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\r\n matSuffix\r\n mat-icon-button\r\n color=\"no-theme\"\r\n type=\"button\"\r\n (click)=\"onExecuteAction.emit(control.value)\"\r\n >\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 color=\"no-theme\" 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 FormsModule,\r\n ReactiveFormsModule,\r\n} from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM } from '../common';\r\nimport { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { TakErrorComponent } from '../error/component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n TakErrorComponent,\r\n FormsModule,\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatInputModule,\r\n ],\r\n selector: 'tak-number-field',\r\n templateUrl: './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 />{{ ' ' }}\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 color=\"no-theme\" 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\r\n matSuffix\r\n mat-icon-button\r\n color=\"no-theme\"\r\n type=\"button\"\r\n (click)=\"onExecuteAction.emit(control.value)\"\r\n >\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 FormsModule,\r\n ReactiveFormsModule,\r\n} from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { TAK_DEFAULT_APPEARANCE_FORM } from '../common';\r\nimport { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { TakErrorComponent } from '../error/component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n TakErrorComponent,\r\n FormsModule,\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatInputModule,\r\n ],\r\n selector: 'tak-textarea',\r\n templateUrl: './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 />{{ ' ' }}\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 color=\"no-theme\" 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\r\n mat-icon-button\r\n color=\"no-theme\"\r\n type=\"button\"\r\n matSuffix\r\n (click)=\"onExecuteAction.emit(control.value)\"\r\n >\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 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 '@angular/material/progress-spinner';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { TAK_PRESS_ESC_KEY } from '../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: './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<any> {\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=\"fill\">\r\n <mat-label>\r\n <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 color=\"no-theme\"\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 color=\"no-theme\" 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 color=\"no-theme\" 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","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { MAT_DATE_LOCALE, MatNativeDateModule } from '@angular/material/core';\r\nimport { TakSelectFieldComponent } from './select/component';\r\nimport { TakDateFieldComponent } from './date/component';\r\nimport { TakAutocompleteFieldComponent } from './autocomplete/component';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { TakDateRangeFieldComponent } from './date-range/component';\r\nimport { TakMoneyFieldComponent } from './money/component';\r\nimport { TakGeneralFieldComponent } from './general/component';\r\nimport { TakNumberFieldComponent } from './number/component';\r\nimport { TakTextareaComponent } from './text-area/component';\r\nimport { TakRemoteAutocompleteFieldComponent } from './remote-autocomplete/component';\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/** @deprecated Use standalone */\r\n@NgModule({\r\n imports: [\r\n ...components,\r\n ReactiveFormsModule,\r\n MatAutocompleteModule,\r\n FormsModule,\r\n MatNativeDateModule,\r\n TakRemoteAutocompleteFieldComponent,\r\n ],\r\n exports: [\r\n ReactiveFormsModule,\r\n MatAutocompleteModule,\r\n FormsModule,\r\n MatNativeDateModule,\r\n TakRemoteAutocompleteFieldComponent,\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 './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","/*\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/component';\r\nexport * from './error/error.msg.pipe';\r\nexport * from './common';\r\nexport * from './module';\r\nexport * from './validators';\r\nexport * from './select/component';\r\nexport * from './date/component';\r\nexport * from './autocomplete/component';\r\nexport * from './general/component';\r\nexport * from './money/component';\r\nexport * from './text-area/component';\r\nexport * from './date-range/component';\r\nexport * from './number/component';\r\nexport * from './remote-autocomplete/component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["lang.es","i4","i5","i6","i2","takeUntil","i3","i7","i1","i8","i10"],"mappings":"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"}
|