{"version":3,"file":"taiga-ui-kit-directives-unfinished-validator.mjs","sources":["../../../projects/kit/directives/unfinished-validator/unfinished.validator.ts","../../../projects/kit/directives/unfinished-validator/unfinished-validator-refresh.directive.ts","../../../projects/kit/directives/unfinished-validator/unfinished-validator.directive.ts","../../../projects/kit/directives/unfinished-validator/taiga-ui-kit-directives-unfinished-validator.ts"],"sourcesContent":["import {type AbstractControl, type ValidatorFn} from '@angular/forms';\nimport {TuiValidationError} from '@taiga-ui/cdk/classes';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport function tuiCreateUnfinishedValidator(\n    element: HTMLInputElement,\n    message: PolymorpheusContent,\n): ValidatorFn {\n    return ({\n        value,\n    }: AbstractControl): {tuiUnfinished: TuiValidationError | string} | null =>\n        value === null && element.value !== ''\n            ? {tuiUnfinished: new TuiValidationError(message)}\n            : null;\n}\n","import {Directive, inject, INJECTOR, type OnInit} from '@angular/core';\nimport {NG_VALIDATORS, NgControl} from '@angular/forms';\nimport {TuiValidator} from '@taiga-ui/cdk/directives/validator';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\n@Directive({\n    providers: [tuiProvide(NG_VALIDATORS, TuiUnfinishedValidatorRefresh, true)],\n    host: {'(blur)': 'onChange()', '(input)': 'onInput()'},\n})\nexport class TuiUnfinishedValidatorRefresh extends TuiValidator implements OnInit {\n    private readonly injector = inject(INJECTOR);\n    private readonly element = tuiInjectElement<HTMLInputElement>();\n    private control: (NgControl & {field?: unknown}) | null = null;\n\n    public ngOnInit(): void {\n        this.control = this.injector.get(NgControl, null, {optional: true, self: true});\n    }\n\n    protected onInput(): void {\n        if (\n            this.control?.field || // Signal forms have nothing else to re-validate them, so they are always asked\n            // Reactive forms has silent `updateValueAndValidity({emitEvent: false})` (not compatible with signal forms) inside control components\n            this.control?.control?.value !== null ||\n            this.element.value === ''\n        ) {\n            this.onChange();\n        }\n    }\n}\n","import {Directive, inject, input, signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {NG_VALIDATORS, type Validator} from '@angular/forms';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TUI_DEFAULT_ERROR_MESSAGE, TUI_VALIDATION_ERRORS} from '@taiga-ui/core/tokens';\nimport {isObservable} from 'rxjs';\n\nimport {tuiCreateUnfinishedValidator} from './unfinished.validator';\nimport {TuiUnfinishedValidatorRefresh} from './unfinished-validator-refresh.directive';\n\n@Directive({\n    selector: 'input[tuiUnfinishedValidator]',\n    providers: [tuiProvide(NG_VALIDATORS, TuiUnfinishedValidator, true)],\n    hostDirectives: [TuiUnfinishedValidatorRefresh],\n})\nexport class TuiUnfinishedValidator implements Validator {\n    private readonly default = inject(TUI_DEFAULT_ERROR_MESSAGE);\n    private readonly error = inject(TUI_VALIDATION_ERRORS)['tuiUnfinished'];\n    private readonly fallback = this.error ? signal(this.error) : this.default;\n\n    private readonly message = isObservable(this.error)\n        ? toSignal(this.error)\n        : this.fallback;\n\n    public readonly tuiUnfinishedValidator = input('');\n\n    public readonly validate = tuiCreateUnfinishedValidator(\n        tuiInjectElement<HTMLInputElement>(),\n        () => this.tuiUnfinishedValidator() || this.message(),\n    );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiUnfinishedValidatorRefresh"],"mappings":"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"}