{"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 {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {BehaviorSubject, delay, of, switchMap} from 'rxjs';\n\n@Directive({\n    selector: '[tuiNativeValidator]',\n    providers: [tuiProvide(NG_VALIDATORS, TuiNativeValidator, true)],\n    host: {'(focusout)': 'handleValidation()'},\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    public readonly tuiNativeValidator = input('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":";;;;;;;;MAYa,kBAAkB,CAAA;AAL/B,IAAA,WAAA,GAAA;QAMqB,IAAA,CAAA,EAAE,GAAG,gBAAgB,EAAoB;AACzC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAyB,IAAI,CAAC;QAE1D,IAAA,CAAA,GAAG,GAAG,IAAI,CAAC;AACzB,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;aAE1B,SAAS,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAE7B,QAAA,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC;AAexD,IAAA;AAbU,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAE3B,QAAA,OAAO,IAAI;IACf;IAEU,gBAAgB,GAAA;AACtB,QAAA,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO;;AAG9E,QAAA,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC;AAC1E,QAAA,IAAI,CAAC,EAAE,CAAC,iBAAiB,GAAG,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC;IACzE;+GA3BS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EAHhB,CAAC,UAAU,CAAC,aAAa,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGvD,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;oBAChC,SAAS,EAAE,CAAC,UAAU,CAAC,aAAa,EAAA,kBAAA,EAAsB,IAAI,CAAC,CAAC;AAChE,oBAAA,IAAI,EAAE,EAAC,YAAY,EAAE,oBAAoB,EAAC;AAC7C,iBAAA;;;ACXD;;AAEG;;;;"}