UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

49 lines (44 loc) 2.53 kB
import { TuiValidationError } from '@taiga-ui/cdk/classes'; import * as i0 from '@angular/core'; import { inject, signal, Directive, Input } from '@angular/core'; import { toSignal } from '@angular/core/rxjs-interop'; import { NG_VALIDATORS } from '@angular/forms'; import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom'; import { tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous'; import { TUI_DEFAULT_ERROR_MESSAGE } from '@taiga-ui/core/tokens'; import { TUI_VALIDATION_ERRORS } from '@taiga-ui/kit/tokens'; import { isObservable } from 'rxjs'; function tuiCreateUnfinishedValidator(element, message) { return ({ value, }) => value === null && element.value !== '' ? { tuiUnfinished: new TuiValidationError(message) } : null; } class TuiUnfinishedValidator { constructor() { this.default = toSignal(inject(TUI_DEFAULT_ERROR_MESSAGE)); this.error = inject(TUI_VALIDATION_ERRORS)['tuiUnfinished']; this.fallback = this.error ? signal(this.error) : this.default; this.message = isObservable(this.error) ? toSignal(this.error) : this.fallback; this.tuiUnfinishedValidator = ''; this.validate = tuiCreateUnfinishedValidator(tuiInjectElement(), () => this.tuiUnfinishedValidator || this.message()); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiUnfinishedValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiUnfinishedValidator, isStandalone: true, selector: "input[tuiUnfinishedValidator]", inputs: { tuiUnfinishedValidator: "tuiUnfinishedValidator" }, providers: [tuiProvide(NG_VALIDATORS, TuiUnfinishedValidator, true)], ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiUnfinishedValidator, decorators: [{ type: Directive, args: [{ standalone: true, selector: 'input[tuiUnfinishedValidator]', providers: [tuiProvide(NG_VALIDATORS, TuiUnfinishedValidator, true)], }] }], propDecorators: { tuiUnfinishedValidator: [{ type: Input }] } }); /** * Generated bundle index. Do not edit. */ export { TuiUnfinishedValidator, tuiCreateUnfinishedValidator }; //# sourceMappingURL=taiga-ui-kit-directives-unfinished-validator.mjs.map