{"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    <div\n      *ngIf=\"erro\"\n      class=\"danger\"\n      [@enterAnimation]=\"erro\"\n      [innerHTML]=\"erro\"\n    ></div>\n  `,\n  styles: ['div { font-size: 12px; }', '.danger { color: red; }'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: NgxMessageErrorComponent,\n      multi: true,\n    },\n  ],\n  animations: [\n    trigger('enterAnimation', [\n      transition(':enter', [\n        style({ transform: 'translateY(-5px)', opacity: 0 }),\n        animate('300ms', style({ transform: 'translateY(0)', opacity: 1 })),\n      ]),\n      transition(':leave', [\n        style({ transform: 'translateY(0)', opacity: 1 }),\n        animate('300ms', style({ transform: 'translateY(-5px)', opacity: 0 })),\n      ]),\n    ]),\n  ],\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 (\n      this.control.invalid &&\n      (this.control.touched ||\n        this.control.dirty ||\n        this.controlContainer.touched)\n    ) {\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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"}