import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Optional, Output, forwardRef, } from '@angular/core';
import { AsyncPipe, NgClass } from '@angular/common';
import { provideControlContainer, provideValueAccessor } from '../utils/form.util';
import { FormGenericComponent } from '../../services/form-generic.abstract';
import { FormErrorComponent } from '../error/error.component';
import { LabelComponent } from '../label/label.component';
import { IconComponent } from '../../components/atoms/icon/icon.component';
import { BehaviorSubject } from 'rxjs';
import * as i0 from "@angular/core";
import * as i1 from "@angular/forms";
export class InputComponent extends FormGenericComponent {
onFocusOut() {
this.triggerTouched();
}
constructor(formGroupDirective) {
super(formGroupDirective);
this.formGroupDirective = formGroupDirective;
this.key = '';
this.type = 'text';
this.value = '';
this.label = '';
this.icon = '';
this.helper = '';
this.placeholder = '';
this.symbol = '';
this.canDelete = false;
this.fullSize = true;
this.showError = false;
this.iconPosition = 'left';
this.disposition = 'vertical';
this.typed = new EventEmitter();
this.showDelete$ = new BehaviorSubject(false);
}
input(event) {
const value = event.target.value;
if (this.canDelete) {
this.showDelete$.next(!!value);
}
this.setValue(value);
}
clearValue() {
this.showDelete$.next(false);
this.triggerTouched();
this.setValue(null);
}
setValue(value, propagate = true) {
this.value = value;
if (propagate) {
this.triggerChange(value);
this.typed.emit(value);
}
}
writeValue(value) {
if (value && this.canDelete)
this.showDelete$.next(true);
this.triggerMarkCheck();
this.setValue(value, false);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: InputComponent, deps: [{ token: i1.FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: InputComponent, isStandalone: true, selector: "ct-input", inputs: { formControlName: "formControlName", key: "key", type: "type", value: "value", label: "label", icon: "icon", helper: "helper", placeholder: "placeholder", symbol: "symbol", canDelete: "canDelete", fullSize: "fullSize", showError: "showError", min: "min", max: "max", iconPosition: "iconPosition", disposition: "disposition" }, outputs: { typed: "typed" }, host: { listeners: { "focusout": "onFocusOut()" } }, providers: [provideValueAccessor(forwardRef(() => InputComponent))], usesInheritance: true, ngImport: i0, template: "
\n @if (label) {\n
\n }\n
\n \n @if (icon) {\n \n }\n @if (symbol) {\n {{ symbol }}\n }\n @if (showDelete$ | async) {\n \n }\n
\n @if (formControl) {\n
\n }\n
\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: LabelComponent, selector: "ct-form-label", inputs: ["text", "type", "formControlName", "hasError", "showError"] }, { kind: "component", type: IconComponent, selector: "ct-icon", inputs: ["icon", "fill", "strokeWidth", "strokeColor", "size", "variant"] }, { kind: "component", type: FormErrorComponent, selector: "ct-form-alert", inputs: ["errors", "size", "hasErrors", "fullSize", "helper", "errorMessages"] }], viewProviders: [provideControlContainer()], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: InputComponent, decorators: [{
type: Component,
args: [{ selector: 'ct-input', standalone: true, imports: [NgClass, AsyncPipe, LabelComponent, IconComponent, FormErrorComponent], providers: [provideValueAccessor(forwardRef(() => InputComponent))], viewProviders: [provideControlContainer()], changeDetection: ChangeDetectionStrategy.OnPush, template: "\n @if (label) {\n
\n }\n
\n \n @if (icon) {\n \n }\n @if (symbol) {\n {{ symbol }}\n }\n @if (showDelete$ | async) {\n \n }\n
\n @if (formControl) {\n
\n }\n
\n" }]
}], ctorParameters: () => [{ type: i1.FormGroupDirective, decorators: [{
type: Optional
}] }], propDecorators: { formControlName: [{
type: Input
}], key: [{
type: Input
}], type: [{
type: Input
}], value: [{
type: Input
}], label: [{
type: Input
}], icon: [{
type: Input
}], helper: [{
type: Input
}], placeholder: [{
type: Input
}], symbol: [{
type: Input
}], canDelete: [{
type: Input
}], fullSize: [{
type: Input
}], showError: [{
type: Input
}], min: [{
type: Input
}], max: [{
type: Input
}], iconPosition: [{
type: Input
}], disposition: [{
type: Input
}], typed: [{
type: Output
}], onFocusOut: [{
type: HostListener,
args: ['focusout']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2lyY2xldG9uZS9zcmMvbGliL2Zvcm1zL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpcmNsZXRvbmUvc3JjL2xpYi9mb3Jtcy9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBV3ZDLE1BQU0sT0FBTyxjQUFlLFNBQVEsb0JBQW9CO0lBd0J0RCxVQUFVO1FBQ1IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxZQUEyQyxrQkFBc0M7UUFDL0UsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFEZSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBMUJ4RSxRQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ1QsU0FBSSxH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RyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksS0FBSztzQkFBZCxNQUFNO2dCQUtQLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBwcm92aWRlQ29udHJvbENvbnRhaW5lciwgcHJvdmlkZVZhbHVlQWNjZXNzb3IgfSBmcm9tICcuLi91dGlscy9mb3JtLnV0aWwnO1xuaW1wb3J0IHsgRm9ybUdlbmVyaWNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLWdlbmVyaWMuYWJzdHJhY3QnO1xuaW1wb3J0IHsgRm9ybUVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi4vZXJyb3IvZXJyb3IuY29tcG9uZW50JztcbmltcG9ydCB7IExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vbGFiZWwvbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWwvY29tcG9uZW50cy9jb21wb25lbnQtcG9zaXRpb24udHlwZSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9hdG9tcy9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudERpc3Bvc2l0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWwvY29tcG9uZW50cy9jb21wb25lbnQtZGlzcG9zaXRpb24uZW51bSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3QtaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdDbGFzcywgQXN5bmNQaXBlLCBMYWJlbENvbXBvbmVudCwgSWNvbkNvbXBvbmVudCwgRm9ybUVycm9yQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbcHJvdmlkZVZhbHVlQWNjZXNzb3IoZm9yd2FyZFJlZigoKSA9PiBJbnB1dENvbXBvbmVudCkpXSxcbiAgdmlld1Byb3ZpZGVyczogW3Byb3ZpZGVDb250cm9sQ29udGFpbmVyKCldLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBGb3JtR2VuZXJpY0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGZvcm1Db250cm9sTmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkga2V5ID0gJyc7XG4gIEBJbnB1dCgpIHR5cGU6ICdwYXNzd29yZCcgfCAndGV4dCcgfCAnbnVtYmVyJyA9ICd0ZXh0JztcbiAgQElucHV0KCkgdmFsdWU6IGFueSA9ICcnO1xuXG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIGljb24gPSAnJztcbiAgQElucHV0KCkgaGVscGVyID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIHN5bWJvbCA9ICcnO1xuICBASW5wdXQoKSBjYW5EZWxldGUgPSBmYWxzZTtcbiAgQElucHV0KCkgZnVsbFNpemUgPSB0cnVlO1xuICBASW5wdXQoKSBzaG93RXJyb3IgPSBmYWxzZTtcbiAgQElucHV0KCkgbWluITogbnVtYmVyO1xuICBASW5wdXQoKSBtYXghOiBudW1iZXI7XG4gIEBJbnB1dCgpIGljb25Qb3NpdGlvbjogQ29tcG9uZW50UG9zaXRpb24gPSAnbGVmdCc7XG4gIEBJbnB1dCgpIGRpc3Bvc2l0aW9uOiBDb21wb25lbnREaXNwb3NpdGlvbiA9ICd2ZXJ0aWNhbCc7XG5cbiAgQE91dHB1dCgpIHR5cGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgc2hvd0RlbGV0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcpXG4gIG9uRm9jdXNPdXQoKSB7XG4gICAgdGhpcy50cmlnZ2VyVG91Y2hlZCgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJvdGVjdGVkIG92ZXJyaWRlIGZvcm1Hcm91cERpcmVjdGl2ZTogRm9ybUdyb3VwRGlyZWN0aXZlKSB7XG4gICAgc3VwZXIoZm9ybUdyb3VwRGlyZWN0aXZlKTtcbiAgfVxuXG4gIGlucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICBpZiAodGhpcy5jYW5EZWxldGUpIHtcbiAgICAgIHRoaXMuc2hvd0RlbGV0ZSQubmV4dCghIXZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBjbGVhclZhbHVlKCkge1xuICAgIHRoaXMuc2hvd0RlbGV0ZSQubmV4dChmYWxzZSk7XG4gICAgdGhpcy50cmlnZ2VyVG91Y2hlZCgpO1xuICAgIHRoaXMuc2V0VmFsdWUobnVsbCk7XG4gIH1cblxuICBzZXRWYWx1ZSh2YWx1ZTogYW55LCBwcm9wYWdhdGUgPSB0cnVlKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIGlmIChwcm9wYWdhdGUpIHtcbiAgICAgIHRoaXMudHJpZ2dlckNoYW5nZSh2YWx1ZSk7XG4gICAgICB0aGlzLnR5cGVkLmVtaXQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSAmJiB0aGlzLmNhbkRlbGV0ZSkgdGhpcy5zaG93RGVsZXRlJC5uZXh0KHRydWUpO1xuICAgIHRoaXMudHJpZ2dlck1hcmtDaGVjaygpO1xuICAgIHRoaXMuc2V0VmFsdWUodmFsdWUsIGZhbHNlKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImZsZXhcIlxuICBbY2xhc3Mudy1maXRdPVwiIWZ1bGxTaXplXCJcbiAgW2NsYXNzLnctZnVsbF09XCJmdWxsU2l6ZVwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnaXRlbXMtY2VudGVyIGdhcC00JzogZGlzcG9zaXRpb24gPT09ICdob3Jpem9udGFsJyxcbiAgICAnZmxleC1jb2wgZ2FwLTAuNSBpdGVtcy1zdGFydCc6IGRpc3Bvc2l0aW9uID09PSAndmVydGljYWwnXG4gIH1cIj5cbiAgQGlmIChsYWJlbCkge1xuICAgIDxjdC1mb3JtLWxhYmVsIFt0ZXh0XT1cImxhYmVsXCIgW2hhc0Vycm9yXT1cImhhc0Vycm9ycyhmb3JtQ29udHJvbClcIiBbc2hvd0Vycm9yXT1cInNob3dFcnJvclwiIC8+XG4gIH1cbiAgPGRpdlxuICAgIGNsYXNzPVwicmVsYXRpdmUgaW5saW5lLWJsb2NrIHJvdW5kZWQtbWQgdGV4dC1vbi1zdXJmYWNlIGRhcms6dGV4dC1vbi1zdXJmYWNlLWRhcmtcIlxuICAgIFtjbGFzcy53LWZpdF09XCIhZnVsbFNpemVcIlxuICAgIFtjbGFzcy53LWZ1bGxdPVwiZnVsbFNpemVcIj5cbiAgICA8aW5wdXRcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgIFttaW5dPVwibWluXCJcbiAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgIGNsYXNzPVwiaC05IHJvdW5kZWQtbWQgYm9yZGVyIGJnLXByaW1hcnktNTAgZm9udC1wcmltYXJ5IHRleHQtc20gb3V0bGluZS1wcmltYXJ5IGhvdmVyOmJvcmRlci1uZXV0cmFsLTYwMCBkYXJrOmJnLXByaW1hcnktOTUwIGRhcms6b3V0bGluZS1wcmltYXJ5LWRhcmsgZm9jdXM6ZGFyazpib3JkZXItcHJpbWFyeS1kYXJrXCJcbiAgICAgIFtjbGFzcy5weC00XT1cIiFpY29uIHx8ICFzeW1ib2xcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAncHgtNCc6ICFpY29uLFxuICAgICAgICAncHItNCBwbC0xMCc6IGljb24gJiYgaWNvblBvc2l0aW9uID09PSAnbGVmdCcsXG4gICAgICAgICdwbC00IHByLTEwJzogKGljb24gJiYgaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB8fCBzeW1ib2wgfHwgY2FuRGVsZXRlXG4gICAgICB9XCJcbiAgICAgIFtjbGFzcy53LWZpdF09XCIhZnVsbFNpemVcIlxuICAgICAgW2NsYXNzLnctZnVsbF09XCJmdWxsU2l6ZVwiXG4gICAgICBbY2xhc3MuYm9yZGVyLW5ldXRyYWwtMzAwXT1cIiFoYXNFcnJvcnMoZm9ybUNvbnRyb2wpIHx8ICFzaG93RXJyb3JcIlxuICAgICAgW2NsYXNzLmJvcmRlci1lcnJvcl09XCJoYXNFcnJvcnMoZm9ybUNvbnRyb2wpICYmIHNob3dFcnJvclwiXG4gICAgICBbY2xhc3MuYm9yZGVyLXN1Y2Nlc3NdPVwiZm9ybUNvbnRyb2wgJiYgZm9ybUNvbnRyb2wudmFsaWQgJiYgc2hvd0Vycm9yXCJcbiAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgKGlucHV0KT1cImlucHV0KCRldmVudClcIiAvPlxuICAgIEBpZiAoaWNvbikge1xuICAgICAgPGN0LWljb25cbiAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMlwiXG4gICAgICAgIFtjbGFzcy5sZWZ0LTNdPVwiaWNvblBvc2l0aW9uID09PSAnbGVmdCdcIlxuICAgICAgICBbY2xhc3MucmlnaHQtM109XCJpY29uUG9zaXRpb24gPT09ICdyaWdodCdcIlxuICAgICAgICBbaWNvbl09XCJpY29uXCIgLz5cbiAgICB9XG4gICAgQGlmIChzeW1ib2wpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwiYWJzb2x1dGUgcmlnaHQtMyB0b3AtMi41IHRleHQteHMgdGV4dC1uZXV0cmFsLTYwMCBkYXJrOnRleHQtbmV1dHJhbC0zMDBcIj57eyBzeW1ib2wgfX08L3NwYW4+XG4gICAgfVxuICAgIEBpZiAoc2hvd0RlbGV0ZSQgfCBhc3luYykge1xuICAgICAgPGN0LWljb24gY2xhc3M9XCJhYnNvbHV0ZSByaWdodC0zIHRvcC0yLjUgY3Vyc29yLXBvaW50ZXJcIiBpY29uPVwieC1tYXJrXCIgc2l6ZT1cInNtXCIgKGNsaWNrKT1cImNsZWFyVmFsdWUoKVwiIC8+XG4gICAgfVxuICA8L2Rpdj5cbiAgQGlmIChmb3JtQ29udHJvbCkge1xuICAgIDxjdC1mb3JtLWFsZXJ0XG4gICAgICBbZnVsbFNpemVdPVwiZnVsbFNpemVcIlxuICAgICAgW2hhc0Vycm9yc109XCJoYXNFcnJvcnMoZm9ybUNvbnRyb2wpXCJcbiAgICAgIFtoZWxwZXJdPVwiaGVscGVyXCJcbiAgICAgIFtlcnJvcnNdPVwiZm9ybUNvbnRyb2wuZXJyb3JzID8/IHt9XCJcbiAgICAgIHNpemU9XCJ4c1wiIC8+XG4gIH1cbjwvZGl2PlxuIl19