error.component.mjs 7.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
  2. import { AlertComponent } from '../../components/atoms/alert/alert.component';
  3. import { KeyValuePipe } from '@angular/common';
  4. import { IconComponent } from '../../components/atoms/icon/icon.component';
  5. import * as i0 from "@angular/core";
  6. export class FormErrorComponent {
  7. constructor() {
  8. this.size = 'base';
  9. this.hasErrors = false;
  10. this.fullSize = false;
  11. this.helper = '';
  12. this.errorMessages = {};
  13. }
  14. static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FormErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
  15. static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: FormErrorComponent, isStandalone: true, selector: "ct-form-alert", inputs: { errors: "errors", size: "size", hasErrors: "hasErrors", fullSize: "fullSize", helper: "helper", errorMessages: "errorMessages" }, ngImport: i0, template: "<div\n class=\"flex min-h-4 flex-col justify-between gap-1 font-primary text-xs transition-opacity duration-500 ease-in-out sm:flex-row sm:items-center\"\n [class.w-full]=\"fullSize\"\n [class.w-fit]=\"!fullSize\"\n [class.opacity-0]=\"!hasErrors\"\n [class.opacity-100]=\"hasErrors\">\n @if (hasErrors) {\n <div class=\"flex flex-row items-center gap-1 text-error dark:text-error-variant-dark\">\n <ct-icon icon=\"exclamation-triangle\" size=\"sm\" />\n @for (error of errors | keyvalue; track error; let isLast = $last) {\n <span class=\"after:mx-1 after:inline-block after:content-[','] last:after:content-none\">{{\n errorMessages[error.key] ? errorMessages[error.key] : error.key\n }}</span>\n }\n </div>\n @if (helper) {\n <span>{{ helper }}</span>\n }\n }\n</div>\n", dependencies: [{ kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "component", type: IconComponent, selector: "ct-icon", inputs: ["icon", "fill", "strokeWidth", "strokeColor", "size", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
  16. }
  17. i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FormErrorComponent, decorators: [{
  18. type: Component,
  19. args: [{ selector: 'ct-form-alert', standalone: true, imports: [AlertComponent, KeyValuePipe, IconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"flex min-h-4 flex-col justify-between gap-1 font-primary text-xs transition-opacity duration-500 ease-in-out sm:flex-row sm:items-center\"\n [class.w-full]=\"fullSize\"\n [class.w-fit]=\"!fullSize\"\n [class.opacity-0]=\"!hasErrors\"\n [class.opacity-100]=\"hasErrors\">\n @if (hasErrors) {\n <div class=\"flex flex-row items-center gap-1 text-error dark:text-error-variant-dark\">\n <ct-icon icon=\"exclamation-triangle\" size=\"sm\" />\n @for (error of errors | keyvalue; track error; let isLast = $last) {\n <span class=\"after:mx-1 after:inline-block after:content-[','] last:after:content-none\">{{\n errorMessages[error.key] ? errorMessages[error.key] : error.key\n }}</span>\n }\n </div>\n @if (helper) {\n <span>{{ helper }}</span>\n }\n }\n</div>\n" }]
  20. }], propDecorators: { errors: [{
  21. type: Input,
  22. args: [{ required: true }]
  23. }], size: [{
  24. type: Input
  25. }], hasErrors: [{
  26. type: Input
  27. }], fullSize: [{
  28. type: Input
  29. }], helper: [{
  30. type: Input
  31. }], errorMessages: [{
  32. type: Input
  33. }] } });
  34. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2lyY2xldG9uZS9zcmMvbGliL2Zvcm1zL2Vycm9yL2Vycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpcmNsZXRvbmUvc3JjL2xpYi9mb3Jtcy9lcnJvci9lcnJvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFTM0UsTUFBTSxPQUFPLGtCQUFrQjtJQVAvQjtRQVNXLFNBQUksR0FBa0IsTUFBTSxDQUFDO1FBQzdCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osa0JBQWEsR0FBOEIsRUFBRSxDQUFDO0tBQ3hEOzhHQVBZLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHFOQ2QvQixvMEJBb0JBLHVDRFY0QixZQUFZLGlEQUFFLGFBQWE7OzJGQUkxQyxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDLG1CQUVyQyx1QkFBdUIsQ0FBQyxNQUFNOzhCQUdwQixNQUFNO3NCQUFoQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDaEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbGVydENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvYXRvbXMvYWxlcnQvYWxlcnQuY29tcG9uZW50JztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBLZXlWYWx1ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50U2l6ZSB9IGZyb20gJy4uLy4uL21vZGVsL2NvbXBvbmVudHMvY29tcG9uZW50LXNpemUudHlwZSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9hdG9tcy9pY29uL2ljb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3QtZm9ybS1hbGVydCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtBbGVydENvbXBvbmVudCwgS2V5VmFsdWVQaXBlLCBJY29uQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Vycm9yLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1FcnJvckNvbXBvbmVudCB7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGVycm9ycyE6IFZhbGlkYXRpb25FcnJvcnM7XG4gIEBJbnB1dCgpIHNpemU6IENvbXBvbmVudFNpemUgPSAnYmFzZSc7XG4gIEBJbnB1dCgpIGhhc0Vycm9ycyA9IGZhbHNlO1xuICBASW5wdXQoKSBmdWxsU2l6ZSA9IGZhbHNlO1xuICBASW5wdXQoKSBoZWxwZXIgPSAnJztcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xufVxuIiwiPGRpdlxuICBjbGFzcz1cImZsZXggbWluLWgtNCBmbGV4LWNvbCBqdXN0aWZ5LWJldHdlZW4gZ2FwLTEgZm9udC1wcmltYXJ5IHRleHQteHMgdHJhbnNpdGlvbi1vcGFjaXR5IGR1cmF0aW9uLTUwMCBlYXNlLWluLW91dCBzbTpmbGV4LXJvdyBzbTppdGVtcy1jZW50ZXJcIlxuICBbY2xhc3Mudy1mdWxsXT1cImZ1bGxTaXplXCJcbiAgW2NsYXNzLnctZml0XT1cIiFmdWxsU2l6ZVwiXG4gIFtjbGFzcy5vcGFjaXR5LTBdPVwiIWhhc0Vycm9yc1wiXG4gIFtjbGFzcy5vcGFjaXR5LTEwMF09XCJoYXNFcnJvcnNcIj5cbiAgQGlmIChoYXNFcnJvcnMpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLTEgdGV4dC1lcnJvciBkYXJrOnRleHQtZXJyb3ItdmFyaWFudC1kYXJrXCI+XG4gICAgICA8Y3QtaWNvbiBpY29uPVwiZXhjbGFtYXRpb24tdHJpYW5nbGVcIiBzaXplPVwic21cIiAvPlxuICAgICAgQGZvciAoZXJyb3Igb2YgZXJyb3JzIHwga2V5dmFsdWU7IHRyYWNrIGVycm9yOyBsZXQgaXNMYXN0ID0gJGxhc3QpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhZnRlcjpteC0xIGFmdGVyOmlubGluZS1ibG9jayBhZnRlcjpjb250ZW50LVsnLCddIGxhc3Q6YWZ0ZXI6Y29udGVudC1ub25lXCI+e3tcbiAgICAgICAgICBlcnJvck1lc3NhZ2VzW2Vycm9yLmtleV0gPyBlcnJvck1lc3NhZ2VzW2Vycm9yLmtleV0gOiBlcnJvci5rZXlcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgQGlmIChoZWxwZXIpIHtcbiAgICAgIDxzcGFuPnt7IGhlbHBlciB9fTwvc3Bhbj5cbiAgICB9XG4gIH1cbjwvZGl2PlxuIl19