@taiga-ui/kit
Version:
Taiga UI Angular main components kit
45 lines (40 loc) • 2.47 kB
JavaScript
import { TuiValidationError } from '@taiga-ui/cdk/classes';
import * as i0 from '@angular/core';
import { inject, signal, input, Directive } from '@angular/core';
import { toSignal } from '@angular/core/rxjs-interop';
import { NG_VALIDATORS } from '@angular/forms';
import { tuiProvide } from '@taiga-ui/cdk/utils/di';
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
import { TUI_DEFAULT_ERROR_MESSAGE, TUI_VALIDATION_ERRORS } from '@taiga-ui/core/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 = 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 = input('');
this.validate = tuiCreateUnfinishedValidator(tuiInjectElement(), () => this.tuiUnfinishedValidator() || this.message());
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiUnfinishedValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.21", type: TuiUnfinishedValidator, isStandalone: true, selector: "input[tuiUnfinishedValidator]", inputs: { tuiUnfinishedValidator: { classPropertyName: "tuiUnfinishedValidator", publicName: "tuiUnfinishedValidator", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiProvide(NG_VALIDATORS, TuiUnfinishedValidator, true)], ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiUnfinishedValidator, decorators: [{
type: Directive,
args: [{
selector: 'input[tuiUnfinishedValidator]',
providers: [tuiProvide(NG_VALIDATORS, TuiUnfinishedValidator, true)],
}]
}] });
/**
* Generated bundle index. Do not edit.
*/
export { TuiUnfinishedValidator, tuiCreateUnfinishedValidator };
//# sourceMappingURL=taiga-ui-kit-directives-unfinished-validator.mjs.map