{"version":3,"file":"ng-form-group-validation-messages.mjs","sources":["../../../projects/ng-validation/src/lib/ng-validation.service.ts","../../../projects/ng-validation/src/lib/error-messages.ts","../../../projects/ng-validation/src/lib/ng-validation.component.ts","../../../projects/ng-validation/src/lib/custom-error.ts","../../../projects/ng-validation/src/public-api.ts","../../../projects/ng-validation/src/ng-form-group-validation-messages.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class NgValidationService {\r\n\r\n  constructor() { }\r\n}\r\n","export const ERROR_MESSAGE = {\r\n    // error: {\r\n    required: (name: string, {...args}): string => `${name} is required`,\r\n    minlength: (name: string, {...args}): string => `${name} cannot be less than ${args?.[\"requiredLength\"]} characters`,\r\n    maxlength: (name: string, {...args}): string => `${name} cannot be more than ${args?.[\"requiredLength\"]} characters`,\r\n    min: (name: string, {...args},): string => `${name} cannot be less than ${args?.[\"min\"]}`,\r\n    max: (name: string, {...args},): string => `${name} cannot be more than ${args?.[\"max\"]}`,\r\n    email: (name: string, {...args}): string => `${name} is not a valid email`,\r\n    isAlphabet: (name: string, {...args}): string => `${name} should be alphabets`,\r\n    isSmallCase: (name: string, {...args}): string => `${name} should be smallcase charecters`,\r\n    isLargeCase: (name: string, {...args}): string => `${name} should be largecase charecters`,\r\n    isNumeric: (name: string, {...args}): string => `${name} should be number`,\r\n    isCode: (name: string, {...args}): string => `${name} should be alphanumeric`,\r\n    isUrl: (name: string, {...args}): string => `${name} should be url`,\r\n    isColourCode: (name: string, {...args}): string => `${name} should be color`,\r\n    isGeoLocation: (name: string, {...args}): string => `${name} should be geo location`,\r\n    ipv4: (name: string, {...args}): string => `${name} should be ipv4`,\r\n    ipv6: (name: string, {...args}): string => `${name} should be ipv6`,\r\n    // }\r\n};","import { AsyncPipe } from '@angular/common';\r\nimport { Component, ContentChild, ElementRef, Inject, Input, Optional, ViewChild } from '@angular/core';\r\nimport { NgControl, Validators } from '@angular/forms';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ERROR_MESSAGE } from './error-messages';\r\n\r\n@Component({\r\n    selector: 'validate',\r\n    standalone: true,\r\n    imports: [AsyncPipe],\r\n    template: `\r\n    <div #formGroup class=\"form-group\">\r\n      <div>\r\n        {{label}} @if (validator) {<sup class=\"mandatory-sign\">*</sup>}\r\n      </div>\r\n      <div>\r\n        <ng-content></ng-content>\r\n         @if (isControlError) \r\n          {<div class=\"error-message\">\r\n            {{errorMsg| async}}\r\n          </div>\r\n          }\r\n      </div>\r\n    </div>\r\n  `,\r\n    styles: ``\r\n})\r\nexport class NgValidationComponent {\r\n  @Input() label = \"field\";\r\n  @ContentChild(NgControl) formControl!: NgControl;\r\n  @ContentChild('control') formControlElement!: ElementRef;\r\n  @ViewChild('formGroup') formGroup!: ElementRef;\r\n  isControlError = false;\r\n  requiredStar = false;\r\n  errorMsg = new BehaviorSubject<string>(\"\");\r\n\r\n  constructor(@Optional ()@Inject('CUSTOM_MESSAGES') public customMessages: any = {} ) { }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.formControl?.control?.valueChanges.subscribe(value => {\r\n      debugger;\r\n      if (this.formControl && this.formControl.control && this.formControl.control.errors) {\r\n        this.formGroup.nativeElement.classList.add('e-error');\r\n        this.isControlError = true;\r\n        this.errorMsg.next(this.getErrorMessage(this.formControl, this.label));\r\n      }\r\n      if (this.formControl && this.formControl.control && !this.formControl.control.errors) {\r\n        this.formGroup.nativeElement.classList.remove('e-error');\r\n        this.isControlError = false;\r\n      }\r\n    })\r\n  }\r\n\r\n  get validator() {\r\n    return this?.formControl?.control?.hasValidator(Validators.required)\r\n  }\r\n  getErrorMessage(formControl: NgControl, field: string) {\r\n    let name: string = field || 'This Field';\r\n    name = name.charAt(0).toUpperCase() + name.slice(1);\r\n    if (formControl.invalid) {\r\n      const errors: any = formControl.control?.errors\r\n      const [errorKey] = Object.keys(errors)\r\n      let message = `${name}  is invalid`;\r\n      if ( this.customMessages &&errorKey in this.customMessages) {\r\n        \r\n        return this.customMessages[errorKey as keyof typeof this.customMessages](name, errors[errorKey]);\r\n      } else if (errorKey in ERROR_MESSAGE) {\r\n        return ERROR_MESSAGE[errorKey as keyof typeof ERROR_MESSAGE](name, errors[errorKey]);\r\n      }\r\n\r\n      return message;\r\n    }\r\n    return (`${name}  is invalid`)\r\n\r\n  }\r\n\r\n}\r\n","import { ValidatorFn, AbstractControl, ValidationErrors } from \"@angular/forms\";\r\n\r\n\r\nexport function lowercaseValidator() : ValidatorFn {\r\n\r\n      return (control: AbstractControl): ValidationErrors | null => {\r\n        const value = control.value;\r\n        return value && /^[a-z]+$/.test(value) ? null : { isSmallCase: true };\r\n      };\r\n    \r\n}  \r\nexport function uppercaseValidator() : ValidatorFn {\r\n\r\n    return (control: AbstractControl): ValidationErrors | null => {\r\n      const value = control.value;\r\n      return value && /^[A-Z]+$/.test(value) ? null : { isLargeCase: true };\r\n    };\r\n  \r\n} \r\n\r\nexport function alphabetValidator() : ValidatorFn {\r\n\r\n    return (control: AbstractControl): ValidationErrors | null => {\r\n      const value = control.value;\r\n      return value && /^[A-Za-z]+$/.test(value) ? null : { isNumeric: true };\r\n    };\r\n  \r\n} \r\n\r\nexport function alphanumericValidator() : ValidatorFn {\r\n\r\n    return (control: AbstractControl): ValidationErrors | null => {\r\n      const value = control.value;\r\n      return value && /^[a-zA-Z0-9]+$/.test(value) ? null : { isCode: true };\r\n    };\r\n  \r\n} \r\n\r\nexport function urlValidator() : ValidatorFn {\r\n\r\n    return (control: AbstractControl): ValidationErrors | null => {\r\n      const value = control.value;\r\n      return value && /^(https?:\\/\\/)?([\\w\\-]+(\\.[\\w\\-]+)+)(:[0-9]{1,5})?(\\/[^\\s]*)?$/.test(value) ? null : { isUrl: true };\r\n    };\r\n  \r\n}\r\n\r\nexport function hexColorCodeValidator() : ValidatorFn {\r\n\r\n    return (control: AbstractControl): ValidationErrors | null => {\r\n      const value = control.value;\r\n      return value && /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(value) ? null : { isColourCode: true };\r\n    };\r\n  \r\n}\r\n\r\nexport function ipv4Validator() : ValidatorFn {\r\n\r\n    return (control: AbstractControl): ValidationErrors | null => {\r\n      const value = control.value;\r\n      return value && /^((25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)(\\.|$)){4}$/.test(value) ? null : { ipv4: true };\r\n    };\r\n  \r\n}\r\n\r\nexport function ipv6Validator() : ValidatorFn {\r\n\r\n    return (control: AbstractControl): ValidationErrors | null => {\r\n      const value = control.value;\r\n      return value && /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|(([0-9a-fA-F]{1,4}:){1,6}:)|(([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2})|(([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3})|(([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4})|(([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5})|([0-9a-fA-F]{1,4}:)((:[0-9a-fA-F]{1,4}){1,6}))$/.test(value) ? null : { ipv6: true };\r\n    };\r\n  \r\n}","/*\r\n * Public API Surface of ng-validation\r\n */\r\n\r\nexport * from './lib/ng-validation.service';\r\nexport * from './lib/ng-validation.component';\r\nexport * from './lib/custom-error';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}