@taiga-ui/kit
Version:
Taiga UI Angular main components kit
49 lines (44 loc) • 2.53 kB
JavaScript
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