{"version":3,"file":"taiga-ui-cdk-directives-native-validator.mjs","sources":["../../../projects/cdk/directives/native-validator/native-validator.directive.ts","../../../projects/cdk/directives/native-validator/taiga-ui-cdk-directives-native-validator.ts"],"sourcesContent":["import {Directive, Input} from '@angular/core';\nimport {type AbstractControl, NG_VALIDATORS, type Validator} from '@angular/forms';\nimport {tuiTakeUntilDestroyed, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement, tuiProvide} from '@taiga-ui/cdk/utils';\nimport {BehaviorSubject, delay, of, switchMap} from 'rxjs';\n\n@Directive({\n    standalone: true,\n    selector: '[tuiNativeValidator]',\n    providers: [tuiProvide(NG_VALIDATORS, TuiNativeValidator, true)],\n    host: {\n        '(focusout)': 'handleValidation()',\n    },\n})\nexport class TuiNativeValidator implements Validator {\n    private readonly el = tuiInjectElement<HTMLInputElement>();\n    private readonly control$ = new BehaviorSubject<AbstractControl | null>(null);\n\n    protected readonly sub = this.control$\n        .pipe(\n            switchMap((control: any) => control?.events || of(null)),\n            delay(0),\n            tuiZonefree(),\n            tuiTakeUntilDestroyed(),\n        )\n        .subscribe(() => this.handleValidation());\n\n    @Input()\n    public tuiNativeValidator = 'Invalid';\n\n    public validate(control: AbstractControl): null {\n        this.control$.next(control);\n\n        return null;\n    }\n\n    protected handleValidation(): void {\n        const invalid = !!this.control$.value?.touched && this.control$.value?.invalid;\n\n        // TODO: Replace with :has(:invalid) when supported\n        this.el.closest('tui-textfield')?.classList.toggle('tui-invalid', invalid);\n        this.el.setCustomValidity?.(invalid ? this.tuiNativeValidator : '');\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAMA,MAQa,kBAAkB,CAAA;AAR/B,IAAA,WAAA,GAAA;QASqB,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAoB,CAAC;AAC1C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAyB,IAAI,CAAC,CAAC;QAE3D,IAAG,CAAA,GAAA,GAAG,IAAI,CAAC,QAAQ;AACjC,aAAA,IAAI,CACD,SAAS,CAAC,CAAC,OAAY,KAAK,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,EACxD,KAAK,CAAC,CAAC,CAAC,EACR,WAAW,EAAE,EACb,qBAAqB,EAAE,CAC1B;aACA,SAAS,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAGvC,IAAkB,CAAA,kBAAA,GAAG,SAAS,CAAC;AAezC,KAAA;AAbU,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAE5B,QAAA,OAAO,IAAI,CAAC;KACf;IAES,gBAAgB,GAAA;AACtB,QAAA,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;;AAG/E,QAAA,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,EAAE,CAAC,iBAAiB,GAAG,OAAO,GAAG,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC;KACvE;+GA5BQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EALhB,CAAC,UAAU,CAAC,aAAa,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAKvD,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;oBAChC,SAAS,EAAE,CAAC,UAAU,CAAC,aAAa,EAAsB,kBAAA,EAAA,IAAI,CAAC,CAAC;AAChE,oBAAA,IAAI,EAAE;AACF,wBAAA,YAAY,EAAE,oBAAoB;AACrC,qBAAA;AACJ,iBAAA,CAAA;8BAeU,kBAAkB,EAAA,CAAA;sBADxB,KAAK;;;AC3BV;;AAEG;;;;"}