@taiga-ui/core
Version:
Core library for creating Angular components and applications using Taiga UI
34 lines • 7.94 kB
JavaScript
import { NgIf } from '@angular/common';
import { ChangeDetectionStrategy, Component, inject, Input } from '@angular/core';
import { toSignal } from '@angular/core/rxjs-interop';
import { TuiValidationError } from '@taiga-ui/cdk/classes';
import { TuiAnimated } from '@taiga-ui/cdk/directives/animated';
import { tuiIsString } from '@taiga-ui/cdk/utils/miscellaneous';
import { TUI_ANIMATIONS_SPEED, TUI_DEFAULT_ERROR_MESSAGE } from '@taiga-ui/core/tokens';
import { tuiToAnimationOptions } from '@taiga-ui/core/utils';
import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
import * as i0 from "@angular/core";
class TuiError {
constructor() {
this.options = tuiToAnimationOptions(inject(TUI_ANIMATIONS_SPEED));
this.error = null;
this.visible = true;
this.default = toSignal(inject(TUI_DEFAULT_ERROR_MESSAGE));
}
set errorSetter(error) {
this.error = tuiIsString(error) ? new TuiValidationError(error) : error;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiError, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiError, isStandalone: true, selector: "tui-error", inputs: { errorSetter: ["error", "errorSetter"] }, host: { properties: { "class._error": "error" } }, ngImport: i0, template: "<div\n *ngIf=\"error\"\n automation-id=\"tui-error__text\"\n tuiAnimated\n class=\"t-message-text\"\n>\n <ng-container *polymorpheusOutlet=\"error.message || default() as text; context: error.context || {}\">\n {{ text }}\n </ng-container>\n</div>\n", styles: [":host{transition-property:grid-template-rows;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:grid;font:var(--tui-font-text-s);color:var(--tui-text-negative);overflow-wrap:break-word;grid-template-rows:0fr}:host._error{grid-template-rows:1fr}.t-message-text{white-space:pre-line;grid-row:1 / span 2;overflow:hidden}.t-message-text.tui-enter,.t-message-text.tui-leave{animation-name:tuiFade}.t-message-text:before{content:\"\";line-height:1.5rem;vertical-align:bottom}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAnimated, selector: "[tuiAnimated]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
export { TuiError };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiError, decorators: [{
type: Component,
args: [{ standalone: true, selector: 'tui-error', imports: [NgIf, PolymorpheusOutlet, TuiAnimated], changeDetection: ChangeDetectionStrategy.OnPush, host: {
'[class._error]': 'error',
}, template: "<div\n *ngIf=\"error\"\n automation-id=\"tui-error__text\"\n tuiAnimated\n class=\"t-message-text\"\n>\n <ng-container *polymorpheusOutlet=\"error.message || default() as text; context: error.context || {}\">\n {{ text }}\n </ng-container>\n</div>\n", styles: [":host{transition-property:grid-template-rows;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:grid;font:var(--tui-font-text-s);color:var(--tui-text-negative);overflow-wrap:break-word;grid-template-rows:0fr}:host._error{grid-template-rows:1fr}.t-message-text{white-space:pre-line;grid-row:1 / span 2;overflow:hidden}.t-message-text.tui-enter,.t-message-text.tui-leave{animation-name:tuiFade}.t-message-text:before{content:\"\";line-height:1.5rem;vertical-align:bottom}\n"] }]
}], propDecorators: { errorSetter: [{
type: Input,
args: ['error']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL2Vycm9yL2Vycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9lcnJvci9lcnJvci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyQyxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFDLG9CQUFvQixFQUFFLHlCQUF5QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDdEYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7O0FBRTFELE1BV2EsUUFBUTtJQVhyQjtRQVl1QixZQUFPLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztRQUN2RSxVQUFLLEdBQThCLElBQUksQ0FBQztRQUN4QyxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ04sWUFBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDO0tBTTVFO0lBSkcsSUFDVyxXQUFXLENBQUMsS0FBeUM7UUFDNUQsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM1RSxDQUFDOytHQVRRLFFBQVE7bUdBQVIsUUFBUSwyS0NyQnJCLG9SQVVBLDBqQkRHYyxJQUFJLDZGQUFFLGtCQUFrQiw4SEFBRSxXQUFXOztTQVF0QyxRQUFROzRGQUFSLFFBQVE7a0JBWHBCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLFdBQVcsV0FDWixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRSxXQUFXLENBQUMsbUJBRy9CLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsZ0JBQWdCLEVBQUUsT0FBTztxQkFDNUI7OEJBU1UsV0FBVztzQkFEckIsS0FBSzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7VHVpVmFsaWRhdGlvbkVycm9yfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtUdWlBbmltYXRlZH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2FuaW1hdGVkJztcbmltcG9ydCB7dHVpSXNTdHJpbmd9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1RVSV9BTklNQVRJT05TX1NQRUVELCBUVUlfREVGQVVMVF9FUlJPUl9NRVNTQUdFfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHt0dWlUb0FuaW1hdGlvbk9wdGlvbnN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3V0aWxzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzT3V0bGV0fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1lcnJvcicsXG4gICAgaW1wb3J0czogW05nSWYsIFBvbHltb3JwaGV1c091dGxldCwgVHVpQW5pbWF0ZWRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lcnJvci50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lcnJvci5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLl9lcnJvcl0nOiAnZXJyb3InLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUVycm9yIHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3B0aW9ucyA9IHR1aVRvQW5pbWF0aW9uT3B0aW9ucyhpbmplY3QoVFVJX0FOSU1BVElPTlNfU1BFRUQpKTtcbiAgICBwcm90ZWN0ZWQgZXJyb3I6IFR1aVZhbGlkYXRpb25FcnJvciB8IG51bGwgPSBudWxsO1xuICAgIHByb3RlY3RlZCB2aXNpYmxlID0gdHJ1ZTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVmYXVsdCA9IHRvU2lnbmFsKGluamVjdChUVUlfREVGQVVMVF9FUlJPUl9NRVNTQUdFKSk7XG5cbiAgICBASW5wdXQoJ2Vycm9yJylcbiAgICBwdWJsaWMgc2V0IGVycm9yU2V0dGVyKGVycm9yOiBUdWlWYWxpZGF0aW9uRXJyb3IgfCBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuZXJyb3IgPSB0dWlJc1N0cmluZyhlcnJvcikgPyBuZXcgVHVpVmFsaWRhdGlvbkVycm9yKGVycm9yKSA6IGVycm9yO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICAqbmdJZj1cImVycm9yXCJcbiAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWVycm9yX190ZXh0XCJcbiAgICB0dWlBbmltYXRlZFxuICAgIGNsYXNzPVwidC1tZXNzYWdlLXRleHRcIlxuPlxuICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImVycm9yLm1lc3NhZ2UgfHwgZGVmYXVsdCgpIGFzIHRleHQ7IGNvbnRleHQ6IGVycm9yLmNvbnRleHQgfHwge31cIj5cbiAgICAgICAge3sgdGV4dCB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=