{"version":3,"file":"ngx-message-error.mjs","sources":["../../../projects/ngx-message-error/src/lib/ngx-message-error.service.ts","../../../projects/ngx-message-error/src/lib/ngx-message-error.component.ts","../../../projects/ngx-message-error/src/lib/ngx-message-error.module.ts","../../../projects/ngx-message-error/src/public-api.ts","../../../projects/ngx-message-error/src/ngx-message-error.ts"],"sourcesContent":["import { Injectable, Optional } from '@angular/core';\n\nexport class MessagesConfig {\n  min?: string;\n  max?: string;\n  required?: string;\n  requiredTrue?: string;\n  email?: string;\n  minLength?: string;\n  maxLength?: string;\n  [key: string]: string;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NgxMessageErrorService {\n  constructor(@Optional() messages: MessagesConfig) {\n    if (messages) {\n      this.messages = Object.assign(this.messages, messages);\n    }\n  }\n\n  messages: MessagesConfig = {\n    min: 'Please enter a value greater than or equal to ?.',\n    max: 'Please enter a value less than or equal to ?.',\n    required: 'This field is required.',\n    requiredTrue: 'This field is required.',\n    email: 'Please enter a valid email address.',\n    minlength: 'Minimum characters not reached. ?/?',\n    maxlength: 'Maximum characters exceeded. ?/?'\n  };\n}\n","import {\n  Component,\n  OnInit,\n  Input,\n  Optional,\n  Host,\n  SkipSelf,\n} from '@angular/core';\nimport {\n  NG_VALUE_ACCESSOR,\n  AbstractControl,\n  FormGroupDirective,\n  ControlValueAccessor,\n} from '@angular/forms';\nimport { trigger, transition, style, animate } from '@angular/animations';\nimport {\n  NgxMessageErrorService,\n  MessagesConfig,\n} from './ngx-message-error.service';\n\n@Component({\n  selector: 'ngx-message-error',\n  template: `\n    @if (erro) {\n    <div\n      class=\"danger\"\n      animate.enter=\"enter-animation\"\n      animate.leave=\"leave-animation\"\n      [innerHTML]=\"erro\"\n    ></div>\n    }\n  `,\n  styles: [\n    `\n      div {\n        font-size: var(--message-error-font-size, 12px);\n      }\n      .danger {\n        color: var(--message-error-color, #a94442);\n      }\n      .enter-animation {\n        animation: enterAnimation 0.3s;\n      }\n      @keyframes enterAnimation {\n        from {\n          transform: translateY(-5px);\n          opacity: 0;\n        }\n        to {\n          transform: translateY(0);\n          opacity: 1;\n        }\n      }\n      .leave-animation {\n        animation: leaveAnimation 0.3s;\n      }\n      @keyframes leaveAnimation {\n        from {\n          transform: translateY(0);\n          opacity: 1;\n        }\n        to {\n          transform: translateY(-5px);\n          opacity: 0;\n        }\n      }\n    `,\n  ],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: NgxMessageErrorComponent,\n      multi: true,\n    },\n  ],\n  standalone: false,\n})\nexport class NgxMessageErrorComponent implements ControlValueAccessor, OnInit {\n  @Input() messages: MessagesConfig = {};\n  @Input() formControlName: string;\n  protected innerValue;\n  private changed = new Array<(value) => void>();\n  private touched = new Array<() => void>();\n  private innerControl: AbstractControl;\n\n  get value() {\n    return this.innerValue;\n  }\n\n  set value(value) {\n    if (this.innerValue !== value) {\n      this.innerValue = value;\n      this.changed.forEach((f) => f(value));\n    }\n  }\n\n  touch() {\n    this.touched.forEach((f) => f());\n  }\n\n  writeValue(value) {\n    this.innerValue = value;\n  }\n\n  registerOnChange(fn: (value) => void) {\n    this.changed.push(fn);\n  }\n\n  registerOnTouched(fn: () => void) {\n    this.touched.push(fn);\n  }\n\n  public get control() {\n    return this.innerControl;\n  }\n\n  public set control(c: AbstractControl) {\n    this.innerControl = c;\n  }\n\n  public get erro() {\n    if (this.control.invalid && (this.control.touched || this.control.dirty)) {\n      return this.buildMessage();\n    }\n    return '';\n  }\n\n  constructor(\n    @Optional()\n    @Host()\n    @SkipSelf()\n    private controlContainer: FormGroupDirective,\n    private service: NgxMessageErrorService\n  ) {}\n\n  private buildMessage() {\n    const keysErrors = Object.keys(this.control.errors);\n    if (keysErrors.length > 0) {\n      const keysMessages = Object.keys(this.messages);\n      const keyMessage = keysMessages.filter((key) => key === keysErrors[0]);\n      if (keyMessage.length > 0) {\n        let message = this.messages[keyMessage[0]];\n        if (keyMessage[0] === 'maxlength') {\n          const max = this.control.errors.maxlength;\n          message = message.replace('?', max.actualLength);\n          message = message.replace('?', max.requiredLength);\n        } else if (keyMessage[0] === 'minlength') {\n          const max = this.control.errors.minlength;\n          message = message.replace('?', max.actualLength);\n          message = message.replace('?', max.requiredLength);\n        } else if (keyMessage[0] === 'min') {\n          const minError = this.control.errors.min;\n          message = message.replace('?', minError.min);\n        } else if (keyMessage[0] === 'max') {\n          const maxError = this.control.errors.max;\n          message = message.replace('?', maxError.max);\n        }\n        return message;\n      }\n    }\n    return '';\n  }\n\n  ngOnInit() {\n    const auxMessages = this.service.messages;\n    this.messages = { ...auxMessages, ...this.messages };\n    if (this.controlContainer) {\n      if (this.formControlName) {\n        this.control = this.controlContainer.control.get(this.formControlName);\n      } else {\n        console.warn(\n          'Missing FormControlName directive from host element of the component'\n        );\n      }\n    } else {\n      console.warn(\"Can't find parent FormGroup directive\");\n    }\n  }\n}\n","import { NgModule, ModuleWithProviders, Optional, SkipSelf } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgxMessageErrorComponent } from './ngx-message-error.component';\nimport { MessagesConfig } from './ngx-message-error.service';\n\n@NgModule({\n  declarations: [NgxMessageErrorComponent],\n  imports: [CommonModule],\n  exports: [NgxMessageErrorComponent],\n})\nexport class NgxMessageErrorModule {\n  static forRoot(@Optional() @SkipSelf() messages?: MessagesConfig): ModuleWithProviders<NgxMessageErrorModule> {\n    return {\n      ngModule: NgxMessageErrorModule,\n      providers: [{ provide: MessagesConfig, useValue: messages }],\n    };\n  }\n}\n","/*\n * Public API Surface of ngx-message-error\n */\n\nexport * from './lib/ngx-message-error.service';\nexport * from './lib/ngx-message-error.component';\nexport * from './lib/ngx-message-error.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.NgxMessageErrorService"],"mappings":"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"}